DE2750126A1 - Datenverarbeitungssystem mit einem zwischenpufferspeicher - Google Patents
Datenverarbeitungssystem mit einem zwischenpufferspeicherInfo
- Publication number
- DE2750126A1 DE2750126A1 DE19772750126 DE2750126A DE2750126A1 DE 2750126 A1 DE2750126 A1 DE 2750126A1 DE 19772750126 DE19772750126 DE 19772750126 DE 2750126 A DE2750126 A DE 2750126A DE 2750126 A1 DE2750126 A1 DE 2750126A1
- Authority
- DE
- Germany
- Prior art keywords
- data block
- data
- buffer memory
- memory
- data blocks
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Description
In einem Datenverarbeitungssystem, welches einen Zwischenpufferspeicher besitzt, der zwischen einem Großraum-Hauptspeicher und
kleinräumigen, schnellen Pufferspeichern einer Vielzahl von Prozessoren angeordnet ist, wird ein Datenblock, der innerhalb
des Zwischenpufferspeichers gegen einen Datenblock aus dem Haupt· speicher ausgewechselt werden soll, durch einen LRU-Algorithmus
("Am-wenigsten-zuletzt-benutzt"-Algorithmus) und durch Kopierflaggen bestimmt, die beim Prozeß des Ungültigmachens im Puffer
verwendet werden. Im Zwischenpufferspeicher wird ein Datenblock als der auszuwechselnde Datenblock ausgewählt, bei dem die Zahl
der Kopierflaggen im EIN-Zustand kleiner ist als bei irgendeinem anderen Datenblock. Dies berücksichtigt die Tatsache, daß die
Zahl der Kopierflaggen im EIN-Zustand impliziert, daß der Datenblock von den Prozessoren nicht häufig benutzt worden ist. Die
Auswechselung eines solchen Datenblockes vermindert die dem Zwischenpufferspeicher auferlegte Last der Bearbeitung des Ungültigmachens des Puffers.
Die Erfindung betrifft ein Pufferspeichersystem für ein Datenverarbeitungssystem, welches einen Zwischenpufferspeicher zwischen
einem Hauptspeicher und Pufferspeichern einer Vielzahl von Prozessoren besitzt, insbesondere betrifft die Erfindung ein
System zur Auswechselung eines Datenblockes des Zwischenpufferspeichers gegen einen Datenblock des Hauptspeichers.
In einem großräumigen Datenverarbeitungssystem, welches einen großräumigen sehr schnellen Speicher erfordert, wird eine Speicher-Hierarchie-Steuerung durch einen kleinräumigen sehr schnellen
Pufferspeicher bewirkt, der an einer höheren Stufe als ein großräumiger relativ langsamer Hauptspeicher steht.
Während eine bestimmte Adresse aus dem Hauptspeicher in den Pufferspeicher ausgelesen wird, können bei einem solchem System in
809819/1007
einigen Fällen Eingangsdaten von einer Eingangsvorrichtung in die gleiche Adresse eingeschrieben werden.
Nicht nur beim gleichzeitigen Betrieb eines Eingangs-Ausgangskanals
und eines Prozessors selbst sondern auch bei Simultanverarbeitung, Mehrprogramm-Verarbeitung, Mehrbenutzersystemen usw.
tritt ein zeitlich und logisch gleichzeitiges Lesen und Schreiben
des gleichen gespeicherten Inhaltes auf. Deshalb ist es notwendig, das Datenverarbeitungssystem so auszulegen, daß sichergestellt ist,
daß die selbe Information gemeinsam benutzt wird, auch dann, wenn verschiedene Speicherhierarchien oder verschiedene Bereiche einer
höheren Speicherhierarchie gelesen und geschrieben werden.
Wenn ein Schreiben in der höheren Speicherhierarchie, beispielsweise
im Pufferspeicher, erfolgt ist, wird eine niedrigere Speicherhierarchie, beispielsweise der Hauptspeicher, erneuert, um das
Schreiben wiederzuspiegeln. Wird in der tieferen Speicherhierarchie geschrieben, wird die Information der höheren Speicherhierarchie
ungültig gemacht. Ist die tiefere Speicherhierarchie ein Adressenzuweisungssystem,
erfolgt die Erneuerung der Information gewöhnlich sofort und örtlich.
Nahezu alle neueren Hochgeschwindigkeits- und Großraum-Datenverarbeitungssysteme
benutzen Pufferspeicher, auffallend ist jedoch der Unterschied der Geschwindigkeiten zwischen den Pufferspeichern
und dem Hauptspeicher, dies ist ein Ergebnis der größer werdenden Geschwindigkeit der ersteren und der größer werdenden Kapazität
der letzteren. Um damit fertig zu werden, wurde vorgeschlagen, zwischen den Pufferspeichern und dem Hauptspeicher einen Zwischenpufferspeicher
vorzusehen, dessen Kapazität und Zugriffszeit zwischen den Kapazitäten bzw. Zugriffszeiten der Pufferspeicher
bzw. des Hauptspeichers liegen.
Wenn ein neuer Datenblock aus den Hauptspeicher zur Benutzung in einem Prozessor ausgelesen wird, ist es, falls der Zwischenpufferspeicher
keinen freien Raum zur Speicherung des Datenblockes besitzt, notwendig, einen der Datenblöcke des Zwischenpufferspeichers
809819/1007
-5-gegen einen Datenblock des Hauptspeichers auszutauschen.
Bislang wurde ein Austausch-Algorithmus genanntes Verfahren zur
Bestimmung des Datenblockes benutzt, der aus dem Zwischenpufferspeicher entfernt werden sollte, wenn darin neue Daten gespeichert
werden sollten. Dies wurde wie folgt ausgeführt:
(i) die Position des zu entfernenden Datenblockes im Zwischenpuffer·
speicher wird entsprechend einem Adressenmuster bestimmt. (Ii) Die Zuordnung der Positionen der Datenblöcke im Zwischenpufferspeicher und ihrer Adressen wird in Form einer Tafel aufbereitet,
und ein Assoziativspeicher wird dazu benutzt, die Zeit zur Überweisung an die Tafel zu verkürzen (Setz Assoziativsystem),
(iii) Einige Datenblock-Positionen im Zwischenpufferspeicher werden entsprechend adressenbestimmt, und einer der Datenblöcke wird gestutzt auf eine Tafel ausgewählt.
Das Verfahren (i) hat den Vorteil, daß die benutzte Hardware einfach ist. Jedoch besteht eine hohe Wahrscheinlichkeit dafür, daß
ein von den Prozessoren häufig benutzter Datenblock ausgewechselt wird. Dies vergrößert die Anzahl der Zeitpunkte zu denen der Datenblock des Zwischenpufferspeichers im Falle eines Schreibens im
Hauptspeicher ungültig gemacht wird. Damit ist dieses Verfahren unwirtschaftlich.
Das Verfahren (ii) ist wirtschaftlich, wenn die Zuordnungstafel
groß ist, jedoch erfordert es eine umfangreiche Hardware. Das Verfahren (iii) ist verglichen mit dem Verfahren (il) wirtschaftlicher und erfordert weniger Hardware.
In jedem Falle ist es erwünscht, die häufig benutzten Datenblöcke
aufzubewahren, und die Datenblöcke zu entfernen, die nachfolgend nicht benutzt werden. Da es jedoch unmöglich ist, vorauszusagen,
ob die Datenblöcke nachfolgend benutzt werden oder nicht, wird der auszutauschende Datenblock aufgrund der Häufigkeit seiner
Benutzung bestimmt.
109019/1007
275012S
block auszuwählen, der gegen einen Datenblock des Hauptspeichers
ausgetauscht werden sollte, lag darin, ein first-in first-out (FIFO) Register (zuerst-ein zuerst-aus Register) als Zwischenpufferspeicher
zu benutzen. In manchen Fällen kann es Jedoch sein, daß der ausgewählte Datenblock Jetzt von einem Prozessor benutzt
wird, und falls ein Prozessor den Datenblock nachfolgend benötigt, ist es notwendig, ihn erneut zu ersetzen.
Es wurde auch ein Verfahren zum Austausch vorgeschlagen, welches einen LRU-Algorithmus ("Am-wenigsten-zuletzt-benutzt"-Algorithmus)
benutzt, um einen zuletzt am wenigsten benutzten Datenblock als den Austauschblock auszuwählen. Bei diesem Verfahren werden den
Datenblöcken Prioritäten in der Ordnung einer Verweisung gegeben, um eine Liste der Datenblöcke entsprechend der Häufigkeit der
Benutzung aufzubereiten. Immer wenn ein Hinweis erfolgt, wird der Datenblock, auf den erneut hingewiesen wurde, an die Spitze der
Liste gesetzt, um die vorigen Datenblöcke dementsprechend auf tiefere Prioritätsstufen zu verschieben. Dann wird der Datenblock
mit der tiefsten Prioritätsstufe vom Algorithmus, der eine LRU-Anordnung benutzt, aufgenommen und gegen einen Datenblock aus dem
Hauptspeicher ersetzt. Da jedoch bei dieser Methode die Prioritätsstufen der Datenblöcke unabhängig bestimmt werden, ob sie jetzt
vom Prozessor benutzt werden oder nicht, ist es nicht sicher, daß die Zahl der Zeitpunkte, zu denen der Puffer ungültig gemacht wird,
(das Ungültigmachen eines Datenblockes im Zwischenpufferspeicher) vermindert wird.
Eine Aufgabe der Erfindung ist es, ein Zwischenpufferspeicher-Datenblockauswechslungs-System
für ein Datenverarbeitungssystem aufzuzeigen, welches eine wirtschaftliche Operation der Datenauswechslung
sicherstellt.
Eine andere Aufgabe der Erfindung ist es, ein Zwischenpufferspeicher-Datenblockauswechslungs-System
für ein Datenverarbeitungssystem aufzuzeigen, welche Prozeßschritte, bei denen der Puffer
ungültig gemacht wird, überflüssig macht oder vermindert.
Eine andere Aufgabe der Erfindung ist es, ein Zwischenpufferspeicher-
809019/1007
Datenblockauswechslungs-System für ein Datenverarbeitungssystem
aufzuzeigen, bei dem Datenblöcke, die von Prozessoren häufig benutzt werden, erhalten bleiben, und ein Datenblock, der nachfolgend nicht benutzt wird, wird als Datenblock zur Auswechslung
ausgewählt.
Außerdem ist es Aufgabe der Erfindung, ein Zwischenpufferspeicher-Datenblockauswechslungs-System fUr ein Datenverarbeitungssystem
aufzuzeigen, welches so ausgelegt ist, daß ein auszuwechselnder Datenblock mit einem einfach konstruierten Kreis ausgewählt wird,
dabei soll soweit als möglich ein bekannter Kreis benutzt werden.
Bei einem Datenverarbeitungssystem, bei dem ein Hauptspeicher einer
Vielzahl von Prozessoren zugeordnet ist, die Jeweils einen eigenen Pufferspeicher besitzen, ist entsprechend der Erfindung ein
Zwischenpufferspeicher zwischen den Pufferspeichern der Prozessoren
und dem Hauptspeicher vorgesehen, ein Datenblock wird zwischen dem Hauptspeicher und den Pufferspeichern der *¥ozessoren über den
Zwischenpufferspeicher übertragen, und Kopien der Datenblöcke des Zwischenpufferspeichers werden in den Pufferspeichern der Prozessoren gespeichert, wenn einer der Datenblöcke des Zwischenpufferspeichers gegen einen Datenblock des Hauptspeichers ausgetauscht
werden soll, ein Datenblock, bei dem die Anzahl der in den Pufferspeichern der Prozessoren gespeicherten Kopien kleiner ist als die
Anzahl der Kopien irgendeines anderen Datenblockes im Zwischenpufferspeicher, wird als der auszuwechselnde Datenblock ausgewählt.
Figur 1 ist eine Darstellung, die Verbindungen zwischen einem Zwischenpufferspeicher und Pufferspeichern einer Vielzahl von
Prozessoren in einem Datenverarbeitungssystem zeigt.
Figur 2 ist eine Darstellung zur Erläuterung der Auswechslung eines
Datenblockes entsprechend dem Setz-Assoziativsystem.
Figur 3 ist eine Darstellung zur Erläuterung des Konzeptes eines
LRU-Auswechselkreises zum Ausschluß eines Blockes, dessen Flagge
ein Gewicht von 1 oder mehr hat.
809819/1007
Figur 4 ist eine Darstellung eines bekannten LRU-Auswechselverfahrens.
Figur 5 ist eine Blockdarstellung eines Hinweisteiles eines Zwischenpufferspeichers, dabei ist eine Ausführungsform dieser
Erfindung dargestellt.
Figur 6 ist ein Schaltbild eines Steuerkreises zur Auswechslung eines Datenblockes und zeigt eine andere Ausführungsform dieser
Erfindung.
Figur 7 ist ein Schaltbild eines Sperrsignal-Generators zum Sperren von Datenblöcken, deren Flagge ein Gewicht von 2 oder mehr
hat.
Figur 1 zeigt die Verbindung eines Zwischenpufferspeichers mit einer Vielzahl von Pufferspeichern in einem Datenverarbeitungssystem.
In Figur 1 bezeichnet das Bezugszeichen 1 die Pufferspeicher von
zentralen Prozessoren (CPU). 2 bezeichnet einen Zwischenpufferspeicher.
3 bezeichnet Flaggen, und A bezeichnet Datenblöcke.
Im Zwischenpufferspeicher 2 sind für jeden Datenblock die Flaggen 3 in gleicher Zahl wie die zentralen Prozessoren des benutzten
Datenverarbeitungssystems vorgesehen, dadurch wird angezeigt, ob a von Jedem Datenblock im Pufferspeicher eines jeden zentralen
Prozessors anwesend ist. Bei einer solchen Anordnung wird, wenn irgendeiner der zentralen Prozessoren den Datenblock im Zwischenpufferspeicher
2 ändert, eine Puffer-Ungültig-Adresse an den
zentralen Prozessor gesendet, entsprechend derjenigen unter den Flaggen 3, die an den Datenblock U geheftet sind, die im EIN-Zustand
ist, dabei kann der Inhalt des Pufferspeichers 1 des
zugehörigen zentralen Prozessors wiedergegeben werden, um mit dem Inhalt des Datenblockes A zusammenzupassen.
Figur 2 ist eine beispielhafte Darstellung einer Auswechselungsoperation in einem Setz-Assoziativsystem.
Θ09819/1007
In Figur 2 bezeichnet das Bezugszeichen 1 Pufferspeicher der zentralen Prozessoren. 2 bezeichnet einen Zwischenpufferspeicher.
3 bezeichnet Flaggen, k bezeichnet Datenblöcke. 10 bezeichnet
einen Zwischenpufferspeicher-Datenteil· 11 zeigt einen Zwischenpufferspeicher-Hinweisteil. 12 bezeichnet einen Hauptspeicher.
Die Daten werden zwischen den Speichern blockweise übertragen. Wenn
ein bestimmter zentraler Prozessor Daten benötigt, wird der Block, der die benötigten Daten im Hauptspeicher 12 enthält, in den
Zwischenpufferspeicher 2 ausgelesen und weiter an den Pufferspeicher 1 im zentralen Prozessor übertragen.
Der Zwischenpufferspeicher 2 ist aus dem Speicher-Datenteil 10 und dem Speicher-Hinweisteil 11 zusammengesetzt. Für eine Zuordnung des Hauptspeichers 12 zum Zwischenpufferspeicher 2 ist
der letztere in η Sätze aufgeteilt, Jeder Satz ist aus mehreren (m) Datenblöcken zusammengesetzt. Im Speicherhinweisteil 11 sind
für Jeden Satz die Kopierflaggen 3 (Anzeigen für Gültigkeit des Blockes) in gleicher Zahl wie die Datenblöcke für Jeden Satz vorgesehen, um anzuzeigen, welcher Block des Satzes im Pufferspeicher
1 gelesen wird. Der Zwischenpufferspeicher 2 besitzt außerdem für jeden Datenblock einen Assoziativspeicher zur Anzeige der Adresse
des Datenblocks im Hauptspeicher 12 und zum Vergleich mit einer Referenzadresse, eine Prioritätsliste zur Registrierung eines
neuen Datenblockes in jedem Satz, um zu bestimmen, welcher Block des Satzes zu entfernen ist, und ein LRU-Auswechslungs-Datenfeld,
um die Ordnung der Datenblöcke in der Prioritätsliste zu bestimmen,
wenn diese umgruppiert werden, dies ist jedoch nicht in Figur 2 dargestellt.
Wenn beim Stand der Technik die Auswechslung eines Blockes in einem bestimmten Satz notwendig wird, wird der zuletzt am wenigsten
benutzte Datenblock im Satz bestimmt, dazu dient das obengenannte LRU-Auswechslungs-Datenfeld, dieser Datenblock wird aus dem Satz
entfernt, um gegen einen neuen Datenblock ausgetauscht zu werden.
809819/1007
beim Prozeß des Ungültigmachens im Puffer benutzt werden, dazu gebraucht, zu bestimmen, welcher der m Datenblöcke in dem Satz,
der die Auswechslung eines Blockes erfordert, ersetzt werden muß. Es wird nämlich der Datenblock ausgewählt, bei dem die
Zahl der Kopierflaggen 3 im EIN-Zustand kleiner ist als bei irgendeinem anderen Block, außerdem wird der LRU-Algorithmus
wie beim Stand der Technik benutzt.
Die Auswechslungsoperation erfolgt entsprechend der Erfindung in
der folgenden Weise:
(a) Diejenigen der m Datenblöcke, bei denen zumindest eine Kopierflagge
im EIN-Zustand ist, werden vom LRU-Algorithmus ausgeschlossen, und die übrigen Datenblöcke werden mit dem LRU-Auswechslungs-Datenfeld
geprüft.
b) Dort wo der auszuwechselnde Datenblock nicht durch die obige Operation (a) bestimmt wird, wird die gleiche Operation ausgeführt,
jedoch für die Datenblöcke, bei denen mindestens zwei Kopierflaggen im EIN-Zustand sind.
c) Dort wo der auszuwechselnde Datenblock durch die obige Operation
(b) immer noch nicht bestimmt wurden ist, wird die gleiche Operation erneut wiederholt, jedoch für Datenblöcke, bei denen
mindestens drei Kopierflaggen im EIN-Zustand sind.
Wenn die Zahl der Datenblöcke für einen Satz im Zwischenpufferspeicher
2 hinreichend größer ist als die Zahl der Datenblöcke für einen Satz im Pufferspeicher 1 des zentralen Prozessors, so
ist im Falle des Satz-Assoziativsystems immer der Datenblock anwesend, dessen Kopierflaggen alle im AUS-Zustand sind. Dementsprechend
wird der auszuwechselnde Datenblock durch die Operation (a) bestimmt.
Figur 3 ist eine schematische Darstellung, die das Konzept eines LRU-Auswechslungskreises zum Ausschluß des Datenblockes, dessen
Flagge ein Gewicht von 1 oder mehr hat, zeigt.
In Figur 3 bezeichnet das Bezugszeichen 3 Flaggen (FLG). 5 bezeichnet
ODER-Gatter. 6 bezeichnet Sperrsignale (ψ 1 bis # m EXCEPT)
Θ09819/1007
20 bezeichnet ein LRU-Datenfeld. 21 bezeichnet η-Wort 1-Bit
Speicherelemente (nWD 1BIT MEN). Bei der Operation zur Bestimmung
des auszuwechselnden Datenblockes werden nur die Datenblöcke, bei denen das Sperrsignal 6 im AUS-Zustand ist, dem LRU-Algorithmus
unterworfen, um einen der Datenblöcke #1bis # m als einen Auswechslungsblock zu bestimmen, dazu werden Auswechslungssignale
# 1 RPL bis Φ m RPL erzeugt. Nach Bestimmung des Auswechslungsblockes werden die Datenfeldelemente aller Datenblöcke aktualisiert.
Dies bedeutet, daß die Datenblöcke erneut in entsprechenden Sätzen gespeichert werden und daß eine neue Prioritätsliste gebildet
wird.
Anhand der Figur 4 wird nun ein bekanntes LRÜ-Auswechslungsverfahren beschrieben, bei dem das LRU-Datenfeld der Figur 3 verwendet wird. Figur 4 zeigt den Fall, daß vier Datenblöcke für
Jeden Satz vorgesehen sind. Das linke Bild zeigt den Zustand vor der Aktualisierung, dabei wird der Fall dargestellt, bei dem
der Datenblock ψ 2 als der auszuwechselnde Block bestimmt wird.
Das rechte Bild zeigt den Zustand nach der Aktualisierung. In Figur 4 sind # 12 bis ψ 34 Speicherelemente. Die Bedingungen zur
Auswechslung für die Datenblöcke # 1 bis 4 4 sind wie folgt:
Die Bedingung zur Auswechslung des Datenblockes # 1 ist # 12 . #
. * 14. Dies bedeutet, daß der Datenblock f 1 zum Auswechselblock
wird, wenn die Inhalte der Speicherelemente γ 12, ψ 13 und * 14 alle
"Null1* sind. Die Bedingung zur Auswechslung des Datenblockes f 2
ist « 12 . ρ 13 . · 14. Dies bedeutet, daß der Datenblock fc 2 zum
Auswechselblock wird, wenn das Speicherelement 12 zu "1W wird und
die Speicherelemente f 23 und # 24 zu "0" werden. Die Bedingung
für eine Auswechslung des Datenblockes # 3 ist # 13 . # 23 . 4 34,
und die Bedingung zur Auswechslung des Datenblockes fj* 4 ist # 14
. , 24 . * 34.
Da in Figur 4 die Bedingung zur Auswechslung des Datenblockes # 2
erfüllt ist, wird der Block Φ 2 ersetzt. Vor der Aktualisierung
gilt » 12 = 1, · 23 β 0 und # 24 = 0, nach der Aktualisierung gilt,
da die Prioritätsstufe der neu als Block ψ 2 gespeicherten Daten
den höchsten Wert erhält, *12«0, #23«=1 und f 24 « 1.
609819/1007
Anhand der Figuren 5 und 6 wird eine Ausführungsform der Erfindung
im Detail beschrieben. Figur 5 ist ein Schaltbild des Speicherhinweisteils des Zwischenpufferspeichers, und Figur 6 ist ein
Schaltbild eines Auswechslungs-Steuerkreises, dies ist ein LRU-Datenfeld, welches ein Sperrsignal vom Hinweisteil der Figur
erhält, um eine LRU-Operation auszuführen.
Die Figuren 5 und 6 stellen einen Auswechslungskreis für einen Zwischenpufferspeicher dar, bei dem die Zahl der assoziativen
Stufen (die Zahl der Blöcke in Jedem Satz des Zwischenpufferspeichers) vier ist. Außerdem zeigen die Figuren 5 und 6 den
Auswechslungs-Algorithmus so, daß die Datenblöcke im Satz, der durch eine Satzadresse bezeichnet ist, von der Auswechslung ausgeschlossen
werden, bei denen gerade eine Kopierflagge im EIN-Zustand ist. Das bedeutet, daß die LRU-Auswechslung nur bei solchen
Datenblöcken ausgeführt wird, bei denen alle Kopierflaggen im AUS-Zustand sind.
In Figur 5 bezeichnet das Bezugszeichen 5 ODER-Gatter. 6 bezeichnet
Sperrsignale, (+ SPERRUNG fc 1 bis # A). 30 bezeichnet Kopierflaggenbereiche
(KOPIER FLG). 31 bezeichnet andere Bereiche (ANDERE), z.B. Adressen auf dem Hauptspeicher usw.. 32 bezeichnet
eine Satzadresse. 33 zeigt Adressen-Decodierer.
Wenn das Satzadressensignal 32 eingegeben wird, wird es vom
Decodierer 33 decodiert, und die Kopierflaggenbereiche, die den vier Datenblöcken tf 1 bis f 4 in dem durch die Satzadresse bezeichneten
Satz entsprechen, werden ausgelesen.
Das Sperrsignal (+ SPERRUNG H i; i - 1 bis A) ist für Jede Flagge
eines jeden Blockes vorgesehen. Das Sperrsignal, welches dem Datenblock entspricht, dessen Kopie im Pufferspeicher mindestens eines
zentralen Prozessors vorliegt, hat einen wahren Wert "1".
In Figur 6 bezeichnet das Bezugszeichen 21 ein η-Wort 1-Bit
Speicherelement. AO, A1 und A2 bezeichnen NOR-Gatter. A3 bezeichnet ein ODER-Gatter. AA bezeichnet ein individuelles Aktualisierungs-
Θ09819/1007
signal (♦ AKTUALISIERUNG 4 i; 1 - 1 bis 4). 45 bezeichnet ein
Sperrsignal (+ SPERRUNG ψ i; 1 - 1 bis A). 46 zeigt ein Aktualisierungssignal (- AKTUALISIERUNG). 47 bezeichnet ein Auswechslungssignal (- AUSWECHSLUNG *f i; i « 1 bis 4). Im Speicherelement 21
bezeichnet das Bezugszeichen CS einen Chip-Auswahlsignal-Anschluß.
AI bezeichnet einen Adressensignal-Anschluß. DI bezeichnet einen
Eingangssignal-Anschluß. DO bezeichnet einen Ausgangssignal-Anschluß. WE zeigt einen Schreibsignal-Anschluß (writable signal
terminal). In Figur 6 bezeichnen die Zeichen "+" und "-", die den Signalen vorangestellt sind, daß die Signale zu EIN ("1") bzw.
AUS ("0") werden, wenn sie wahr sind.
- AKTUALSIERUNG den Wert AUS, jedoch erhalten die individuellen
Aktualisierungssignale + AKTUALISIERUNG · 1 bis # 4 den Wert EIN, da sie die Chip-Auswahl-(CS)-Eingänge zu "I" machen. Damit
wird die LRU-Information auf den Datenblöcken des Satzes, der durch
die Satzadresse bezeichnet ist, die an den Satz-Adressensignal-Anschluß AI eines jeden Speicherelementes gegeben worden ist, von
dort ausgelesen. Andererseits wirken die Sperrsignale + SPERRUNG
4 1 bis m 4, die aufgrund der Inhalte der Flaggenbereiche in
Figur 5 gebildet werden, jeweils auf die LRU-Information ein, die aus dem Speicherelement ausgelesen wird, so daß die Auswechslung
der Datenblöcke gesperrt wird, bei denen die Kopierflagge bei zumindest einem Bit EIN ist. Wenn das Sperrsignal + SPERRUNG * 1
eine "1" ist, bedeutet dies, daß zumindest eines der Signale + A12,+ A13 und +A14 eine "1" wird, wenn zumindest eins der anderen Signale SPERRUNG * 2 bis ψ 4 eine "0* ist, und das Auswechslungssignal - AUSWECHSLUNG · 1 wird eine "1·, damit wird der Datenblock
«1 von der Auswechslung ausgeschlossen·
Wenn das Sperrsignal ♦ SPERRUNG ♦ 2 eine ?1" ist, wird danach ein
Signal - A12 eine "1", und damit wird das Auswechslungssignal
- AUSWECHSLUNG · 2 eine "1", damit wird der Block ♦ 2 von der Auswechslung ausgeschlossen. Wenn das Sperrsignal + SPERRUNG * 3 eine
"1" ist, werden in ähnlicher Weise die Signale - A13 und -A23 eine
"1", und wenn das Sperrsignal ♦ SPERRUNG * 4 eine "1" ist, werden
109119/1007
die Signale - A14,- A24 und - A 34 eine "1". Damit werden die
4 4 eine "1", damit werden die Datenblöcke # 3 bzw. * 4 von der
Auswechslung ausgeschlossen.
In den Schaltkreisen der Figuren 5 und 6 wurde die Zahl der Datenblöcke für jeden Satz des Zwischenpufferspeichers als nhn ausgewählt, die Zahl der zentralen Prozessoren wurde ebenfalls als "4"
ausgewählt, um ein Verständnis der Erfindung zu erleichtern. In der Praxis jedoch ist die Zahl der Datenblöcke für jeden Satz des
Zwischenpufferspeichers üblicherweise so ausgewählt, daß sie hinreichend größer ist als die Gesamtzahl der Datenblöcke in entsprechenden Sätzen des Pufferspeichers eines Jeden zentralen
Prozessors, so daß es nicht möglich ist, daß alle Datenblöcke des Zwischenpufferspeichers gegenüber einer Auswechslung gesperrt
werden. Als Ergebnis der oben beschriebenen Operationen wird die Auswechslung nur eines Datenblockes in diesem Satz bestimmt, und
das entsprechende Auswechslungsignal - AUSWECHSLUNG » i wird wahr.
Danach wird das Speicherelement des LRU-Datenfeldes für den soeben ausgewechselten Datenblock aktualisiert. Dies bedeutet, daß
das Aktualisierungssignal + AKTUALISIERUNG » i, welches dem Auswechslungssignal - AUSWECHSLUNG * i entspricht, welches durch die
Auswechslungsoperation wahr gemacht worden ist, wahr wird. Außerdem wird das Signal ♦ AKTUALISIERUNG zu EIN, dadurch erhält das
Schreibsignal (WE) den Wert "I" und erzeugt einen Schreibzustand.
Damit wird das Speicherelement in der i-ten Zeile und der i-ten Spalte derartig aktualisiert, daß angezeigt wird, daß der Datenblock « i der zuletzt am meisten benutzte Block im Satz ist. Der
Schaltkreis zur Aktualisierung ist bekannt.
Die obige Ausführungsform wurde zusammen mit dem Fall beschrieben,
daß die Zahl der Datenblöcke für jeden Satz des Zwischenpufferspeichers größer ist als die Gesamtzahl der Datenblöcke in den
entsprechenden Sätzen des Pufferspeichers eines jeden zentralen Prozessors. Jedoch kommt es gelegentlich vor, daß die Zahl der
Datenblöcke für Jeden Satz im Zwischenpufferspeicher gleich oder
609819/1007
kleiner ist als die Gesamtzahl der Datenblöcke in Entsprechenden
Sätzen des Pufferspeichers eines Jeden zentralen Prozessors. In einem solchen Fall besteht die Möglichkeit, daß alle Datenblöcke
des Zwischenpufferspeichers in den Pufferspeicher des zentralen Prozessors gelesen worden sind, und daß der auszuwechselnde Datenblock nicht durch die oben beschriebene Operation bestimmt werden
kann. Dies kann dadurch verhindert werden, daß der Auswechslungsblock aus solchen Datenblöcken ausgewählt wird, bei denen die
Zahl der Zentralprozessor-Pufferspeicher, die Kopien der Blöcke enthalten, klein ist.
Figur 7 zeigt ein Beispiel eines Sperrsignal-Generators für den
Fall, daß die Möglichkeit besteht, daß alle Datenblöcke eines Satzes des Zwischenpufferspeichers in den Zentralprozessor-Pufferspeicher gelesen werden, daß jedoch alle Datenblöcke des Zwischenpufferspeichers nicht gleichzeitig in zwei oder mehr Zentralprozessor-Pufferspeicher gelesen werden, dh. zwei oder mehr
Flaggen sind nicht gleichzeitig in allen Datenblöcken auf EIN geschaltet.
In Figur 7 bezeichnet das Bezugszeichen 5 ein ODER-Gatter. 6 bezeichnet ein Sperrsignal + SPERRUNG # i. 30 bezeichneit einen
Kopierflaggenbereich. 31 bezeichnet einen anderen Bereich. 32 bezeichnet eine Satzadresse. 33 zeigt einen Adressendecodierer.
50 bis 55 bezeichnen UND-Gatter. 56 bezeichnet ein ODER-Gatter.
57 bezeichnet NAND-Gatter.
Wenn eine Kopie zumindest eines Datenblockes nicht im Zentralprozessor-Pufferspeicher existiert, wird irgendeiner der Ausgänge vom ODER_Gatter 5 zu "0", damit wird der Ausgang vom UND-Gatter 5A zu "0", und der Ausgang vom NAND-Gatter 57 zu "1".
Damit wird das Sperrsignal + SPERRUNG für den von der Auswechslungsoperation auszuschließenden Datenblock über das ODER-Gatter 5 und
das UND-Gatter 55 ausgegeben.
Im Fall, daß alle Datenblöcke in den Zentralprozessor-Pufferspeicher gelesen worden sind, daß jedoch zumindest einer der Daten-
609819/1007
blöcke in nur einen Zentralprozessor gelesen worden ist, wird
danach der Ausgang vom UND-Gatter 54 zu "1", und der Ausgang
vom ODER-Gatter 56 wird entsp rechend dem Datenblock, der nur in einen Zentralprozessor gelesen worden ist, zu "1". Damit wird
der Ausgang vom NAND-Gatter 57 zu "0", um das UND-Gatter 55 zu
sperren, damit wird kein Sperrsignal erzeugt, welches dem obengenannten Datenblock entφ rieht.
Auf diese Weise kann der Auswechslungsblock aus den Datenblöcken ausgewählt werden, bei denen die Zahl der Zentralprozessor-Pufferspeicher
eine Kopie des Datenblockes aufweist.
In diesem Falle genügt es, nur den Sperrsignal-Generator der Figur 5 zu verändern, der Auswechslungs-Steuerkreis der Figur 6
muß nicht verändert werden.
Auch im Fall, daß die Datenblöcke eines Satzes des Zwischenpufferspeichers
alle in zwei oder mehr Zentralprozessor-Pufferspeicher
werden
zur gleichen Zeit gelesen, Kann ein Sperrsignal durch das gleiche Verfahren, wie es oben beschrieben worden ist, erhalten werden.
zur gleichen Zeit gelesen, Kann ein Sperrsignal durch das gleiche Verfahren, wie es oben beschrieben worden ist, erhalten werden.
Dort wo die Schaltkreise der Figuren 5 und 7 miteinander parallel verbunden sind, kann das Sperrsignal nicht durch Schaltung auf den
Schaltkreis der Figur 7 erhalten werden, auch wenn das Sperrsignal zum Ausschluß des Datenblockes, bei dem zwei oder mehr Flaggen
auf EIN stehen, nicht mit dem Schaltkreis der Figur 5 erhalten werden kann.
Auch im Falle eines Vielfach-Zentralprozessorsystems ist der Prozeß des Ungültigmachens des Puffers in Begleitung mit einem
Speicherbefehl eine schwere Last für den Pufferspeicher. Im allgemeinen
erfolgt eine Speicherung einmal bei sechs Befehlen, und die Häufigkeit des Auftretens des Prozesses des Ungültigmachens
des Puffers ist 1/6E χ 3(CPU).
Bei dem System mit einem Zwischenpufferspeicher ist in dessen
809819/1007
Speicherhinweisteil eine Flagge vorgesehen, welche anzeigt, ob
eine Kopie eines Puffers in jeden Block vorliegt oder nicht, dadurch wird eine unnötige Pufferungültigkeit in einer Puffer-Zuordnungssteuerung vermieden.
Wenn in diesem Falle der Datenblock, bei dem viele Flaggen auf EIN zeigen, vom Zwischenpufferspeicher entfernt wird, wird der
Effekt, daß eine unnötige Pufferungültigkeit ausgeräumt wird, gefährdet. Der Datenblock mit vielen Flaggen im EIN-Zustand besitzt eine hohe Wahrscheinlichkeit zum Empfang des Speicherbefehls von vielen zentralen Prozessoreinheiten. Mit anderen Worten,
die Anwesenheit einer Kopie des Blockes im Pufferspeicher zeigt an, daß der Datenblock vom Zentralprozessor häufig benutzt wird.
Insbesondere beim Vielfach-Zentralprozessorsystem wird der Datenblock, der ein hohes Gewicht der obengenannten Flagge besitzt,
als ein Datenblock angesehen, der im System am häufigsten benutzt wird.
Beim Zwischenpufferspeicher-Auswechslungssystem der Erfindung wird
bei der Blockauswechslung zwischen einem Hauptspeicher und einem Zwischenpufferspeicher der Datenblock, der im Zwischenpufferspeicher
am frühesten ersetzt wurde, nicht nur entfernt, vielmehr wird der Datenblock, der ersetzt werden soll, aus den Datenblöcken, deren
Kopien nicht in den Zentralprozessor-Pufferspeichern gespeichert worden sind, oder aus den Datenblöcken, bei denen die Zahl der
Zentralprozessor-Pufferspeicher, die die Kopien der Blöcke gespeichert haben, klein ist, ausgewählt. Dies ergibt den Vorteil,
eine wirtschaftliche Auswechslungeoperation des Zwischenpufferspeichers zu erleichtern.
Claims (4)
- PATENTANWÄLTEDR. CLAUS REINLANOER DIPL.-ING. KLAUS BERNHARDTOrthstraO« 12 · D-8000 München 00 · Teltfon 833024/5Telex 5212744 · Telegramm· Interpotent6/313Datenverarbeitungssystem mit einem ZwischenpufferspeicherAnm.: Fujitsu Limited jt?^<zPrio.: 10. Nov. 76 - Japan -Aktenzeichen 13Θ53/1976Patentansprüche/O Zwischenpufferspeicher-Datenblock-Auswechslungssystem für ein Datenverarbeitungssystem,bei dem ein Hauptspeicher einer Vielzahl von Prozessoren zugeordnet ist, die Jeweils einen eigenen Pufferspeicher besitzen,und bei dem der Zwischenpufferspeicher zwischen den Pufferspeichern der Prozessoren und dem Hauptspeicher vorgesehen ist,und bei dem eine Datenblock-Übertragung zwischen dem Hauptspeicher und den Pufferspeichern der Prozessoren über den Zwischenpufferspeicher erfolgt,und bei dem Kopien von Datenblöcken des Zwischenpufferspeichers in den Pufferspeichern der Prozessoren gespeichert werden,809819/1007ORIGINAL INSPECTEDdadurch gekennzeichnet , daß bei der Auswechslung eines der Datenblöcke des Zwischenpufferspeichers gegen einen Datenblock des Hauptspeichers ein Datenblock, bei dem die Zahl seiner in den Pufferspeichern der Prozessoren gespeicherten Kopien kleiner ist als die Zahl der Kopien irgendeines anderen Datenblockes im Zwischenpufferspeicher, als der auszuwechselnde Datenblock ausgewählt wird.
- 2. Zwischenpufferspeicher-Datenblock-Auswechslungssystem nach Anspruch 1, dadurch gekennzeichnet, daß der Zwischenpufferspeicher Kopierflaggen zur Anzeige der in den Pufferspeichern der Prozessoren kopierten Datenblöcke besitzt und daß ein Datenblock, bei dem die Zahl der Kopierflaggen kleiner ist als die Zahl der Kopierflaggen irgendeines anderen Datenblocks im Zwischenpufferspeicher, als der auszuwechselnde Datenblock ausgewählt wird.
- 3. Zwischenpufferspeicher-Datenblock-Auswechslungssystem nach Anspruch 2, dadurch gekennzeichnet, daß der auszuwechselnde Datenblock durch Verwendung eines LRU-Algorithmus («Least Recently Used Algorithm ■ "Am-wenigsten-zuletzt-benutzt"-Algorithmus) aus den Datenblöcken des Zwischenpufferspeichers, ausgenommen die Daten~ blöcke, bei denen zumindest eine ihrer Kopierflaggen auf EIN zeigt, ausgewählt wird.
- 4. Zwischenpufferspeicher-Datenblock-Auswechslungssystem nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß, wenn die Datenblöcke, bei denen zumindest eine ihrer Kopierflaggen auf EIN zeigt, von der Auswahl des Auswechslungs-Datenblocks ausgeschlossen werden, der auszuwechselnde Datenblock durch den LRU-Algorithmus aus den Datenblöcken des Zwischenpufferspeichers, ausgenommen die Datenblöcke, bei denen zumindest zwei oder mehr ihrer Kopierflaggen EIN zeigen, ausgewählt wird, falls der auszuwechselnde Datenblock nicht durch den LRU-Algorithmus ausgewählt werden kann.βΟ9β1θ/1ΟΟ7
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13505376A JPS5373927A (en) | 1976-11-10 | 1976-11-10 | Replacing system of intermediate buffer memory |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2750126A1 true DE2750126A1 (de) | 1978-05-11 |
DE2750126B2 DE2750126B2 (de) | 1979-04-26 |
DE2750126C3 DE2750126C3 (de) | 1979-12-20 |
Family
ID=15142809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772750126 Expired DE2750126C3 (de) | 1976-11-10 | 1977-11-09 | Datenverarbeitungssystem mit einem Zwischenpufferspeicher |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPS5373927A (de) |
DE (1) | DE2750126C3 (de) |
FR (1) | FR2371019A1 (de) |
GB (1) | GB1557495A (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
CA2047888A1 (en) * | 1990-07-27 | 1992-01-28 | Hirosada Tone | Hierarchical memory control system |
US7024519B2 (en) | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US7577793B2 (en) * | 2006-01-19 | 2009-08-18 | International Business Machines Corporation | Patrol snooping for higher level cache eviction candidate identification |
JP2008046902A (ja) * | 2006-08-17 | 2008-02-28 | Fujitsu Ltd | 情報処理システム、情報処理基板、及びキャッシュタグ及びスヌープタグの更新方法 |
JP5404433B2 (ja) * | 2010-01-08 | 2014-01-29 | 株式会社東芝 | マルチコアシステム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3947823A (en) * | 1973-12-26 | 1976-03-30 | International Business Machines Corp. | Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage |
-
1976
- 1976-11-10 JP JP13505376A patent/JPS5373927A/ja active Granted
-
1977
- 1977-11-08 FR FR7733572A patent/FR2371019A1/fr active Granted
- 1977-11-09 DE DE19772750126 patent/DE2750126C3/de not_active Expired
- 1977-11-09 GB GB4670277A patent/GB1557495A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2750126B2 (de) | 1979-04-26 |
FR2371019A1 (fr) | 1978-06-09 |
JPS5373927A (en) | 1978-06-30 |
GB1557495A (en) | 1979-12-12 |
DE2750126C3 (de) | 1979-12-20 |
FR2371019B1 (de) | 1982-05-07 |
JPS5760664B2 (de) | 1982-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE3131341C2 (de) | ||
DE3011552C2 (de) | ||
DE2547488C2 (de) | Mikroprogrammierte Datenverarbeitungsanlage | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2240433A1 (de) | Hierarchische datenspeichereinrichtung | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE3102150A1 (de) | "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage | |
DE2856715C3 (de) | Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem | |
DE2725718A1 (de) | Verarbeitungssystem mit mehreren virtuellen adressenraeumen | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE1499182B2 (de) | Datenspeichersystem | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE3911721C2 (de) | ||
DE69130626T2 (de) | Verfahren zur Verwaltung einer Cache-Speicheranordnung | |
DE2149200C3 (de) | Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2750126A1 (de) | Datenverarbeitungssystem mit einem zwischenpufferspeicher | |
EP1449091B1 (de) | Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage | |
DE2311503A1 (de) | Datenverarbeitungsanlage mit mehreren zentraleinheiten | |
DE4302754C1 (de) | Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb | |
DE3016269C2 (de) | ||
DE2927451A1 (de) | Verfahren und vorrichtung zur gewaehrleistung der informationskohaerenz zwischen den vorspeichern und weiteren speichern eines informationsverarbeitungssystems mit mehrfachverarbeitung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) | ||
8328 | Change in the person/name/address of the agent |
Free format text: REINLAENDER, C., DIPL.-ING. DR.-ING., PAT.-ANW., 8000 MUENCHEN |