DE2947115A1 - Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem - Google Patents
Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
Description
Aktenzeichen: * If-
Mein Zeichen: P
HONEYWELL INFORMATION SYSTEMS INC. 200 Smith Street
Waltham, Mass. 02154
V. St. v. A.
Waltham, Mass. 02154
V. St. v. A.
Löschanordnung für einen Cache-Speicher eines Prozessors in einem Multiprozessorsystem
030026/0609
29A7115
- -if -
-S-
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)
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
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)
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)
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)
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 |
-
1979
- 1979-11-22 DE DE19792947115 patent/DE2947115A1/de not_active Withdrawn
- 1979-11-28 AU AU53251/79A patent/AU538678B2/en not_active Ceased
- 1979-12-04 FR FR7929801A patent/FR2444299A1/fr not_active Withdrawn
- 1979-12-05 GB GB7941909A patent/GB2037466A/en active Pending
- 1979-12-11 JP JP16073179A patent/JPS5580875A/ja active Pending
Cited By (2)
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) | "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 |