DE3102150C2 - Multiprozessor-Datenverarbeitungsanlage - Google Patents

Multiprozessor-Datenverarbeitungsanlage

Info

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
Application number
DE3102150A
Other languages
English (en)
Other versions
DE3102150A1 (de
Inventor
Ronald E Lange
Richard J Fisher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Bull HN Information Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of DE3102150A1 publication Critical patent/DE3102150A1/de
Application granted granted Critical
Publication of DE3102150C2 publication Critical patent/DE3102150C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement 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.
DE3102150A 1980-01-24 1981-01-23 Multiprozessor-Datenverarbeitungsanlage Expired - Fee Related DE3102150C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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