DE2947115A1 - Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem - Google Patents

Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem

Info

Publication number
DE2947115A1
DE2947115A1 DE19792947115 DE2947115A DE2947115A1 DE 2947115 A1 DE2947115 A1 DE 2947115A1 DE 19792947115 DE19792947115 DE 19792947115 DE 2947115 A DE2947115 A DE 2947115A DE 2947115 A1 DE2947115 A1 DE 2947115A1
Authority
DE
Germany
Prior art keywords
address list
address
memory
cache memory
column
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.)
Withdrawn
Application number
DE19792947115
Other languages
English (en)
Inventor
John B Crain
Ronald E Lange
Thomas R Ohlin
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2947115A1 publication Critical patent/DE2947115A1/de
Withdrawn 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

Description

DIPUINCHEINZBARDEHLE München, PATENTANWALT O Q / 1J A <j ς
Aktenzeichen: * If- Mein Zeichen: P
HONEYWELL INFORMATION SYSTEMS INC. 200 Smith Street
Waltham, Mass. 02154
V. St. v. A.
Löschanordnung für einen Cache-Speicher eines Prozessors in einem Multiprozessorsystem
030026/0609
29A7115
- -if -
-S-
BeSchreibung
Die Erfindung bezieht sich generell auf elektronische digital arbeitende Datenverarbeitungssysteme und insbesondere auf Prozessoren, in die ein auch als Cache-Speicher bezeichneter Notizblockspeicher einbezogen ist, der eine selektiv arbeitende Blocklöschanordnung aufweist.
Ein Cache-Speicher ist ein kleiner Speicher mit leichtem Zugriff, der in einem Prozessor eines Datenverarbeitungssystems untergebracht ist. Der Cache-Speicher weist im allgemeinen einen Teil der Größe eines Hauptspeichers auf, ermöglicht jedoch einen schnelleren Datenzugriff zu dem in ihm gespeicherten Daten als zu den im Hauptspeicher gespeicherten Daten. Die Operanden und Befehle, die nachstehend generell als Datenwörter bezeichnet werden, werden aus dem Hauptspeicher abgeholt und in dem Cache-Speicher gespeichert. Der Prozessor greift dann zunächst bezüglich der geforderten Datenwörter zu dem Cache-Speicher zu. Datenwörter werden, bevor sie in dem Cache-Speicher gespeichert sind,durch einen ersten Zugriff des Prozessors zu dem Hauptspeicher erhalten. Diese Datenwörter, zu denen ein Zugriff erfolgt ist, werden von dem Prozessor ausgenutzt und zugleich in dem Cache-Speicher gespeichert.
Der Wirkungsgrad des Cache-Speichers hängt von der durch den Prozessor erfolgenden Ausnutzung bzw. Verwendung derselben Datenwörter zu einer Mehrzahl von Zeitpunkten während desselben Programms ab. Dabei gibt es Zeitpunkte, wie beispielsweise dann, wenn ein gsamtes Programm abgeschlossen ist, zu denen die beste Ausnutzung des Cache-Speichers dessen vollständige Löschung erfordert.
030026/0609
Eine verbreitete Löschoperation bezüglich eines Cache-Speichers besteht darin, den gesamten Cache-Speieher auf sämtliche externen Unterbrechungsoperationen hin zu löschen. Diese Unterbrechungsoperationen zeigen die Möglichkeit an, daß Daten in dem Hauptspeicher durch die Operationen der Eingabe/Ausgabe-Steuereinrichtung geändert worden sind und daß deshalb die Daten in dem Cache-Speieher unrichtig sein können. Diese Art des Löschens erfolgt sehr mechanisch und führt zu einem beträchtlichen Anteil unnötigen Löschens der in dem Cache-Speicher enthaltenen Dateninformation. Dies trifft mit Rücksicht darauf zu, daß lediglich ein Teil der Eingabe/Ausgabe-Operation gewissermaßen eingabeorientiert ist, wodurch der Hintergrund- bzw. Ergänzungsspeicher oder Hauptspeicher geändert wird. Außerdem wären diese Daten lediglich während eines kleinen Teiles der Zeitspanne in dem Cache-Speicher vorhanden. Da die Löschwirkung den gesamten Cache-Speicher löscht, geht der größte Anteil der Dateninformation verloren und muß durch einen anschließenden Zugriff zu dem Hauptspeicher wieder bereitgestellt werden. Eine derartige Anordnung ist in der US-PS 3845 angegeben.
Einige Datenverarbeitungssysteme wenden eine Segmentierung und ein Seitenwechselverfahren für den Zugriff zum Speicher an. Ein Segment ist dabei in kleinere Bereiche unterteilt, die generell als Seiten bezeichnet werden, welche üblicherweise eintausend Datenwörter enthalten. Da die Anzahl der Datenwörter auf einer Seite im allgemeinen geringer ist als die Größe des Cache-Speichers, wurde eine selektive Löschoperation entwickelt, durch die die Seite allein gelöscht werden kann, und zwar entsprechend der Dateninformation, die nicht länger benötigt wird. Dies wird dadurch erreicht, daß Jede Ebene eines Assoziativ-Markierungs-Inhaltsverzeichnisses für den Cache-Speicher adressiert wird. Die Spalten jeder Ebene werden mit der Seitenadresse verglichen, und wenn eine Uberein-
030026/0609
Stimmung signalisiert wird, wird die betreffende Spalte der adressierten Ebene durch Auslösen des Kennzeichens gelöscht , welches einen Voll-Status der Spalte in der adressierten Ebene anzeigt. Eine derartige Anordnung ist in der US-PS 3979 726 angegeben. Obwohl diese Arbeitsweise eine Verbesserung gegenüber der Arbeitsweise darstellt, bei der das Löschen des gesamten Cache-Speichers erforderlich ist, ist das Ausmaß der Selektivität der Löschoperation lediglich geringfügig gesteigert.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, eine verbesserte Auslöse- bzw. Löschanordnung zum selektiven Löschen eines Cache-Speichers zu schaffen.
Dai-über hinaus soll die neu zu schaffende verbesserte Löschanordnung den Cache-Speicher dadurch zu löschen gestatten, daß ausgewählte zu löschende Adressen mit den Markierungsadressen verglichen werden, die in einem duplizierten Inhaltsspeicher gespeichert sind.
Überdies soll die neu zu schaffende Löschanordnung zum Löschen eines Cache-Speichers einen Informationsblock zufällig zu löschen gestatten, der nur wenige Datenwörter, wie vier Datenwörter, enthält.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die in den Patentansprüchen erfaßte Erfindung.
Die Löschanordnung gemäß der Erfindung zum Löschen eines Cache-Speichers enthält eine Schreibbefehls-Sammelloglk in jeder Speichersteuereinrichtung, einen duplizierten Abbildungs-Inhaltsspeicher eines primären oder Haupt-Inhalt sspe ichers in jedem Prozessor und Einrichtungen zur Filterung jedes Schreibbefehls durch jeden duplizierten Inhaltsspeicher, um nämlich zu bestimmen, ob Daten, zu denen hin ein Zugriff erfolgt, in dem Cache-Speicher gespeichert sind, was zu einer Übereinstimmung führt. Wenn
030026/0609
eine Übereinstimmung festgestellt wird, wird der Haupt-Inhaltsspeicher bzw. die Hauptadressliste darüber benachrichtigt, daß ihr Eintrag für den betreffenden Schreibbefehl zu löschen ist.
Bei einem Multiprozessorsystem wird Jeder Prozessor sämtliche Schreib- und Löschvorgänge über seinen zugehörigen Cache-Speicher bezüglich des Speichers ausführen. Da sämtliche Datenänderungen, die aus Schreib- oder Löschbefehlen resultieren, in dem angeschlossenen Cache-Speicher aufgezeichnet werden, ist das Blocklöschen des Haupt- bzw. Wirtsprozessors minimiert. Dem Cache-Speicher Jedes Prozessors ist eine Hauptadreßliste zugehörig, die aus vier Ebenen oder Spalten mit 2048 Speicherstellen besteht. Da vier Datenwörter einem einzigen Block zugeteilt sind, entspricht dies insgesamt 512 Blöcken pro Ebene.
Ein Umlaufzähler ist Jedem der vier Ebenen zugehörig, um das sequentielle Laden festzustellen, und ein Voll/Leer-Bit ist Jeder Speicherstelle in Jeder Ebene zugehörig, um deren gegenwärtige Verfügbarkeit anzuzeigen. Eine duplizierte Adreßliste bzw. ein duplizierter Inhaltsspeicher enthält ein Bild der Hauptadreßliste. Die duplizierte Adreßliste prüft sämtliche Schreibmeldungen von Jeder schritthaltend arbeitenden Systemsteuereinrichtung bezüglich einer Übereinstimmung mit ihrem Inhalt. Wenn eine Übereinstimmung auftritt, wird das zugehörige Voll/Leer-Bit zurückgesetzt, und die Schreibadresse gelangt zu der Hauptadreßliste hin, um den identischen Eintrag als leer zu markieren.
Gemäß einem weiten Aspekt der Erfindung 1st somit eine Löschanordnung für einen Cache-Speicher geschaffen, der in Jedem Prozessor eines Multiprozessorsystems vorgesehen ist, wobei diese Löschanordnung folgende Einrichtungen aufweist: Eine Reihe von adressierbaren assoziativen Mehrebenen- und Mehrspalten-Hauptadreßlisten, eine
030026/0609
- ßr -
Reihe von adressierbaren assoziativen Mehrebenen- und Mehrspalten-Doppeladreßlisten, eine Vielzahl von adressierbaren Speichereinheiten, deren jede der jeweiligen Spalte der Hauptadreßliste und der Doppeladreßliste ihrem Cache-Speicher zugehörig ist und durch entsprechende Adressensignale wie ihre entsprechende Spalte aktiviert wird,
eine Vielzahl von Voll/Leer-Statusanzeigeeinrichtungen, die der jeweiligen Ebene der jeweiligen Spalte der Hauptadreßliste zugehörig sind,
eine Zähleinrichtung, die in Abhängigkeit von den Anzeigeeinrichtungen die Speicherung in der Vielzahl von Speichereinheiten leitet, die der jeweiligen Spalte zugehörig sind, Einrichtungen zum Absuchen der Doppeladreßliste zum Zwecke der Bestimmung, ob eine Schreib-Meldung einer Information entspricht, die in einer zugehörigen Speichereinheit der in einer Vielzahl vorgesehenen Speichereinheiten gespeichert ist,
und Einrichtungen zum Auslösen bzw. Löschen eines Eintrags in der Hauptadreßliste durch Zurücksetzen einer Voll/Leer-Anzeigegröße, die dem betreffenden Eintrag zugehörig ist, und zwar dann, wenn eine Schreibmeldung der Information entspricht, die in einer zugehörigen Speichereinheit der in einer Vielzahl vorgesehenen Speichereinheiten gespeichert ist.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm ein Multiprozessor-Datenverarbeitungssystem, bei dem die Löschanordnung für einen Cache-Speicher angewendet ist.
Fig. 2 zeigt in einem Blockdiagramm den Cache-Speicherbereich sowie einen Doppeladreßlistenbereich in weiteren Einzelheiten.
Fig. 3 veranschaulicht die Organisation der Adreßliste. Fig. 4 veranschaulicht verschiedene Adressenformate, die von der Löschanordnung gemäß der Erfindungg für einen
030026/0609
-40-
Cache-Speicher verwendet werden.
In Fig. 1 ist in einem Blockdiagramm ein Multiprozessor-Datenverarbeitungssystem veranschaulicht, bei dem die Löschanordnung gemäß der Erfindung für einen Cache-Speicher angewandt ist. Das dargestellte System enthält zwei Prozessoren 2 und 4, eine Systemsteuereinrichtung 6, die den Zugriff zu einem Hauptspeicher 8 und die Datenübertragung bzw. den Datenaustausch mit einer Reihe von peripheren Einrichtungen über eine Eingabe/Ausgabe-Steuereinrichtung 10 steuert. Die Systemsteuereinrichtung ist an sämtliche Prozessoren in dem Multiprozessor-Datenverarbeitungssystem angeschlossen, um Datenübertragungen zwischen den Prozessoren, den peripheren Einrichtungen und dem Hauptspeicher freizugeben. Jeder Prozessor hat einen Zugriff zu dem Hauptspeicher 8 und über ein Steuerverknüpfungsglied 12 zu einem Betriebssystemmodul 14 sowie zu einer Datenübertragungstabelle 16 in dem Hauptspeicher 8. Das Verknüpfungsglied bzw. die Verknüpfungseinrichtung 12 steuert den Zugriff zu den Datenübertragungseinrichtungen, wie den Prozessoren in dem Betriebssystemmodul 14 und der Datenübertragungstabelle 16 in einer Weise, wie sie an anderer Stelle näher erläutert ist (siehe US-PS 3 845 474).
Jeder Prozessor des Multiprozessorsystem, wie beispielsweise der Prozessor 2 enthält eine Betriebseinheit 18, die Rechen- und Verknüpfungsfunktionen auf Operanden hin ausführt, die aus dem Hauptspeicher 8 abgerufen worden sind, und zwar in Übereinstimmung mit Befehlen, die in entsprechender Weise aus dem Hauptspeicher 8 abgerufen worden, sind. Die Schnittstellenfunktionen des Prozessors 2 einschließlich der Bildung bzw. Vorbereitung von absoluten Datenadressen werden durch eine Übertragungsbzw. Kommunikationssteuereinheit 20 ausgeführt. Jeder Prozessor enthält gemäß der vorliegenden Erfindung einen
030026/0609
Cache-Speicher und eine zugehörige Steuerlogik, wie dies in Fig. 1 bezüglich des Cache-Speicherbereichs 22 veranschaulicht ist. Jedem Cache-Speicherbereich ist ein duplizierter Adressenlistenbereich 24 zugehörig.
In Fig. 2 ist ein Blockdiagramm des Cache-Speicherbereichs 22, des duplizierten Adreßlistenbereichs 24 und eines Teiles der Kommunikationssteuereinheit 20 gezeigt. Der Cache-Speicner 26 bringt einen schnellen Zugriff zu Datenblöcken mit eich, die zuvor aus dem Hauptspeicher bereit gestellt worden sind. Der Cache-Speicher wird mit anderen Prozessorfunktionen parallel betrieben. Die in Fig. 2 dargestellte Anordnung enthält einen Cache-Speicher 26, einen Eingangs-Speicherbus-ZM-Schalter 28, einen Ausgangs-Speicherbus-ZD-Schalter 30, eine Hauptadreßliste 32 und ein zugehöriges Vergleichernetzwerk sowie einen Unterbrechungsgenerator 36, eine Steuerlogik 38, einen Steuerschalter 40, eine Cache-Speicher-Adressenverriegelungseinrichtung 42, einen Schreib-Meldepuffer mit zugehörigem Stapelspeicher 46, einen Schreib-Puffer mit zugehörigem Stapelspeicher 50, eine duplizierte Adreßliste 52 mit zugehörigem Vergleichernetzwerk 54 und einen Lösch-Cache-Stapelspeicher 56.
Während der Hauptspeicher-Abrufzyklen wird die Dateninformation für die Verwendung durch den Prozessor erteilt, während gleichzeitig der ZM-Schalter freigegeben wird, um die Speicherung in dem Cache-Speicher 26 zu ermöglichen. Auf nachfolgende Prozessorzyklen hin wird der Cache-Speicher 26 zur gleichen Zeit überprüft, zu der ein Abruf aus dem Hauptspeicher 8 fertiggestellt wird. Wenn die benötigten Daten bereits in dem Cache-Speicher 26 vorhanden sind, wird das Abrufen aus dem Hauptspeicher beendet. Ein Cache-Speicher-Lesezyklus wird dadurch freigegeben, daß der ZM-Schalter 28 abgeschaltet und der ZD-Schalter 30 freigegeben wird, um die Dateninformation aus dem Cache-Speicher 26 direkt zu dem Prozessor hin zu übertragen.
030026/0609
Die Hauptadreßliste 32 identifiziert den Speicherbereich oder Block in dem Cache-Speicher 26. In der Adreßliste werden als "TAG"-Wörter bezeichnete Markierungswörter gespeichert, um die absolute Adresse des Jeweiligen Datenblocks wiederzugeben. Die auch als Mapping bezeichnete Abbildung der Hauptadreßliste 32 ist eine Vier-Ebenen-Reihe, die der betreffenden Abbildung zugehörig ist und die in Fig. 3 im einzelnen veranschaulicht ist.
Gemäß Fig. 3 ist die TAG- bzw. Markierungs-Adreßliste in N Spalten, beispielsweise in 512 Spalten unterteilt, und zwar entsprechend der Anzahl der Blöcke in dem Cache-Speicher. Jede Spalte weist vier Ebenen auf, d.h. die Ebenen 0, 1,2,3. Der Cache-Speicher ist in vier Bereiche von 512 Vier-Wort-Blöcken (8192 Wörter) unterteilt. Demgemäß soll die Hauptadreßliste 2 048 Speicherplätze enthalten, die in vier identische Ebenen oder Spalten aufgeteilt sind, und aus einem Speicher (RAM) mit wahlfreiem Zugriff bestehen. Ein lÄnlauf zähler ist Jeder der vier Ebenen oder Spalten zugehörig, um zu bestimmen, in welcher Ebene ein laufender Eintrag vorgenommen werden sollte. Ein Voll/Leer-^/Ej-Bit ist Jeder Speicherstelle in Jeder Ebene zugehörig, um dessen gegenwärtige Verfügbarkeit anzuzeigen. Die Hauptadreßliste wird wie folgt geladen.
Wenn der Inhalt einer gesamten Ebene leer ist, dann sollen die Speicherplätze der betreffenden Ebene sequentiell geladen werden. Wenn die Speicherplätze in der betreffenden Ebene beliebig bzw. zufällig leer sind, dann werden sie dadurch geladen, daß die leeren Speicherplätze sequentiell ausgewählt werden. Wenn sämtliche Speicherplätze in einer bestimmten Ebene voll sind, dann sollen sie schließlich mit einer neuen Information in Übereinstimmung mit einer sequentiellen Umlaufzählerstellung geladen werden.
Die Hauptadreßliste 32 wird als kleiner Speicher ausgeführt, dessen Anzahl an Speicherplätzen gleich der Anzahl
030026/0609
an Blöcken in dem Cache-Speicher ist. Die Adressenbits niedriger Wertigkeit (das sind die Bits 13-22) der effektiven Adresse legen die Spalten in der Hauptadreßliste 32 fest und führen zu deren Zugriff. Jedes Wort in der Hauptadreßliste 32 enthält die Adressenbits (Bits 0-12) höherer Wertigkeit der absoluten Adresse. Die Einführung bzw. Unterbringung dieser Adressensignale höherer Wertigkeit in der Hauptadreßliste 32 wird durch einen (nicht dargestellten) Ebenen-Wähler gesteuert. Dieser Ebenen-Wähler bringt die Bits O bis 9 in der Markierungs- bzw. TAG-Adreßliste 32 in Übereinstimmung mit den Signalen von der Umlaufschaltung unter.
Die absolute Adresse von der Zentraleinheit bzw. dem zentralen Prozessor her umfaßt 24 Bits, die von dem Steuerschalter 40 aufgenommen werden. Diese absolute Adresse enthält zehn Adressenzugriffsbits, ein gerades/ungerades Adressenbit, acht Steuerfunktionsbits und vier Ebenen-Auswahlbits. Das absolute Adressenformat ist in Fig. 4 veranschaulicht. Dabei werden die zehn Adressenzugriffsbits (das sind die Bits 13-22) der Hauptadreßliste 32 zugeführt, um einen Zugriff zu den Bits 0-12 in den Ebenen L1,L2,L3 und L4 zu erhalten, und zwar entsprechend der Spalte, die durch die Bits 13-22 definiert ist. Nachdem ein Zugriff zu einer bestimmten Spalte erfolgt ist, wird der Inhalt der vier Blockspeicherplätze in der betreffenden Spalte den Vergleichernetzwerk 34 zugeführt. Das Vergleichernetzwerk 34 vergleicht den Inhalt der vier Speicherplätze in der Spalte, zu der der Zugriff erfolgt ist, mit den Bits 0-12 der absoluten Adresse. Wenn eine Übereinstimmung ermittelt wird, wird ein Signal, welches der Ebene entspricht, die die Übereinstimmung aufweist, an die Cache-Speicher-Adressenverriegelungseinrichtung zusammen mit den Bits 13-23 der absoluten Adresse von dem Steuerschalter 40 her abgegeben. Zur gleichen Zeit wird ein übereinstimmungs-Signal an den Unterbrechungsgenerator
030026/0609
abgegeben. Dieser Unterbrechungszustand zeigt an, daß eine Viederbereitstellung einer Dateninformation aus dem Hauptspeicher nicht erforderlich ist, da die Dateninformation gerade in dem Cache-Speicher 26 verfügbar ist.
Sämtliche Cache-Speicherzyklen beginnen mit einer Erzeugung eines Adreßregister-Abtastsignals (SAR) und eines Abtast-Unterbrechungssignals (SIN), welches von dem Unterbrechungsgenerator 36 erzeugt wird. Diese beiden Signale werden der Steuerlogik bzw. SteuerverknUpfungs einrichtung 38 zusammen mit den Bits 11, 12, 22 und 23 der absoluten Adresse von dem Steuerschalter 40 her zugeführt. Ein erstes Ausgangs signal von der Steuerlogik 38 her wird wieder zu dem Steuerschalter 40 hin abgegeben, um die absolute Adresse von der Zentraleinheit her bei Fehlen eines Löschsignals durchzulassen. Ein zweites Ausgangssignal der Steuerlogik 38 ist ein Ebenen-Auswahlsignal, welches der Hauptadressenliste 32 zugeführt wird und welches dazu dient, den Schalter 40 für eine anschließende Signalabgabe an die duplizierte Adreßliste 52 zu steuern. Das Ausgangssignal des Unterbrechungsgenerators 36 wird in entsprechender Weise an die Cache-Speicher-Adressenverriegelungseinrichtung 42 abgegeben, um anzuzeigen, daß die Information aus dem Cache-Speicher 26 aufgrund der Ermittelung einer Übereinstimmung aufzunehmen 1st. Venn die duplizierte bzw. Doppel-Adreßliste anzeigt, daß der Cache-Speicher für einen der vier Zuordnungen bzw. Assoziationen in Betrieb ist, die von der Hauptadreßliste aus erfolgen, dann werden die Bits 13-23 und die zusätzlichen Ebenen-Anzeigebits an den Cache-Speicher 26 abgegeben, um zu diesem von der Cache-Speicher-Adressenverriegelungseinrichtung 42 her einen Zugriff zu erhalten.
Die duplizierte Adreßliste 52 enthält ein Abbild der Hauptadreßliste 32. Die Funktion dieser duplizierten Adreßliste bzw. Doppeladreßliste besteht darin, sämtliche
030026/0609
-vr-
Schreibmeldungen von jeder schritthaltenden bzw. "On-Line-Systemsteuereinrichtung zur Ermittelung einer Übereinstimmung mit deren Inhalt zu überprüfen. Wenn eine Übereinstimmung vorliegt, soll das Voll/Leer-Bit zurückgesetzt werden, und die Schreibadresse soll an die Hauptadreßliste weitergeleitet werden, um die identische Leer-Eintragung zu markieren. Die an die Hauptadreßliste abgegebene Adresse wird in ein Register 56 mit einer Tiefe von vier Einheiten eingegeben, wobei das Ausgangssignal des betreffenden Registers einem Eingang des Steuerschalters 40 zugeführt wird.
Sämtliche Schreibmeldungen werden zuerst durch einen Puffer 44 in einen Schreib-Meldestapelpuffer 46 eingeleitet. Die Bits 13-22 der richtigen Meldung führen zu einem Zugriff zu der duplizierten Adreßliste 52. Wie bei der Hauptadreßliste 32 werden die Bits 0-12 der Spalte (vier Ebenen), zu der ein Zugriff erfolgt ist, dem Vergleicher 54 zugeführt, und zwar zusammen mit den Bits 0-12 der Schreibmeldung. Wenn eine Übereinstimmung ermittelt wird, wird von dem Vergleicher 54 ein Signal an den Stapelpuffer bzw. -speicher abgegeben, und die Bits 13-22 werden in diesem Stapelspeicher gespeichert.
In einem Schreibbetrieb werden die Bits 0-21 von dem Steuerschalter 40 in den Puffer 48 weitergeleitet und danach zu dem Schreibstapelspeicher 50 hin geführt. Wie im zuvor betrachteten Fall werden die Bits 0 bis 12 in der duplizierten Adreßliste an einem Speicherplatz abgespeichert, der durch die Bits 13 bis 22 festgelegt ist.
Wenn eine Übereinstimmung in der duplizierten Adreßliste als Ergebnis einer Schreibmeldung ermittelt wird, dann wird ein P0-Belegungssignal an die Steuerlogik 38 abgegeben, wodurch der Steuerschalter 40 veranlaßt wird, den Inhalt des Stapelspeichers 56 an den Steuerschalter 40 abzugeben, wodurch die Hauptadreßliste 32 aktualisiert wird.
030026/0609
Es ist erforderlich, den Cache-Speicher 26 zu löschen, wenn gewisse Bedingungen vorliegen, die den Cache-Speicher 26 mit dem gerade vorliegenden richtigen Abbild des Hintergrundspeiehers nicht belassen mögen. Der Cache-Speicher kann in einer Weise von zwei Weisen gelöscht werden. Zumeinen können sämtliche Voll/Leer-Bits zurückgesetzt werden. Zum zweiten kann lediglich das einem bestimmten Block zugehörige Voll/Leer-Bit zurückgesetzt werden. Ein Block in dem Cache-Speicher 26 wird dann gelöscht, wenn eine Schreibmeldung aufgenommen wird und eine Übereinstimmung bezüglich des Cache-Speichereintrags vorliegt. Dies wird, wie oben beschrieben, durch einen Suchvorgang bezüglich der duplizierten Adreßliste 52 ausgeführt.
Obwohl lediglich ein Pufferspeicher 44 und ein Stapelspeicher 46 für eine Schreibmeldung veranschaulicht sind, sei darauf hingewiesen, daß vier derartige Pufferspeicherund Stapelspeicheranordnungen tatsächlich vorgesehen sind. Eine Schreibmeldung wird in einem der vier Pufferspeicher aufgenommen, und ein Eingangs-Zähler wird durch eine Zählerstellung abgetastet. Dies führt zur Erzeugung einer Differenz bezüglich des Inhalts mit einem Ausgangszähler, und diese Differenz wird an ein Prioritätsnetzwerk abgegeben. Dieses Prioritätsnetzwerk beginnt einen Duplizierungs-Adreßlistenzyklus.
Die Schreibmeldungen werden aufgenommen und an eine Eingangsbusleitung der duplizierten Adreßliste abgegeben, um einen Nachschlag-Suchvorgang in der duplizierten Adreßliste auszuführen. Wenn eine Übereinstimmung vorliegt, dann wird die Schreibmeldung zu dem Stapelspeicher 56 hin geleitet, und das zugehörige Voll/Leer-Bit wird zurückgesetzt. Wenn keine Übereinstimmung erzielt wird, dann wird die Schreibmeldung unberücksichtigt gelassen. Somit wird dieselbe Information sowohl an die duplizierte Adreßliste
030026/0609
2947 1 ;5
-Ms-
als auch an die Hauptadreßliste abgegeben.
Der Ausgangspuffer 56 ist eine Quelle der Schreibmeldungsdaten für die Hauptadreßliste 32; er gibt ein Signal ab, welches anzeigt, daß ein Löschzyklus erforderlich ist. Das an die Anschluß-Steuereinrichtung abgegebene SAR-Signal tastet eine Leitung entsprechend einem Nicht-Leer-Zustand ab und nimmt die nächste erzeugte Unterbrechung auf. Das SIN-Signal wird lang genug verzögert, um den Puffer bzw. Pufferspeicher zu leeren und dann auszulösen, damit die erforderliche Speicheranforderung erzeugt wird.
In Fig. 4 ist das Adressenformat für den Cache-Speicher sowie für die duplizierte Adreßliste und die Hauptadreßliste veranschaulicht. Die absolute Adresse ist als Adresse veranschaulicht, die einen Markierungs- bzw. TAG-Teil, umfassendjclie Bits 0 bis 12, einen Blockbereich, umfassend die Bits 13-21 und einen Wortbereich umfaßt, der die Bits 22 und 23 umfaßt. Die Adresse für den Cache-Speicher umfaßt die Bits 13 bis 21; diese Adresse ist kennzeichnend für den Block. Ferner umfaßt die betreffende Adresse die Bits 22 und 23, die kennzeichnend sind für ein bestimmtes Wort. Ferner umfaßt die betreffende Adresse noch zwei zusätzliche Bits, die die Ebene und den Cache-Speicher angeben, in welchem der Block gefunden werden kann. Die sowohl für die Hauptadreßliste als auch für die duplizierte Adreßliste verwendete Adreßlistenadresse besteht aus dem Markierungs- bzw. TAG-Speicherbereich, umfassend die Bits 0 bis 12, und aus der Block-TAG-Adresse, umfassend die Bits 13 bis 21.
In Fig. 3 ist veranschaulicht, wie der Hauptspeicher in den Adreßlisten abgebildet wird. Der Hauptspeicher ist als Speicher dargestellt, der in N Bereiche unterteilt ist. Der Bereich Null, der 2048 Wörter enthält, ist ferner als
Ü30026/0609
- 29A711
-tr
in 512 Blöcke mit jeweils vier Wörtern unterteilt dargestellt. Der Bereich O-Block O (B-O, L-O) zeigt sich dann als in der Spalte 000 der Adreßliste abgebildet.
Durch die Erfindung ist also ein Datenverarbeitungssystem geschaffen, bei dem ein Cache-Speicher mit einer selektiven Blocklöscheigenschaft verwendet ist. Die Löschanordnung zum Löschen des Cache-Speichers umfaßt eine duplizierte Abbildungsadreßliste einer Hauptadreßliste in dem jeweiligen Prozessor und Einrichtungen zur Filterung des jeweiligen Schreibbefehls durch die jeweilige duplizierte Adreßliste, um nämlich zu bestimmen, ob Daten, zu denen hin ein Zugriff erfolgt, in dem Cache-Speicher gespeichert sind. Dies führt dann zu einer Übereinstimmung. Wenn eine Übereinstimmung ermittelt ist, wird der Hauptadreßliste gemeldet, daß ihr Eintrag für den betreffenden Schreibbefehl zu löschen ist.
03Ü026/0609

Claims (7)

DIPL. ING. HEINZ BARDEHLE München, 22 .November 1979 PATENTANWALT P 2964 Aktenzeichen: Mein Zeichen: Patentansprüche
1.) Anordnung zum Löschen eines in Jedem Prozessor eines Multiprozessorsystems vorgesehenen Cache-Speichers, dadurch gekennzeichnet, daß eine Reihe von assoziativen adressierbaren Mehrebenen- und Mehrspalten-Hauptadreßlisten (32) vorgesehen ist,
daß eine Reihe von assoziativen adressierbaren Mehrebenen- und Mehrspalten-Doppeladreßlisten (£2) vorgesehen ist,
daß eine Vielzahl von adressierbaren Speichereinheiten C 22) vorgesehen ist, deren jede einer Spalte der Hauptadreßliste und der Doppeladreßliste des damit in Verbindung stehenden Cache-Speichers zugehörig ist und durch entsprechende Adressensignale wie ihre zugehörige Spalte adressierbar ist, daß jeder Ebene der jeweiligen Spalte der Hauptadreßliste eine Vielzahl von Voll/Leer-Statusanzeigeeinrichtungen zugehörig ist, daß eine Zähleinrichtung in Abhängigkeit von den betreffenden Anzeigeeinrichtungen die Einspeicherung in der Vielzahl der der jeweiligen Spalte zugehörigen Speichereinheiten leitet,
daß eine Absucheinrichtung (54) vorgesehen ist, die die betreffende Doppeladreßliste darauf absucht, ob eine Schreibmeldung der Information entspricht, die in einer zugehörigen Speichereinheit der in einer Vielzahl vorgesehenen Speichereinheiten gespeichert ist,
und daß eine Löscheinrichtung (56) vorgesehen ist, die einen Eintrag in der Hauptadreßliste durch Zurücksetzen einer den betreffenden Eintrag zugehörigen Voll/Leer-Anzeigeeinrichtung in dem Fall zu löschen
η 30026/0609
29/,7115
gestattet, daß eine Schreibmeldung der in einer zugehörigen Speichereinheit der in einer Vielzahl vorgesehenen Speichereinheiten gespeicherten Information entspricht.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Hauptadreßliste und die Doppeladreßliste Jeweils vier Ebenen je Spalte umfassen und daß jede der Speichereinheiten vier Informationswörter speichert.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Speicherplätze der Hauptadreßliste und der Doppeladreßliste Adreßsignale niedriger Wertigkeit speichern und daß ein Zugriff zu den betreffenden Adreßlisten durch Adressensignale höherer Wertigkeit erfolgt.
4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß mit jeder Ebene der Hauptadreßliste eine Vergleichereinrichtung (34) verbunden ist, die die höherwertigen Adressensignale aufnimmt, welche aus der jeweiligen Ebene der Spalte bereitgestellt sind, die durch die niederwertigeη Adressensignale adressiert ist, wobei die höherwertigen Adressensignale der betreffenden Dateninformation von deren Prozessor benötigt sind, und daß die betreffende erste Vergleichereinrichtung ein Ubereinstimmungssignal in dem Fall erzeugt, daß durch einen Vergleich angezeigt wird, daß die geforderte Dateninformation in dem Cache-Speieher enthalten ist.
5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß eine zweite: Vergleichereinrichtung (54) mit jeder Ebene der Doppeladreßliste derart verbunden ist, daß diese Vergleichereinrichtung die höherwertigen Adressensignale aufnimmt, die aus der
030026/0609
jeweiligen Ebene der Spalte bereitgestellt sind, welche durch die niederwertigen Adressensignale der höherwertigen Adressensignale einer Schreibmeldung adressiert sind, und daß die betreffende zweite Vergleichereinrichtung ein Löschsignal bei Feststellung einer übereinstinunung erzeugt.
6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß Speichereinrichtungen zur Speicherung einer Vielzahl von Schreibmeldungen vorgesehen sind.
7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß Speichereinrichtungen zur Speicherung einer Vielzahl von Löschsignalen vorgesehen sind.
030026/0609
DE19792947115 1978-12-11 1979-11-22 Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem Withdrawn DE2947115A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US96822378A 1978-12-11 1978-12-11

Publications (1)

Publication Number Publication Date
DE2947115A1 true DE2947115A1 (de) 1980-06-26

Family

ID=25513931

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792947115 Withdrawn DE2947115A1 (de) 1978-12-11 1979-11-22 Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem

Country Status (5)

Country Link
JP (1) JPS5580875A (de)
AU (1) AU538678B2 (de)
DE (1) DE2947115A1 (de)
FR (1) FR2444299A1 (de)
GB (1) GB2037466A (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3102150A1 (de) * 1980-01-24 1981-12-17 Honeywell Information Systems Inc., 02154 Waltham, Mass. "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1159153A (en) * 1979-12-14 1983-12-20 Charles P. Ryan Apparatus for cache clearing
US4399506A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Store-in-cache processor means for clearing main storage
EP0051745B1 (de) * 1980-11-10 1988-01-27 International Business Machines Corporation Pufferspeicherhierarchie für ein Multiprozessorsystem

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
JPS5440182B2 (de) * 1974-02-26 1979-12-01
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3102150A1 (de) * 1980-01-24 1981-12-17 Honeywell Information Systems Inc., 02154 Waltham, Mass. "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb

Also Published As

Publication number Publication date
AU538678B2 (en) 1984-08-23
JPS5580875A (en) 1980-06-18
GB2037466A (en) 1980-07-09
AU5325179A (en) 1980-06-19
FR2444299A1 (fr) 1980-07-11

Similar Documents

Publication Publication Date Title
DE2515696C2 (de) Datenverarbeitungssystem
DE3131341C2 (de)
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE69721368T2 (de) Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher
DE3151745C2 (de)
DE3102150A1 (de) &#34;schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE3011552C2 (de)
DE2241257C3 (de) Datenverarbeitende Anlage
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE2235841A1 (de) Anordnung zur speichersteuerung mit logischer und echter adressierung
DE2523414B2 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE2847960A1 (de) Speichersteuereinrichtung
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2331589A1 (de) Datenverarbeitungsanordnung
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE10219621A1 (de) Schnelle Prioritätsbestimmungsschaltung mit rotierender Priorität
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2054830B2 (de) Informationsverarbeitungsanlage mit mitteln zum zugriff zu speicher-datenfeldern variabler laenge
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
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

8130 Withdrawal