DE3102150C2 - Multiprozessor-Datenverarbeitungsanlage - Google Patents
Multiprozessor-DatenverarbeitungsanlageInfo
- Publication number
- DE3102150C2 DE3102150C2 DE3102150A DE3102150A DE3102150C2 DE 3102150 C2 DE3102150 C2 DE 3102150C2 DE 3102150 A DE3102150 A DE 3102150A DE 3102150 A DE3102150 A DE 3102150A DE 3102150 C2 DE3102150 C2 DE 3102150C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- address
- cache
- data
- level
- 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 - Fee Related
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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/125—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
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)
Description
Die Erfindung betrifft eine Multiprozessor-Datenverarbeitungs
anlage mit einem Hauptspeicher, einer Cachespeichereinrichtung,
einer Cachespeicher-Steuereinrichtung und mehreren zentralen
Operationseinheiten gemäß dem Oberbegriff-des Patentanspruchs 1.
Multiprozessor-Datenverarbeitungsanlagen dieser Gattung sind
bereits bekannt, z. B. aus den US-Patentschriften 3,967,247,
4,136,386 und der älteren Anmeldung gemäß DE 29 47 115 A1.
Im US-Patent 3,967,247 ist eine Speicher-Schnittstelleneinheit
mit einem Cachespeicher beschrieben, die zwischen mehreren,
Dateneinheiten anfordernden Operationseinheiten und einem
relativ langsam arbeitenden Hauptspeicher angeordnet ist.
Der Cachespeicher dient als Zwischen- oder Pufferspeicher
für eine begrenzte Anzahl von Blocks von Dateneinheiten, die
auch im Hauptspeicher gespeichert sind. Beim Datenabruf wird
zunächst festgestellt, ob die betreffende Adresse im Cachespei
cher vorhanden ist. Ist dies nicht der Fall, so wird ein Da
tenblock mit dieser Adresse aus dem Hauptspeicher in den Cache
speicher übertragen, wobei ein im Cachespeicher bereits ge
speicherter Datenblock ggfs. ausgetauscht wenden muß. Bevor dies
geschieht, wird der auszutauschende Datenblock daraufhin un
tersucht, ob die gespeicherten Damen Modifikationen erfahren
haben. Wenn irgendein Wort des alten Datenblocks modifiziert
worden ist seit der Datenblock ursprünglich aus dem Haupt
speicher ausgelesen worden ist, so wird der gesamte
Datenblock in ein temporäres Speicherregister übertragen,
woraufhin die Datenrestaurierung im Hauptspeicher erfolgt.
Die Speicher-Schnittstelleneinheit umfaßt auch einen, mit
dem Cachespeicher assoziierten Adreßlistenspeicher, der den oberen
Teil der Hauptspeicheradressen der im Cachespeicher zwischen
gespeicherten Dateneinheiten enthält. Eine weitere Speicher
einrichtung dient zur Speicherung von Informationen über
den Zeitpunkt des letzten Ansprechens (LRU) der Speicher
stellen des Adreßlistenspeichers. Für diese LRU ( = least
recently used) Zeitkennzeichnung ist jeder der vier Ebenen
des Cachespeichers ein zwei Bit umfassendes Identifizierungs
kennzeichen zugehörig, um den Zeitpunkt des letzten Anspre
chens der betreffenden Datenadresse zu kennzeichnen. Nach
jeder Übereinstimmung überprüfen Vergleicher die Ebene der
Übereinstimmung und die Zeitkennzeichnungsbits (AGE) von
jeder Ebene. Mit Hilfe von Addiereinrichtungen werden die
Zeitkennzeichnungsbits (AGE) aktualisiert, was nach einem
bestimmten Algorithmus erfolgt, der eine aufwendige und kom
plizierte Hardware-Schaltungsimplementierung erfordert.
Im US-Patent 4,136,386 ist eine Multiprozessor-Datenverarbei
tungsanlage beschrieben, bei der für jeden Prozessor ein
Cachespeicher vorgesehen ist. Die Datenkommunikation zwischen
den Prozessoren und dem allen Prozessoren gemeinsamen Haupt
speicher erfolgt durch eine Systemsteuereinheit (SCU). Für die
Cachespeicher werden Haupt- und Doppeladreßlisten geführt, um
beim Schreibzugriff eines Prozessors auf den Hauptspeicher die
Datenkohärenz in den einzelnen Cachespeichern durch Löschen
dort eventuell vorhandener Kopien der betroffenen Daten zu
gewährleisten. Um sicherzustellen, daß alle Prozessoren, die
auf den Hauptspeicher zugreifen wollen, auch Gelegenheit dazu
bekommen, wendet man das Warteschlangenprinzip an. Zugriffs
anforderungen auf Dateneinheiten, die sich im Cachespeicher
eines anderen Prozessors befinden, müssen warten, bis sie
im Zuge der Abarbeitung der Warteschlange bedient werden
können. Zugriffsanforderungen, die sich auf bestimmte Daten
einheiten beziehen, werden von der Warteschlange nach dem
Grundsatz "first-in-first-out" freigegeben. Auch in diesem
Multiprozessor-Datenverarbeitungssystem muß zur Abwicklung
der Datenkommunikation ein hoher Schaltungsaufwand getrieben
werden. Außerdem ist die Verarbeitungseffizienz wegen des
Warteschlangenprinzips nicht sehr hoch. Eine Speicherung
von Informationen über den Zeitpunkt des letzten Anspre
chens der Speicherstellen ist nicht vorgesehen, wie das
in der vorerwähnten US Patentschrift 3,967,247 der Fall ist.
Die deutsche Offenlegungsschrift 29 47 115 beschreibt eine
Löschanordnung für einen Cachespeicher eines Prozessors in
einer Multiprozessor-Datenverarbeitungsanlage mit einer
selektiv arbeitenden Anordnung zur Löschung von Blöcken von
Dateneinheiten. Hierbei werden ausgewählte, zu löschende
Adressen mit Markierungsadressen verglichen, die in einem
Doppeladreßspeicher gespeichert sind. Bei Übereinstimmung
wird der Hauptspeicheradreßliste signalisiert, daß für einen
bestimmten Hauptspeicher-Schreibbefehl der betreffende Eintrag
zu löschen ist. Auch in dieser älteren Anmeldung
gibt es keine Speicherung von Informa
tionen über den Zeitpunkt des letzten Ansprechens der Spei
cherstellen. Für die Markierungsadressen gibt es eine Mar
kierungsadreßliste in Matrixform mit soviel Spalten wie es
Datenblöcke in dem Cachespeicher gibt. Jede Spalte weist
vier Speicherebenen auf. Durch einen Umlaufzähler wird be
stimmt, in welcher Speicherebene ein Eintrag vorzunehmen ist.
Jeder Speicherstelle in jeder Ebene ist eine Kennzeichnung
(F/E-Bit) zugeordnet, welche die aktuelle Verfügbarkeit
dieser Speicherstelle anzeigt.
Die vorliegende Erfindung stellt sich demzufolge die Aufgabe,
eine gegenüber dem Stand der Technik verbesserte Multiprozessor-
Datenverarbeitungsanlage zu schaffen, bei der die den Opera
tionseinheiten zugeordneten Cachespeicher
nicht immer dann vollständig gelöscht werden müssen, wenn
eine fremde Operationseinheit eine Dateneinheit im Hauptspeicher
verändert und wobei, wenn der Cachespeicher erfolglos bean
sprucht worden ist, nur diejenige
Dateneinheit ausgetauscht wird, deren Benutzung zeitlich am
weitesten zurückliegt.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die kenn
zeichnenden Merkmale des Patentanspruchs 1. Weitere Ausführungs
formen der Erfindung sind den Patentansprüchen 2 bis 5 zu ent
nehmen.
Anhand von Zeichnungen wird die Erfindung nachstehend beispiels
weise näher erläutert.
Fig. 1 zeigt schematisch eine Multiprozessor-Datenverarbeitungs
anlage mit zwei zentralen Operationseinheiten oder Pro
zessoren, die sich einen Hauptspeicher teilen.
Fig. 2 zeigt in einem Blockdiagramm die Cachespeichereinrichtung
des jeweiligen Prozessors.
Fig. 3 zeigt den Speicheraufbau unter Veranschaulichung der
Beziehung zwischen den Speicherstellen einer Haupt-
Adreßliste und den Speicherstellen in dem Cachespeicher.
Fig. 4 zeigt schematisch eine Schaltungsanordnung,
die ein erst seit kurzem benutztes Aktuali
sierungs-Untersystem verkörpert.
Fig. 5 veranschaulicht in einem Diagramm ein erst
kürzlich benutztes Codierungsprinzip.
Fig. 6 zeigt ein Verknüpfungsdiagramm eines FPLA-
Chips.
Fig. 7 u. 8 veranschaulichen in Wertetabellen die Über
tragungsfunktion der FPLA-Chips.
In heutigen Rechnersystemen werden sehr häufig Multipro
zessoren mit einem einzelnen Systemsteuerwerk verbunden,
wie dies in Fig. 1 gezeigt ist, um den Durchsatz zu stei
gern. Die Prozessoren Nr. 1 und Nr. 2 sind jeweils mit
dem Systemsteuerwerk 10 verbunden, welches diese Prozes
soren mit dem Hauptspeicher 20 verbindet. Jeder Prozessor
enthält außerdem seinen eigenen, individuellen
Cachespeicher 30, in dem er Daten, Adressen und Be
fehle bzw. Instruktionen speichert, die er gerade benutzt.
Jedem Cachespeicher ist eine Doppel-Adreßliste 31 zuge
hörig, die dazu dient, einen Vergleich zwischen den Daten
in dem Cachespeicher des Prozessors Nr. 1 mit den Daten
zu ermöglichen, die in dem Speicher 20 durch den Prozes
sor 2 geändert worden sind, so daß der Prozessor Nr. 1
aus seinem Cachespeicher keine ungültigen Daten aufnimmt,
sondern die letzte gebräuchliche Version der betreffenden
Daten aus dem Hauptspeicher 20 aufnimmt. Jeder Prozessor
weist außerdem eine Operationseinheit 32 auf, die Rechen
operationen und Verknüpfungsoperationen bezüglich Operan
den in einem Programm ausführt. Diese Operanden sind zu
nächst im Hauptspeicher 20 gespeichert und werden aus
diesem Speicher herausgeführt, wobei diese Operanden in
den Cachespeicher 30 dann eingeschrieben werden, wenn
sie zuerst herausgeführt worden sind. Danach können
die betreffenden Operanden aus dem Cachespeicher solange
entnommen werden, bis die Speicherstellen, in denen die
betreffenden Operanden gespeichert sind, als leer markiert
sind, und zwar durch eine selektive Löschoperation, oder
bis die betreffenden Operanden durch andere Daten ersetzt
werden, die aus dem Hauptspeicher 20 infolge einer erfolg
losen Ansteuerung des Cachespeichers abgerufen worden
sind.
Jeder Prozessor weist außerdem eine Anschlußsteuerein
heit 33 auf, die dazu dient, den Datenaustausch zwischen
dem Prozessor und dem Hauptspeicher 20 und den übrigen
Eingabe/Ausgabe-Peripheriegeräten zu koordinieren, die
durch das Eingabe/Ausgabe-Steuerwerk 34 gesteuert werden.
Ein Blockdiagramm der Erfindung ist in Fig. 2 gezeigt.
Die absolute Adresse der angeforderten Daten, wie sie
durch die Zentraleinheit geliefert wird, wird über einen
Schalter 57 in eine Cachespeicher-Adressenverriegelungs
schaltung 56 eingeschaltet. Der Kern der Erfindung be
steht dabei aus der Kombination dreier Haupt-Unter
systeme. Das erste Untersystem wird dazu herangezogen,
die vielen Datenwörter, die von der Zentraleinheit bei
deren Operationen verwendet werden, abzuspeichern und
einen Zugriff zu diesen Datenwörtern vorzunehmen. Der
Cachespeicher 40, ein erster Multiplexer bzw. Schalter 41, ein zweiter
Schalter 42 und eine Datenverriegelungsschaltung 43 bil
den den Hauptteil des ersten Untersystems.
Die Organisation dieses ersten Untersystems ist folgende:
Unter Bezugnahme auf Fig. 3 ist ersichtlich, daß der
Cachespeicher 40 aus vier Bereichen besteht, deren jeder
in 512 individuell adressierbare Blöcke mit jeweils vier
Wörtern unterteilt ist. Jedes Wort weist eine Länge von
36 Bits auf. Der Cachespeicher 40 weist einen 11 Bit breiten
Adresseneingang auf, um das auf der Leitung 44 auftretende
Cachespeicher-Adressensignal aufzunehmen, welches die
Bits 13 bis 23 der absoluten Adresse der angeforderten
Daten umfaßt. Ein weiterer in Fig. 2 dargestellter Eingang
nimmt das Ebenen-Abtastsignal auf der Leitung 45 auf.
Dieses Signal bestimmt zusammen mit dem Cachespeicher-
Adressensignal, welcher Bereich und welcher Block die am
Dateneingang 46 eintreffenden Daten aufzunehmen hat.
Die auf der Leitung 46 eintreffenden Daten gelangen über
den ersten Schalter 41, der zwei Eingänge aufweist. Die
in dem Cachespeicher 40 zu speichernden Daten sind Daten,
die entweder von einer Zentraleinheits-Speicheroperation
oder von einem Abruf aus dem Hauptspeicher nach erfolgloser
Ansteuerung des Cachespeichers resultieren. Auf Zentral
einheits-Speicheroperationen hin treten Daten auf der
Leitung 47 auf, während Daten infolge eines Hauptspeicher-
Aufrufzyklus auf der Leitung 48 auftreten. Der Zweck des
Schalters 41 besteht nun darin, auszuwählen, welche Lei
tung dieser Leitungen mit dem Dateneingang des Cache-
Speichers 40 zu verbinden ist. Die Auswahl erfolgt dabei
unter der Steuerung einer Cachespeicher-Steuereinrichtung
49, und zwar mittels eines Steuersignals, welches auf der
mit "zum ersten Schalter" markierten Leitung auftritt.
Ein zweiter Schalter 42 weist einen gesonderten Datenein
gang auf, der mit dem Datenausgang des jeweiligen Bereiches
des Cachespeichers 40 verbunden ist. Außerdem weist der
betreffende Schalter einen Eingang auf, der mit der Leitung 48
verbunden ist, um aus dem Hauptspeicher infolge
einer erfolglosen Ansteuerung des Cachespeichers abge
rufene Daten auf zunehmen. Der zweite Schalter 42 weist
eine einzelne Datenausgangsleitung 50 mit einer Breite
von 72 Bits sowie einen Steuereingang für die Aufnahme
eines Blockauswahlsignals auf, welches auf der Leitung
51 von der Cachespeicher-Steuereinrichtung 49 abgegeben
wird. Der Zweck des Schalters 42 sowie die Funktion des
auf der Leitung 51 auftretenden Blockauswahlsignals bei
stehen darin zu steuern, welche der oben erwähnten Ein
gangsleitungen zu der einzelnen Ausgangsleitung durchge
schaltet wird. Dies bedeutet, daß die Cachespeicher-
Steuereinrichtung 49 ein 72 Bit breites Doppelwortpaar-
Ausgangssignal aus irgendeinem der vier Bereiche des
Cachespeichers 40 zum Ausgang des zweiten Schalters 42
durchschalten kann, wenn in der betreffenden Ebene ein
Treffer ermittelt worden ist. Wenn jedoch eine erfolglose
Ansteuerung vorgelegen hat, dann werden die aus dem Haupt
speicher abgerufenen Daten zum Ausgang des zweiten Schalters
42 über die Leitung 48 durchgeschaltet und gleichzeitig
werden die betreffenden Daten zum Ausgang des ersten Schal
ters 41 sowie zum Cachespeicher 40 zum Zwecke der Abspei
cherung durchgeschaltet. Die genaue Stelle, an der diese
Daten in dem Cachespeicher 40 gespeichert werden, wird
durch die auf den Leitungen 44 und 45 auftretenden Signale
gesteuert, und zwar in Übereinstimmung mit einem
Algorithmus, auf den weiter unten noch
näher eingegangen wird.
Die Datenverriegelungsschaltung 43 weist einen Dateneingang
auf, der mit der von dem zweiten Schalter 42 herkommenden
Leitung 50 verbunden ist, sowie eine Datenausgangsleitung
52, die Daten an die Zentraleinheit abgibt. Außerdem
weist die betreffende Verriegelungsschaltung einen Steuer
eingang auf, dem das über die Leitung 53 von der Cache
speicher-Steuereinrichtung 49 abgegebene Ladesignal zu
führbar ist. Der Zweck der Datenverriegelungsschaltung 43
besteht darin, die von dem Cachespeicher 40 abgegebenen
oder aus dem Hauptspeicher abgerufenen Daten so lange
festzuhalten, bis die Zentraleinheit die Daten lesen kann.
Das Laden der Datenverriegelungsschaltung 43 wird durch
das auf der Leitung 53 auftretende Ladesignal gesteuert.
Das zweite Untersystem ist durch die Haupt-Adreßliste 54,
den Vergleicher 55 und die zugehörige Schaltungsanordnung
gebildet.
Der Zweck der Haupt-Adreßliste 54 besteht darin, Identifizie
rungsadressen zu speichern, welche diejenigen Datenwörter
in dem Hauptspeicher identifizieren, die auch in dem
Cachespeicher 40 gespeichert sind. Der Vergleicher 55 dient
dabei dazu, die in der Haupt-Adreßliste 54 gespeicherten
Identifizierungsadressen mit den Identifizierungsadressen
der Datenwörter zu vergleichen, die von der Zentraleinheit
angefordert werden, und eine eine Übereinstimmung angebende
Information dann zu erzeugen, wenn das angeforderte Daten
wort in dem Cachespeicher 40 vorhanden ist. Die die Über
einstimmung angebende Information zeigt an, welcher Bereich im
Cachespeicher bzw. welche Ebene in der Haupt-Adreßliste das angeforderte
Datenwort bzw. die entsprechende Adresse enthält.
Mit den Begriffen "Bereich" und "Ebene" wird Bezug ge
nommen auf die Gesamtorganisation der Haupt-Adreßliste
54 und des Cachespeichers 40. Wie in Fig. 3 veranschaulicht,
ist der Cachespeicher 40 in vier Bereiche unterteilt,
weshalb auch die Haupt-Adreßliste 54 in vier Ebenen unter
teilt ist. Aus Fig. 3 geht dabei hervor, daß die Ebene A
der Haupt-Adreßliste 54 dem Bereich Null des Cache
speichers 40 entspricht usw. Da jeder Bereich des Cache
speichers 40 in eine Vielzahl von Blöcken unterteilt
ist, ist somit jede Ebene der Haupt-Adreßliste 54 in
eine Vielzahl von Spalten unterteilt. Jede Spalte einer
vorgegebenen Ebene entspricht wiederum einem bestimmten
Block in dem entsprechenden Bereich. Damit dürfte ersicht
lich sein, daß jede Spalte der Haupt-Adreßliste 54
vier Ebenen aufweist, deren jede einem Block in einem
der vier Bereiche des Cachespeichers 40 entspricht.
Jeder Block speichert vier 36-Bit-Wörter. Bei der bevor
zugten Ausführungsform sind 512 Blöcke in jedem Bereich
des Cachespeichers 40 vorhanden. Damit sind in jedem
Bereich 2048 Wörter gespeichert, und jedes Wort hat eine
11-Bit-Adresse.
Das Format der absoluten Adresse der angeforderten Daten,
wie sie von der Zentraleinheit bereitgestellt wird, ist
in der linken unteren Ecke in Fig. 3 veranschaulicht.
Diese absolute Adresse wird über den Schalter 57 gemäß
Fig. 2 zu der Cachespeicher-Adressenverriegelungsschaltung
56 durchgeschaltet. Die betreffende Adresse wird dort kurz
zeitig abgespeichert, um von den Elementen in der Cache
speicher-Anordnung verwendet zu werden. Der Schalter 57
dient dabei dazu, die Abgabe der absoluten Adressen an
die Cachespeicher-Adressenverriegelungsschaltung 56 von
anderen Teilen der Datenverarbeitungsanlage, wie von
einem Wartungsfeld oder von einer virtuellen Einheit im
virtuellen Speicherbetrieb, zu ermöglichen. Die 13 Bits
höchster Wertigkeit dieser absoluten Adresse sind die
Identifizierungsadressenbits. Diese 13 Bits (0-12) ge
nügen, um 8192 einzelne Datenwörter zu kennzeichnen,
deren Anzahl gleich der Anzahl von Datenwörtern ist, die
in dem Cachespeicher 40 gespeichert sind. Die nächsten
9 Bits, das sind die Bits 13-21, dienen als Block/Spalten-
Adresse. Diese 9 Bits genügen, um 512 verschiedene
Speicherplätze zu kennzeichnen. Die betreffende Zahl ent
spricht der Anzahl der Blöcke und Spalten in dem Cache
speicher bzw. in der Haupt-Adreßliste. Die letzten
beiden Bits der 24 Bits umfassenden Adresse sind die
Bits 22 und 23. Diese Bits legen fest, welches Wortpaar
oder welches einzelne Wort von der Zentraleinheit er
wünscht ist. Demgemäß kann die Cachespeicher-Adressenver
riegelungsschaltung 56 gemäß Fig. 2 als in drei Bereiche
aufgeteilt aufgefaßt werden. Der erste Bereich speichert
die 13 Bits der Identifizierungsadresse. Der zweite Be
reich und der dritte Bereich speichern die Block/Spalten-
Adresse bzw. die 2-Bit-Wortbezeichnungen.
Die Haupt-Adreßliste 54 wird mit Identifizierungsadressen
über die Leitung 57 geladen, die den Dateneingang der
Haupt-Adreßliste 54 mit dem ersten Bereich der Cache
speicher-Adressenverriegelungsschaltung 56 verbindet. Der
Cachespeicher 40 wird blockweise mit jeweils vier Wörtern
geladen, wenn Daten aus dem Hauptspeicher über die Leitung
48 abgerufen werden oder während der Ausführung von Zen
traleinheits-Speicheroperationen, und zwar über die Lei
tung 47. Die Daten werden von dem Hauptspeicher auf eine
erfolglose Ansteuerung des Cachespeichers abgerufen, während
Zentraleinheits-Speicheroperationen aus verschiedenen
Programmbefehlen resultieren. Eine Zentraleinheits-Speicher-
Operation umfaßt eine gleichzeitige Übertragung eines
Datenblockes sowohl in den Hauptspeicher als auch in den
Cachespeicher 40. Während des jeweiligen Ladens wird von
der Zentraleinheit eine absolute Adresse entweder als Adres
se in dem Hauptspeicher, in welchem der Datenblock zu
speichern ist, oder als Adresse in dem Hauptspeicher der
angeforderten Daten gebildet. Da jeder Datenblock in den
Cachespeicher 40 geladen wird, werden die 13 Bits höchster
Wertigkeit der absoluten Adresse für diese Daten gleich
zeitig in die Haupt-Adreßliste 54 geladen. Die Spalte
der Haupt-Adreßliste 54, in die diese Identifizierungs
adresse geladen wird, wird durch die Spaltenadressenbits
(13-21) der absoluten Adresse bestimmt, die in dem zweiten
Bereich der Cachespeicher-Adressenverriegelungsschaltung
56 gespeichert ist. Diese Bits werden dem Lese/Schreib-
Adresseneingang der Haupt-Adreßliste 54 über die Leitung
58 zugeführt. Die Ebene der ausgewählten Spalte, in der
die Identifizierungsadresse gespeichert wird bzw. ist,
wird durch die Cachespeicher-Steuereinrichtung 49 durch
das über die Leitung 59 abgegebene Ebenen-Abtastsignal
gesteuert. In entsprechender Weise wird der Block, in
welchem die eintreffenden Daten in dem Cachespeicher 40
gespeichert werden, über die Cachespeicher-Adressenleitung
44 gesteuert, die den zweiten Bereich der Cachespeicher-
Adressenverriegelungsschaltung 56 mit dem Lese/Schreib-
Adresseneingang des Cachespeichers 40 verbindet. Der Be
reich wird durch das auf der Leitung 45 von der Cachespeicher-
Steuereinrichtung 49 abgegebene Ebenen-Abtastsignal ge
steuert.
Die Wiedergewinnung von Daten aus dem Cachespeicher um
faßt einen Vergleich der Identifizierungsadressen der
von der Zentraleinheit angeforderten Daten mit den in
der Haupt-Adreßliste 54 enthaltenen Identifizierungs
adressen. Der zweite Bereich der Cachespeicher-Adressen
verriegelungsschaltung 56 vergleicht die Spaltenadresse
der angeforderten Daten; er ist mit dem Lese/Schreib-
Adresseneingang der Haupt-Adreßliste 54 über die Leitung
58 verbunden. Dadurch werden die in den vier Ebenen der
ausgewählten Spalte der Haupt-Adreßliste gespeicherten
Identifizierungsadressen über vier Datenausgangsleitungen
120 an die ersten Dateneingänge des Vergleichers 55 ab
gegeben. Die zweiten Dateneingänge des Vergleichers 55
sind über die Leitung 60 mit dem ersten Bereich der Cache
speicher-Adressenverriegelungseinrichtung 56 verbunden.
Der Vergleicher 55 vergleicht die Identifizierungsadresse
der erwünschten Daten mit den in den vier Ebenen der aus
gewählten Spalte gespeicherten Identifizierungsadressen;
er erzeugt ein die Übereinstimmung zwischen den miteinander
verglichenen Adressen angebendes Signal je Ebene, bezüglich
der eine Übereinstimmung festgestellt worden ist. Diese
Übereinstimmungssignale werden an die Cachespeicher-Steuer
einrichtung 49 abgegeben und von dieser dazu herangezogen,
das Blockauswahlsignal auf der Leitung 51 zu erzeugen.
Dieses Blockauswahlsignal aktiviert den zweiten Schalter
42 in einer solchen Art und Weise, daß die Daten in dem
Block und in dem Bereich entsprechend der Übereinstimmungs-
Ebene vom Datenausgang des Cachespeichers 40 zu der Daten
verriegelungseinrichtung 43 durchgeschaltet werden.
Bei Fehlen bzw. Ausbleiben eines Übereinstimmungssignals
von dem Vergleicher 55, erzeugt die Cachespeicher-Steuerein
richtung 49 ein Signal auf der Leitung 62. Dieses
Signal gibt der Anschlußsteuereinrichtung 63 an, daß das
Abtast-Unterbrechungssignal auf der Leitung 64 zu erzeugen
ist, damit der Hauptspeicher veranlaßt wird, die angefor
derten Daten abzurufen. Dieses Signal wird an die System
steuereinheiten abgegeben, die als Schnittstelleneinheiten
zwischen der Zentraleinheit und dem Hauptspeicher wirken.
Wenn die Daten aus dem Hauptspeicher abgeholt sind, treten
sie auf der Leitung 48 am Eingang des ersten Schalters 41
auf. Gleichzeitig werden die Daten über die Verlängerung
der Leitung 48 zu einem weiteren Dateneingang des zweiten
Schalters 42 übertragen. Wenn die Daten abgerufen worden
sind, wird das Signal DA über die Leitung 65 von der
Anschlußsteuereinrichtung 63 an die Cachespeicher-Steuer
einrichtung 49 ausgesendet. Die Cachespeicher-Steuerein
richtung schaltet dann die Daten auf der Leitung 48
über den zweiten Schalter 42 weiter, und zwar durch das
auf der Leitung 51 auftretende Blockauswahlsignal. Außer
dem bewirkt die betreffende Steuereinrichtung, daß diese
Daten in die Datenverriegelungsschaltung 43 durch das auf
der Leitung 43 auftretende Ladesignal geladen werden.
Schließlich erzeugt die betreffende Steuereinrichtung auf
der Leitung 66 ein Datenverfügbarkeitssignal, welches
der Zentraleinheit die Meldung gibt, daß die angeforderten
Daten nicht in der Datenverriegelungsschaltung 43 vor
handen sind.
Nunmehr sei angenommen, daß eine erfolglose Abrufoperation
erfolgt ist und daß die angeforderten Daten aus dem Haupt
speicher abgerufen worden sind und bereitstehen für die
Abspeicherung in dem Cachespeicher. Ihre entsprechende
Identifizierungsadresse steht für die Abspeicherung in
der Haupt-Adreßliste bereit. Die Spalten in der Haupt-
Adreßliste und des Cachespeichers, in denen diese beiden
Größen abgespeichert werden, werden durch den Spalten
adressenteil oder durch den zweiten Teil der Cachespeicher-
Adressenverriegelungsschaltung 56 festgelegt. Die Leitung
58 führt die Spaltenauswahlinformation zu der Haupt-Adreß
liste 54 hin, und die Leitung 44 überträgt dieselbe Infor
mation zu dem Cachespeicher 40. Eine Ebene in der Haupt-
Adreßliste sowie ein Bereich in dem Cachespeicher müssen
ebenfalls ausgewählt werden. Die durch das gerade erst
benutzte Hardware-Untersystem ausgeführte Prozedur besteht
darin, zunächst leere Ebenen zu ermitteln und dort die Daten
in dem Fall abzuspeichern, daß eine leere Ebene ermittelt
worden ist. Wenn keine leere Ebene vorhandene ist, legt
die Cachespeicher-Steuereinrichtung die gerade zuvor benutzte
Ebene fest und ersetzt die darin enthaltenen Daten durch
die aus dem Hauptspeicher abgeholten Daten. Eine statisti
sche Untersuchung zeigt daß ein derartiges Prinzip die
Gesamt-Arbeitsgeschwindigkeit der Zentraleinheit gegenüber
einem Umlauf-Verschiebungsprinzip erhöht, und zwar mit
Rücksicht darauf, daß der Anteil an erfolglosen Aufrufen
bei einer vorgegebenen Anzahl von Speicherzugriffen ver
mindert ist. Untersuchungen des Rechner-Programmbetriebs
zeigen, daß ein Datenwort, welches wesentlich häufiger
benutzt wird, als ein anderes Datenwort, eine höhere Wahr
scheinlichkeit dafür mit sich bringt, wiederverwendet zu
werden. Da die Speicherchips der Cachespeicheranordnung
schneller arbeiten als jene des Hauptspeichers, bedeutet
ein höheres Trefferverhältnis, daß ein schnellerer Be
trieb erzielt wird.
Das Hardware-Untersystem ist in
Fig. 4 im einzelnen veranschaulicht. Gemäß Fig. 2, 4 und
5 arbeitet das System wie folgt. Zunächst muß die Cache
speicher-Steuereinrichtung 49 eine Überprüfung vornehmen,
um festzustellen, ob irgendeine der Ebenen in der ausge
wählten Spalte der Haupt-Adreßliste 54 als leer markiert
ist. Zu diesem Zweck wird die Voll/Leer-Speicherreihe 66
abgeprüft. Bei der bevorzugten Ausführungsform ist diese
Einrichtung durch eine 4×512-Bit-RAM-Speichermatrix
mit wahlfreiem Zugriff gebildet. Der Schalter 67 ist
mit einem Ausgang an dem Adresseneingang der Voll/Leer-
Speichermatrix 66 angeschlossen, und mit einem weiteren
Ausgang ist er mit dem Dateneingang der Speichermatrix
verbunden. Die Eingangssignale dieses Schalters umfassen
ein Voll/Leer-Adressensignal, welches die Bits 13-21 der
in der Cachespeicher-Adressenverriegelungsschaltung 56
gespeicherten absoluten Adresse umfaßt. Diese Bits aus
dem zweiten Teil der Cachespeicher-Adressenverriegelungs
schaltung werden dem Schalter über die Leitung 69 zuge
führt. Dem anderen Eingang des Schalters wird das auf
der Leitung 68 von der Cachespeicher-Steuereinrichtung
abgegebene Löschsignal zugeführt. Dieses Signal besteht
aus zwei Teilen: 9 Bits, die festlegen, welche der 512
Zeilen der Voll/Leer-Speichermatrix zu adressieren ist,
und 2 Bits, die angeben, welches Bit in der ausgewählten
Zeile zu löschen ist. Der Zweck des Schalters 67 be
steht darin, entweder die Voll/Leer-Adresse oder das
Löschsignal zum Adresseneingang der Voll/Leer-Speicher
matrix durchzuschalten. Der Dateneingang der Voll/Leer-
Speichermatrix wird in einen solchen Zustand versetzt,
daß das ausgewählte Bit gelöscht wird.
Das Datenausgangssignal der Speichermatrix ist das auf
der Leitung 70 auftretende EBENE-F/E-Signal, welches
der Cachespeicher-Steuereinrichtung 49 zugeführt wird.
Jede Zeile in der Voll/Leer-Speichermatrix bzw. -Speicher
anordnung 66 entspricht einer Spalte der Haupt-Adreß
liste 54. Um eine Überprüfung bezüglich leerer Ebenen
einer bestimmten Spalte vorzunehmen, bewirkt die Cache
speicher-Steuereinrichtung 49 die Durchschaltung der auf
der Leitung 69 auftretenden Voll/Leer-Adresse über den
Schalter 67 zu dem Adresseneingang 71 der Voll/Leer-Speicher
anordnung. Die betreffende Speicheranordnung gibt dann
die Daten in der ausgewählten Zeile am Datenausgang wieder,
und zwar als das EBENE-F/E-Signal. Sodann wird der be
treffende Status jedes dieser vier Bits durch die Cache
speicher-Steuereinrichtung 49 gelesen, um zu bestimmen,
ob irgendeine Leerebene in den entsprechenden Spalten der
Haupt-Adreßliste 54 vorhanden ist. Wenn Leerebenen vor
handen sind, dann wird ein EBENE-Abtastsignal auf der
Leitung 59 erzeugt, um die Identifizierungsadresse in dem
ersten Teil der Cachespeicher-Adressenverriegelungsschal
tung 56 derart zu leiten, daß diese Adresse über die Lei
tung 57 in die Leerebene der Spalte abgegeben wird, die
durch die auf der Leitung 58 auftretende Adresse ausge
wählt ist.
Wenn nach Ausführung der obigen Maßnahme keine Leerebene
ermittelt worden ist, dann liest die Cachespeicher-
Steuereinrichtung 49 die LRU-Speichermatrix, um die gerade
erst benutzte Ebene zu bestimmen. Die LRU-Speichermatrix
ist eine 6×512-Bit-RAM-Speichermatrix mit wahlfreiem
Zugriff bei der bevorzugten Ausführungsform der Erfindung.
Der Zweck dieser Speichermatrix besteht darin, eine Viel
zahl von Bits zu speichern, die in codierter Form die
gerade erst benutzte Ebene der jeweiligen Spalte in der
Haupt-Adreßliste 54 angeben. Bei der bevorzugten Aus
führungsform der Erfindung sind 512 Zeilen vorgesehen,
deren jede einer bestimmten Spalte in der Haupt-Adreßliste
54 entspricht. Die sechs Bits in der jeweiligen Zeile
geben die Anzahl von Kombinationen an, wobei von vier Er
eignissen jeweils zwei auftreten. Jedes Bit gibt die rela
tive Zeit der letzten Verwendung zwischen zwei der vier
Ebenen in einer bestimmten Spalte der Haupt-Adreßliste 54
an.
Unter Bezugnahme auf Fig. 5 dürfte dieses Konzept der rela
tiven Verwendung vollständiger verstanden werden. Dabei
sind mehrere Bitmuster dargestellt, die verschiedene Ebenen
der Haupt-Adreßliste kennzeichnen, welche gerade erst
benutzt worden sind. Das erste Bit in jeder Zeile kenn
zeichnet den Status, wie zwischen den Ebenen A und B (oder
1 und 2) der Haupt-Adreßliste bzw. des Cachespeichers.
Du zweite Bit kennzeichnet den Status, wie zwischen den
Ebenen A und C, und das dritte Bit kennzeichnet den Status,
wie zwischen A und D, usw. Eine Null in irgendeiner be
stimmten Bitstelle der betreffenden ersten Ebene ist des
halb benutzt worden, weil die zweite Ebene als letzte
Ebene benutzt worden ist. Eine 1 kennzeichnet die umge
kehrte Situation. Demgemäß ist in der Zeile 1 des ange
gebenen Codes die Ebene A benutzt worden, da/seit die Ebene
B zuletzt benutzt worden ist; A ist benutzt worden, da/seit
C zuletzt benutzt worden ist, A ist gerade erst gegenüber
D benutzt worden, B ist gerade erst gegenüber C benutzt
worden, B ist gerade erst gegenüber D benutzt worden
bzw. C ist gerade erst gegenüber D benutzt worden. Dieser
Code gibt an, daß D die gerade erst benutzte Ebene be
zeichnet. Die zweite Code-Ebene gibt an, daß A die letzte
erst benutzte Ebene ist, da die Einsen in den ersten
drei Bitstellen bedeuten, daß A nicht benutzt worden ist, seit
bzw. da B oder C oder D zuletzt benutzt worden sind.
Jedesmal dann, wenn eine Übereinstimmung bezüglich einer
bestimmten Ebene ermittelt wird, wird der Code für die
betreffende Ebene aktualisiert, um anzuzeigen, daß diese
Ebene die gerade erst benutzte Ebene ist. Zu diesem
Zweck wird das geeignete Bitmuster in die drei Bitstellen
der LRU-Speichermatrix für die der betreffenden Spalte
entsprechende Zeile eingebracht. Das gespeicherte Bit
muster gibt den Status zwischen der Übereinstimmungs-
Ebene und allen übrigen Ebenen an. Demgemäß wird für eine
Übereinstimmung bezüglich der Ebene B eine Eins in die
Bits AB eingeführt, und eine Null wird in die Bits BC und
CD eingeführt. Dadurch ist angezeigt, daß die Ebene A
nicht benutzt worden ist, da/seit die Ebene B zuletzt benutzt
worden ist, und daß die Ebene B benutzt worden ist, da/seit
die Ebenen C und D zuletzt benutzt worden sind.
Die LRU-Bits werden bei einer erfolglosen Ansteuerung
des Cachespeichers ebenfalls aktualisiert, wobei jedoch
die Arbeitsablauffolge ein wenig verschieden ist von der
geschilderten Ablauffolge. Zunächst liest die Cachespeicher-
Steuereinrichtung 49 die Voll/Leer-Speichermatrix, um zu
bestimmen, ob dort Leerebenen in der ausgewählten Spalte
vorhanden sind. Wenn solche vorhanden sind, wird die
Leerebene aufgefüllt, und der LRU-Code wird aktualisiert,
um die gerade bzw. zuletzt benutzte Ebene zu markieren.
Wenn die Daten von dem Hauptspeicher her auftreten, werden
sie in demjenigen Bereich des Cachespeichers 40 gespeichert,
der der gerade erst benutzten Ebene entspricht. Die ent
sprechenden Identifizierungsadreßbits werden dann in der
gerade erst benutzten Ebene der Haupt-Adreßliste 54 ge
speichert, und die Cachespeicher-Steuereinrichtung 49 aktua
lisiert die LRU-Bits bezüglich der ausgewählten Spalte, um
die für die Speicherung benutzte Ebene als gerade benutzte
Ebene zu markieren.
Die Hardware für das LRU-System selbst ist einfach. Gemäß
Fig. 4 nimmt die LRU-Verriegelungseinrichtung 73 das
LRU-Adreßsignal (Bits 13-21) von dem zweiten Teil der in
der Cachespeicher-Adressenverriegelungsschaltung 56 ge
speicherten absoluten Adresse über die Leitung 74 auf.
Die LRU-Verriegelungsschaltung bzw. -Verriegelungsein
richtung dient dazu, die LRU-Adresse am Adresseneingang
75 der LRU-Speichermatrix 72 über die Leitung 76 aufrecht
zuerhalten. Das Datenausgangssignal der Speichermatrix
ist das LRU-Ebenen-Signal auf der Leitung 77, die mit der
Cachespeicher-Steuereinrichtung 49 verbunden ist. Die
Cachespeicher-Steuereinrichtung 49 speichert kurzzeitig
die sechs LRU-Bits für die adressierte Zeile in Hex-Flip-
Flops 78. Eine programmierbare Feld-Verknüpfungsanordnung
79 setzt bei einer erfolglosen Ansteuerung des Cachespei
chers - was durch das auf der Leitung 81 auftretende
Block-Ladesignal signalisiert wird - die sechs LRU-Bits
in die auf der Busleitung 59 auftretenden EBENEN-Abtast
signale um. Wenn das auf der Leitung 70 auftretende
EBENEN-F/E-Signal anzeigt, daß eine Leerebene vorhanden
ist, dann leiten die auf der Busleitung 59 auftretenden
EBENEN-Abtastsignale jedoch die abgerufenen Daten zu
der Leerebene hin. Durch die FPLA-Einrichtung werden
außerdem die LRU-Bits aktualisiert, die der Ebene ent
sprechen, in der gerade eingespeichert worden ist. Diese
Aktualisierung wird dadurch erreicht, daß das in Frage
kommende Bitmuster in die LRU-Speichermatrix durch die
auf der Busleitung 80 auftretenden LRU-Datenaktualisie
rungssignale eingeschrieben wird. Die LRU-Bits für die
beeinflußte Speicherspalte werden dann anzeigen, daß
diese Ebene die gerade erst benutzte Ebene ist. Das
auf der Leitung 59 auftretende EBENEN-Abtastsignal wird
irgendeiner leeren Ebene zugeführt, wenn
das auf der Leitung 70 auftretende EBENEN-F/E-Signal
anzeigt, daß irgendwelche leeren Ebenen vorhanden sind.
Die programmierbare Feld-Verknüpfungsanordnung 79 wird
darüber informiert, daß eine erfolglose Ansteuerung vor
gelegen hat, und zwar durch das auf der Leitung 81 auf
tretende Blockladesignal. Dieses Signal rührt von einem
Treffer/Fehler-Identifizierungskennzeichen in einem anderen
Teil der nicht näher dargestellten Cachespeicher-Steuer
einrichtung.
Die auf der Leitung 82 auftretenden Chip-Auswahlausgangs
signale werden von der FPLA-Anordnung dazu herangezogen,
individuelle Speicherchips der LRU-Speicheranordnung aus
zuwählen.
Die auf den Leitungen 83 und 84 auftretenden Freigabesignale
1 bzw. 2 stellen die Chip-Auswahlsignale für die beiden
individuellen FPLA-Chips dar, welche die in Fig. 4 darge
stellte FPLA-Anordnung 79 bilden. Diese Signale stammen
von anderen Teilen der Cachespeicher-Steuereinrichtung.
Wenn eine Übereinstimmung vorliegt bzw. ermittelt worden
ist, dann werden die auf der Leitung 85 auftretenden Über
einstimmungs-Signale in die FPLA-Einrichtung eingegeben
und in das in Frage kommende LRU-Aktualisierungs-Bitmuster
auf der Leitung 80 umgesetzt, um die LRU-Bits bezüglich
der Übereinstimmungs-Ebene zu aktualisieren und um damit
diese Ebene als die gerade erst benutzte Ebene zu markieren.
In Fig. 6 ist ein Verknüpfungsdiagramm des internen Aufbaus
des FPLA-Chips 79 gezeigt. Jedes Chip weist 16 Eingänge
und 8 Ausgänge auf. Jeder Ausgang stellt die programmier
bare ODER-Funktion von bis zu 48 programmierbaren UND-
Funktionen dar, wobei die ODER-Glieder 86 und 87 zwei der
acht ODER-Glieder mit 48 Eingängen in dem Chip darstellen.
Jeder Eingang des jeweiligen ODER-Gliedes ist über eine
schmelzbare Verbindung mit dem Ausgang eines der 48 UND-
Glieder verbunden. Jedes UND-Glied weist 32 Eingänge auf,
mit denen es über eine schmelzbare Verbindung mit Schal
tungspunkten verbunden ist, denen die invertierten bzw.
nicht-invertierten Formen jedes der 16 Eingangssignale
zugeführt werden. Durch selektives Zerstören gewisser
schmelzbarer Verbindungen innerhalb des FPLA-Chips kann
ein schnelles und billiges Prioritätsnetzwerk hergestellt
werden.
In Fig. 7 und 8 sind die Wertetabellen der FPLA-Chips
79 in der Cachespeicher-Steuereinrichtung 49 veranschau
licht, aus denen die Booleschen Gleichungen abgeleitet
werden können, die dazu herangezogen werden, die zu zer
störende Verbindung auszuwählen. Die drei Bereiche
auf der linken Seite der in Fig. 8 dargestellten Werte
tabelle sind mit HIT, mit LRU bzw. mit HCLR bezeichnet,
wodurch die Funktionen gekennzeichnet sind, die der Ver
arbeitung eines Treffers bzw. einer erfolgreichen An
steuerung in irgendeiner Ebene, der Bestimmung der gerade
erst benutzten Ebene und der vollständigen Löschung des
Cachespeichers unter gewissen Voraussetzungen entsprechen.
Um die Wertetabelle zu verstehen, muß berücksichtigt
werden, daß der Cachespeicher in zwei Hälften unterteilt
ist, wobei die Ebenen A und B die erste Hälfte bilden
und wobei die Ebenen C und D die zweite Hälfte bilden.
Diese Anordnung ermöglicht der Zentraleinheit, jede Hälfte
des Cachespeichers unabhängig von der anderen Hälfte aus
zunutzen, so daß Operationen im Fall eines Fehlers in einer
Hälfte des Cachespeichers fortgesetzt werden können. So
enthält die Funktionszeile Null in Fig. 8 bezüglich der
Ausgangsfunktion Nummer 1 bei einem Treffer in der Ebene A
lediglich einen hohen Pegel für das Bit S1/2. Die Eingangs
größen für diese Funktion zeigen, daß der Lade-Block und
der Freigabe-Block zwei Blöcke sind, die in dem NICHT-Zustand
bzw. negierten Zustand sind und daß das Freigabe-Signal
1 mit hohem Pegel auftritt. Ferner ist ein Treffer in der
Ebene A vorhanden, was durch den niedrigen Pegel am Treffer
1-Eingang angezeigt wird. Dieses Eingangssignalmuster zeigt
an, daß die erste Hälfte des Cachespeichers benutzt wird
und daß in der Ebene A ein Treffer vorhanden ist. Demge
mäß wird die Funktion der FPLA-Chips die Ebene 1 gegenüber
der Ebene B zu aktualisieren haben, und zwar als gerade erst
benutzte Ebene. Das Muster der Ausgangssignale für diesen
Zweck weist folgende Zusammensetzung auf. Aus der Zeile
Null in Fig. 7 und 8 geht hervor, daß die Ausgangsfunktionen
für die beiden FPLA-Chips bei sämtlichen sechs Chip-Aus
wahlausgängen mit niedrigem Pegel auftreten. Diese Signale
geben sämtliche Speicherchips der LRU-Speicheranordnung
frei. Außerdem tritt das Bit S1/2 der Ausgangsfunktion
Nummer 1 gemäß Fig. 8 mit hohem Pegel auf. Dieser hohe Pegel
zeigt an, daß die Ebene A gerade erst benutzt worden ist
und nicht die Ebene B; dies wird in der LRU-Speicheranord
nung 72 gemäß Fig. 4 über die Busleitung 80 festgehalten.
In der Zeile 4 der Fig. 7 und 8 ist der Fall veranschaulicht,
daß beide Hälften des Cachespeichers in Betrieb sind. Das
Blockladesignal tritt mit niedrigem Pegel auf, wodurch ange
zeigt wird, daß ein Treffer aufgetreten ist. Das Freigabe-
Signal 1 und das Freigabe-Signal 2 treten jeweils mit
hohem Pegel auf, wodurch angezeigt wird, daß beide Hälften
des Cachespeichers in Betrieb sind. Der niedrige Pegel
am Eingang Treffer 1 zeigt einen Treffer in der Ebene A an.
Die drei hohen Signalpegel bezüglich der Bits S1/2, S1/3
und S1/4 zeigen an, daß die Ebene A benutzt worden ist,
da die Ebenen B, C und D zuletzt benutzt worden sind. Es
sei hier darauf hingewiesen, daß bei der Erläuterung der
Fig. 5 als Beispiel der LRU-Codierung eine Null benutzt
worden ist, um anzuzeigen, daß eine Ebene benutzt worden
ist, da die andere Ebene zuletzt benutzt worden ist. Es
ist vollständig willkürlich, ob eine Null oder eine Eins
für diesen Zustand ausgewählt wird.
Die Multiprozessorsysteme sind für einen hohen Durchsatz
ausgelegt. Bei derartigen Anordnungen kann ein Prozessor
in dem System den Datenaustausch in bzw. mit dem Haupt
speicher vornehmen, wobei die Daten gleichzeitig in dem
Cachespeicher eines oder mehrerer der anderen Personen
gespeichert werden. In einem derartigen Falle kann ein
Systemfehler dann auftreten, wenn ein Prozessor mit den
in seinem Cachespeicher enthaltenen ungültigen Daten
sich auf diese Daten bei seinen Operationen bezieht. Um
das Auftreten derartiger Systemfehler zu vermeiden, ohne
die Cachespeicher-Zugriffsoperationen zu verlangsamen,
wird eine selektiv wirkende Löschanordnung gemäß der
vorliegenden Erfindung benutzt. Wie oben erwähnt, ist
bei den bisher bekannten Systemen eine Löschanordnung
verwendet worden, die den gesamten Cachespeicher unter
bestimmten Bedingungen gelöscht hat, wenn einige Daten
in dem Cachespeicher durch einen anderen Prozessor un
gültig gemacht sein konnten. Durch Löschen lediglich
derjenigen Speicherplätze, die ungültige Daten enthalten,
kann dieses übermäßige Löschen vermieden werden.
Bekannt ist bisher zwar eine selektiv arbeitende Lösch
anordnung, jedoch nicht in Verbindung mit einem LRU-Unter
system. Das in Fig. 2 dargestellte selektiv wirkende
Löschungs-Untersystem umfaßt die Doppel-Adreßliste 95,
den Vergleicher 96 und die diesen Einrichtungen zugehörigen
Eingabe- und Ausgabe-Stapelspeicher. Die Doppel-Adreß
liste 95 ist in derselben Art und Weise organisiert, wie
die Haupt-Adreßliste 54. Sie enthält Doppel-Identifizie
rungsadressen für sämtliche in dem Cachespeicher 40 ge
speicherten Daten. Diese Identifizierungsadressen werden
in die Doppel-Adreßliste 95 zu der gleichen Zeit geladen,
zu der sie in die Haupt-Adreßliste 54 geladen werden.
Dies erfolgt über die Leitung 97, den Puffer 98 und
den Schreib-Stapelspeicher 99. Die Leitung 97 verbindet
die ersten und zweiten Bereiche der Cachespeicher-Adressen
verriegelungsschaltung 56 mit dem Puffer 98. Dies be
deutet, daß dadurch der Puffer 98 mit den Bits 0-21 der
absoluten Adresse bezüglich der angeforderten Daten ge
laden wird. Der Puffer 98 hält diese Adresse so lange
fest, bis sie in dem Schreib-Stapelspeicher 99 ge
speichern werden kann. Der Schreib-Stapelspeicher weist
zwei Ausgänge auf, wodurch jede gespeicherte Adresse in
zwei Komponenten aufgeteilt wird. Der erste Ausgang
führt die Identifizierungsadreßbits 0-12 des Datenein
gangssignals der Doppel-Adreßliste 95 über die Leitung
100 ab. Der zweite Ausgang gibt die Doppel-Spaltadresse
oder -Bits 13-21 der absoluten Adresse an den Adressen
eingang der Doppel-Adreßliste 95 über die Leitung 101
ab. Das auf der Leitung 102 von der Cachespeicher-Steuer
einrichtung 49 abgegebene Doppel-Ebenenabtastsignal dient
dazu, die Identifizierungsadreßbits in die richtige Ebene
der Spalte innerhalb der Doppel-Adreßliste 95 einzu
leiten, welche Ebene durch das auf der Leitung 101 auf
tretende Doppel-Spaltenadreßsignal ausgewählt ist.
Um die Speicherstellen zu kennzeichnen, in denen die Daten
geändert sind, ist es notwendig, die absoluten Adressen
aller derjenigen Datenposten in dem Hauptspeicher zu kennen,
die durch andere Prozessoren geändert worden sind. Diese
Änderungs-Kennzeichnungsadressen gelangen über die Leitung
103 zu dem Puffer 104. Die betreffenden Adressen werden
in einem Änderungs-Kennzeichnungsstapelspeicher 105 ge
speichert, so daß die Verarbeitung dieser Adressen asynchron
mit der Verarbeitung und mit den anderen Teilen des Cache
speichers erfolgen kann. Der Änderungs-Kennzeichnungsstapel
speicher 105 weist ebenfalls zwei Ausgänge auf, und zwar
zum Zwecke der Aufteilung der Adresse in zwei Komponenten.
Das erste auf der Leitung 106 auftretende Ausgangssignal
führt die Identifizierungsadreßbits 0-12 der geänderten
Adresse einem ersten Dateneingang des Vergleichers 96
zu. Das auf der Leitung 101 auftretende zweite Ausgangs
signal führt die Spaltenadreßbits 13-21 dem Adresseneingang
der Doppel-Adreßliste 95 zu. Da jede Änderungs-Kennzeich
nungsadresse aus dem Stapelspeicher 105 heraus verarbeitet
wird, wählen somit die Bits 13-21 dieser Adresse eine be
stimmte Spalte der Doppel-Adreßliste 95 für die Über
prüfung aus. Die Identifizierungsadressen in den vier
Ebenen der betreffenden Spalte sind mit den zwei Daten
eingängen des Vergleichers 96 über die Leitungen 107 ver
bunden. Der Vergleicher vergleicht diese Identifizierungs
adressen mit der Identifizierungsadresse der Änderungs-
Kennzeichnungsadresse. Wenn eine Übereinstimmung ermittelt
wird, wird die Übereinstimmungs-Identifizierungsadresse
an den die geänderten Spalten betreffenden Stapelspeicher
108 als Doppel-Übereinstimmungssignal über die Leitung
109 abgegeben. Der betreffende Stapelspeicher 108 speichert
diese Identifizierungsadresse und die Bits 13-21 der Ände
rungs-Kennzeichnungsadresse auf der Leitung 101. Die beiden
Komponenten werden dann als eine Adresse gespeichert. Die
Cachespeicher-Steuereinrichtung 49 liest die geänderten
Adressen über die Leitung 110 und erzeugt aus dieser Infor
mation das auf der Leitung 68 auftretende Löschsignal.
Das Löschsignal wird dazu herangezogen, das Bit in der
Voll/Leer-Speicheranordnung 66 zu löschen, welches der
Ebene in der Haupt-Adreßliste 54 entspricht, die auf un
gültige Daten in dem Cachespeicher 40 hinzeigt.
Claims (6)
1. Multiprozessor-Datenverarbeitungsanlage mit
- - einem Hauptspeicher
- - einer Cachespeichereinrichtung
- - einer Cachespeicher-Steuereinrichtung und
- - mehreren zentralen Operationseinheiten,
wobei - - die zentralen Operationseinheiten Adressen von Speicher plätzen im Hauptspeicher bereitstellen, in denen Daten einheiten gespeichert sind, die von den zentralen Opera tionseinheiten zur Verarbeitung angefordert werden,
- - die Cachespeichereinrichtung einen adressierbaren Cachespeicher (40) zur Speicherung von Dateneinheiten, die Kopien von im Hauptspeicher gespeicherten Daten einheiten sind, in adressierbaren Speicherplätzen aufweist,
- - die Cachespeichereinrichtung ferner einen adressier
baren Adreßlistenspeicher (54) zur Speicherung von
ersten Adreßteilen der Hauptspeicheradressen aufweist, in denen
diejenigen Dateneinheiten gespeichert sind, von denen
Kopien in entsprechend adressierbaren Speicherplätzen
des Cachespeichers (40) gespeichert sind,
ferner mit - - einem Vergleicher (55) zum Vergleich von ersten Adreß teilen, die vom Adreßlistenspeicher (54) geliefert wer den, wenn dieser durch eine Hauptspeicheradresse mit einen zweite Adreßteil dieser Adresse adressiert wird, und zur Erzeugung eines Signals, das angibt, ob einer der vom Adreßlistenspeicher gelieferten ersten Adreßteile mit dem ersten Adreßteil der verwendeten Hauptspeicher adresse übereinstimmt oder nicht,
wobei ein vom Vergleicher (55) ausgesendetes Signal, das keine
Übereinstimmung zwischen dem ersten Adreßteil des Adreßlisten
speichers mit dem ersten Adreßteil einer zu einem aktuellen
Zugriff verwendeten Hauptspeicheradresse signalisiert, die
Cachespeicher-Steuereinrichtung so steuert, daß die Übertra
gung der verlangten Dateneinheit aus dem Hauptspeicher ver
anlaßt wird, und
- - einer ersten Speichereinrichtung (72) zur Speicherung von
Informationen über den Zeitpunkt des letzten Ansprechens der
Speicherstellen des Adreßlistenspeichers (54),
dadurch gekennzeichnet, daß - - jeder zentralen Operationseinheit eine eigene Cachespeicher einrichtung zugeordnet ist,
- - die erste Speichereinrichtung (72) für jede adressierbare, n Speicherebenen (A-D) aufweisende Speicherstelle des Adreßlisten speichers (54) jeweils die älteste benutzte (LRU) Speicher ebene angibt,
- - eine zweite Speichereinrichtung (66) zur Speicherung von In formationen für jede adressierbare Adreßlistenspeicherstelle über die Gültigkeit des Inhalts von jeder Speicherebene (A-D) vorgesehen ist,
- - die Cachespeicher-Steuereinrichtung (49) eine Schaltungsan ordnung (78, 79) zur Erfassung der LRU-Ebenen-Information aufweist, die in der ersten Speichereinrichtung (72) für diejenige Adreßlistenspeicherstelle gespeichert ist, die durch die aktuelle Hauptspeicheradresse adressiert wird,
- - die erste Speichereinrichtung (72) bezüglich der
LRU-Ebenen-Information für diejenige Adreßspeicherstelle, die
den ersten Adreßteil abgespeichert, von der Cachespeicher-Steuereinrichtung
(49) eine Aktualisierungsinformation geliefert bekommt,
wobei - - die Cachespeicher-Steuereinrichtung (49) nach Erhalt einer Hauptspeicheradresse, in die durch Veranlassung einer fremden zentralen Operationseinheit in ihrem Cachespeicher eine Dateneinheit eingeschrieben worden ist, die Information in der zweiten Speichereinrichtung (66) ändert, um an zuzeigen, daß die im eigenen Cachespeicher (40) gespeicherte Dateneinheit ungültig ist, wenn der entsprechende erste Adreßteil dieser Dateneinheit im Adreßlistenspeicher (54) mit dem ersten Adreßteil der Hauptspeicheradresse über einstimmt,
- - die Cachespeicher-Steuereinrichtung (49) vor der Er
fassung der LRU-Ebenen-Information
- - wenn eine angeforderte Dateneinheit vom Hauptspeicher erhalten wird und
- - wenn der Vergleicher (55) keine Übereinstimmung bei einem durch die eigene zentrale Operationseinheit veran laßten Speicherzugriff signalisiert,
- die Gültigkeitsinformation detektiert die in der zweiten Speichereinrichtung (66) zur Adreßlistenspeicherstelle, die durch die aktuelle Hauptspeicheradresse adressiert ist, abgespeichert ist, und
- - die Cachespeicher-Steuereinrichtung (49) dann, wenn
irgendeine Ebene der Adreßspeicherstelle als ungültig
(leer) angegeben wird, veranlaßt, daß
- - der erste Adreßteil der zu einem aktuellen Haupt speicherzugriff verwendeten Adresse in der ungülti gen (leeren) Ebene des Adreßlistenspeichers (54) und
- - die vom Hauptspeicher erhaltene Dateneinheit in der entsprechenden Ebene des Cachespeichers (40)
- abgespeichert werden.
2. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 1,
dadurch gekennzeichnet, daß jeder zentralen Operationseinheit
eine eigene, als Speichermatrix mit wahlfreiem Zugriff ausge
bildete zweite Speichereinrichtung (66) zugeordnet ist mit
mehreren jeweils einer bestimmten Ebene (A-D) des Adreß
listenspeichers (54) zugeordneten F/E-Bits, die in einem ersten Binär
zustand (F) für die zugehörige Speicherebene den Zustand
"Voll" und in einem zweiten Binärzustand (E) den Zustand
"Leer" angibt.
3. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 2,
dadurch, gekennzeichnet, daß die zweite Speicherein
richtung (66) auf von der Cachespeicher-Steuereinrichtung (49)
generierbare Löschsignale anspricht, durch die die
Leer-Anzeige eines F/E-Bits immer dann eingestellt wird, wenn
die im Cachespeicher (40) enthaltenen, der betreffenden Spei
cherebene entsprechenden Dateneinheiten nicht mehr mit den
Dateneinheiten in entsprechenden Hauptspeicherplätzen iden
tisch sind.
4. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 3,
dadurch gekennzeichnet, daß zur Erzeugung der Löschsignale
eine mit der Cachespeicher-Steuereinrichtung (49) verbundene
Doppeladreßlisten-Speichereinrichtung (95) vorgesehen ist,
die in derselben Weise organisiert ist wie der genannte
Adreßlistenspeicher (54) und einen Doppelsatz des im Adreß
listenspeicher (54) gespeicherten ersten Adreßteils
beinhaltet.
5. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 4,
dadurch gekennzeichnet, daß die Doppeladreßlisten-Speicher
einrichtung (95) Schreibkennzeichnungsadressen von fremden
zentralen Operationseinheiten empfängt,
wobei diese Schreibkennzeichnungsadressen diejenigen Daten
einheiten kennzeichnen, die im Hauptspeicher (20) geändert
worden sind, wobei diese Schreibkennzeichnungsadressen mit
den ersten Adreßteilen der in dem eigenen Cachespeicher
(40) gespeicherten Dateneinheiten verglichen werden und wobei
bei einer festgestellten Übereinstimmung die genannten Lösch
signale zum Einstellen der F/E-Bits in der zweiten Speicher
einrichtung (66) erzeugt werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/114,854 US4322795A (en) | 1980-01-24 | 1980-01-24 | Cache memory utilizing selective clearing and least recently used updating |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3102150A1 DE3102150A1 (de) | 1981-12-17 |
DE3102150C2 true DE3102150C2 (de) | 1994-04-28 |
Family
ID=22357797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3102150A Expired - Fee Related DE3102150C2 (de) | 1980-01-24 | 1981-01-23 | Multiprozessor-Datenverarbeitungsanlage |
Country Status (7)
Country | Link |
---|---|
US (1) | US4322795A (de) |
JP (1) | JPS56114187A (de) |
AU (1) | AU540144B2 (de) |
CA (1) | CA1161172A (de) |
DE (1) | DE3102150C2 (de) |
FR (1) | FR2474721B1 (de) |
GB (1) | GB2068155B (de) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55134459A (en) * | 1979-04-06 | 1980-10-20 | Hitachi Ltd | Data processing system |
US4390943A (en) * | 1979-12-26 | 1983-06-28 | Honeywell Information Systems Inc. | Interface apparatus for data transfer through an input/output multiplexer from plural CPU subsystems to peripheral subsystems |
US4386402A (en) * | 1980-09-25 | 1983-05-31 | Bell Telephone Laboratories, Incorporated | Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack |
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
US4433374A (en) * | 1980-11-14 | 1984-02-21 | Sperry Corporation | Cache/disk subsystem with cache bypass |
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
US4414644A (en) * | 1981-04-03 | 1983-11-08 | International Business Machines Corporation | Method and apparatus for discarding data from a buffer after reading such data |
US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
US4525777A (en) * | 1981-08-03 | 1985-06-25 | Honeywell Information Systems Inc. | Split-cycle cache system with SCU controlled cache clearing during cache store access period |
US4481570A (en) * | 1981-08-07 | 1984-11-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic multi-banking of memory for microprocessors |
US4467416A (en) * | 1981-09-16 | 1984-08-21 | Honeywell Information Systems Inc. | Logic transfer and decoding system |
US4460959A (en) * | 1981-09-16 | 1984-07-17 | Honeywell Information Systems Inc. | Logic control system including cache memory for CPU-memory transfers |
US4458310A (en) * | 1981-10-02 | 1984-07-03 | At&T Bell Laboratories | Cache memory using a lowest priority replacement circuit |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
DE3376590D1 (en) * | 1982-04-28 | 1988-06-16 | Int Computers Ltd | Data processing system |
US4494190A (en) * | 1982-05-12 | 1985-01-15 | Honeywell Information Systems Inc. | FIFO buffer to cache memory |
US4511994A (en) * | 1982-09-27 | 1985-04-16 | Control Data Corporation | Multi-group LRU resolver |
US4897783A (en) * | 1983-03-14 | 1990-01-30 | Nay Daniel L | Computer memory system |
US4603380A (en) * | 1983-07-01 | 1986-07-29 | International Business Machines Corporation | DASD cache block staging |
DE3502147A1 (de) * | 1984-01-23 | 1985-08-08 | Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung |
EP0153109B1 (de) * | 1984-02-10 | 1991-04-17 | Prime Computer, Inc. | Cache-Kohärenz-Anordnung |
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
EP0173556A3 (de) * | 1984-08-31 | 1987-05-27 | Texas Instruments Incorporated | Hierarchische Architektur zur Bestimmung von dem am wenigsten kürzlich benutzten Cachespeicher |
US4648033A (en) * | 1984-09-07 | 1987-03-03 | International Business Machines Corporation | Look-aside buffer LRU marker controller |
US4847804A (en) * | 1985-02-05 | 1989-07-11 | Digital Equipment Corporation | Apparatus and method for data copy consistency in a multi-cache data processing unit |
JP2539357B2 (ja) * | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
EP0203601B1 (de) * | 1985-05-29 | 1992-08-05 | Kabushiki Kaisha Toshiba | Cache-Anordnung mit einem LRU-Verfahren und Magnetscheibensteuereinrichtung mit einer solchen Anordnung |
US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
US4875155A (en) * | 1985-06-28 | 1989-10-17 | International Business Machines Corporation | Peripheral subsystem having read/write cache with record access |
US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
FR2590699B1 (fr) * | 1985-11-25 | 1994-07-01 | Nec Corp | Systeme assurant la coherence pour les contenus d'une antememoire |
US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
US5146604A (en) * | 1986-06-06 | 1992-09-08 | Canon Kabushiki Kaisha | Information filing apparatus that stores and erases information based on frequency of its use |
GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
JPS63257854A (ja) * | 1987-04-15 | 1988-10-25 | Nec Corp | Lruメモリ障害検出回路 |
US4833601A (en) * | 1987-05-28 | 1989-05-23 | Bull Hn Information Systems Inc. | Cache resiliency in processing a variety of address faults |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5341483A (en) * | 1987-12-22 | 1994-08-23 | Kendall Square Research Corporation | Dynamic hierarchial associative memory |
US5226039A (en) * | 1987-12-22 | 1993-07-06 | Kendall Square Research Corporation | Packet routing switch |
US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
US5761413A (en) * | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
NL8800858A (nl) * | 1988-04-05 | 1989-11-01 | Philips Nv | Rekenmachinesysteem voorzien van een hoofdbus en een tussen processor en geheugen direkt verbonden extra kommunikatielijn. |
US5140690A (en) * | 1988-06-14 | 1992-08-18 | Mitsubishi Denki Kabushiki Kaisha | Least-recently-used circuit |
EP0366323A3 (de) * | 1988-10-28 | 1991-09-18 | Apollo Computer Inc. | Warteschlange zur Duplikatetikettenspeicherinvalidation |
US5226146A (en) * | 1988-10-28 | 1993-07-06 | Hewlett-Packard Company | Duplicate tag store purge queue |
JPH02148235A (ja) * | 1988-11-30 | 1990-06-07 | Toshiba Corp | データ退避方式 |
US5224217A (en) * | 1988-12-30 | 1993-06-29 | Saied Zangenehpour | Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement |
US5060136A (en) * | 1989-01-06 | 1991-10-22 | International Business Machines Corp. | Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first |
US5161219A (en) * | 1989-01-13 | 1992-11-03 | International Business Machines Corporation | Computer system with input/output cache |
JPH0348951A (ja) * | 1989-07-18 | 1991-03-01 | Fujitsu Ltd | アドレスモニタ装置 |
US5043885A (en) * | 1989-08-08 | 1991-08-27 | International Business Machines Corporation | Data cache using dynamic frequency based replacement and boundary criteria |
EP0419961A3 (en) * | 1989-09-26 | 1991-10-23 | Siemens Aktiengesellschaft | Method and circuit for replacement control, particularly for a system containing digital memory elements |
US5109496A (en) * | 1989-09-27 | 1992-04-28 | International Business Machines Corporation | Most recently used address translation system with least recently used (LRU) replacement |
US5153595A (en) * | 1990-03-26 | 1992-10-06 | Geophysical Survey Systems, Inc. | Range information from signal distortions |
CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
EP0463967A3 (en) * | 1990-06-29 | 1993-02-24 | Digital Equipment Corporation | Cache set selection for high-performance processor |
CA2078312A1 (en) | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
CA2078310A1 (en) * | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital processor with distributed memory system |
US5384713A (en) * | 1991-10-23 | 1995-01-24 | Lecroy Corp | Apparatus and method for acquiring and detecting stale data |
US5345582A (en) * | 1991-12-20 | 1994-09-06 | Unisys Corporation | Failure detection for instruction processor associative cache memories |
EP0553743A1 (de) * | 1992-01-31 | 1993-08-04 | Motorola, Inc. | Cachespeichersteuerungseinrichtung |
JPH0756815A (ja) * | 1993-07-28 | 1995-03-03 | Internatl Business Mach Corp <Ibm> | キャッシュ動作方法及びキャッシュ |
US5898854A (en) * | 1994-01-04 | 1999-04-27 | Intel Corporation | Apparatus for indicating an oldest non-retired load operation in an array |
JP3030229B2 (ja) * | 1994-06-20 | 2000-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを転送する方法及びデータ記憶システム |
US5606688A (en) * | 1994-08-31 | 1997-02-25 | International Business Machines Corporation | Method and apparatus for dynamic cache memory allocation via single-reference residency times |
US6016535A (en) * | 1995-10-11 | 2000-01-18 | Citrix Systems, Inc. | Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks |
US6081623A (en) * | 1995-10-11 | 2000-06-27 | Citrix Systems, Inc. | Method for lossless bandwidth compression of a series of glyphs |
US5845317A (en) * | 1995-11-17 | 1998-12-01 | Micron Technology, Inc. | Multi-way cache expansion circuit architecture |
US5913216A (en) * | 1996-03-19 | 1999-06-15 | Lucent Technologies, Inc. | Sequential pattern memory searching and storage management technique |
US5765192A (en) * | 1996-05-01 | 1998-06-09 | Sun Microsystems, Inc. | Method and computer program product to reuse directory search handles |
US6057857A (en) | 1996-06-12 | 2000-05-02 | Citrix Systems, Inc. | Method for the lossless compression of lines in a distributed computer system |
US5961632A (en) * | 1996-07-25 | 1999-10-05 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes |
US5822759A (en) * | 1996-11-22 | 1998-10-13 | Versant Object Technology | Cache system |
US6032233A (en) * | 1997-06-27 | 2000-02-29 | International Business Machines Corporation | Storage array allowing for multiple, simultaneous write accesses |
US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
US6256712B1 (en) | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
US6343350B1 (en) * | 1998-02-13 | 2002-01-29 | International Business Machines Corporation | Conserving storage space by means of low resolution objects |
US7490166B2 (en) * | 2000-05-26 | 2009-02-10 | Citrix Systems, Inc. | Remote control of a client's off-screen surface |
US6856651B2 (en) * | 2000-07-25 | 2005-02-15 | Peribit Networks, Inc. | System and method for incremental and continuous data compression |
ATE397346T1 (de) * | 2000-07-25 | 2008-06-15 | Juniper Networks Inc | Netzwerkarchitektur und verfahren zur transparenten online-querschnittskodierung und zum transport von netzwerkkommunikationsdaten |
JP2003167751A (ja) * | 2001-04-24 | 2003-06-13 | Ricoh Co Ltd | プロセッサ処理方法およびプロセッサシステム |
WO2003019870A2 (en) * | 2001-08-24 | 2003-03-06 | Peribit Networks, Inc. | Dynamic multi-point meshed overlay network |
US20030084249A1 (en) * | 2001-10-31 | 2003-05-01 | Johnson David J.C. | Preemptive eviction of stale entries is a computer cache by use of age-bits |
US6826656B2 (en) * | 2002-01-28 | 2004-11-30 | International Business Machines Corporation | Reducing power in a snooping cache based multiprocessor environment |
US7130931B2 (en) * | 2003-06-18 | 2006-10-31 | International Business Machines Corporation | Method, system, and article of manufacture for selecting replication volumes |
JP4327669B2 (ja) * | 2004-06-29 | 2009-09-09 | 徳元 王 | キャッシュ装置及び方法 |
US20060031639A1 (en) * | 2004-08-06 | 2006-02-09 | International Business Machines Corporation | Write unmodified data to controller read cache |
US8171169B2 (en) * | 2005-03-14 | 2012-05-01 | Citrix Systems, Inc. | Method and apparatus for updating a graphical display in a distributed processing environment |
US8423673B2 (en) | 2005-03-14 | 2013-04-16 | Citrix Systems, Inc. | Method and apparatus for updating a graphical display in a distributed processing environment using compression |
US8325795B1 (en) | 2008-12-01 | 2012-12-04 | Adobe Systems Incorporated | Managing indexing of live multimedia streaming |
US8782143B2 (en) * | 2008-12-17 | 2014-07-15 | Adobe Systems Incorporated | Disk management |
EP2598998A4 (de) * | 2010-07-27 | 2014-10-15 | Freescale Semiconductor Inc | Vorrichtung und verfahren zur minimierung von prozessorlatenz |
US9965607B2 (en) * | 2012-06-29 | 2018-05-08 | Apple Inc. | Expedited biometric validation |
CN104781797B (zh) | 2012-09-14 | 2017-05-31 | 英派尔科技开发有限公司 | 多处理器架构中的高速缓存一致性目录 |
US9158689B2 (en) | 2013-02-11 | 2015-10-13 | Empire Technology Development Llc | Aggregating cache eviction notifications to a directory |
US9928355B2 (en) | 2013-09-09 | 2018-03-27 | Apple Inc. | Background enrollment and authentication of a user |
GB2521227B (en) * | 2013-12-16 | 2020-11-25 | Advanced Risc Mach Ltd | Invalidation of index items for a temporary data store |
US10901908B2 (en) | 2019-01-16 | 2021-01-26 | International Business Machines Corporation | Storing data into a memory |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3786427A (en) * | 1971-06-29 | 1974-01-15 | Ibm | Dynamic address translation reversed |
US3866183A (en) * | 1973-08-31 | 1975-02-11 | Honeywell Inf Systems | Communications control apparatus for the use with a cache store |
US3845474A (en) * | 1973-11-05 | 1974-10-29 | Honeywell Inf Systems | Cache store clearing operation for multiprocessor mode |
US3949368A (en) * | 1974-01-23 | 1976-04-06 | Data General Corporation | Automatic data priority technique |
JPS5440182B2 (de) * | 1974-02-26 | 1979-12-01 | ||
US3967247A (en) * | 1974-11-11 | 1976-06-29 | Sperry Rand Corporation | Storage interface unit |
FR116049A (de) * | 1975-03-20 | |||
US4008460A (en) * | 1975-12-24 | 1977-02-15 | International Business Machines Corporation | Circuit for implementing a modified LRU replacement algorithm for a cache |
US4092713A (en) * | 1977-06-13 | 1978-05-30 | Sperry Rand Corporation | Post-write address word correction in cache memory system |
US4136386A (en) * | 1977-10-06 | 1979-01-23 | International Business Machines Corporation | Backing store access coordination in a multi-processor system |
AU523670B2 (en) * | 1977-12-08 | 1982-08-12 | Honeywell Information Systems Incorp. | Cache memory location selection mechanism |
US4195343A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | Round robin replacement for a cache store |
JPS54128639A (en) * | 1978-03-30 | 1979-10-05 | Toshiba Corp | Control system for cash memory |
DE2947115A1 (de) * | 1978-12-11 | 1980-06-26 | Honeywell Inf Systems | Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem |
-
1980
- 1980-01-24 US US06/114,854 patent/US4322795A/en not_active Expired - Lifetime
-
1981
- 1981-01-02 AU AU65948/81A patent/AU540144B2/en not_active Ceased
- 1981-01-12 CA CA000368308A patent/CA1161172A/en not_active Expired
- 1981-01-17 JP JP582881A patent/JPS56114187A/ja active Granted
- 1981-01-23 GB GB8102074A patent/GB2068155B/en not_active Expired
- 1981-01-23 DE DE3102150A patent/DE3102150C2/de not_active Expired - Fee Related
- 1981-01-23 FR FR8101276A patent/FR2474721B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS56114187A (en) | 1981-09-08 |
FR2474721A1 (fr) | 1981-07-31 |
US4322795A (en) | 1982-03-30 |
FR2474721B1 (fr) | 1987-09-11 |
GB2068155B (en) | 1984-04-04 |
DE3102150A1 (de) | 1981-12-17 |
CA1161172A (en) | 1984-01-24 |
AU6594881A (en) | 1982-04-01 |
GB2068155A (en) | 1981-08-05 |
AU540144B2 (en) | 1984-11-01 |
JPH0470656B2 (de) | 1992-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3102150C2 (de) | Multiprozessor-Datenverarbeitungsanlage | |
DE2856133C2 (de) | Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher | |
DE3011552C2 (de) | ||
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE3439302C2 (de) | ||
DE2241257C3 (de) | Datenverarbeitende Anlage | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE68924313T2 (de) | Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern. | |
DE1499182C3 (de) | Datenspeichersystem | |
DE2856715C3 (de) | Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem | |
DE69806855T2 (de) | Ersetzungszähler für Maschine mit nichtuniformen Speicherzugriffen | |
DE2523414B2 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE3502147C2 (de) | ||
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE112006002908T5 (de) | Technik für die Kommunikation und Synchronisation von Threads | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE68924992T2 (de) | Symmetrische Steuerungsanordnung für Multiverarbeitung. | |
DE102006039747A1 (de) | Verfahren für Kontextzustandsmanagement | |
DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
DE69421340T2 (de) | Kohärenter Datenaustausch, Verwaltungsverfahren zwischen den Stufen einer mindestens dreistufigen Speicherhierarchie | |
DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
DE69822364T2 (de) | Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen | |
DE3750045T2 (de) | Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten. | |
DE4234695C2 (de) | Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
8127 | New person/name/address of the applicant |
Owner name: BULL HN INFORMATION SYSTEMS INC., WILMINGTON, DEL. |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS. |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: INTEL CORP., SANTA CLARA, CALIF., US |
|
8328 | Change in the person/name/address of the agent |
Free format text: BARDEHLE, PAGENBERG, DOST, ALTENBURG, FROHWITTER, GEISSLER & PARTNER PATENT- UND RECHTSANWAELTE, 81679 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |