DE2750126B2 - - Google Patents
Info
- Publication number
- DE2750126B2 DE2750126B2 DE19772750126 DE2750126A DE2750126B2 DE 2750126 B2 DE2750126 B2 DE 2750126B2 DE 19772750126 DE19772750126 DE 19772750126 DE 2750126 A DE2750126 A DE 2750126A DE 2750126 B2 DE2750126 B2 DE 2750126B2
- Authority
- DE
- Germany
- Prior art keywords
- data
- data block
- memory
- block
- buffer
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
a) der Zwischenpufferspeicher (2) enthält einen Speicherhinweisteil (11), der für die Datenblöcke
des Zwischen Pufferspeichers Speicherstellen zur Anzeige der Kopieranzahl der in
den Pufferspeichern der Prozessoren kopierten Datenblöcke besitzt;
b) einen Steuerkreis (F i g. 5, 6), der jeweils den Datenblock, dessen Kopieranzahl kleiner ist
als die irgendeines anderen Datenblocks im Zwischenpufferspeicher, auswechselt.
2. Zwischen pufferspeicher - Datenblock - Auswechslungsanordnung nach Anspruch 1, dadurch
gekennzeichnet, daß der Steuerkreis (Fig. 5, 6) so ausgelegt ist, daß der auszuwechselnde Datenblock
durch Verwendung eines LRU-Algorithmus (= Least Recently Used Algorithm = »Amwenigsten-zuletzt-benutztx-Algorithmus)
aus den Daten blöcken des Zwischen Pufferspeichers ausgewählt wird, ausgenommen die Datenblöcke, bei
denen ihre Speicherstellen zur Anzeige der Kopieranzahl zumindest eine Kopie anzeigen.
3. Zwischenpufferspeicher - Datenblock - Auswechslungsanordnung nach Anspruch 2, dadurch
gekennzeichnet, daß, wenn die Datenblöcke, bei denen zumindest eine Kopie angezeigt wird, 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 Kopien angezeigt werden, ausgewählt
wird, falls der auszuwechselnde Datenblock nicht durch den LRU-Algorithmus ausgewählt werden
kann.
25
30
60
Die Erfindung betrifft eine Zwischenpufferspeicher-Datenblock-Auswechslungsanordnung
gemäß Oberbegriff des Anspruches I.
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 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ß dieselbe 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, erneut, um das Schreiben
wiedeizuspiegeln. 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 dr:m 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
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 Zwischenpufferspeicher 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).
(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 gestützt auf eine Tafel ausgewählt.
Das Verfahren (i) hat den Vorteil, daß die benutzte Hardware einfach ist. Jedoch besteht eine hohe
Wahrscheinlichkeil dallir, daß ein von den Prozessoren
häufig benutzter Datenblock ausgewechselt wird. Dies vergrößert die Anzahl der Zeitpunkte, zu denen
der Datenblock des Zwischenpuffei Speichers 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 (ii) wirtschaftlicher und
erfordert weniger Hardware.
In jedem Falle ist es erwünscht, die häufig benutzten Daten blöcke aufzubewahren, und die Daten blö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.
Das bisherige Verfahren, welches dazu benutzt wurde, den Datenblock auszuwählen, der gegen einen
Datenblock des Hauptspeichers ausgetauscht werden sollte, lag darin, ein fifst-in first-out (FIFO) Register
(zuerst-ein zuerst-aus Register) als Zwischenpuffei speicher zu benutzen. In manchen Fällen kann es
jedoch sein, daß der ausgewählte Datenblock jetzt von einem Prozessor benutzt wird, und falls _-in Prozessor
den Datenblock nachfolgend benötigt, ist es notwendig, ihn erneut zu ersetzen.
Es wurde auch ein Verfahren zum Austausch "rorgeschlagen,
welches einen LRU-Algorithmus (»Amwenigsten-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 dveser 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 d<:r Puffer ungültig
gemacht wird, (das Ungültigmac]ien eines Datenblockes im Zwischenpufferspeicher:· vermindert wird.
Aufgabe der Erfindung ist es, eine Zwischenpufferspeicher-
Datenblockauswechslungs -Anordnung der im Oberbegriff des Anspruches 1 angegebene Art
aufzuzeigen, welche die Operation der Datenauswechslung möglichst wirtschaftlich durchführt.
Diese Aufgabe wird erfindungsgemäß durch die im Anspruch 1 angegebenen Merkmale gelöst.
Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet. Nachfolgend werden Ausfiihrungsbeispiele
der Erfindung näher erläutert.
Fig.l ist eine Darstellung, die Verbindungen
zwischen einem Zwischenpufferspeicher und Pufferspeichern einer Vielzahl von Prozessoren in einem
Datenverarbeitungssystem zeigt.
F i g. 2 ist eine Darstellung zur Erläuterung der Auswechslung eines Datenblockes entsprechend dem
Setz-Assoziativsystem.
F i g. 3 ist eine Darstellung zur Erläuterung des Konzeptes eines LRU-Auswechselkreises zum Aus-Schluß
eines Blockes, dessen Kopieranzahl (nachfolgend Flagge genannt) ein Gewicht von 1 oder mehr hat.
F i g. 4 ist eine Darstellung eines bekannten LRU-Auswechselverfahrens.
Fig. 5 ist eine Blockdarstellung eines Hinweisteiles
eines Zwischenpufferspeichers, dabei ist eine Ausführungsform dieser Erfindung dargestellt.
F i g. 6 ist ein Schaltbild eines Steuerkreises zur Auswechslung eines Datenblockes und zeigt eine andere
Ausführungsform dieser Erfindung.
Fig. 7 ist ein Schaltbild eines Sperrsignal-Generators
zum Sperren von Datenblöcken, deren Flagge ein Gewicht von 2 oder mehr hat.
F i g. I zeigt die Verbindung eines Z wischen Pufferspeichers
mit einer Vielzahl von Pufferspeichern in einem Datenverarbeitungssystem.
In F i g. 1 bezeichnet das Bezugszeichen 1 die Pufferspeicher von zentralen Prozessoren (CPU). 2 bezeichnet
einen Zwischenpufferspeicher. 3 bezeichnet Flaggen und 4 bezeichnet Daten blö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 eine Flagge
von jedem Datenblock im Pufferspeicher eines jeden zentralen Prozessors anwesend ist. Bei einer solchen
Anordnung wird, wenn irgendeiner der zentralen Prozessoren den Datenblock im Zwischen pufferspeicher
2 ändert, eine Puffer-Ungültig-Adresse an den zentralen Prozessor gesendet, entsprechend derjenigen
unter den Flaggen 3, die an den Datenblock 4 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 4 zusammenzupassen.
F i g. 2 ist eine beispielhafte Darstellung einer Auswechslungsoperation in einem Setz-Assoziativsystem.
In Fig. 2 bezeichnet das Bezugszeichen 1 Pufferspeicher
der zentralen Prozessoren. 2 bezeichnet einen Zwischenpufferspeicher. 3 bezeichnet Flaggen. 4 bezeichnet
Datenblöcke. 10 bezeichnet einen Zwischenpufferspeicher-Datenteil. 11 zeigt einen Zwischenpufferspeicher-Hinweisteil.
12 bezeichnet einen Hauptspeicher.
so 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 Haupt-Speichers 12 zum Zwischenpufferspeicher 2 ist der letztere in η Sätze aufgeteilt, jeder Satz ist aus mehreren
im) Datenblöcken zusammengesetzt. Im Speicherhinweisteil 11 sind Tür jeden Satz die Kopierflaggen 3
(Anzeigen Tür Gültigkeit des Blockes) in gleicher Zahl
b5 wie die Datenblöcke für jeden Satz vorgesehen, um
anzuzeigen, welcher Block des Satzes in den Pufferspeicher 1 gelesen wurde. 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 F i g. 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, urn gegen einen neuen
Datenblock ausgetauscht zu werden.
Bei der vorliegenden Erfindung werden die Kopierflaggen 3, die beim Prozeß des Ungültigmachens im
Puffer benutzt werden, dazu gebraucht, zu besiimmen, welcher der in 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 Kopierfiagge 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
worden 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.
Fig. 3 ist eine schematische Darstellung, die das
Konzept eines LRU-Auswechslungskreises zum Ausschluß des Datenblockes, dessen Flagge ein Gewicht
von I oder mehr hat, zeigt.
In Fig. 3 bezeichnet das Bezugszeichen 3 Flaggen
(FLG). 5 bezeichnet ODER-Glied (gilt für die ganze
Beschreibung). 6 bezeichnet Sperrsignale (#1 bis =§= m EXCEPT). 2© bezeichnet ein LRU-Datenfeld
21 bezeichnet 71-Wort 1-Bit Speicherelemente (nWD
\ BIT MEN). Bei der Operation zur Bestimmung des auszuwechselnden Datenblockes werden nur die
Daten blöcke, bei denen das Sperrsignal 6 im AUS-Zustand ist, dem LRU-Algorithmus unterworfen, um
einen der Datenblöcke =$=1 bis #w als einen Auswechslungsblock zu bestimmen. Dazu werden Auswechslungssignale
#1 RPL bis # m RPL erzeugt Nach der Bestimmung des Auswechslungsblocke;
werden die Datenfeldelemente aller Datenblöcke aktualisiert. Dies bedeutet, daß die Datenblöcke erneut ir
entsprechenden Sätzen gespeichert werden und dat eine neue Prioritätsliste gebildet wird.
Anhand der F i g. 4 wird nun ein bekanntes LRU-Auswechslungsverfahren
beschrieben, bei dem da; LRU-Datenfeld der Fig. 3 verwendet wird. Fig. ^
zeigt den Fall, daß vier Datenblöcke für jeden Sat2 vorgesehen sind. Das linke Bild zeigt den Zustanc
vor der Aktualisierung. Dabei wird der Fall dargestellt, bei dem der Datenblock ψ 2 als der auszuwechselnde
Block bestimmt wird. Das rechte Bile j zeigt den Zustand nach der Aktualisierung. In F i g. t
sind φ 12 bis ψ34 Speicherelemente. Die Bedingunger
zur Auswechslung für die Datenblöcke =§=1 bis #4
sind wie folgt: Die Bedingung zur Auswechslung des Datenblockes 4=1 ist #12-¥Ϊ3·#14. Dies be-
deutet, daß der Datenblock =f=l zum Auswechsel·
block wird, wenn die Inhalte der Speicherelemente #12, #13 und 4= 14 alle »Null« sind. Die Bedingung
zur Auswechslung des Datenblockes =0=2 ist = 12 #Ι3·+14. Dies bedeutet, daß der Datenblock #;
zum Auswechselblock wird, wenn das Speicherelemeni 12 zu »1« wird und die Speicherelemente #23 unc
#24 zu »0« werden. Die Bedingung Tür eine Auswechslung des Datenblockes#3ist+13 ■ #23 · #34
und die Bedingung zur Auswechslung des Daten-
blockes #4 ist #14 · +24 · #34.
Da in F i g. 4 die Bedingung zur Auswechslung des Datenblockes #2 erfüllt ist, wird der Block #2
ersetzt. Vor der Aktualisierung gut #12 = !,#23 = (
und #24 = 0, nach Ger Aktualisierung gut, da di«
j5 Prioritäisstufe der neu als Block =({=2 gespeicherter
Daten den höchsten Wert erhält, #12 = 0,#23 = 1 und+24= 1.
Anhand der F i g. 5 und 6 wird eine Ausfuhrungsform der Erfindung im Detail beschrieben. F i g. f
ist ein Schaltbild des Speicherhinweisteils des Zwischenpufferspei;hers,
und Fig. 6 ist ein Schaltbilc eines Auswechslungs-Steuerkreises, dies ist ein LRU-Datenfeld,
welches ein Sperrsignal vom Hinweistei der F i g. 5 erhält, um eine LRU-Operation auszuführen.
Die F i g. 5 und 6 stellen einen Auswechslungskrei: für einen Zwischenpufferspeicher dar, bei dem di(
Zahl der assoziativen Stufen (die Zahl der Block« in jedem Satz des Zwischenpufferspeichers) vier ist
Außerdem zeigen die F i g. 5 und 6 den Auswechslungs-Algorithmus so, daß die Datenblöcke im Satz, dei
durch eine Satzadresse bezeichnet ist, von der Auswechslung ausgeschlossen werden, bei denen geraut
eine Kopierflagge im EIN-Zustand ist. Das bedeutet daß die LRU-Auswechslung nur bei solchen Daten
blöcken ausgeführt wird, bei denen alle Kopier flaggen im AUS-Zustand sind.
In F i g. 5 bezeichnet das Bezugszeichen 5 ODER
Glied. 6 bezeichnet Sperrsignale, (+SPERRUNC
+1 bis +4). 30 bezeichnet Kopierflaggenbereicht
(KOPIER' FLG). 31 bezeichnet andere Bereich« (ANDERE), z. B. Adressen auf dem Hauptspeiche;
usw. 32 bezeichnet eine Satzadresse. 33 zeigt Adressen Decodierer.
Wenn das Satzadressensignal 32 eingegeben wird wird es vom Decodierer 33 decodiert, und die Kopier
flaggen bereiche, die den vier Daten blöcken +1 bis #*
in dem durch die Satzadresse bezeichneten Satz ent
sprechen, werden ausgelesen.
Das Sperrsignal ( + SPERRUNG =fj=/; / = 1 bis 4)
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 »I«.
In Fig. 6 bezeichnet das Bezugszeichen 21 ein »ι-Wort 1-Bit Speicherelement. 40, 41 und 42 bezeichnen
NOR-Glieder. 43 bezeichnet ein ODER-Glied. 44 bezeichnet ein individuelles Aktualisierungssignal
( + AKTUALISIERUNG #/; i = 1 bis 4). 45 bezeichnet ein Sperrsignal ( + SPERRUNG +/;
/ = I bis 4). 46 zeigt ein Aklualisierungssignal (-AKTUALISIERUNG). 47 bezeichnet ein Auswechslungssignal
(-AUSWECHSLUNG +/; 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
F i g. 6 bezeichnen die Zeichen » + « und » — «, die den Signalen vorangestellt sind, daß die Signale zu EIN
(»1«) bzw. AUS (»0«) werden, wenn sie wahr sind.
Bei der Auswechslungsoperation erhält das Aktualisierungssignal -AKTUALISIERUNG den Wert
AUS, jedoch erhalten die individuellen Aktualisierungssignale + AKTUALISIERUNG =}}= 1 bis +4 den
Wert EIN, da sie die Chip-Auswahl-(CS)-Eingänge zu »1« 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 #1 bis +4. die aufgrund der Inhalte der hiaggenbereiche in Fig. 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 +/112, +/113 und +/114 eine »1« wird,
wenn zumindest eines der anderen Signale SPER RUNG +2 bis =|=4 eine »0« ist, und das Auswechslungssignal
-AUSWECHSLUNG^ wird eine »1«, damit wird der Datenblock 4= 1 von der Auswechslung
ausgeschlossen.
Wenn das Sperrsignal +SPERRUNG #2 eine »1« ist, wird danach ein Signal -All eine »I«, und damit so
wird das Auswechslungssignal -AUSWECHSLUNG +2 eine »1«, damit wird der Block =0=2 von der
Auswechslung ausgeschlossen. Wenn das Sperrsignal + SPERRUNG #3 eine »1« ist, werden in ähnlicher
Weise die Signale - A13 und - A 23 eine »1«, und wenn
das Sperrsignal +SPERRUNG #4 eine »1« ist, werden die Signale -/114, —A24 und -A34 eine »1«.
Damit werden die Auswechslungssignale -AUS- WECHSLUN[G =f=3bzw. -AUSWECHSLUNG^
eine »1«, damit werden die Datenblöcke =f=3 bzw. =|=4
von der Auswechslung ausgeschlossen.
In den Schaltkreisen der Fig. 5 und 6 wurde die
Zahl der Datenblöcke für jeden Satz des Zwischenpufferspeichers als »4« 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 nichl 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 Auswechslungssignal — AUS- WECHSLUNG^i wird wahr.
Danach wird das Speicherelement des LRU-Dalenfeldes für den soeben ausgewechselten Datenblock
aktualisiert. Dies bedeutet, daß das Aktualisierungssignal + AKTUALISIERUNG =#=/, welches dem
Auswechslungssignal -AUSWECHSLUNG +1 entspricht,
weiches durch die Auswechsiungsoperalion wahr gemacht worden ist, wahr wird. Außerdem wird
das Signal +AKTUALISIERUNG zu EIN, dadurch erhält das Schreibsignal (WE) den Wert »1« und
erzeugt einen Schreibzustand. Damit wird das Speicherelement in der i-ten Zeile und der /-ten Spalte
derartig aktualisiert, daß angezeigt wird, daß der Daten block =§= 1 der zuletzt am meisten ben utzte 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 kleiner ist als die
Gesamtzahl der Daienblö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 Operatio η bestimmt werden kann. Dies kann dadurch verhindert werden,
daß der Auswechslungsblock aus solchen Datenblökken ausgewählt wird, bei denen die Zahl der Zentralprozessor-Pufferspeicher,
die Kopien der Blöcke enthalten, klein ist.
F i g. 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, d.h. zwei oder mehr Flaggen sind nicht gleichzeitig in allen Datenblöcken
auf EIN geschaltet.
In F i g. 7 bezeichnet das Bezugszeichen 5 ein ODER-Glied. 6 bezeichnet ein Sperrsignal +SPER
RUNG =1=/. 30 bezeichnet einen Kopierflaggenbereich. 31 bezeichnet einen anderen Bereich. 32 bezeichnet
eine Satzadresse. 33 zeigt einen Adressendecodierer. 50 bis 55 bezeichnen UND-Glieder. 56 bezeichnet
ein ODER-Glied.57 bezeichnet NAND-Glied.
Wenn eine Kopie zumindest eines Datenblockes nicht im Zentralprozessor-Pufferspeicher existiert, wird
irgendeiner der Ausgänge vom ODER-Glied 5 zu »0«, damit wird der Ausgang vom UND-Glied 54
zu »0«, und der Ausgang vom NAND-Glied 57 zu »1«. Damit wird das Sperrsignal +SPERRUNG für den
von der Auswechslungsoperation auszuschließenden Datenblock über das ODER-Glied 5 und das UND-Glied
55 ausgegeben.
Im Fall, daß alle Datenblöcke in den Zentralprozessor- Pufferspeicher gelesen worden sind, daß
jedoch zumindest einer der Datenblöcke in nur einen Zentralprozessor gelesen worden ist, wird danach der
Ausgang vom UND-Glied 54 zu »1«, und der Ausgang vom ODER-Glied 56 wird entsprechend dem Datenblock,
der nur in einen Zentralprozessor gelesen worden ist, zu »1«. Damit wird der Ausgang vom NAND-Glied
57 zu »0«, um das UND-Glied 55 zu sperren, damit wird kein Sperrsignal erzeugt, welches dem
obengenannten Datenblock entspricht.
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 Fig. 5 zu verändern, der Auswechslungs-Steuerkreis
der Fig. 6 muß nicht verändert werden.
Auch im Fall, daß die Datenblöcke eines Satzes des Zwischenpufferspeichers alle in zwei oder mehr Zentralprozessor-Pufferspeicher
zur gleichen Zeit gelesen werden, kann ein Sperrsignal durch das gleiche "erfahren, wie es oben beschrieben worden ist,
erhalten werden.
Dort wo die Schaltkreise der F i g. 5 und 7 miteinander parallel verbunden sind, kann das Sperrsignal
nicht durch Schaltung auf den Schaltkreis der F i g. 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 F i g. 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 I/6E χ 3 (CPU).
Bei dem System mit einem Zwischenpufferspeicher ist in dessen Speicherhinweisteil eine Flagge vorgesehen,
welche anzeigt, ob eine Kopie eines Puffers in jedem 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.
is 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 Zwichenpufferspeicher der Datenblock, der im Zwischenpufferspeicher
am frühes ten 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 Zentraiprozessor-Pufferspeicher, die die Kopien
der Blöcke gespeichert haben, klein ist, ausgewählt. Dies ergibt den Vorteil, eine wirtschaftliche Auswechslungsoperation
des Zwischenpufferspeichers zu erleichtern.
Hierzu 6 Blatt Zeichnuneen
Claims (1)
1. Zwischenpufferspeicher - Datenblock - Auswechslungsanordnung
für ein Datenverarbeitung»- system,
bei dem ein Hauptspeicher einer Vielzahl von Prozessoren zugeordnet ist, die jeweils einen
eigenen Pufferspeicher besitzen, und bei dem der Zwischenpufferspeicher zwischen den Pufferspeiehern
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,
gekennzeichnet durch folgende Merkmale:
gekennzeichnet durch folgende Merkmale:
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 DE2750126A1 (de) | 1978-05-11 |
DE2750126B2 true 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 |
---|---|
FR2371019A1 (fr) | 1978-06-09 |
GB1557495A (en) | 1979-12-12 |
DE2750126C3 (de) | 1979-12-20 |
JPS5760664B2 (de) | 1982-12-21 |
DE2750126A1 (de) | 1978-05-11 |
FR2371019B1 (de) | 1982-05-07 |
JPS5373927A (en) | 1978-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3131341C2 (de) | ||
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE2523414C3 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE2656546C2 (de) | Datenblock-Austauschanordnung | |
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE3151745C2 (de) | ||
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE2547488C2 (de) | Mikroprogrammierte Datenverarbeitungsanlage | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
DE3102150A1 (de) | "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage | |
DE2725718A1 (de) | Verarbeitungssystem mit mehreren virtuellen adressenraeumen | |
DE2240433A1 (de) | Hierarchische datenspeichereinrichtung | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE10006430B4 (de) | Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE3911721C2 (de) | ||
DE69130626T2 (de) | Verfahren zur Verwaltung einer Cache-Speicheranordnung | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2750126C3 (de) | Datenverarbeitungssystem mit einem Zwischenpufferspeicher | |
DE3787129T2 (de) | Cachespeicher mit veränderlichen Abholungs- und Ersetzungsschemen. | |
DE3854641T2 (de) | Arbeitstellen-Steuergerät zum Schreiben auf einem vollen Bildschirm und zum teilweise Schreiben auf einem Bildschirm. |
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 |