DE2547488C2 - Mikroprogrammierte Datenverarbeitungsanlage - Google Patents
Mikroprogrammierte DatenverarbeitungsanlageInfo
- Publication number
- DE2547488C2 DE2547488C2 DE2547488A DE2547488A DE2547488C2 DE 2547488 C2 DE2547488 C2 DE 2547488C2 DE 2547488 A DE2547488 A DE 2547488A DE 2547488 A DE2547488 A DE 2547488A DE 2547488 C2 DE2547488 C2 DE 2547488C2
- Authority
- DE
- Germany
- Prior art keywords
- column
- buffer memory
- information
- type
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
Description
Die Erfindung betrifft eine mikroprogrammierte Datenverarbeitungsanlage mit einem Hauptspeicher für
Benutzerdaten und Makroinstruktionen und einem Steuerspeicher für Mikroinstruktionen, sowie einem mit
beiden Speichern verbundenen Prozessor.
Von modernen Datenverarbeitungsanlagen wird immer häufiger die Notwendigkeit der Speicherung
großer Datenmengen im Hauptspeicher verlangt, die somit rasch zugreifbar sein sollen. Da schnelle und
große Speicher aber einen erheblichen Kostenfaktor darstellen, geht man dazu über, Speicherhierarchien mit
verschiedenen Aktualitätsebenen aufzubauen, deren Durchschnittsgeschwindigkeit einem schnellen, teuren
Speicher entspricht. Es ist in diesem Zusammenhang bekannt, zwischen den Hauptspeicher der Anlage und
den Prozessor einen schnellen, kleinen Pufferspeicher zu schalten. Beispielsweise betragen die Zykluszeiten
für den Hauptspeicher, der in diesem Falle auch Hintergrundspeicher genannt werden kann, 1 bis 5
Mikrosekunden und für den schnellen Pufferspeicher 30Π ns. Für die gesamte Hierarchie ergibt sich dann eine
Zugriffszeit, die etwas über der Zykluszeit des schnellen Pufferspeichers, jedoch weit unter der Zykluszeit des
Hauptspeichers liegt.
Die Verwendung eines schnellen Pufferspeichers schafft jedoch eine Reihe von Problemen, die im
wesentlichen mi' der Wahl der geeigneten Parameter wie Puffergröße, Assoziativität, Austauschmechanismus,
usw. zusammenhängen. Unter Assoziativität versteht man dabei das Abbildungs^erhältnis von
Hauplspeicherplätzen auf Pufferspeicherplätze. Im allgemeinen Fall kann z. B. vorgesehen werden, daß ein
Datenbereich vom Hauptspeicher überall im Pufferspeicher gespeichert werden kann und somit eine volle
Assoziativität erreicht wird. Um den Datenbereich im Pufferspeicher wieder auffinden zu können, muß ein
Pufferadressenfeld vorgesehen werden, das zu jedem Datenbereich den jeweiligen Pufferspeicherplatz angibt.
Es leuchtet ein, daß dieses Pufferadressenfeld in diesem allgemeinen Fall sehr umfangreich wird und
komplizierte Steuereinrichtungen erfordert. Eine einfachere Anordnung kann dann erzielt werden, wenn
gefordert wird, daß ein bestimmter Datenbereich nur innerhalb vorgegebener geometrischer Grenzen des
Pufferspeichers gespeichert werden kann. Die Adressierung des Pufferadreßfeldes und die immer notwendige
Feststellung, ob ein bestimmter Datenbereich sich zur Zeit im Pufferspeicher befindet, wird durch eine solche
beschränkte Assoziativität wesentlich vereinfacht.
Da im Pufferspeicher naturgemäß nur ein Teil der Daten vom Hauptspeicher gespeichert werden können,
muß oft bei der Speicherung eines neuen Datenbereiches im Pufferspeicher ein alter Bereich aus dem
Pufferspeicher entfernt werden. Die Wahl dieses alten Bereiches erfolgt mit Hilfe eines Austauschfeldes, das in
Abhängigkeit von der vorgesehenen Assoziativität jeweils einen Bereich angibt, der zum Austausch
geeignet ist. Der Bereichsaustausch erfolgt dabei nach verschiedenen Algorithmen, von denen der FIFO (First
In First Out)-AIgorithmus und der LRU (Least Recently Used)-Algorithmus die gebräuchlichsten sind. Nach dem
FIFO-Algorithmus wird unter allen in Betracht kommenden
Datenbereichen derjenige Bereich ausgetauscht, der als erster in den Pufferspeicher eingelesen
worden war. Nach dem LRU-Aigorithmus wird unter allen in Betracht kommenden Bereichen derjenige
Bereich ausgetauscht, dessen letzte Verwendung zeitlich am weitesten zurückliegt.
Es leuchtet ein, daß nicht so sehr der kleine, schnelle Pufferspeicher, sondern die zu seiner Verwendung
notwendigen Steuereinrichtungen wie Pufferadreßfeld, Austauschfeld und Fortschreibelogik für das Austauschfeld
einen großen Aufwand darstellen. Abgesehen von
den Einrichtungskosten erfordert jede Adressierung des Pufferspeichers auch eine Ansteuerung der genannten
Steuereinrichtungen, die insgesamt sehr zeitaufwendig sein kann.
Aber nicht nur bezüglich der Benutzerdaten und Makroinstruktionen, sondern auch bezüglich der Mikroinstruktionen
in einer mikroprogrammierten Datenverarbeitungsanlage wird immer mehr die Forderung
nach größerem Speicherbedarf für den Mikroinstruktions-Steuerspeicher erhoben. Da sich die Kosten
neuerer Datenverarbeitungsanlagen immer mehr und mehr in die Software verlagern, geht die Tendenz dahin,
bisher als reine Software-Teile bekannte Funktionen mehr und mehr ins Mikroprogramm zu verlagern. Bei
diesen Teilen kann es sich z. B. im Zusammenhang mit Speicherhierarchien, die virtue!! adressiert werden, urn
die Speicherplatzverwaltung, die Programmaufteilung für die einzelnen zu verarbeitenden Aufgaben, um die
Zuteilung von Einrichtungen der Anlage, usw. handeln. Die Gründe für die Verlagerung von Software in
Hardware können auch wie folgt angegeben werden:
— Größere Effektivität, da die zu lösenden Probleme
näher an der Hardware der Maschine liegen,
— größere Flexibilität innerhalb einer kompatiblen Serie von Maschinen, indem leistungsbringende
Teile direkt als Hardware ausgeführt werden können,
— größere Benutzerfreundlichkeit durch mehr Automatismen und
— einfacheres und damit sichereres Betriebssystem.
Eine solche Verlagerung kann jedoch mit sich bringen, daß das Mikroprogramm eine Größenordnung
von 1 Megabyte erreicht. Es ist klar, daß eine solch große Mikroprogrammenge nicht mehr in einem
schnellen Speicher bereitgehalten werden kann. Während man früher der Geschwindigkeit wegen die
Makroinstruktionen in Festwertspeichern bereithielt, kommt nunmehr für eine solch große Mikroprogrammenge
diese Lösung nicht mehr in Betracht Man ist auch bereits dazu übergegangen (siehe z. B. US-PS
34 78 322), das Mikroprogramm in veränderbaren Speichern zu speichern. Die Verwendung von Mikroprogrammengen
von einem Megabyte macht jedoch die Verwendung einer Speicherhierarchie notwendig. Eine
solche Hierarchie ist z.B. aus der DE-OS 23 39 636 bekannt Auch hier ergeben sich jedoch bei der
Verwendung eines schnellen Pufferspeichers für Mikroinstruktionen die oben im Zusammenhang mit der
Verwendung eines Pufferspeichers für Benutzerdaten· beschriebenen Nachteile Die optimale Puffergröße,
Assoziativität ist schwer zu bestimmen und die notwendigen Steuereinrichtungen (Pufferadreßfeld,
Austauschfeld, Steuerlogik) stellen einen erheblichen Kostenfaktor dar. Die optimalen Pufferspeicher-Parameter
sind außerdem bei der Konstruktion der Maschine noch gar nicht zu bestimmen, da diese in nicht
geringem Maße von der Art der Verwendung der Maschine durch den Benutzer abhängen.
Der Aufwand für die Steuereinrichtungen zu den verschiedenen Pufferspeichern wird außerdem noch
ganz wesentlich erhöht, wenn die Datenverarbeitungsanlage als Multiprozessoranlage ausgeführt ist, da dann
für jeden Prozessor diese Einrichtungen vorgesehen werden müssen und die Einrichtungen außerdem noch
durch den Multiprozessorbetrieb und die damit zusammenhängende Datenaktualität in den einzelnen
Pufferspeichern kompliziert werden.
Trotz des offensichtlich erhöhten Aufwandes erfolgt in den bekannten Einrichtungen die Übertragung von
Benutzerdaten und Makroinstruktionen einerseits und die Übertragung von Mikroinstruktionen andererseits
zum Prozessor auf streng getrennten Wegen. Dies findet seinen Grund darin, daß es sich bei diesen beiden
Datentypen um von Grund auf verschiedene Arten von Informationen handelt. Zur Übertragung der beiden
Typen sind verschiedene Sammelleitungen vorgesehen, die sich hinsichtlich der zu übertragenden Datenmenge
und der Übertragungsgeschwindigkeit unterscheiden.
Während der Unterschied von Benutzerdaten zu Mikroinstruktionen ohne weiteres einleuchtet, soll hier
der Unterschied von Makroinstruktionen einerseits und
hervorgehoben werden. Die gemeinsame Abspeicherung von Makroinstruktionen und Daten erfolgt im
wesentlichen deshalb, weil die modernen Datenverarbeitungsanlagen eine gleiche Behandlung von Makroinstruktionen
und Daten erfordern. Hauptsächlich geht es dabei darum, daß die Anlage die Möglichkeit haben
muß, Makroinstruktionen genauso wie Daten zu bearbeiten und modifizieren und damit die Programmablaufe
und evtl. Programmverzweigungen flexibel gestalten zu können. Bei den Mikroinstruktionen andererseits
liegen die Verhältnisse jedoch völlig anders. Da es sich bei den Mikroinstruktionen um einen sogenannten
interpretierenden Code handelt, würde die Anwendung des oben beschriebenen von Neumann-Prinzips, d. h. die
gemeinsame Abspeicherung von Daten und Makroinstruktionen im Hauptspeicherund die Instruktionsmodifizierung,
keine Vereinfachung der Programmiertechnik bringen. Daher sind in den meisten Datenverarbeitungsanlagen
verschiedene Speicher für Makroinstruktionen und Daten einerseits und für Mikroinstruktionen
andererseits vorgesehen. Wo dennoch aus Kostengründen ein gemeinsamer Speicher vorgesehen ist, enthält
dieser logisch zwei klar voneinander abgegrenzte Adreßräume, die für die beiden eindeutig unterschiedlichen
Typen von Informationen benutzt werden (siehe z. B. IBM TDB Mai 1973, Seite 3799).
Die oben beschriebenen Lösungen zur Bereitstellung von großen Mikroprogrammengen können daher
infolge des hohen Aufwandes nicht befriedigen. Dieser hohe Aufwand ergibt sich im wesentlichen durch die
Bereitstellung von zwei getrennten Zuführungswegen für die beiden genannten Informationsarten zum
Prozessor. Obwohl einerseits solche getrennten Wege in manchen Fällen einen Zeitvorteil dadurch bringen
können, daß Vorgänge auf beiden Wegen gleichzeitig ablaufen können, ist andererseits der doppelte Aufwand,
und bei Multiprozessoren der mehr als doppelte Aufwand für kleinere und mittlere Datenverarbeitungsanlagen
nicht zu vertreten.
Der Erfindung liegt daher die Aufgabe zugrunde, einen raschen Zugriff des Prozessors zu großen
Mikroprogrammengen zu ermöglichen und den Aufwand für die dazu nötigen Einrichtungen zu verringern.
Die erfindungsgemäße Lösung dieser Aufgabe ist im Kennzeichen des Hauptanspruches angegeben.
Dadurch, daß der Verbindungsweg zwischen Prozessor und Steuerspeicher über einen Pufferspeicher
verläuft wird ein rascher Zugriff zu den Mikroinstruktionen erzielt Da jedoch der Pufferspeicher für beide
Informationsarten, d.h. für Benutzerdaten und Ma-
' kroinstruktionen einerseits und Mikroinstruktionen
andererseits gemeinsam ist und auch die zur Benutzung
eines Pufferspeichers notwendigen und aufwendigen Steuereinrichtungen gemeinsam benutzt werden, wird
der Aufwand ganz wesentlich herabgesetzt. Durch die gemeinsame Benutzung des Pufferspeichers wird
außerdem eine bessere Ausnutzung des Pufferspeichers erzielt.
Eine vorteilhafte Weiterbildung der Erfindung ist dadurch gekennzeichnet, daß Grenzwerte bezüglich der
Raumaufteilung im Pufferspeicher in zwei dafür vorgesehenen Registern festgehalten werden. Hierdurch
wird die Möglichkeit zu einer weiteren vorteilhaften Ausbildung gegeben, die darin besteht, daß die
Raumaufteilung im Pufferspeicher je nach Bedarfsfall vollüberlappend, teilüberlappend und für beide Informalionsarten
getrennt erfolgen kann. Da beide lnformationsarten die gleichen Steuereinrichtungen benutzen
wird bei Überlappung der für die einzelnen Informationstypen vorgesehenen Pufferspeicherbereiche auto
matisch eine selbstadaptierende Aufteilung erzielt. Im überlappten Gebiet des Pufferspeichers wird dabei
Speicherplatz für den Informationstyp bereitgestellt, der zuerst Speicherplatz verlangt. Andererseits bietet
die Teilüberlappung die Gewähr dafür, daß keiner der beiden Informationstypen den Pufferspeicher für sich
monopolisieren kann. Es bleibt also zumindest ein Teilbereich des Pufferspeichers jeweils nur für eine der
beiden Informationsarten reserviert. Das Setzen der beiden Grenzwertregister kann vom Mikroprogramm
oder vom Benutzerprogramm aus geschehen, wodurch eine äußerst flexible Speicherraumaufteilung und eine
jederzeit mögliche Anpassung an spezielle Benutzerprogramme möglich ist.
Eine weitere vorteilhafte Weiterbildung der Erfindung bezieht s'ch auf eine teilassoziative Abbildung des
Hauptspeichers auf den Pufferspeicher. Hierbei kann z. B. der Pufferspeicher eine bestimmte Anzahl von
Spalten aufweisen. In den Grenzwertregistern kann dann einfach die maximale Spaltenanzahl angegeben
werden, in denen Information eines bestimmten Typs gespeichert werden darf. Die Organisation des Austauschfeldes,
des Pufferadreßfeldes und der Steuerlogik wird dabei ganz wesentlich vereinfacht.
Vorteilhafterweise kann dabei der Pufferspeicher so organisiert sein, daß jeweils in einer Spalte eine
bestimmte Anzahl von Datenbereichen gespeichert wird. Durch diese Assoziativität ergibt sich ein einfacher
Aufbau des Pufferadreßfeldes, des Austauschfeldes und der Steuerlogik, da die Bereichsadresse zugleich die
Adresse der jeweiligen Zeile in diesen Feldern angibt.
Weitere vorteilhafte Weiterbildungen sind den restlichen Unteransprüchen zu entnehmen.
Ein Ausfühfungsbeispiel der Erfindung soll nun
anhand der Zeichnung beschrieben werden. Es zeigt
F i g. 1 ein Blockschaltbild einer Datenverarbeitungsanlage mit der erfindungsgemäßen Speicherhierarchie,
Fig.2 eine genauere Darstellung der in Fig. 1
gezeigten Anordnung,
F i g. 3 die Adressierungswege der Speicherhierarchie,
F i g. 4 eine Decodier- und Auswahlschaltung,
F i g. 5 eine Prioritätsschaltung,
Fi g. 6 die Funktionsweise eines Austauschfeldes nach
dem Fl FO-Algorithmus und
F i g. 7 die Funktionsweise eines Austauschfeldes nach
dem LRV-Algorithmus.
Fi g. 1 zeigt in übersichtlicher Form eine Datenverarbeitungsanlage
mit einer Speicherhierarchie. Dabei ■wurden die zum Verständnis der vorliegenden Erfindung
unwesentlichen Teile einer solchen Datenverarbeitungsanlage, wie z. B. der Eingangs/Ausgangs-Teil
weggelassen. In der gezeigten Anlage ist für das Benutzerprogramm, das aus Makroinstruktionen und
die bei der Bearbeitung dieses Programmes nötigen Daten besteht, ein Hintergrundspeicher 2 vorgesehen.
Ein weiterer Hintergrundspeicher 4 ist für das Mikroprogramm vorgesehen. Der Informationstyp im
Speicher 2 soll weiterhin mit L und der Informationstyp im Speicher 4 weiterhin mit C bezeichnet werden. Bei
den Hinlergrundspeichern 2 und 4 handelt es sich um Speicher, wie sie als Hauptspeicher in Datenverarbeitungsantagen
bekanntgeworden sind. Diese Speicher sind zumeist als Magnetkernspeicher oder monolithische
Speicher ausgeführt.
Die vom Prozessor 8 benötigten Informationen sowohl des einen als auch des anderen Typs werden dem
Prozessor über einen für beide Informationsarten L und C gemeinsamen Pufferspeicher 6 zugeführt. Die
Kapazität des Pufferspeichers 6 kann dabei beiden Informationsarien vollüberlappend zur Verfügung stehen,
oder es können, wie in F i g. 1 angedeutet, eine oder mehrere verschiebbare Grenzen im Pufferspeicher 6
vorgesehen werden, die den für die einzelnen Informalionstypen zur Verfügung stehenden Speicherplatz
begrenzen. Je nach Art der angeforderten Informationen werden diese im Prozessor entweder in das
Operandenregister 26 oder in das Mikroinstruktionsregister 2f! geladen. Die beiden Informationsarten werden
durch ein Bit in der vom Prozessor gelieferten Adresse unterschieden. Dieses Bit ist mit L/Cangegeben.
Mit der vom Prozessor 8 im Register 24 bereitgestellten Adresse zur Adressierung des Pufferspeichers wird
zunächst ein Pufferadreßfeld 10 abgefragt, um festzustellen, ob sich die durch diese Adresse angegebenen
Daten überhaupt im Pufferspeicher befinden. Diese Aussage wird von einem Vergleicher 20 geliefert, der
dann die zur Adressierung des Pufferspeichers nötige Adresse in das Pufferspeicheradreßregister 22 setzt.
Wird nur ein einzelnes Byte gewünscht, kann der betreffende niederwertige Teil der Pufferspeicheradresse
dazu benutzt werden, um im Datenregister 29, in das die Daten vom Pufferspeicher 6 ausgelesen werden, ein
oder mehrere Bytes auszuwählen.
Sind die gewünschten Daten nicht im Pufferspeicher vorhanden, müssen diese Daten aus dem betreffenden
Hintergrundspeicher 2 oder 4 geholt werden und dazu gegebenenfalls ein entsprechender Speicherplatz im
Pufferspeicher 6 freigemacht werden. Zur Angabe des freizumachenden Speicherplatzes dient das Austauschfeld
12 in Zusammenarbeit mit der Pufferspeichersteuerlogik 14.
Da im Pufferspeicher 6 im allgemeinen Falle beide !nformationsarten L und C gespeichert sind, müssen
beim Austausch eines Datenbereiches unter Umständen gewisse Grenzen beachtet werden. Wenn nämlich im
Pufferspeicher 6 Daten vom Typ L nur in einem bestimmten Gebiet und Daten vom Typ C nur in einem
anderen bestimmten Gebiet gespeichert werden dürfen, muß auch entsprechend der Austausch so erfolgen, daß
bei notwendiger Übertragung von neuen Daten eines bestimmten Typs in den Pufferspeicher 6 nur Daten
desselben Typs ausgetauscht werden. Zur Angabe der dabei zu beachtenden Grenzen dienen das L-Register 16
und das C-Register 18. Die in diesen Registern gespeicherten Grenzen werden von der Pufferspeichersteuerlogik
14 bei der Auswertung der vom Austauschfeld 12 gelieferten Austauschinformation entsprechend
berücksichtigt Eine genauere Beschreibung der Funk-
tionsweise der in Fig. 1 gezeigten Einheiten erfolgt
nachfolgend anhand von F i g. 2.
Sofern bei der Abbildung der Daten von den Hintergrundspeichern 2 und 4 in den Pufferspeicher 6
keine geometrischen Grenzen vorgegeben sind, können auch die beiden Register 16 und 18 Grenzen in
allgemeiner Form speichern, so daß eine äußerst flexible Aufteilung des Pufferspeichers 6 auf die beiden
Informationsarten Lund Cerzielt wird.
Zur genaueren Beschreibung der Abbildungsverhältnisse zwischen Hauptspeicher und Pufferspeicher, der
Organisation des Pufferadreßfeldes und des Austauschfeldes und der möglichen Austauschalgorithmen kann
auf die beiden deutschen Offenlegungsschriften DE-OS 19 56 604 und DE-OS 18 15 234 verwiesen werden.
Darin sind auch die zur Datenübertragung zwischen Hauptspeicher und Pufferspeicher notwendigen Einrichtungen
beschrieben.
F i g. 2 zeigt in ausführlicher Form die in F i g. 1 gezeigte Einrichtung. Insbesondere sind in F i g. 2
diejenigen Einrichtungen genauer beschrieben, die sich aus der gemeinsamen Verwendung des Pufferspeichers
6 für die beiden Datentypen L und Cergeben.
Von den in Fig. 1 gezeigten Einrichtungen sind in F i g. 2 wieder das Pufferadressenfeld 10 und das
Austauschfeld 12, sowie der Vergleicher 20 gezeigt. Die
in F i g. 1 mit 14 bezeichnete Pufferspeicher-Steuerlogik ist in F i g 2 wesentlich ausführlicher dargestellt und im
wesentlichen im rechten Teil der Figur zu sehen. Diese Logik soll weiter unten noch ausführlich beschrieben
werden. Zunächst soll aber die Adressierung des Pufferspeichers beschrieben werden. Zahlen in Klammern
geben dabei jeweils die Anzahl der Bits auf der entsprechenden Leitung, oder im entsprechenden
Registerabschnitt an.
Die vom Prozessor 8 bereitgestellte Adresse wird in das Register 24 geladen und weist 24 Bits auf. Im
einzelnen ist diese Adresse aus folgenden Feldern zusammengesetzt:
Im Feld 24a ist ein Bit gespeichert, das im weiteren
Verlauf stets als L/C-Bh bezeichnet werden soll. Dieses
Bit gibt an, ob die vom Prozessor gewünschten Daten vom Typ L oder Csind.
Im Feld 24£> wird eine Blockadresse gespeichert, die
aus 12 Bits besteht, so daß vom Prozessor 4k Blöcke adressiert werden können.
Im Feld 24cist eine Bereichsadresse gespeichert, die 6
Bits umfaßt, so daß in jedem Block 64 Bereiche adressiert werden können.
In den Feldern 24c/und 24eist eine Zeilenadresse und
eine Byteadresse gespeichert, deren Bedeutung weiter unten im Zusammenhang mit Fig.3 noch näher
erläutert werden wird.
Aus F i g. 2 ist ersichtlich, daß das Pufferadressenfeld 10 und das Austauschfeld 12 jeweils 4 Spalten aufweisen.
Die Spalten des Feldes 10 sind mit 0 bis 3 bezeichnet, während die Spalten des Feldes 12 mit 12a bis 12c/
bezeichnet sind. In jeder Spalte des Feldes 10 sind in einer Zeile ein L/C-Bit und eine Blockadresse
gespeichert Im Austauschfeld 12 sind in jeder Zeile die vier Spaltennummern 0 bis 3 des Pufferadressenfeldes
10 in der Reihenfolge von links nach rechts gespeichert, in der die betreffenden Spalten für einen Austausch
vorgesehen sind. Dabei kann vorzugsweise in der Spalte 12a die Spaltennummer angegeben sein, die als nächste
zum Austausch vorgesehen ist
Die Organisation des Pufferspeichers 6 und dessen Adressierung soll nun anhand von Fig.3 näher
beschrieben werden.
Nach der in F i g. 3 gezeigten Organisation ist für die Speicherung von Datenbereichen vom Hintergrundspeicher
in den Pufferspeicher 6 eine vier-Weg-Assoziativität vorgesehen. Der Pufferspeicher 6, das Pufferadressenfeld
10 und das Austauschfeld 12 sind demnach in vier Spalten organisiert. Im Pufferspeicher können in
einer Spalte in 64 Bereichszeilen je ein Datenbereich B gespeichert werden, wobei ein einzelner Datenbereich
jeweils wiederum vier Zeilen aufweist, die in Fig. 3 im
Pufferspeicher 6 in der ersten Bereichszeile oben gezeigt sind. Entsprechend den 64 Bereichen in einer
Spalte des Pufferspeichers weisen auch das Pufferadressenfeld 10 und das Austauschfeld 12 jeweils 64 Zeilen
auf. Wird nun im Pufferspeicher in einer bestimmten Spalte ein Datenbereich gespeichert, so wird dessen
Blocknummer in der entsprechenden Spalte und Zeile im Pufferadressenfeld 10 gespeichert. Ist also z. B. der
Bereich 15 in der Spalte 2 des Pufferspeichers gespeichert, so wird die Blocknummer dieses Bereiches
im Adressenfeld 10 auch in der Spalte 2, und zwar in der 15. Zeile zusammen mit dem L/C-Bit angegeben.
Dies hat den Vorteil, daß mit der Bereichsadresse im Feld 24c sofort eine Zeile des Pufferadressenfeldes 10
als auch eine bestimmte Bereichszeile im Pufferspeicher 6 adressiert werden kann. Hierzu sind die Adressendecoder 11 und 15 vorgesehen. Die Adressierung einer der
vier Zeilen in dem gewünschten Bereich erfolgt mit Hilfe der Zeilenadresse im Feld 24c/ und des
Adressendecoders 19. Jede dieser vier Zeilen des Datenbereiches umfaßt z. B. acht Datenbytes, die
parallel in das Datenregister 29 ausgelesen werden. Je nach Breite der vorgesehenen Übertragungswege zum
Prozessor kann von diesen acht Bytes ein einzelnes Byte durch eine im Feld 24e gespeicherte, und aus 3 Bits
bestehende Byteadresse ausgewählt werden.
Zur Feststellung, ob ein bestimmter Datenbereich im Pufferspeicher vorhanden ist, muß die zu diesem
Bereich gehörende Blockadresse mit den im Pufferadressenfeld gespeicherten Blockadi essen verglichen
werden. Da die zu einem bestimmten Bereich, z. B. zum Bereich 15 gehörenden Blockadressen nur in einer
einzigen Zeile, in diesem Fall in der 15. Zeile des Feldes
10 gespeichert sein können, kann dieser Vergleich auf einfache Weise erfolgen. Die entsprechenden Blockadressen
werden hierzu vom Feld 10 in dem Vergleicher 20 ausgelesen und darin mit der vom Prozessor
angegebenen Blockadresse parallel verglichen. Wird in einer der Spalten ein übereinstimmender Vergleich
festgestellt, liefert der Vergleicher 20 an seinem Ausgang 80 ein entsprechendes Signal. Zugleich wird
von einem Codierer 3Ö die betreffende Spähe festgestellt und der Codierer erzeugt die dieser Spalte
entsprechende 2-Bit-Spaltenadresse, die in das entsprechende
Feld des Pufferspeicher-Adreßregisters 22 geladen wird. Die gewünschte Spalte und die gewünschte
Datenbereichszeile können nun über die Adressendecodierer 17 und 15 adressiert werden. Die gewünschte
Zeile des Bereiches wird vom Adressendecodierer 19 ausgewählt
Wird jedoch kein übereinstimmender Vergleich (HIT), sondern ein negativer Vergleich (MISS) festgestellt
heißt das, daß der gewünschte Bereich zur Zeit nicht im Pufferspeicher gespeichert ist und also vom
Hauptspeicher in den Pufferspeicher geholt werden muß. Hierzu muß im allgemeinen Fall erst ein
entsprechender Bereich vom Pufferspeicher 6 im Austausch zum Hintergrundspeicher rückübertragen
werden. Handelt es sich bei dem Bereich jedoch um Mikroinstruktionen, kann die Rückübertragung entfallen,
da die Mikroinstruktionen vom Prozessor im allgemeinen Fall nicht verändert werden. Bezüglich der
Rückübertragung ist es bekannt, im Pufferadressenfeld zu jeder Blockadresse noch ein Gültigkeitsbit und ein
Veränderungsbit zu speichern, die angeben, ob die betreffende Information noch gültig ist bzw. verändert
worden ist. Abhängig von diesen beiden Steuerbits kann auch bei Daten des Typs L im gegebenen Fall von einer
Rückübertragung abgesehen werden.
Zeigt also der Vergleicher 20 durch ein M/SS-Signal an seinem Steuerausgang 80 an, daß ein Austausch eines
Datenbereiches im Pufferspeicher 6 stattfinden muß. stellt die Logik 14 aufgrund der im Austauschfeld 12
gespeicherten Information fest, in welcher Spalte des Pufferspeichers der betreffende Bereich ersetzt werden
soll. Die entsprechende Zeile in den Feldern 10 und 12 sowie im Pufferspeicher ist ja bereits durch die
Bereichsadresse zusammen mit den Adressendecodierern 11,13 und 15 gegeben.
Bezüglich der Austauschstrategie sind bereits mehrere Algorithmen bekanntgeworden, von denen hier der
FIFO (First In First Out)-Algorithmus und der LRU (Least Resently Used)-AIgorithmus anhand der F i g. 6
und 7 besprochen werden sollen. Nach dem FIFO-Algorithmus
muß unter den vier in Betracht kommenden Datenbereichen der Bereich mit derjenigen Blocknummer
ausgetauscht werden, die zuerst in das Adressenfeld 10 eingelesen worden war. Von der in F i g. 2 gezeigten
Fortschreibe- und Austauschlogik 38, die Teil ist der in F i g. 3 gezeigten Logik 14 wird dazu jedesmal bei einem
M/SS-Signal 80 die in Spalte 12a des Austauschfeldes gespeicherte Spaltenzahl 0 bis 3 in die Spalte 12c/
übertragen und die restlichen Spaltennummern in dieser Zeile durch ein Signal auf der Leitung 70 nach links
verschoben. Beim Ersatz einer Spalte wird also die entsprechende Spaltennummer ans Ende der Kette
gesetzt und kommt demnach erst wieder nach weiteren drei Verschiebungen dran. Block 601 von Fig. 6 zeigt
den Inhalt der entsprechenden Zeile des Austauschfeldes 12 vor dem M/SS-Signal 80 und Block 602 den Inhalt
dieser Zeile nach der Verschiebung. Im gezeigten Fall wird also der Bereich desjenigen Blockes ersetzt, dessen
Blocknummer in Spalte 1 des Adressenfeldes 10 gespeichert ist und kommt als nächster Bereich der
Bereich dran, dessen Blocknummer in Spalte 2 des Feldes 10 gespeichert ist
Wird jedoch nach dem LRU-Algorithmus gearbeitet,
muß der Inhalt des Austauschfeldes 12 nach jeder Adressierung des Pufferspeichers fortgeschrieben werden.
Dabei wird die Nummer der referierten Spalte jeweils ans Ende der Kette gesetzt und wenn notwendig
die übrigen Spaltennummern nach links verschoben. In einer Zeile des Austauschfeldes gibt also die Spaltennummer
ganz rechts die Spalte an, deren Benutzung zeitlich am wenigsten zurückliegt und gibt die
Spaltennummer in der Kette ganz links die Spalte an, deren Benutzung zeitlich am weitesten zurückliegt und
die daher zum Austausch vorgesehen werden soll, sofern zumindest der Informationstyp des betreffenden
Bereiches keine Rolle spielt
Block 701 in Fig.7 zeigt den Inhalt der der Bereichsadresse entsprechenden Zeile im Austauschfeld
12 vor einem Zugriff zu Spalte 0 im Pufferspeicher 6 und Block 702 den Inhalt dieser Zeile nach dem Zugriff.
Erzeugt der Vergleicher 20 ein M/SS-Signal wird
natürlich zusätzlich die betreffende Zeile im Feld 12 um eine Stelle nach links verschoben, wobei die Spaltenzahl
in der Spalte 12a nunmehr in der Spalte 12c/gespeichert
wird.
Das in F i g. 3 gezeigte Beispiel bezieht sich auf einen Pufferspeicher mit z. B. 8k Bytes, da in jeder der vier
Spalten des Pufferspeichers 64 Bereiche zu je vier Zeilen gespeichert sind, wobei jede dieser Zeilen eines
Bereiches acht Bytes speichern kann. Die gezeigten Größenordnungen und insbesondere die im Ausführungsbeispiel
gewählte 4-Weg-Assoziativität sind jedoch nur als Beispiel gedacht und sollen insbesondere
klarmachen, daß zum Betrieb eines derartigen Pufferspeichers relativ aufwendige Steuereinrichtungen nötig
sind. Sollen bei der Abbildung der Daten vom Hintergrundspeicher auf den Pufferspeicher keine
Beschränkungen gelten, soil also irgendein Bereich in jeder beliebigen Zeile und Spalte des Pufferspeichers
gespeichert werden können, muß ein dementsprechend komplizierteres Pufferadressenfeld und Austauschfeld
vorgesehen werden, um diese volle Assoziativität zu erhalten.
Die gemeinsame Benutzung des Pufferspeichers 6 für Daten aus beiden Hintergrundspeichern 2 und 4 soll nun
anhand von F i g. 2 näher beschrieben werden. Das ursprüngliche Laden des Pufferspeichers 6 kann z. B. so
erfolgen, daß für eine bestimmte Bereichsnummer die Spalten zunächst von links nach rechts gefüllt werden.
Setzt nun der in F ι g. 1 gezeigte Prozessor 8 eine Adresse ins Adreßregister 24, gibt er zugleich an, ob
eine Lese- oder Schreiboperation im Pufferspeicher 6 gewünscht wird. Bei Schreiboperationen wird hierbei
das obenerwähnte Wechselbit gesetzt, während das Gültigkeitsbit z. B. bei Multiprozessorbetrieb von
anderen Prozessoren gesetzt werden kann.
Da es sich bei den vom Prozessor 8 gewünschten Daten um Daten vom Typ L oder C handeln kann,
genügt es nicht mit Hilfe des Pufferadressenfeldes 10 und des Vergleichers 20 festzustellen, ob die im Feld 24£>
des Registers 24 gespeicherte Blockadresse in der adressierten Zeile des Feldes 10 gespeichert ist. Es muß
außerdem noch eine Übereinstimmung bezüglich des L/C-Bits im Feld 24a und des zu der gleichen
Blockadresse in der adressierten Zeile des Feldes 10 gespeicherten L/C-Bits festgestellt werden. Die betreffenden
13 Bits in den Feldern 24a und 246 der Pufferspeicheradresse werden also parallel mit den 13
Bits aus jeder der Spalten 0 bis 3 des Feldes 10 verglichen. Der Vergleicher 20 liefert an seinem
Ausgang 80 ein Signal HIT/MISS. Bei einem HIT erzeugt der Codierer 30 die betreffende Spaltenadresse
und setzt sie über das ODER-Glied 32 in das Pufferadressenregister 22.
Bei einem HITwWd der Pufferspeicher adressiert und das Austauschfeld 12 von der Fortschreibe- und
Austauschlogik 38 je nach gewähltem Austauschalgorithmus fortgeschrieben.
Wird jedoch kein positiver Vergleich festgestellt und somit auf der Leitung 80 ein M/SS-Signal erzeugt, muß
im Pufferspeicher 6 ein Datenbereich ersetzt werden. Da jedoch der Pufferspeicher 6 gemeinsam für Daten
des Typs L und C benutzt wird, muß der Austausch davon abhängig gemacht werden, ob ein Bereich L oder
ein Bereich C gewünscht wurde und ob hinsichtlich der Speicherraumaufteilung für beide Informationstypen
irgendwelche Beschränkungen bestehen.
Bei der gemeinsamen Benutzung des Pufferspeichers 6 durch beide Informationstypen L und C sind mehrere
Fälle zu unterscheiden. Im allgemeinen Fall kann
vorgesehen werden, daß der gesamte Pufferspeicher 6 von beiden Informationstypen gemeinsam benutzt
werden kann. Wird z. B. ein Mikroinstruktionsbereich
gewünscht so wird je nach gewählten Austauschalgorithmus ein Bereich Ireigemacht und der gewünschte
Bereich in den Pufferspeicher 6 geladen.
Dies kann jedoch dazu führen, daß der häufiger gebrauchte Informationstyp den anderen Typ aus dem
Pufferspeicher 6 verdrängt, den Speicherraum somit für sich monopolisiert Es ist deshalb nützlich, jeweils ein
bestimmtes Gebiet des Pufferspeichers 6 für den einen und für den anderen Informationstyp zu reservieren.
Dabei kann so vorgegangen werden, daß ein Teil des Pufferspeichers 6 ausschließlich für den einen Typ und
der restliche Teil ausschließlich für den anderen Informationstyp vorgesehen wird. Bei dieser starren
Aufteilung kann es jedoch vorkommen, daß die Grenze zwischen beiden Gebieten nicht optimal verläuft. Es ist
deshalb vorteilhafter, zwei Grenzen vorzusehen, wodurch der Pufferspeicher 6 in drei Gebiete verteilt wird.
Ein erstes Gebiet ist dabei ausschließlich für den Typ L, ein zweites Gebiet ausschließlich für den Typ C und der
restliche Teil des Pufferspeichers 6 überlappend für beide Informationstypen vorgesehen. In diesem überlappenden
Gebiet ergibt sich durch die gemeinsame Benutzung der Steuereinrichtungen des Pufferspeichers
6 und insbesondere des Pufferadressenfeldes 10 und des Austauschfeldes 12 eine selbstadaptierende Speicherraumaufteilung.
Die Aufteilung wird sich dabei nach dem momentanen Verhältnis der Zugriffsraten und
Trefferwahrscheinlichkeiten (H/T-Signale) einstellen.
.Bei unterschiedlich schnellen Hintergrundspeichern 2 und 4, z. B. durch verschiedene Technologien oder
unterschiedlicher Größe bedingt, oder bei unterschiedlich schnellen Sammelleitungssystemen zwischen den
Hintergrundspeichern und dem Pufferspeicher kann dabei die selbstadaptierende Funktionsweise dazu
führen, daß ein Informationstyp im überlappenden Gebiet das Übergewicht erhält. Unzuträglichkeiten
werden dann jedoch dadurch vermieden, daß für den verdrängten Informationstyp noch immer ein für ein
reserviertes Gebiet zur Verfügung steht.
Zur Festlegung der genannten Gebietsgrenzen dienen die beiden Register 16 und 18. Bei voller
Assoziativität des Pufferspeichers 6 werden in diese Register bestimmte Pufferspeicheradressen geladen, die
als Grenzen dienen sollen. Bei der in Fig.2 gezeigten
4-Weg-Assoziativität kann die Funktionsweise der Einrichtung jedoch ganz wesentlich vereinfacht werden,
indem in das /,-Register 16 die maximal zulässige
Spaltenzahl pro Zeile für den Informationstyp L und in das C-Register 18 die maximal zulässige Spaltenanzahl
pro Zeile für den Informationstyp C geladen wird. Bei der vorgesehenen Ausführung von vier Spalten weisen
die Register 16 und 18 also eine Kapazität von je 2 Bit auf. Bei voller Gemeinsamkeit des Pufferspeichers 6 für
beide Informationstypen ist dabei ir; jedem der beiden Register 16, 18 die binäre Zahl »11« gespeichert. Wird
hingegen z. B. der Pufferspeicher 6 jedem der beiden Informationstypen zur Hälfte zur Verfügung gestellt,
d. h. können in zwei Spalten des Pufferspeichers ein Bereich einer bestimmten Nummer aus zwei verschiedenen
Datenblöcken des Typs L und in den restlichen zwei Spalten zwei Bereiche derselben Nummer aus zwei
anderen Informationsblöcken des Typs C gespeichert sein, besteht der Inhalt der Register 16 und 18 jeweils
aus der binären Zahl »01« und »01«. Durch geeignete Wahl der in den Registern 16 und 18 gespeicherten
Grenzzahlen kann also erreicht werden, daß die Speicherraumaufteilung im Pufferspeicher 6 vollüberlappend,
teiiüberlappend oder voll getrennt erfolgt
Diese Beachtung der Gebietsgrenzen im Pufferspeicher 6 hat beim Austausch eines Datenbereiches
verschiedene Konsequenzen. Ist nämlich bei einem notwendigen Bereichsaustausch die zugestandene Spaltenquote
für den betreffenden Informationstyp bereits voll ausgefüllt, muß sichel gestellt werden, daß nur ein
Datenbereich desselben Typs ausgetauscht wird. Ist hingegen die Quote noch nicht voll ausgeschöpft, kann
ein beliebiger Datenbereich, also auch ein Datenbereich des anderen Typs ausgetauscht werden.
Die im rechten Teil der F i g. 2 gezeigte Logik ermöglicht es, diese selektive Arbeitsweise beim
Austausch eines Datenbereiches zu erzielen. Das vom Feld 24a gelieferte Signal L/C gelangt über die Leitung
25 zum Eingang C eines Zählers 52 und über einen Inverter 44 invertiert zum Eingang L des Zählers.
Der Zähler 52 zählt die in den vier Spalten des Pufferadressenfeldes IO gespeicherten ZyC-Bits nach
Nullen und Einsen geordnet Im vorliegenden Ausführungsbeispiel wurde dabei für den Typ L der Wert »0«
und für den Typ »C« der Wert »1« gewählt. Die aus der von der Bereich sadresse adressierten Zeile des Feldes
10 ausgelesenen /ier Bits L/C-Q bis L/C-3 gelangen über
die Leitung 63 2um Zähler 52. Abhängig davon, ob an seinem C-Einparg oder an seinem L-Eingang das Signal
»1« anliegt, zählt der Zähler 52 die C-Bits (also die Einsen) oder die L-Bits (also die Nullen). Die gezählte
Zahl wird sodann vom Codierer 54 binär codiert und mit dem Ausgangssignal eines ODER-Gliedes 50 in einem
Vergleicher 56 verglichen. Dieses ODER-Glied erhält ein 2-Bit-Eingangssignal vom L-Register 16 oder vom
C-Register 18, je nachdem, ob im Feld 24a der Pufferspeicheradresse der Wert »0« oder »1« gespeichert
ist und dennoch das UND-Glied 46 oder 48 durchlässig ist. Das Ausgangssignal 98 des Vergleichers
56 hat den Wert »1«, wenn die in dem betreffenden Register 16 oder 18 gespeicherte Zahl größer oder
gleich ist als die vom Zähler 52 gelieferte Zahl. Da der Zähler 52 die wahre Anzahl der betreffenden L/C-Bits
zählt, in den Registern 16 und Ii! jedoch jeweils eine um
1 niedrigere Zahl als die wahre Anzahl der zugestandenen Spalten gespeichert ist, da die Spaltenangaben von
0 bis 3 laufen, gibt eine »1« am Ausgang des Vergleichers 56 an, daß die zugestandene Quote für den
betreffenden Informationstyp noch nicht voll erfüllt ist In diesem Falle kann also ein Datenbereich auch des
anderen Informationstyps ausgetauscht werden. Vorzugsweise wird dabei zum Austausch die in der Spalte
12a gespeicherte Spaltennummer vorgesehen, die wie oben im Zusammenhang mit Fig.6 beschrieben
entweder die älteste Eintragung, oder die zeitlich am weitesten zurückliegend benutzte Eintragung betrifft
Bei einem M/55-Signal am Ausgang 80 des
Vergleichers 20 wird also über das Inverterglied 34 die Spaltennummer in der Spalte 12a des Austauschfeldes
12 über das UND-Glied 36, die Leitung 72 zum UND-Glied 62 übertragen. Wenn auch am anderen
Eingang des UND-Gliedes 62 ein Signal »1« vom Vergleicher 56 anliegt, wird diese Spaltennummer über
das ODER-Glied 64 und die Leitung 74 zum Pufferadressenfeld 10 übertragen. Die in F i g. 1
gezeigte Logik 14 sorgt nun dafür, daß im Feld 10 in der durch die Bereichsadresse adressierten Zeile die
Blockadresse in der über die Leitung 74 angegebenen Spalte ausgelesen und zur evtl. Rückübertragung in den
Hintergrundspeicher 2 oder 4 des von der Bereichsadresse im Feld 24c angegebenen Bereiches verwendet
wird. Gleichzeitig gelangt die gefundene Austausch-Spaltennummer auch zum ODER-Glied 32 und damit in
das Pufferspeicheradressenregisler 22. Handelt es sich
bei den Daten z. B. um Benutzerdaten, wird der auf die
beschriebene Weise adressie.xe Datenbereich vom Pufferspeicher ausgelesen und im Hinlergrundspeicher
2 mit Hilfe der gefundenen Blockadresse rückgespeichert. Die Fortschreibe- und Austauschlogik 38 führt
nach dem Austausch über die Leitung 70 eine Fortschreibung der betreffenden Zeile im Austauschfeld
12 durch. Zur Steuerung der notwendigen Datenübertragung, sowie allgemein der Lese- und Schreiboperationen
kann das Signal 76 verwendet werden. 1 -,
Liefert der Vergleicher 56 jedoch auf der Leitung 98 ein Ausgangssignal »0«, ist also die vorgesehene Quote
für den betreffenden Informationstyp bereits voll ausgeschöpft, darf nur ein Datenbereich des betreffenden
Informationstyps zum Austausch vorgesehen m werden. Außerdem muß von diesem Typ unter den zur
Auswahl stehenden Bereichen derjenige ausgesucht werden, der aufgrund des verwendeten Austauschalgorithmus
an der Reihe ist.
Zur Durchführung dieser Auswahl dienen im wesent- 2ϊ
liehen die Decodier- und Auswahlschaltung 40 und die Prioritätsschaltung 42.
Die Decodier- und Auswahlschaltung 40, die in F i g. 4
näher dargestellt ist, empfängt als Eingangssignale die in den Spalten 12a bis 12c/ des Austauschfeldes 12
gespeicherten Spaltennummern, sowie über die Leitung 66 die vier L/C-Bits L/C-0 bis LJC-Z von den vier
Spalten einer Zeile des Adressenfeldes 10. Aufgabe der Schaltung 40 ist es, das L/C-Bit X in derjenigen Spalte
an den Ausgang der Schaltung 40 zu schalten, in der im j > Feld 12 die Spaltennummer X gespeichert ist. In dem in
Fig. 2 gewählten Beispiel sind in der ersten Zeile des
Austauschfeldes 12 von links nach rechts die Spaltennummern 2, 0, 1 und 3 gespeichert. Demnach wird von
der Schaltung 40 in der ersten Spalte 12a ganz links das Bit L/C-2 an den Ausgang geschaltet, da in der Spalte
12,7 die Spaltennumnier 2 gespeichert ist. In der zweiten
Spalte von links nach rechts wird das Bit L/C-0, in der dritten Spalte das Bit L/C-1 und in der vierten Spalte das
Bit L/C-3 an den Ausgang geschaltet, von wo diese Bits ή an den Eingang der Prioritätsschaltung 42 gelangen.
Haben also die Bits L/C-0 bis L/C-3 die Werte 1, 0, 1, 0, wie in Fig.4 links angegeben, so erscheinen an den
Ausgängen 41, 43, 45, 47 der Schaltung 40 die Signale 1100. -,η
Aufgabe der Prioritätsschaltung 42, die in Fig. 5 näher dargestellt ist. ist es unter den im Austauschfeld 12
in der durch die Bereichsadresse adressierten Zeile gespeicherten Spaltennummern des gewünschten Typs
L oder Cdiejenige Spaltennummer herauszufinden und v-,
an den Ausgang weiterzuleiten, die am weitesten links liegt, die also aufgrund des vorgesehenen Austauschalgorithmus
die auszutauschende Spalte angibt. Dazu erhält die Prioritätsschaltung 42 als Eingangssignale die
Ausgangssignale 41, 43, 45 und 47 der Schallung 40 die t>o
bereits die Spaltennummern identifizieren, ferner die in dem betreffenden Zeilenaustauschfeld 12 gespeicherten
Spaltennummern, sowie das L/C-Bit der Pufferspeicheradresse im Register 24.
Die Arbeitsweise der Decodier- und Aüswahlschal- (r>
tung ergibt sich aus den in Fig.4 dargestellten logischen Elementen und bedarf keiner tiefgehenden
Beschreibung. Für jede Spalte ist ein Decodierer 82 bis 88 vorgesehen, der das aus zwei Bit bestehende binäre
Eingangssignal in ein Signal 1 aus 4 umwandelt. In jeder Spalte sind vier UND-Glieder vorgesehen, von denen
nur eins durchgeschaltet werden kann, da nur an einem der vier Ausgänge der Decodierer 82—88 eine binäre
»1« geliefert wird. Diese UND-Glieder sind in Fig.4
mit 90 bis 96 bezeichnet. Von diesen vier UND-Gliedern
werden nur die UND-Glieder 90 und 92 durchgeschallet,
da nur bei diesen UND-Gliedern am zweiten Eingang ebenfalls eine binäre »1« anliegt. Diese zwei
binären Signale stammen von den Bits L/C-2 und L/C-0.
Die Ausgangssignale dieser beiden UND-Glieder 90 und 92 gelangen über ODER-Glieder an die Ausgänge
41 und 43 der Schaltung 40.
Eine mögliche Ausführung der Prioritätsschaltung ist in F i g. 5 gezeigt. Die Arbeitsweise auch dieser
Schaltung ergibt sich ohne weitere genaue Beschreibung aus den dargestellten logischen Elementen. Die
EXCLUSIV-ODER-Glieder 100 bis 106 verknüpfen die
Ausgangssignale von den Leitungen 41, 43, 45 und 47 mit dem Wert des L/C-Bits. In Fig.5 ist angenommen,
daß der Wert dieses Bits »1« ist, also Typ Cgewünscht wird. Dieses Bit wird über ein Inverterglied 108
invertiert. An der linken Seite empfängt die Prioritätsschaltung 42 die von der betreffenden Zeile im
Austauschfeld 12 ausgelesenen Spaltennummern. In dem gezeigten Beispiel sind in der ersten Zeile des
Feldes 12, die hier in Betracht gezogen werden soll, von links nach rechts die Nummern 2,0,1 und 3 gespeichert.
Diese Nummern werden der Prioritätsschaltung 42 an den Eingängen von oben nach unten zugeführt. Wie
bereits erwähnt soll die Schaltung 42 eine von links nach rechts ablaufende Priorität erzeugen. Von den vom
Informationstyp L oder Cher in Betracht kommenden Eintragungen soll die am weitesten links stehende
Eintragung ausgewählt werden. Dies wird in der in Fig. 5 gezeigten Schaltung im wesentlichen durch eine
sinnvolle Verwendung von Invertergliedern 126, 128 und 130 in Verbindung mit UND-Schaltungen 132, 144,
134, 136 und 138 erzielt. Für jedes der beiden Bits einer Spaltennummer sind außerdem von den EXCLUSIV-ODER-Gliedern
100-106 gesteuerte UND-Schaltungen 110 bis 124 vorgesehen. Zwei ODER-Glieder 140
und 142 mit je vier Eingängen schalten die acht Ausgänge der acht UND-Glieder 110 bis 124 an zwei
Ausgänge der Schaltung durch, so daß in dieser binären Darstellung eine der vier Spalten zum Austausch
angegeben werden kann.
In dem in Fig. 5 gezeigten Beispiel erhält die Prioritätsschaltung 42 von der Auswahlschaltung 40 die
Eingangssignale 1100, wodurch angegeben wird, daß in
den Spalten 12a und 126 die Nummern von Spalten des Pufferadressenfeldes 10 gespeichert sind, in denen
Blockadressen vom Datentyp C gespeichert sind. Die beiden gespeicherten Spaltennummern betragen von
links nach rechts 2 und 0 und da die beiden Bits L/C-2 und L/C-0 jeweils »1« sind, wie aus Fig.4 hervorgeht,
folgt daraus, daß in diesen Spalten Informationen vom Typ Cgespeichert sind. In den Spalten 12c und 12c/sind
die Spaltennummern 1 und 3 gespeichert, die Spalten mit einer Blockadresse vom Typ L betreffen.
In dem in F i g. 5 gezeigten Beispiel hat das vom Feld
24a kommende L/C-Bit den Wert »1«. Es wird demnach eine Information vom Typ Cgewünscht. Aufgabe der
Prioritätsschaltung ist es demnach, unter allen Eintragungen zum Typ C. im Austauschfeld 12 die am
weitesten links stehende Eintragung herauszusuchen. Da in den Spalten 12a und 126 Spaltennummern zum
Typ Cstehen, wird die Eintragung in der Spalte 12a von der Prioritätsschaltung an den Ausgang durchgegeben.
Diese Eintragung hat den Wert »2«.
Diese Spaltennummer »2« gelangt über die Leitung 78 an einen ersten Eingang eines UND-Gliedes 60 in
Fig. 2, dessen zweiter Eingang vom Ausgang eines Invertergliedes 58 gespeist wird. Der Eingang dieses
Invertergliedes 58 ist mit dem Ausgang 82 des Vergleichers 56 verbunden. Liefert der Vergleicher 56
also ein Ausgangssignal »0«, womit feststeht, daß für den gewünschten Informationstyp die Quote bereits voll
erfüllt ist, liefert das Inverterglied 58 ein Ausgangssigna]
an das UND-Glied 60. Der dritte Eingang zum UN D-Glied 60 ist über die Leitung 35 mit dem Ausgang
des Invertergliedes 34 verbunden und erhält also ein binäres Signal, wenn der Vergleicher 20 ein MISS-Signal
liefert Am Ausgang des ODER-Gliedes 64 wird danach die Nummer der zu ersetzenden Spalte erhalten
und wie oben beschrieben an die betreffenden Einrichtungen weitergegeben. Die Steuerung 14 ersetzt
sodann den angegebenen Bereich im Pufferspeicher durch den gewünschten und schreibt das Pufferadressenfeld
10 und das Austauschfeld 12 fort.
Hierzu 5 Blatt Zeichnungen
Claims (14)
1. Mikroprogrammierte Datenverarbeitungsanlage
mit einem Hauptspeicher für Benutzerdaten und Makroinstruktionen und einem Steuerspeicher für
Mikroinstruktionen,
sowie mit einem, mit beiden Speichern verbundenen Prozessor, dadurchgekennzeichnet,
daß der Prozessor (8) mit beiden Speichern (2, 4) ]0 über einen für alle Informationstypen (Typ L: Benutzerdaten, Makroinstruktionen; Typ C: Mikroinstruktionen) gemeinsamen Pufferspeicher (6) mit gemeinsamen Steuereinrichtungen (10, 12, 14) verbunden ist
daß der Prozessor (8) mit beiden Speichern (2, 4) ]0 über einen für alle Informationstypen (Typ L: Benutzerdaten, Makroinstruktionen; Typ C: Mikroinstruktionen) gemeinsamen Pufferspeicher (6) mit gemeinsamen Steuereinrichtungen (10, 12, 14) verbunden ist
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Speicherraumaufteilung
des Pufferspeichers (6) durch ein erstes Grenzwertregister (16) für den einen Informationstyp (L)und durch ein zweites Grenzwertregister (!8)
für den anderen Informationstyp (C) gesteuert wird, wobei die Grenzwerte in die beiden Grenzwertregister
vom Mikroprogramm oder vom Benutzerprogramm gesetzt werden können.
3. Datenverarbeitungsanlage nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß der
Pufferspeicher (6), das Pufferadressenfeld (10) zur Angabe der im Pufferspeicher gespeicherten Daten
und das Austauschfeld (12) zur Angabe eines bei Speicherplatzbedarf auszutauschenden Datenbereiches
in einander entsprechenden N Spalten organisiert sind (/V-Weg-Assoziativität) und daß in den
beiden Grenzwertregistern (16,18) die pro Datentyp maximal zulässige Spaltenanzahl speicherbar ist,
derart, daß die den beiden Datentypen zugewiesenen Pufferspeichergebiete erstens vollüberiappend,
zweitens teilüberlappend und drittens vollständig getrennt sein können.
4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß den einzelnen Informationstypen
(L, C) nicht bestimmte Spalten im Pufferspeicher (6), sondern nur eine maximal
zulässige Anzahl von Spalten zugewiesen werden.
5. Datenverarbeitungsanlage nach Anspruch 4, gekennzeichnet durch einen Vergleicher (56), der die
maximal zulässige Spaltenanzahl aus den Grenzwertregistern (16, 18) mit der tatsächlich im Pufferspeicher
beanspruchten Spaltenanzahl, die durch einen Zähler (52) durch Abzählung der beiden Informationstypen
im Pufferadressenfeld (10) ermittelt wird, vergleicht und durch ein Signal (98) angibt, ob die
Quote für den betreffenden Informationstyp bereits voll ausgeschöpft ist.
6. Datenverarbeitungsanlage nach Anspruch 3 mit einem ersten Vergleicher (20) zum Vergleich der 55 y
Adresse der gewünschten Daten mit den im Pufferadressenfeld (10) gespeicherten Daten und zur
Erzeugung eines Ausgangssignals (80), wenn die gewünschten Daten im Pufferspeicher (6) vorhanden
sind (HIT), wobei die Abwesenheit (MISS) dieses Signals (80) angibt, daß ein Datenbereich im
Pufferspeicher ausgetauscht werden muß, dadurch gekennzeichnet, daß das Ausgangssignal des Vergleichers
(20) über ein Inverterglied (34) ein UND-Glied (36) steuert, dessen anderer Eingang mit
der Spalte (12a) des Austauschfeldes (12) verbunden ist, in der die auszutauschende Spaltennummer
gespeichert ist, wobei der Ausgang des UND-Gliedes (36) mit dem einen Eingang eines UND-Gliedes
(62) verbunden ist, dessen anderer Eingang vom Ausgang (98) des zweiten Vergleichers (56) gesteuert
wird und somit durchgeschaltet wird, wenn die Quote für den betreffenden Informationstyp
noch nicht erfüllt ist
7. Datenverarbeitungsanlage nach Anspruch 3, gekennzeichnet durch eine Decodier- und Auswahlschaltung
(40) mit N Spalten, zur Erzeugung von Ausgangssignalen (41, 43, 45, 47), die zu den in den
entsprechenden Spalten (12abis 12o^des Austauschfeldes
(12) gespeicherten Spaltennummern angeben, von welchem Informationstyp (L oder Q sie sind.
8. Datenverarbeitungsanlage nach Anspruch 7, gekennzeichnet durch eine Prioritätsschaltung (42),
die mit Hilfe der von der Decodier- und Auswahlschaltung (40) gelieferten Signale (41,43,45, 47) und
eines vom Prozessor gelieferten Signals (L/C-Bit)
zur Angabe des gewünschten Informationstyps diejenige im Austauschfeld (12) gespeicherte Spaltennummer
bestimmt, die von dem gewünschten Typ ist und die nächste auszutauschende Spalte angibt
9. Datenverarbeitungsanlage nach den Ansprüchen 5 und 8, dadurch gekennzeichnet, daß das
Ausgangssignal (98) des zweiten Vergleichers (56) über ein Inverterglied (58) mit einem ersten Eingang
eines UND-Gliedes (60) verbunden ist, dessen zweiter Eingang das M/SS-Signal (80) vom Adreßvergleicher
(20) erhält und dessen dritter Eingang mit dem Ausgang (78) der Prioritätsschaltung (42)
verbunden ist, derart, daß die von der Prioritätsschaltung (42) bestimmte Spaltennummer zum
Austausch vorgesehen wird, wenn der zweite Vergleicher (56) angibt, daß die Quote für den
gewünschten Informationstyp bereits voll ausgeschöpft ist, wobei die derart erzeugte Spaltennummer
über das ODER-Glied (64) dem Pufferadressenfeld (10), dem Pufferspeicheradressenregister (22)
und der Steuerlogik (14,38) des Pufferspeichers zum Einleiten des Datenaustausches und zum Fortschreiben
des Pufferadreßfeldes (10) und des Austauschfeldes (12) zugeführt wird.
IC. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß die Decodier- und
Auswahlschaltung (40, F i g. 4) pro Spalte einen Decodierer (82 bis 88) aufweist, der aus der vom
Austauschfeld (12) gelieferten Spaltenzahl ein Signal »1 aus M<
erzeugt, das über N UND-Glieder jeweils mit dem Adressenbil (L/C-0 bis L/C-3) verknüpft
wird, das den in der betreffenden Spalte im Pufferadressenfeld (10) gespeicherten Informationstyp angibt, derart, daß pro Spalte eines der
UND-Glieder (90 bis 96) anspricht und an einem für alle UND-Glieder einer Spalte gemeinsamen
ODER-Glied (140,142) ein Ausgangssignal liefert.
11. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet, daß die Prioritätsschaltung
(40, Fig. 5) für jedes Eingangssignal von der Decodier- und Auswahlschaltung (40) ein EXCLU-SIV-ODER-Glied
(100 bis 106) aufweist, dessen anderer Eingang vom Signal L/Cgesteuert wird, daß
die Ausgangssignale der EXCLUSIV-ODER-Glieder mit den binären, die Spaltennummern angebenden
Eingängen vom Austauschfeld (12) durch UND-Glieder (110 bis 124) verknüpft werden, wobei
außerdem die Spalten von links nach rechts jeweils über Inverterglieder (126,128,130) und über mit den
Invertergliedern verbundene UND-Glieder (144,
136, 138) verknüpft sind, derart, daß eine von links
nach rechts abnehmende Priorität erzielt wird und damit die am weitesten links stehende Spaltennummer
eines bestimmten Informationstyps angegeben werden kann.
12. Datenverarbeitungsanlage nach Anspruch 3, gekennzeichnet durch eine Fortschreibe- und
Austauschlogik (38) die für den FIFO-Austauschalgorithmus
(Fig.6) nach jedem Austausch die im Austauschfeld (12) in der ersten, d. h. ganz lirken
Spalte (12a) gespeicherte Spaltennummer ans Ende der Kette, d. h. ganz rechts setzt und die restlichen
Spaltennummern nach links verschiebt, und die beim LRU-Algorithmus (Fig.7) die jeweils adressierte
Spaltennummer ans Ende der Kette setzt und die weiter rechts stehenden Spaltennummern nach links
yerschiebt, derart, daß bei nicht voll ausgeschöpfter Quote für einen Informationstyp (Ausgangssignal 98
= »1«) die in der ersten Spalte (12a), also ganz links stehende Spaltennummer und bei voll ausgeschöpfter
Quote (Ausgangssignai 98 des Vergleichers 56 = »0«) die am weitesten links stehende Spaltennummer
des betreffenden Informationstyps zum Austausch vorgesehen wird.
13. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß in den N Spalten des
Pufferspeichers (6) M Datenbereiche gespeichert sind, daß das Pufferadressenfeld (10) und das
Austauschfeld (12) dementsprechend in N Spalten und M Zeilen organisiert sind, wobei in einer Zeile
des Pufferadressenfeldes (10) jeweils ein AdreQbit (L/C), das den Informationstyp angibt, sowie die
Blockadresse gespeichert ist, die zu dem im Pufferspeicher gespeicherten Datenbereich gehört,
daß im Austauschfeld (12) in jeder der M Zeilen N Spaltennummern gespeichert sind, daß im Blockadreßvergleicher
(20) von der vom Prozessor (8) in das Adreßregister (24) gelieferten Pufferspeicheradresse
die Blockadresse (24b) und das Informationstyp-Bit (24a) mit den N entsprechenden
Eintragungen in der von der Bereichsadresse (24c) adressierten Zeile im Pufferadreßfeld (10) verglichen
wird, wobei ein nachgeschalteter Codierer (30) angibt, in welcher der N Spalten ein positiver
Vergleich erzielt wurde.
14. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet, daß in Abhängigkeit vom
Informationstyp-Bit (LJC)der Zähler (52) die in einer
Zeile des Pufferadressenfeldes (10) gespeicherten Informationstyp-Bits (L/C-0 bis L/C-3) des einen
oder des anderen Typs zählt, daß die gezählte Anzahl von einem Codierer (54) codiert und dem
Spaltenanzahlvergleicher (56) zugeführt wird, wobei der andere Eingang des Vergleichers mi! den
Grenzwertregistern (16, 18) über ein ODER-Glied (50) und zwei UND-Glieder (46, 48) verbunden ist,
deren andere Eingänge vom Informationstypbit (L/C, Feld 24a) direkt bzw. über ein Inverter-Glied
(44) gesteuert werden.
60
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2547488A DE2547488C2 (de) | 1975-10-23 | 1975-10-23 | Mikroprogrammierte Datenverarbeitungsanlage |
US05/687,831 US4047244A (en) | 1975-10-23 | 1976-05-19 | Microprogrammed data processing system |
FR7626310A FR2329017A1 (fr) | 1975-10-23 | 1976-08-25 | Systeme de traitement de donnees microprogramme |
GB40114/76A GB1507284A (en) | 1975-10-23 | 1976-09-28 | Microprogrammed data processing apparatus |
JP51116083A JPS604493B2 (ja) | 1975-10-23 | 1976-09-29 | マイクロプログラム化データ処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2547488A DE2547488C2 (de) | 1975-10-23 | 1975-10-23 | Mikroprogrammierte Datenverarbeitungsanlage |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2547488A1 DE2547488A1 (de) | 1977-04-28 |
DE2547488C2 true DE2547488C2 (de) | 1982-04-15 |
Family
ID=5959910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2547488A Expired DE2547488C2 (de) | 1975-10-23 | 1975-10-23 | Mikroprogrammierte Datenverarbeitungsanlage |
Country Status (5)
Country | Link |
---|---|
US (1) | US4047244A (de) |
JP (1) | JPS604493B2 (de) |
DE (1) | DE2547488C2 (de) |
FR (1) | FR2329017A1 (de) |
GB (1) | GB1507284A (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5530727A (en) * | 1978-08-22 | 1980-03-04 | Nec Corp | Information processor |
US4314331A (en) * | 1978-12-11 | 1982-02-02 | Honeywell Information Systems Inc. | Cache unit information replacement apparatus |
US4312036A (en) * | 1978-12-11 | 1982-01-19 | Honeywell Information Systems Inc. | Instruction buffer apparatus of a cache unit |
GB2052117B (en) * | 1979-07-04 | 1982-10-20 | Int Computers Ltd | Data processing systems |
JPS5687282A (en) * | 1979-12-14 | 1981-07-15 | Nec Corp | Data processor |
US4420807A (en) * | 1981-08-31 | 1983-12-13 | International Business Machines Corporation | Selectively holding data in a buffer for defective backing store tracks |
US4458309A (en) * | 1981-10-01 | 1984-07-03 | Honeywell Information Systems Inc. | Apparatus for loading programmable hit matrices used in a hardware monitoring interface unit |
JPS58102381A (ja) * | 1981-12-15 | 1983-06-17 | Nec Corp | バツフアメモリ |
JPS58119052A (ja) * | 1982-01-08 | 1983-07-15 | Nec Corp | マイクロプログラム制御方式 |
JPS58214946A (ja) * | 1982-06-08 | 1983-12-14 | Nec Corp | マイクロプログラム制御方式 |
JPS5969843A (ja) * | 1982-10-15 | 1984-04-20 | Nec Corp | マイクロプログラム制御方式 |
JPS5972545A (ja) * | 1982-10-19 | 1984-04-24 | Nec Corp | マイクロプログラム制御システム |
US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
WO1984002799A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | A hierarchical memory system including separate cache memories for storing data and instructions |
US4628478A (en) * | 1983-07-07 | 1986-12-09 | Motorola, Inc. | Remote data controller for a communication system |
US4724518A (en) * | 1983-07-29 | 1988-02-09 | Hewlett-Packard Company | Odd/even storage in cache memory |
US4823308A (en) * | 1984-02-02 | 1989-04-18 | Knight Technology Ltd. | Microcomputer with software protection |
JPS60205750A (ja) * | 1984-03-30 | 1985-10-17 | Nec Corp | マイクロプログラム制御装置 |
US4853846A (en) * | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
US5317717A (en) * | 1987-07-01 | 1994-05-31 | Digital Equipment Corp. | Apparatus and method for main memory unit protection using access and fault logic signals |
US5278960A (en) * | 1989-08-16 | 1994-01-11 | Nec Corporation | Information processing apparatus having detecting means for operand overlaps |
JPH03194633A (ja) * | 1989-12-25 | 1991-08-26 | Nec Corp | 制御記憶の再書き込み方式 |
JP4038216B2 (ja) * | 2005-05-10 | 2008-01-23 | ファナック株式会社 | シーケンスプログラム編集装置 |
CN111373380A (zh) * | 2018-07-12 | 2020-07-03 | 华为技术有限公司 | 一种终端恢复出厂设置时的数据恢复方法及终端 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3284776A (en) * | 1961-06-08 | 1966-11-08 | Decca Ltd | Data processing apparatus |
US3478322A (en) * | 1967-05-23 | 1969-11-11 | Ibm | Data processor employing electronically changeable control storage |
US3593299A (en) * | 1967-07-14 | 1971-07-13 | Ibm | Input-output control system for data processing apparatus |
US3569938A (en) * | 1967-12-20 | 1971-03-09 | Ibm | Storage manager |
US3588829A (en) * | 1968-11-14 | 1971-06-28 | Ibm | Integrated memory system with block transfer to a buffer store |
US3771141A (en) * | 1971-11-08 | 1973-11-06 | Culler Harrison Inc | Data processor with parallel operations per instruction |
US3878513A (en) * | 1972-02-08 | 1975-04-15 | Burroughs Corp | Data processing method and apparatus using occupancy indications to reserve storage space for a stack |
US3766532A (en) * | 1972-04-28 | 1973-10-16 | Nanodata Corp | Data processing system having two levels of program control |
US3800291A (en) * | 1972-09-21 | 1974-03-26 | Ibm | Data processing system memory relocation apparatus and method |
US3893084A (en) * | 1973-05-01 | 1975-07-01 | Digital Equipment Corp | Memory access control system |
NL7317545A (nl) * | 1973-12-21 | 1975-06-24 | Philips Nv | Geheugensysteem met hoofd- en buffergeheugen. |
US3906457A (en) * | 1974-02-15 | 1975-09-16 | Victor Comptometer Corp | Display system for an electronic business machine |
-
1975
- 1975-10-23 DE DE2547488A patent/DE2547488C2/de not_active Expired
-
1976
- 1976-05-19 US US05/687,831 patent/US4047244A/en not_active Expired - Lifetime
- 1976-08-25 FR FR7626310A patent/FR2329017A1/fr active Granted
- 1976-09-28 GB GB40114/76A patent/GB1507284A/en not_active Expired
- 1976-09-29 JP JP51116083A patent/JPS604493B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2547488A1 (de) | 1977-04-28 |
JPS604493B2 (ja) | 1985-02-04 |
FR2329017A1 (fr) | 1977-05-20 |
FR2329017B1 (de) | 1979-09-28 |
US4047244A (en) | 1977-09-06 |
JPS5251836A (en) | 1977-04-26 |
GB1507284A (en) | 1978-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2547488C2 (de) | Mikroprogrammierte Datenverarbeitungsanlage | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE3011552C2 (de) | ||
DE2445617C2 (de) | Hierarchische Speicheranordnung | |
DE2350225C2 (de) | ||
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2501853A1 (de) | Prozessor fuer ein datenverarbeitungssystem | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE2240433A1 (de) | Hierarchische datenspeichereinrichtung | |
DE2847960A1 (de) | Speichersteuereinrichtung | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE102005037219A1 (de) | Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle | |
DE1524788A1 (de) | Schaltungsanordnung zur Erkennung und zum automatischen Ersetzen von schadhaften Speicherstellen in Datenspeichern | |
DE2311503A1 (de) | Datenverarbeitungsanlage mit mehreren zentraleinheiten | |
EP0134822B1 (de) | Digitalspeicher | |
DE2750126C3 (de) | Datenverarbeitungssystem mit einem Zwischenpufferspeicher | |
DE102014012155A1 (de) | Verbesserte verwendung von speicherressourcen | |
DE2000608C3 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage | |
DE19643688C2 (de) | Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume | |
DE1449816C3 (de) | Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher | |
DE2116639C3 (de) | Datenverarbeitungsanlage. Änm: Eysenbach, Wilfried, Dipl.-Ing., 8023 Pullach | |
DE3918453C2 (de) | LRU-Schaltung | |
DE2816838C2 (de) | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten | |
DE2002369C3 (de) | Datenverarbeitungsanlage mit Pufferspeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |