DE2847960A1 - Speichersteuereinrichtung - Google Patents

Speichersteuereinrichtung

Info

Publication number
DE2847960A1
DE2847960A1 DE19782847960 DE2847960A DE2847960A1 DE 2847960 A1 DE2847960 A1 DE 2847960A1 DE 19782847960 DE19782847960 DE 19782847960 DE 2847960 A DE2847960 A DE 2847960A DE 2847960 A1 DE2847960 A1 DE 2847960A1
Authority
DE
Germany
Prior art keywords
address
filter
memory
bias
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19782847960
Other languages
English (en)
Other versions
DE2847960C2 (de
Inventor
Bradford Mason Bean
Keith Neil Langston
Richard Lane Partridge
Kian-Bon Kho Sy
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2847960A1 publication Critical patent/DE2847960A1/de
Application granted granted Critical
Publication of DE2847960C2 publication Critical patent/DE2847960C2/de
Granted 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

Γ _ w
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
te/ms
Speichersteuereinrichtung
Die Erfindung betrifft eine Speichersteuereinrichtung nach dem Oberbegriff des Hauptanspruchs.
In handelsüblichen Datenverarbeitungssystemen mit einem oder mehreren Prozessoren, die Cache-Speicher verwenden (d.h. schnelle Prozeßpufferspeicher mit den jeweils benötigten Programmseiten für den Prozessor), können Daten und Befehle in mehreren Kopien in einem oder mehreren Cache-Speichern stehen. Es sind dort Einrichtungen vorgesehen, um sicherzustellen, daß bei Veränderung des Inhaltes einer Cache-Speicherkopie die anderen Kopien ebenfalls geändert werden.
Beispielsweise wird im IBM-System 370, Modell 168 MP die Datenintegrität dadurch erhalten, daß man jede Schreibadresse (im Gegensatz zu einer Leseadresse), die von einem entfernt gelegenen Prozessor stammt (nicht-lokale Adresse), mit der Adresse vergleicht, die gegenwärtig im Cache-Inhaltsverzeichnis des lokalen Prozessors steht. (Zu den nicht-lokalen Adressen gehören auch Speicheradressen, die mit einem durch einen Kanal oder vom anderen Prozessor zu speichernden Doppelwort geliefert werden.) Ein Adreßstapel für das Ungültigsetzen des Pufferspeichers, nachfolgend BIAS genannt, ist in jedem Prozessor vorgesehen, um nicht-lokale Schreibadressen zu empfangen und sie im Cache-Inhaltsverzeichnis des gegebenen Prozessors Ungültig zu setzen. Jede solche Anforderung zum Ungültigsetzen, die in jeden BIAS eingegeben wird, braucht ein oder zwei Maschinenzyklen des lokalen Prozessors, um dessen Cache-Ver-'zeichnis auf die Adresse der betreffenden Schreibanforderung abzufragen. Wenn diese Adresse im Cache-Verzeichnis als gültig
PO 977 026
909822/056Ö
gefunden wird, wird sie ungültig gesetzt und damit die Datenintegrität in einem System mit mehreren Prozessoren aufrechterhalten. BIAS-Abfragen zum üngültigsetzen haben Priorität vor den Zugriffen des lokalen Prozessors zu seinem zugehörigen Cache-Verzeichnis. Insbesondere braucht jede 3IAS-Abfrage eines Cache-Verzeichnisses zwei Zyklen des Prozessors für einen Cache-Treffer und einen Zyklus für keinen Treffer. Da die Anzahl der BIAS-Abfragen mit jedem 'zusätzlichen Prozessor zunimmt, bekommt der Prozessor immer weniger Zugriff zu seinem eigenen Cache-Speicher und seine Leistung sinkt.
Der Cache-Speicher in jedem Prozessor in einem Modell 168MP hat z. B. eine Cache-Blockgröße von 32 Bytes. Wenn einer der Prozessoren eine Blockspeicheroperation ausführt, z. B. einen Befehl zur Bewegung von Zeichen wie MVC oder MVCL, so ist für jedes zu speichernde Doppelwort eine BIAS-Abfrage zum Ungültigsetzen des Cache-Verzeichnisses im anderen Prozessor erforderlich. Da die Blockgröße vier Doppelwörter enthält, sind für jeden durch den gegebenen Prozessor an den Hauptspeicher übertragenen Datenblock im anderen Cache-Verzeichnis vier BIAS-Zugriffe zum Ungültigsetzen erforderlich; dadurch wird derselbe Block zweimal ungültig gemacht. Jede Blockübertragung beansprucht daher vier bis sechs Maschinenzyklen für die BIAS-Operation des anderen Prozessors, so daß dessen Leistung und damit die MP-Leistung entsprechend heruntergeht.
Die vorliegende Erfindung stellt sich daher die Aufgabe, die Anzahl von BIAS-Abfragen für den Cache-Speicher eines Prozessors herunterzusetzen; außerdem soll beim Schreiben von Blöcken im Cache in den meisten Fällen nur eine BIAS-Abfrage pro Cache-Block erfolgen und nicht für jede einzelne Doppelwortspeicheranforderung durch einen anderen Prozessor oder Kanal. Eine weitere Aufgabe dieser Erfindung besteht darin,
PO 977 026
009822/ΟδβΟ
2SA7960
j - 7 -
jeine BIAS-Pilterung zur Reduzierung der Größe des BIAS-Spei-
phers vorzusehen, mit der Anzahl und Frequenz der Eintragungen jin den BIAS-Spei eher herabgesetzt werden können.
jDiese Aufgabe wird durch die im Hauptanspruch gekennzeichnete Erfindung gelöst. Ausgestaltungen der Erfindung sind in den Ünteransprüchen gekennzeichnet.
pie vorliegende Erfindung vermindert die Reduzierung der
!Prozessorleistung dadurch, daß viele redundante BIAS-Abfragen seines jeden Cache-Speichers erkannt und eliminiert werden, so idaß jeder Prozessor den größten Teil der Maschinenzyklen !nutzen kann, die bei herkömmlichen Maschinen durch BIAS-Abfrajgen eines jeden Cache-Speichers verloren gingen.
Die Erfindung erkennt jede nicht-lokale Schreibanforderung zu demselben Cache-Speicherblock nach der ersten BIAS-Anforderung 'für diese Blockadresse. In einer Folge von acht Prozessor-Doppelwort-Schreibanforderungsadressen beispielsweise, beginnend am Anfang eines Cache-Speicherblocks von acht Doppelwörtern, wird die erste Doppelwort-Schreibanforderung in einem Cache-Speicherblock erkannt als eine BIAS-Abfrage eines jeden anderen Cache-Speichers, der denselben gemeinsam !benutzten Hauptspeicher adressieren kann. Danach verhindert die Erfindung, daß in den entfernt gelegenen BIAS die übrigen sieben Doppelwort-Sehreibanforderungen zu demselben Block eingegeben werden, d.h. sie filtert diese aus. Somit werden durch die Erfindung für die BIAS-Operation ein bis zwei Maschinenzyklen belegt, während im herkömmlichen M168 acht bis zwölf Zyklen für dieselbe Operation mit den acht Doppelwörtern gebraucht werden. Die Leistung des Multiprozessorsystems (MP) wird somit verbessert.
Durch die Erfindung ist für jeden BIAS und jedes Cache-Inhaltsverzeichnis ein Filterspeicher vorgesehen. Jeder Filterspeicher enthält die letzten Cache-Blockadressen, die an seinen
PO 977 026
S09822/OSS0
|BIAS zur Abfrage des zugehörigen Cache-Inhaltsverzeichnisses Weitergeleitet wurden (das Inhaltsverzeichnis wird oft auch (Pufferadreßspeicher genannt) . Spätere Adressen, die nichtfLokal durch einen anderen Prozessor oder Kanal geliefert Werden und dieselbe Cache-Blockadresse anfragen würden, werden dadurch ausgefiltert, so daß sie nicht an den zugehörigen (BIAS geleitet werden. Durch Ausfiltern vieler unnötiger Abfragen des Cache-Inhaltsverzeichnisses wird ein großer Teil per nicht-lokal erzeugten Störung verhindert, die bei herkömmlichem MP den Zugriff eines Prozessors zum eigenen bache-Speicher verzögerte.
Wenn sich die Adressen im Cache-Inhaltsverzeichnis beim Einlesen von'Blöcken in den Cache-Speicher des Prozessors ändern, wird die entsprechende Adresse im Filterspeicher ungültig gemacht und die Eintragung steht zum Empfang einer anderen Cache-Blockadresse von der nächsten neuen Schreibanforderung zur Verfügung.
Der Filterspeicher kann als Matrixspeicher oder in Form eines oder mehrerer Register implementiert werden. Nicht-lokale Prozessorschreibanforderungen und lokale und nicht-lokale Kanalschreibanforderungen werden eingegeben und mit Adressen im Filterspeicher verglichen. Bei Ungleichheit mit einer gültigen Adresse wird im Filterspeicher die eingegebene Adresse· als gültige Eintragung im Filterspeicher aufgezeichnet und in den BIAS geleitet. Bei Übereinstimmung mit einer gültigen Adresse wird die eingegebene Adresse nicht in den Filterspeicher eingetragen und nicht an den BIAS geleitet, so daß der Cache-Speicher nicht abgefragt wird.
Einträge im Filterspeicher werden gelöscht, wenn der zugehörige Prozessor einen Datenblock in seinen Cache-Speieher einliest und dadurch die Daten in einem Block seines Cache-Speichers ändert. In den Ausführungsbeispielen der Erfindung wird das
PO 977 026
dadurch überwacht, daß jede in das Leseadreßregister (FAR) des ; Prozessors gesetzte Blockabrufadresse mit jeder gültigen ' Adresse im Filterspeicher verglichen wird. Bei Übereinstimmung wird die verglichene Adresse dadurch aus dem Filterspeicher gelöscht, daß die diese Adresse enthaltende Eintragung ungültig gemacht wird. Andererseits können bei einem Blockabruf auch " alle Eintragungen im Filterspeicher ungültig gemacht werden, ; um den maschinellen Aufbau der Erfindung bei einigem Leistungsverlust zu vereinfachen.
Zur wirksamen Filterung wird kein besonders großer Filterspeicher gebraucht. Zwei, einen Filterspeicher bildende Regi- . ster brachten schon eine wesentliche Verbesserung der Systemleistung.
Wenn jeder Prozessor in einem Mehrprozessorsystem (MP) mit einer Schreibanforderung Priorität zum Zugriff des gemeinsam benutzten Hauptspeichers (MS) hat, wird die Schreibadresse an die zu den anderen Prozessoren im MP gehörenden Filterspeicher gesendet. Die gesendete Schreibadresse wird mit der gültigen Adresse in jedem Filterspeicher im MP verglichen. Bei Ungleichheit in einem Filterspeicher oder Ungültigkeit aller Eintragungen in einem Filterspeicher wird die gesendete Schreibadresse in den Filterspeicher geladen und in den zugehörigen BIAS ausgeleitet. Bei Übereinstimmung in einem Filterspeicher wurde die Adresse bereits in den zugehörigen BIAS gesetzt und wird nicht wieder in den Filterspeicher oder den zugehörigen BIAS übertragen. Dadurch wird jede künftige Ungültigkeitsabfrage derselben Adresse verhindert, d.h. diese wird ausgefiltert, bis sie aus dem Filterspeicher gelöscht ist. Das Löschen I dn einem Filterspeicher erfolgt beim Laden des Leseadreßregi- ! sters im Prozessor. Die Blockabrufadresse in diesem Register wird mit allen gültigen Blockadressen im zugehörigen Filter- ! speicher verglichen und bei Übereinstimmung wird die Eintragung: im zugehörigen Filterspeicher ungültig gemacht. ■
PO 977 026
S09822/0S60
I Die Leistung eines Einprozessor-Systems kann ebenfalls durch i äie vorliegende Erfindung verbessert werden, wenn sehr schnelle! [Kanäle angeschlossen sind, da diese wie unabhängige Prozessoren! jin Bezug auf den gemeinsam benutzten Hauptspeicher wirken. ■
I ;
i '
Ausführungsbeispiele der Erfindung sind in den beigefügten
Zeichnungen dargestellt und werden anschließend näher j beschrieben. Es zeigen:
JFig. 1 in einem Gesamtblockdiagramm ein System mit j
ι mehreren Prozessoren, das die vorliegende ;
j Erfindung enthält, \
! i
JFig. 2 die BIAS-Steuerung eines Cache-Inhaltsverzeich- i nisses, |
ign. 3 bis 6 verschiedene Ausführungsbeispiele der Erfindung [ und j
ι ι
Fig. 7 in einem Ablaufdiagramm die Arbeitsweise der I
I , Erfindung.
jFig. 1 zeigt ein System mit mehreren Prozessoren, nachfolgend
auch Multiprozessor-(MP-)System genannt, das die vorliegende
Erfindung enthält. Das MP-System hat zwei Prozessoren, A und B.
Die Kanäle A sind physikalisch mit dem Prozessor A und die
Kanäle B mit dem Prozessor B verbunden.
Durch die Bezugszahlen in Fig. 1 mit den Buchstaben A und B
wird der Prozessor bezeichnet, zu dem die Bezugszahl gehört.
Die BIAS-Filterschaltungen 11A und 11B empfangen jeweils
Schreibanforderungsadressen von dem anderen entfernt gelegenen Prozessor und von den lokalen und entfernten Kanälen. Lokal
bezeichnet hier Teile, die zum jeweiligen Prozessor gehören und entfernt bezeichnet Teile, die zu dem jeweils
anderen Prozessor gehören. Die Filterschaltungen 11A sind also j für den Prozessor A lokale Schaltungen und empfangen Schreib-
PO 977 026
284796Q
ι - 11 -
anforderungen von den lokalen Kanälen A sowie vom entfernten
Prozessor B und den entfernten Kanälen B. In gleicher Weise
bind die Filterschaltungen 11B für den Prozessor B lokal und , jempfangen Schreibanforderungen von ihren lokalen Kanälen B ! fund vom entfernten Prozessor A und den entfernten Kanälen A. ]
Die Cache-Speicher-Steuerschaltungen 12A und 12B umfaßen je- ΐ weils ein Cache-Inhaltsverzeichnis und die Steuerschaltungen 14 sowie ihren BIAS-Speicher 13. Das Cache-Inhaltsverzeichnis 14 | lokalisiert Zugriffe in einem zugehörigen Cache-Speicher 16. >
ι Beide Cache-Speicher 16A und 16B sind direkt oder indirekt an j einen gemeinsam benutzten Hauptspeicher angeschaltet. ■
!Fig. 2 zeigt im einzelnen die BIAS-Steuerung mit jeder CacheiSpeicher-Steuerschaltung 12. Sie enthält die BIAS-Matrix 13,
die so angeschlossen ist, daß sie die Ausgangssignale gemäß der !vorliegenden Erfindung empfängt, die von einem der in den
JFign. 3,4, 5 oder 6 gezeigten Ausführungsbeispielen kommen
öcanne*,Ein Adreßtrigger 21 empfängt jede vom BIAS 13 ausgegebene Ungültigkeitsanforderungsadr es se (die in jedem Cachejlnhaltsverzeichnis 34 ungültig zu setzen ist) . Der Adreßjtrigger 21 empfängt auch jede Schreib- und Leseanforderungsjadresse vom lokalen Prozessor. Eine Prioritätsschaltung 10
herkömmlicher Bauart steuert die Eingänge zum Adreßtrigger 21
lund gibt einer Ungültigkeitsanforderung vom BIAS 13 auf einer
Leitung 1OD Priorität gegenüber einer Prozessoranforderung auf
der Leitung 1OC, wenn sie gleichzeitig an den Adreßtrigger 21
[ausgeben wollen. Jede im Adreßtrigger 21 empfangene Anforderung bleibt dort für einen halben Maschinenzyklus und überträgt
ihren Inhalt in eine Adreßverriegelung 22. Der Adreßtrigger 21
und die Adreßverriegelung 22 halten die Adresse für einen
Maschinenzyklus mit einer Überlappung von einem Zyklus.
Jim einzelnen betrachtet empfängt der BIAS 13 Cache-Speicherladressen für Anforderungen zum Ungültigmachen, die durch diese
[Erfindung gefiltert sind. Der BIAS 13 speichert jede empfangene
PO977 026
Ungültigkeitsanforderung an einer Eintragungsstelle, die durch den Wert in einem Eingabezeigerzähler 13C gewählt ist, der so erhöht wird, daß er die nächste BIAS-Stelle im BIAS 13 '■
!adressiert, unmittelbar nachdem jede Ungültigkeitsanforderung ; lin den BIAS 13 eingegeben wurde. Jede im BIAS 13 empfangene Eintragung wird von dort in der FIFO-Reihenfolge (zuerst ein - : zuerst aus) ausgegeben und durch den Wert in einem Ausgabezeigerzähler 13D lokalisiert, der auf den nächst höheren Wert j erhöht wird, unmittelbar nachdem eine Eintragungsadresse vom ! BIAS 13 ausgegeben wird. Die Ausgabe einer nächsten BIAS-
Eintragung in den Adreßtrigger 21 wird bei jedem Maschinenzyklus fortgesetzt, bis alle eingegebenen Eintragungen ausgegeben wurden, was durch ein Gleichheitssignal vom Vergleicher 13E angezeigt wird, der die BIAS-Lageadressen im Eingabezeigerzähler 13C und dem Ausgabezeigerzähler 13D vergleicht. Sobald der Vergleicher 13E ein Übereinstimmungsausgangssignal liefert, liefert der Inverter 13G ein Sperrsignal an die Prioritätsschaltung 10 und verhindert so, daß eine Ausgangs-[JND-Schaltung 13F eine weitere Signalausgabe vom BIAS 13 an ilen Adreßtrigger 21 liefert.
3in Prioritätssignal auf der Leitung 1OD löst die Ausgabe einer Jngültigkeitsanforderung von Ausgangs-UND-Schaltung 13F an len Adreßtrigger 21 aus und erhöht den. Inhalt des Ausgabezeigerzählers 13D auf den nächsten Wert.
Sowohl der Eingabezeigerzähler 13C als auch der Ausgabezeigerzähler 13D werden am Anfang auf Null zurückgestellt, so daß die ärste Eintragung im BIAS 13 den ersten Eingang bekommt. Beide 2ähler laufen auf Null zurück, nachdem sie die höchste Stelle Lm BIAS 13 enthalten haben.
Sobald also der BIAS 13 eine Adresse an den Adreßtrigger 21 lusgibt, wird der Empfang von Schreib- und Leseanforderungen rom Lokalprozessor im Adreßtrigger 21 durch die Prioritätsschal tung PRTY 10 gesperrt, die den Ausgaben des BIAS 13 Priorität
PO 977 026
909822/0560
gibt. Die Anforderungen vom lokalen Prozessor werden somit in ;
das Adreßregister 21 eingegeben, wenn keine Ausgabe vom BIAS ;
kommt, so daß die normalen Cache-Speicher-Zugriffsoperationen ι
vom lokalen Prozessor dann ablaufen können. '■
Bei den meisten BIAS-Operationen ist wahrscheinlich eine ein- ■< zige Ungültigkeitsadresse betroffen, die zu einer Zeit im BIAS
13 enthalten ist; zwischen der Eingabe von Ungültigkeitsadressen in den BIAS 13 können viele Maschinenzyklen liegen.
Dadurch kann der lokale Prozessor zwischen den Ungültig- i keitsZugriffen zum Cache-Speicher selbst oft Zugriff zum |
Cache-Speicher nehmen. j
, i
In Fig. 2 ist gezeigt, daß jede in den Adreßtrigger 21 einge- j gebene BIAS-Ungültigkeitsanforderung einen Maschinenzyklus für I die Abfrage des Cache-Inhaltsverzeichnisses belegt. Wenn die I Ungültigkeitsanforderung im Cache-Inhaltsverzeichnis 34 gefun- ί
den wird, wird dem lokalen Prozessor ein weiter Zyklus weggenommen, um die im Cache-Inhaltsverzeichnis 34 gefundene Adresse ungültig zu machen. Während jedes weggenommenen Zyklus wird
der lokale Prozessor daran gehindert, eine Lese- oder Schreib-
|anforderung in den Adreßtrigger 21 einzugeben, wodurch der
Prozessor in seiner Leistung heruntergesetzt wird.
pas BIAS-Ausgabesignal auf der Leitung 1OD schaltet einen
BIAS-Annahmetrigger 21C, der eine gegenwärtig im Adreßtrigger
21 stehende BIAS-Ungültigkeitsanforderung kennzeichnet. Der
trigger 21C bleibt für einen Maschinenzyklus eingeschaltet
'(synchron mit dem Adreßtrigger 21) und leitet sein aus einem
Bit bestehendes Ungültigkeitssignal an eine BIAS-Annahmeverjriegelung 22C (synchron mit der Adreßverriegelung 22) , die
eine UND-Schaltung 23D vorbereitet, um das Ungültigkeitssignal
an einen Ungültigkeitsanforderungstrigger 23C weiterzuleiten,
ftfenn festgestellt wird, daß das Cache-Inhaltsverzeichnis eine
gültige Blockadresse enthält, die mit der vom Adreßtrigger 21
p0 977 026
909822/0560
i j
ι - 14 - I
I I
j 1
[empfangenen Ungültigkeitsanforderung übereinstimmt. Wenn das J Inhaltsverzeichnis keine gleiche gültige Blockadresse hat oder i das gewählte Blockgültigkeitsbit ungültig geschaltet ist, wird j |die UND-Schaltung 23D durch ein Ausgangssignal von der ODER- | !schaltung 37D abgeschaltet und das Ungültigkeitssignal in der ' Verriegelung 22C wird zurückgesetzt. Wenn die Ungültigkeitsan- j !förderung jedoch im Inhaltsverzeichnis gefunden wird, wird der ι •Trigger 23C während des nächsten Maschinenzyklus einge- ! schaltet und das Ungültigkeitssignal einen halben Zyklus später! an eine Ungültigkeitsanforderungsverriegelung 23G weiterge- j leitet und in dieser Zeit ein Ausgangssignal· für einen Zykius I auf einer Leitung 23H gegeben.
Das Üngültigkeitsaussgangssignal der Verriegelung 23G wird
auch an die Prioritätsschaltung 10 zurückgegeben, um eine
Eingabe zum Adreßtrigger 21 während des nächsten Zyklusses
zu sperren, während dem das gewählte Gültigkeitsbit im
Zache-Inhaltsverzeichnis durch das Signal· auf der Leitung 23H
in den ungültigen Zustand zurückgeschaltet wird. Weil· Eingänge zum Adreßtrigger 21 gesperrt sind, geht ein Maschinenzykius
verloren für die Ungültigschaitung der B^ckadresse, die im
iache-Inhaitsverzeichnis gefunden wurde gemäß den Signaien
von der ODER-Schal·tung 37D. Für die Ungüitigschaitung geht
jedoch kein Maschinenzykius verloren, wenn keine gleiche und
jültige Verzeichnisadresse für eine Ungüitigkeitsanforderung
von dem BIAS 13 gefunden wurde, weil· das Ungüitigkeitssignal·
in der Torschaitung 23D beendet wurde, da kein Cache-Treffersignal· von der ODER-Schal·tung 37D eintraf.
Wenn eine Ungüitigkeitsanforderung im Adreßtrigger 21 empfangen and durch Einschaiten des Annahmetriggers 21C angezeigt wird,
rd in einer Ungüitigkeitsprüfung festgestel·^, ob diese
\dresse güitig im Cache-Inverhaitsverzeichnis 34 steht. Diese
Jngüitigkeitsprüfung wird durch die UND-Schaitung 36D gesteuert), lie durch den Annahmetrigger 21C eingeschaitet wird. Die i
PO 977 026
909822/0580
ι - 15 -
!UND-Schaltung 36D leitet dann die Ungültigkeitsadreßbits j J8 bis 20 vom Adreßtrigger 21 über den ODER-Schaltkreis 36 an I das Cache-Inhaltsverzeichnis. ι
(iienn kein Ungültigkeitsbit im Annahmetrigger 21C gesetzt ist, i Wird unter Steuerung eines logischen Adreßsignales auf der Leitung 36H vom Prozessor ein normaler Cache-Speicherzugriff j vom Prozessor ausgeführt. Für normale Prozessoranforderungen i im Adreßtrigger 21 wird entweder die UND-Schaltung 36C oder die JUND-Schaltung 36F aktiviert. Ein Inverter 36E bereitet diese beiden Schaltglieder während der normalen Prozessoranforderungen vor. Die UND-Schaltung 36C wird aktiviert, wenn eine logische Adresse im Adreßtrigger 21 steht, die in der Übersetzungstabelle DLAT 31 übersetzt werden muß. Eine übersetzte Adresse VOn der DLAT 31 erhält man mit den Bitpositionen 9 bis 20 des l^dreßtriggers 21, die in die DLAT-Adreßschaltung 32 übertragen werden. Die übersetzten Adreßbits 8 bis 20 von der DLAT-Schaltung 31C werden durch die UND-Schaltung 36C und eine ODER-Schaltung 36 an das Verzeichnis geleitet. Die UND-Schaltung 36F wird aktiviert, wenn die Adresse im Adreßtrigger 21 nicht übersetzt zu werden braucht, was vom Inverter 36E angezeigt wird. !Sie kann direkt im Cache-Inhaltsverzeichnis 34 nachgesehen weräen, wenn die Adreßbits 8 bis 20 von der UND-Schaltung 36F durch die ODER-Schaltung 36 geleitet worden sind.
Die Verzeichnissuchoperation wird gleichzeitig mit dem Empfang der Bits 8 bis 20 für die Eingabe in die ODER-Schaltung 36 (begonnen. Das bedeutet auch, daß gleichzeitig die Bitpositionen 20 bis 25 des Adreßtriggers 21 in einen Spaltendecodierer 33 übertragen werden, um eine Spalte im Cache-Inhaltsverzeichnis 34 zu lokalisieren, wobei es keine Rolle spielt, ob der Adreßtrigger 21 eine Ungültigkeitsanforderung oder eine Prozessoranforderung enthält. Die Ausgabebits 8 bis 20 von der ODER-Schaltung 36 werden in jeden der 16 Vergleichsschaltungen 37 für Zeilen (Reihen) eingegeben. Jeder Zeilenvergleich ist ein Vergleich der empfangenen Bits 8 bis 20 mit je 16 Sätzen PO 977 026
909822/0560
der Bits 8 bis 20 in den 16 Zeilen der durch Spaltendecodierer ; l33 mit seinen Eingabebits 20 bis vom Adreßtrigger 21 gewählten Spalte. Eine Übereinstimmung in einem der 16 Vergleiche in den jzeilenvergleichern 37 zeigt einen Cache-Treffer an und aktiviert leine entsprechende Ausgangs leitung 0 bis 15.
enn sich also die in den Triggern 21 stehende angeforderte Adresse im Inhaltsverzeichnis findet, wird einer der 16 Ausgänge 0 bis 15 aktiviert. Wenn sich die angeforderte Adresse nicht findet, wird keiner der 16 Ausgänge aktiviert und ein entsprechendes Signal für das Nichtauffinden auf die Leitung 37E gegeben.
Während des nächsten Zyklusses werden die Bitpositionen 20 bis 28 in der Adreßverriegelung 22 übertragen in die Bitposi- ι tionen 4 bis 12 in einem Cache-Adreßregister 23, in dem die j Bitpositionen 4 bis 9 die Spalte des im Cache-Speicher oder im j Cache-Speicherverzeichnis zu wählenden Blockes wählen. Gleich- j zeitig empfängt der Zeilendecodierer 37C die Ausgänge 0 bis |
15 von den Zeilenvergleichern 37 und codiert das eine der
16 Signale in ein aus 4 Bits kombiniertes Signal, das in die Bitpositionen 0 bis 3 des Cache-Adreßregisters 23 eingegeben wird.
Die ODER-Schaltung 37D prüft also für jede üngültigkeitsanforderung vom BIAS 13, ob ein gültiger Block im Cache-Speicher existiert, wenn sie Signale von den Ausgängen 0 bis 15 der Zeilenvergleicher 37 empfängt. Wenn keine gültige Blockadresse im Cache-Inhaltsverzeichnis existiert, wird von der ODER-Schaltung 37D kein Ausgang aktiviert. Wenn ein gültiger Block gefunden wird, leitet die ODER-Schaltung 37D den einen der 16 Ausgänge 0 bis 15 der Zeilenvergleicher 37 weiter, der durch die Vergleichsübereinstimmung einer der 16 Werte in der gewählten Inhaltsverzeichnisspalte mit den Anforderungsbits
PO 977 026
909822/OS60
8 bis 20 von der Schaltung 36 aktiviert wird. Die ODER-Schaltung 37D gibt im aktivierten Zustand ein Signal "Block gefunden" an die UND-Schaltung 23D, so daß diese den Trigger 23C ' einschaltet, wenn eine BIAS-Anforderung für diese Cache-Spei- ; cheroperation verantwortlich ist. Wenn keiner der Ausgänge O bis 15 aktiviert ist, wird kein Block im Cache-Speicher gewählt.
Für Zugriffe des lokalen Prozessors (dadurch bezeichnet, daß kein Ungültigkeitssignal in der Anforderungsverriegelung 23G steht) wird die Ausgabe vom Cache-Adreßregister 23 über die UND-Schaltungen 23J, 23K, 23L für die Zeile, die Spalte bzw. die Doppelwortstelle im Cache-Speicher gegeben. Der Inverter
betätigt dann die UND-Schaltungen 23J, 23K, 23L. j
Wenn jedoch ein Ungültigkeitssignal in der Verriegelung 23G j
steht, sperrt der Inverter die genannten UND-Schaltungen und ! schaltet stattdessen die Torschaltung 23E und 23F ein, um die Zeilen- und Spaltensignale in das Inhaltsverzeichnis ■zurückzuleiten und wieder das benötigte Blockgültigkeitsbit
* i
zu lokalisieren, das dann ungültig gemacht wird mit dem !
Ungültigkeitssignal auf der Leitung 23H. |
Auf diese Weise gehen BIAS-Anforderungen ein zweites Mal in das' Cache-Inhaltsverzeichnis zurück, um das Ungültigkeitsbit für den gewählten Block zu setzen, während für normale Prozessoranforderungen dieselbe Ausgabe des Cache-Adreßregisters 23 !stattdessen während des Maschinenzyklusses zum Adressieren ;eines Doppelwortes im Cache-Speicher benutzt ürde.
Fig. 3 zeigt eine minimale Maschinenausführung, bei der ein Filterspeicher mit nur einer Eintragung durch das Filterregi-'ster 44 und einem Gültigkeitsbit 45 dargestellt wird. Fig. 4
jzeigt ein Ausführungsbeispiel mit einem Doppelfilter-Eingangsispeicher. In den Fign. 3 und 4 gibt ein ODER-Schaltkreis 41 !jeweils eine Schreibanforderung aus, die aus einer von einem
PO 977 026
909822/0560
; - 18 -
lokalen oder entfernten Kanal oder einem entfernten Prozessor
empfangenen Speicheradresse besteht. Die Ausführungsbeispiele [in den Fign. 3 und 4 filtern jedoch nur Schreibanforderungen vom Fernprozessor bzw. Fernkanal. Schreibanforderungen vom lokalen Kanal werden nicht gefiltert, weil sich in manchen MP-Konfigurationen die Verdrahtung dadurch vereinfachen läßt, daß man die Schreibanforderungen eines Prozessors und seiner physikalisch zugehörigen Kanäle kopiert. Dadurch, daß man üie Schreibanforderungen des lokalen Kanales nicht filtert, ,zeigte sich eine nur sehr geringfügige Leistungsminderung im Filterbetrieb, weil die Schreibanforderungen des lokalen Kanals im Vergleich zu der wesentlich höheren Rate jedes der Prozessoren relativ selten sind. Es kommt z. B. eine Kanalan-Eorderung auf rund 100 Prozessoranforderungen. Die Schreibanforderungen vom Fernprozessor und den Fernkanälen werden ladurch gefiltert, daß man ein Filtertor 42 mit dem Ausgangssignal der Vergleicherschaltung 47 und eines Inverters 48 steuert.
Durch die anfängliche Systemrückstellung wird jedes Gültigceitsbit 45 in den üngültigkeitszustand geschaltet und dadurch jede Vergleicherschaltung 47 zur Ausgabe eines "Ungleich"-Bignales gezwungen; das Filtertor 42 leitet dann die zuerst smpfangene Ungültigkeitsanforderung an den BIAS weiter und schaltet ein Ladetor 43 ein zum Aufzeichnen der ersten Ungülbigkeitsanforderung im Filterspeicher.
Die Vergleicherschaltung 47 liefert einen ungleichen Ausgang, solange ihre Eingänge nicht gleich oder das in sie eingegebene Sültigkeitsbit 45 auf ungültig geschaltet ist. Das Gültigkeitsoit 45 wird gültig geschaltet, wenn eine eingegebene Schreibmf orderung in ein Filterregister geladen wird. Die ungleiche ^.usgabe der Vergleicherschaltung 47 aktiviert eine Ausgabe vom Cnverter 48, mit der eine Ungültigkeitsanforderung durch das :?iltertor 42 auf den zugehörigen BIAS geleitet und das Ladetor
PO 977 026
909822/0560
28A796Q
j43 eingeschaltet wird, um die Ungültigkeitsanforderung in das angeschlossene Filterregister zu laden.
Jede vom ODER-Schaltkreis 41 kommende Schreibanforderung wird in das Filtertor 42 eingegeben, das die Filterung dadurch vornimmt, daß es die Schreibanforderung zum zugehörigen BIAS entsprechend der Operation aller angeschlossenen Vergleicherschaltungen 47 sperrt oder weiterleitet. Sobald die Vergleicherschaltung 47 eine Übereinstimmung der verglichenen Adressenj anzeigt, sperrt die Ausgabe vom Inverter 48 die Weiterleitung der Schreibanforderung zum BIAS, da die Adreßübereinstimmung anzeigt, daß die Adresse schon früher an den BIAS geleitet !wurde. Die Inverterausgabe sperrt auch ein Laden der eingegebenen Schreibanforderung in ein Filterregister, so daß sein !früherer Inhalt gültig bleibt.
[Lokale Kanalspeicher werden nicht gefiltert, da sie in der |Vergleicherschaltung der Fign. 3 und 4 nicht zu einem überjeinstimmenden Vergleichsergebnis führen können. Sie laufen also alle durch den ODER-Schaltkreis 41 und das Filtertor 42 zum BIAS, weil die Vergleicherschaltung 47 dann ein Signal für Ungleichheit liefert. Jede Anforderung von einem lokalen Kanal wird in das Filterregister 44 geladen, das jedoch keine Filterfunktion ausführen kann, weil die Anforderungen vom jlokalen Kanal nicht vom anderen Eingang zu einer Vergleicherlschaltung 47 empfangen werden.
Jede Ungültigkeitsadresse auf der Leitung 40 im Filterspeicher, äie an den BIAS ausgegeben wird, wird an ihrem wertniederen Ende auf eine Blockgrenzadresse im Cache-Speicher beschnitten, jä.h. in einer 24 Bit großen Adresse in den Positionen 8 bis sind die Bitpositionen 8 bis 25 wertdarstellend und die Positionen 26 bis 31 werden ausgenullt oder abgeschnitten. Dadurch wird die empfangene Anforderung von einer Doppelwortädresse in eine Cash-Speicherblockadresse geändert. Das
PO 977 026
909822/0560
284796Q
!geschieht ebenfalls in jedem der hier gezeigten Ausführungs-Ibeispiele.
IDas in Fig. 4 gezeigte Ausführungsbeispiel wird wegen seiner einfachen Schaltung und guten Leistung bevorzugt. Es unterscheidet sich von dem in Fig. 3 gezeigten Ausführungsbeispiel durch den Filterspeicher mit zwei Eingängen, gebildet durch die Filterregister 1 und 2 mit entsprechenden Gültigkeitsbitpositionen 45-1 und 45-2. Die Filterregister werden nach dem IFIFO-Prinzip (zuerst ein - zuerst aus) geladen. Die Ladefolge Wird durch eine FIFO-Ersetzungsschaltung 46, bestehend aus ,einem Triggerflipflop, gesteuert, die beim Empfang eines jeden Eingangsimpulses vom Inverter 48 in den entgegengesetzten bistabilen Zustand umschaltet. Wenn die FIFO-Austauschschaltung 46 in ihren wahren Zustand geschaltet ist, bereitet sie das Ladetor 43-1 zum Laden der nächsten Schreibanforderungsadresse in das Filterregister 1 vor und betätigt die UND-Schaltung 49-1 so, daß das Gültigkeitsbit 45-1 gültig geschaltet wird. Wenn andererseits die FIFO-Austauschschaltung 46 in den Komplementärzustand geschaltet ist, wird das Ladetor 43-2 zum Laden der ; nächsten Schreibanforderungsadresse in das Filterregister 2 i vorbereitet und die UND-Schaltung 49-2 schaltet das Gültig- · keltsbit 45-2 gültig. j
In den Fign. 3 und 4 wird jede Eintragung im Filterspeicher [ ungültig gemacht, sobald der lokale Prozessor einen Block in j seinen Cache-Speicher einliest, ungeachtet dessen, ob die I eingegebene Schreibanforderung mit einer gültigen Adresse im Filterspeicher übereinstimmt oder nicht. Ein Blockabruf wird signalisiert durch ein Signal auf der Leitung "FAR erstejf Block—lesen" vom Hauptspeicher (MS) des Systems, wenn das erste Doppelwort eines Cache-Speicherblocks gelesen wird. Das erste Blocklesesignal tritt somit am Beginn der Cache-Speicherblockübertragung auf und stellt jedes Gültigkeitsbit auf ungültig zurück, so daß der Inhalt eines jeden Filterregisters zur Filterung nicht mehr zur Verfügung steht. PO "977 026
909822/0560
284796Q
Die beiden Vergleicherschaltungen 47-1 und 47-2 in Fig. 4 ι vergleichen gleichzeitig eine eingegebene Schreibanforderung | mit beiden in den Filterregistern 1 und 2 gespeicherten : gültigen Adressen. Eine Leitung 40 gibt die entfernte Schreib- ; anforderung an einen Eingang einer jeden der beiden Verglei- ' cherschaltungen 47-1 und 47-2. Ein anderer Eingang zu den [ Vergleicherschaltungen ist mit den Ausgängen der Gültigkeits- ι bitpositionen 45-1 bzw. 45-2 verbunden. Wenn ein Bit 45 auf ungültig geschaltet ist, zwingt es die angeschlossene Vergleicherschaltung zur Ausgabe eines Signales für Nichtübereinstimmung. Wenn eine Vergleicherschaltung eine Übereinstimmung zwischen der empfangenen Adresse und der Adresse im angeschlossenen Filterregister feststellt, während das Gültigkeitsbit gesetzt ist, liefert diese Vergleicherschaltung ein Ausgangssignal für Gleichheit und sperrt dadurch das Filtertor 42, weil der Inverter 48 dann ein Abschaltsignal an dieses Filtertor 42 liefert. Die empfangene Schreibanforderung wird daher nicht an den BIAS übertragen. Außerdem kommt kein Eingangssignal vom abgeschalteten Ausgang des Inverters 48 an die FIFO-Austauschschaltung 46, die daher in ihrem früheren Zustancf bleibt. !
In dem in Fig. 5 gezeigten Ausführungsbeispiel läßt sich die Ungültigschaltung innerhalb des Filterspeichers effektiver kontrollieren als in dem in Fig. 4 gezeigten Ausführungsbeispiel. Anstatt alle Eintragungen im Filterspeicher bei einem Blockabruf durch den lokalen Prozessor ungültig zu machen, wie (es dem Ausführungsbeispiel der Fig. 4 geschieht, wird bei dem ;in Fig. 5 gezeigten Ausführungsbeispiel ein Filterregister nur dann ungültig gemacht, wenn seine Adresse mit der Adresse des Abrufblockes übereinstimmt. Wenn Adressen im Filterspeicher ,daher gültig sind, aber nicht mit der Abrufblockadresse Überbeins timmen, wird im Filterspeicher keine Adresse ungültig gej
macht. Dadurch braucht man dieselbe Adresse nicht wieder in den Filterspeicher zu laden und auch nicht an den BIAS weiterzuge-
PO 977 026
909822/0560
28479^0
ben, wenn sie im lokalen Prozessor aktiv ist. Durch diese Ein- !richtung ist theoretisch ein größerer Wirkungsgrad im Betrieb des Filterspeichers gegeben als bei dem in Fig. 4 gezeigten ■ jAusführungsbeispiel; dieser geht jedoch auf Kosten einer umifangreicheren Steuerschaltung. Die zusätzliche Schaltung in : Fig. 5 enthält ein Paar Vergleicher 50-1 und 50-2, die entsprechend eine Übereinstimmmung zwischen der Blockabrufadresse lim Leseadreßregister FAR und dem Inhalt des Filterregisters 1 bzw. 2 feststellen, um die entsprechenden Gültigkeitsbits 45-1 !«and 45-2 zurückstellen zu können. Die Blockabruf adresse für die1 Iiη Fig. 5 gezeigten Vergleicher 50-1 und 50-2 wird von einem Tor 52 abgeleitet, das die Hauptspeichervorschaltung für die j erste Anforderung in einem Cache-Speicherblock und die Ausgabe ; des Leseadreßregisters (FAR) 51 empfängt, das die Anforderung \ für den Cache-Speicherblockabruf vom Hauptspeicher abgibt. \
Sin weiterer Unterschied der in Fig. 5 gezeigten Ausführung gegenüber den Ausführungen 3 und 4 besteht darin, daß alle lurch den ODER-Schaltkreis 41 laufenden Schreibanforderungen jefiltert werden, also auch die Anforderungen des lokalen Kanals und die Schreibanforderungen vom entfernten Prozessor j and vom entfernten Kanal. Alle Anforderungen werden an den FiI-berspeicher und seine Vergleicherschaltung 47 auf den Leitungen 40C vom Ausgang des ODER-Schaltkreises 41 gegeben.
?ig. 6 zeigt ein weiteres Ausführungsbeispiel mit einer Spei- :hermatrix 44C als Filterspeicher. Alle Schreibanforderungen (mit Ausnahme der Anforderungen vom lokalen Prozessor) werden gefiltert. Die Ausgabe des ODER-Schaltkreises 41 geht an das Adreßregister 61, das die Adresse einen Maschinenzyklus lang j festhält und sie an eine Adreßverriegelung 62 ausgibt; diese I lält die Adresse einen Maschinenzyklus lang fest (mit einer I lalben Zyklusüberlappung) und gibt sie dann an das Filtertor 63 j. Die Bitpositionen 21 bis 25 im Adreßregister 61 werden an den i Jeseeingang eines Decodierers 64 geleitet, um eine Zeile in der
PO 977 026
909822/0560
284796jQ
Bpeichermatrix 44C zu wählen, die vier Spalten zum gleichzei- ' tigen Auslesen von vier aufgezeichneten Adressen an die ent- I sprechenden Vergleicherschaltungen 47C, D, E und F enthält, j
die den Inhalt der Adreßbits 8 bis 20 (gelesen aus den ent- ' sprechenden Spalten) vergleichen mit den Bits 8 bis 20 im ; Adreßregister 61. Wenn ein Vergleicher eine Übereinstimmung seiner Eingänge feststellt, gibt er ein Gleichheits-Ausgangs- ( signal an den Inverter 48, der das Filtertor 63 so sperrt, daß ; die Ungültigkeitsadresse in der Verriegelung 62 nicht an den j
BIAS übertragen wird.
Wenn andererseits alle Vergleicherschaltungen 47C bis 47F ein i Ausgangssignal für Ungleichheit liefern, liefert der Inverter 48 ein aktives Ausgangssignal an das Filtertor 63, das dann J die Ungültigkeitsadresse von der Verriegelung 62 an den BIAS weiterleitet und auch die Ungültigkeitsadreßbits 8 bis 20 auf leinen Eingang einer jeden UND-Schaltungen 43C bis 43F gibt.
{Durch Einschalten einer der vier Ausgangsleitungen von einer !Austauschmatrix 66 werden die ^adetore 43C bis 43F gewählt, Während die Verriegelung 62 die Bits 21 bis 25 durch einen jZeilendecodierer 64 schickt, um eine Filterspeicherzeile zu wählen. Die Spalte in der gewählten Zeile in der Filterspei-'chermatrix 44C wird durch die aktive Leitung von der Austausch-
,schaltung 66 gewählt.
Die Ersetzungs- oder Austauschschaltung 66 enthält genausoviel Zeilen wie die Speichermatrix 44C und jede Zeile hat zwei binäre Bitpositionen. Sobald der Zweierbitwert in einer Zeile 'der Austauschschaltung an den Decodierer 67 ausgelesen wird, Iwird er auf den nächst höheren Wert (Modul 4) erhöht, z. B. 00, 01, 10, 11, 00 usw. Die vier Werte für jede Zeile werden somit der Reihe nach in Umlaufform erhöht, um eine Spalte im jFilterspeicher zu wählen, um die eingegebenen Adreßbits 8 bis I20 zu schreiben und ein Gültigkeitsbit V gültig zu schalten.
I
ι
PO 977 026
9 09 8 22/0S80
I - 24 -
feine Üngultigkeitsadreßeintragung wird somit jeweils in die ^peichermatrix 44C geschrieben, vier Eintragungen werden jedoch gleichzeitig assoziativ ausgelesen. Das Schreiben und Lesen erfolgt zu fünf verschiedenen Taktzeiten, weil sie von den Schaltungen 61 und 62 zu verschiedenen Halbzyklusperioden vorgenommen werden.
Fig. 7 zeigt die gesamte Arbeitsweise der Erfindung. Die Stellungen der Schalter 94C und 94D stellen die Umstände dar, in denen die BIAS-Filterung (1) nur mit Fernprozessorspeichern pder (2) nur mit Fernprozessorspeichern und Fernkanalspeichern t>der (3) mit Fernprozessor speichern, Fernkanalspeichern und fciOkalkanalspeichern vorgenommen werden kann. Es ist die zweite
Schalterstellung gezeigt, d.h. es werden nur Fernprozessor-Bpeicher und Fernkanalspeicher gefiltert, Lokalkanalspeicher (werden jedoch nicht gefiltert, weil sie durch den Schalter 94D = zum Kasten 99 laufen, der die Adresse in den BIAS gibt. Aus Fig. 7 ist klar zu ersehen, daß eine lokale Prozessorabruf- : anforderung ein erstes Vorschaltsignal vom Hauptspeicher für : ien Cache-Speicherblockabruf einleitet und Schreibanforderungen vom Lokalprozessor nur einen Zugriff zum lokalen Cache-Speicher; and Hauptspeicher auslösen, um ein Doppelwort zu speichern. '.
PO 977 026
909822/0560
ι -
Lee

Claims (1)

  1. PATENTANSPRÜCHE
    Speichersteuereinrichtung für Datenverarbeitungsanlagen mit einem Hauptspeicher, der von einem oder mehreren Prozessoren und/oder Eingabe-/Ausgabekanälen gemeinsam genutzt wird und mit einem, jedem Prozessor zugeordneten Prozeßpufferspeicher (Cache-Speicher), dem jeweils ein Adreßstapel (BIAS) zum Ungültigsetzen von Adressen im Cache-Inhaltsverzeichnis zugeordnet ist, dadurch gekennzeichnet,
    daß jedem Adreßstapel (BIAS, 13A, B; Fig. 1) eine Filterschaltung (11A, 11B) vorgeschaltet ist, die Anforderungen zum Ungültigsetzen von Adressen im zugeord neten Cache-Inhaltsverzeichnis (14A, 14B) daraufhin prüft, ob eine entsprechende Adresse dort enthalten und schon ungültig gesetzt ist, um in diesem Fall eine weitere Abfrage des Cache-Inhaltsverzeichnisses zu sperren.
    2. Speichersteuereinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Eingänge der Filterschaltungen (11A, 11B) mit allen Kanälen und mit allen nicht-lokalen Prozessoren verbunden sind.
    3. Speichersteuereinrichtung nach Anspruch 2, dadurch gekennzeichnet,
    daß die ungültig zu setzenden Adressen Schreibanforderungen von nicht-lokalen Prozessoren und/oder Kanälen zu gemeinsam benutzten Teilen des Hauptspeichers betreffen.
    4. Speichersteuereinrichtung nach Anspruch 3, dadurch gekennzeichnet,
    daß Schreibanforderungen von lokalen Kanälen (z.B. Kanal A von Prozessor A in Fig. 1) in der Filterschaltung (11A) nicht geprüft werden.
    PO 977 026
    ORIGINAL INSPECTED
    Speichersteuereinrichtung nach einem der Ansprüche
    1 bis 4,
    dadurch gekennzeichnet,
    daß sich die ungültig zu setzenden Schreibadressen auf
    Blöcke im Hauptspeicher beziehen.
    Speichersteuereinrichtung nach einem der Ansprüche
    1 bis 5,
    dadurch gekennzeichnet,
    daß die Filterschaltungen (11A, 11B) Speichereinrichtungen (Filterregister, Filterspeicher, 44) zur Aufnahme
    der Adressen enthalten, für die keine Ungültigsetzung
    im Cache-Inhaltsverzeichnis erforderlich ist.
    Speichersteuereinrichtung nach Anspruch 6,
    dadurch gekennzeichnet,
    daß die Filterspeichereinrichtungen (44) und der Adreß-
    stapel (BIAS) mit der Adresse einer Schreibanforderung
    geladen werden, wenn in einer Vergleichsschaltung (47)
    festgestellt wird, daß die Schreibadresse nicht mit den
    in der Filterspeichereinrichtung enthaltenen Adressen |
    übereinstimmt. ·,
    8. Speichersteuereinrichtung nach einem der Ansprüche j 1 bis 7, j
    dadurch gekennzeichnet,
    ; ι
    ι daß die Filterspeichereinrichtung aus zwei Registern i
    (Filter Reg 1, Filter Reg 2, Fig. 4) besteht, die I abwechselnd nach dem FIFO-Verfahren benutzt werden.
    9. Speichersteuereinrichtung nach einem der Ansprüche j 1 bis 8, ! dadurch gekennzeichnet, I
    daß als Filterspeicher eine Matrix (44C, Fig. 6) vorge- i
    I sehen ist, die in jeder Zeile Speicherplätze (Spalten) \
    PO 977 026
    909822/0560
    _ ο mm
    für Adressen mit zugeordnetem Gültigkeitsbit enthält, daß für das Ausgangssignal jeder Spalte eine Vergleichsschaltung (47) vorgesehen ist,
    daß die Auswahl einer Zeile durch die niedrigsteiligen Bits der untersuchten Schreibadresse (61) erfolgt und daß beim Einschreiben einer neuen Adresse in die Matrix die Spalte mit Hilfe einer Ersetzungsmatrix (66) ausgewählt wird, in der für jede Zeile eine Modulo-Fortschaltung der Spaltenposition erfolgt.
    10. Speichersteuereinrichtung nach einem der Ansprüche
    1 bis 9, :
    dadurch gekennzeichnet, :
    daß die Einträge in den Filterspeichereinrichtungen ganz ·
    oder teilweise gelöscht werden, wenn ein neuer \
    ί Speicherblock in den Cache-Speicher des lokalen Prozessors!
    geladen wird oder wenn die Datenverarbeitungsanlage in den Ausgangszustand zurückgesetzt wird.
    11. Speichersteuereinrichtung nach Anspruch 10, dadurch gekennzeichnet,
    j daß in den Filterspeichereinrichtungen nur die Adressen gelöscht werden, die im übertragenen Speicherblock enthalten sind.
    '12. Speichersteuereinrichtungen nach Anspruch 11, ι dadurch gekennzeichnet,
    j daß Vergleichseinrichtungen (501I, 50'2, Fig. 5) vorge-
    ' sehen sind, die beim Einlesen eines Blocks in den ι Cache-Speicher die im Leseadreßregister (FAR) enthaltene Adresse mit den in den Filterspeichereinrichtungen (Filter Reg 1, 2) enthaltenen Adressen vergleichen und bei Übereinstimmung den jeweiligen Eintrag der Filterspeichereinrichtung löschen.
    PO 977 026
    909822/Q5SO
    2S47960
    13. Speichersteuereinrichtung nach einem der Ansprüche 1 bis 12,
    dadurch gekennzeichnet, daß den Einträgen der Filterspeichereinrichtung (44) Gültigkeitsbits (45) zugeordnet sind, die zum Löschen der Einträge zurückgesetzt werden.
    PO 977 026
    ÖÖ9822/ÖSSÖ
DE19782847960 1977-11-28 1978-11-04 Speichersteuereinrichtung Granted DE2847960A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/855,485 US4142234A (en) 1977-11-28 1977-11-28 Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system

Publications (2)

Publication Number Publication Date
DE2847960A1 true DE2847960A1 (de) 1979-05-31
DE2847960C2 DE2847960C2 (de) 1987-01-29

Family

ID=25321369

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782847960 Granted DE2847960A1 (de) 1977-11-28 1978-11-04 Speichersteuereinrichtung

Country Status (6)

Country Link
US (1) US4142234A (de)
JP (1) JPS5476042A (de)
DE (1) DE2847960A1 (de)
FR (1) FR2410335A1 (de)
GB (1) GB1586847A (de)
IT (1) IT1160070B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3919802A1 (de) * 1988-06-17 1989-12-21 Hitachi Ltd Speicherbaustein mit vektorprozessoren und einem skalarprozessor

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5849945B2 (ja) * 1977-12-29 1983-11-08 富士通株式会社 バツフア合せ方式
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
JPS55134459A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Data processing system
JPS5724086A (en) * 1980-07-16 1982-02-08 Fujitsu Ltd Repealing cotrol system of buffer memory
CA1187198A (en) * 1981-06-15 1985-05-14 Takashi Chiba System for controlling access to channel buffers
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
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
US4571674A (en) * 1982-09-27 1986-02-18 International Business Machines Corporation Peripheral storage system having multiple data transfer rates
DE3582506D1 (de) * 1984-02-10 1991-05-23 Prime Computer Inc Cache-kohaerenz-anordnung.
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
FR2571163B1 (fr) * 1984-09-28 1989-02-10 Nec Corp Systeme de traitement de donnees pour traitement de vecteurs ayant un ensemble de commande d'invalidation d'antememoire.
US5734871A (en) * 1985-10-29 1998-03-31 Mitem Corporation Method for and apparatus for controlling the execution of host computer application programs through a second computer
JPS62202247A (ja) * 1985-11-25 1987-09-05 Nec Corp キヤツシユメモリ内容一致処理方式
JPS62147548A (ja) * 1985-12-23 1987-07-01 Mitsubishi Electric Corp 外部記憶制御装置
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5107419A (en) * 1987-12-23 1992-04-21 International Business Machines Corporation Method of assigning retention and deletion criteria to electronic documents stored in an interactive information handling system
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
DE68924306T2 (de) * 1988-06-27 1996-05-09 Digital Equipment Corp Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
US5247688A (en) * 1988-10-14 1993-09-21 Ricoh Company, Ltd. Character recognition sorting apparatus having comparators for simultaneous comparison of data and corresponding key against respective multistage shift arrays
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
EP0366323A3 (de) * 1988-10-28 1991-09-18 Apollo Computer Inc. Warteschlange zur Duplikatetikettenspeicherinvalidation
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
US5185875A (en) * 1989-01-27 1993-02-09 Digital Equipment Corporation Method and apparatus for reducing memory read latency in a shared memory system with multiple processors
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5214766A (en) * 1989-04-28 1993-05-25 International Business Machines Corporation Data prefetching based on store information in multi-processor caches
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
JP2641819B2 (ja) * 1990-11-05 1997-08-20 三菱電機株式会社 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
JPH04372037A (ja) * 1991-06-21 1992-12-25 Matsushita Electric Ind Co Ltd システム管理情報設定装置
US5953510A (en) * 1991-09-05 1999-09-14 International Business Machines Corporation Bidirectional data bus reservation priority controls having token logic
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5423008A (en) * 1992-08-03 1995-06-06 Silicon Graphics, Inc. Apparatus and method for detecting the activities of a plurality of processors on a shared bus
US5504874A (en) * 1993-09-29 1996-04-02 Silicon Graphics, Inc. System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions
US5634081A (en) * 1994-03-01 1997-05-27 Adaptec, Inc. System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer
JPH07334450A (ja) * 1994-06-10 1995-12-22 Mitsubishi Denki Semiconductor Software Kk インタフェイス装置
JPH0816470A (ja) 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US6892173B1 (en) * 1998-03-30 2005-05-10 Hewlett-Packard Development Company, L.P. Analyzing effectiveness of a computer cache by estimating a hit rate based on applying a subset of real-time addresses to a model of the cache
US6651143B2 (en) 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
US9646992B2 (en) * 2015-09-03 2017-05-09 Kabushiki Kaisha Toshiba Semiconductor memory
US9354885B1 (en) 2016-01-08 2016-05-31 International Business Machines Corporation Selective suppression of instruction cache-related directory access
US9898296B2 (en) 2016-01-08 2018-02-20 International Business Machines Corporation Selective suppression of instruction translation lookaside buffer (ITLB) access

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056844A (en) * 1974-02-26 1977-11-01 Hitachi, Ltd. Memory control system using plural buffer address arrays

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast
FR129151A (de) * 1974-02-09
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056844A (en) * 1974-02-26 1977-11-01 Hitachi, Ltd. Memory control system using plural buffer address arrays

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3919802A1 (de) * 1988-06-17 1989-12-21 Hitachi Ltd Speicherbaustein mit vektorprozessoren und einem skalarprozessor

Also Published As

Publication number Publication date
GB1586847A (en) 1981-03-25
IT7829733A0 (it) 1978-11-14
IT1160070B (it) 1987-03-04
FR2410335A1 (fr) 1979-06-22
FR2410335B1 (de) 1984-09-28
DE2847960C2 (de) 1987-01-29
JPS5476042A (en) 1979-06-18
US4142234A (en) 1979-02-27
JPS5713945B2 (de) 1982-03-20

Similar Documents

Publication Publication Date Title
DE2847960A1 (de) Speichersteuereinrichtung
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2240433C3 (de) Hierarchische Datenspeicheranordnung für mehrere über Pufferspeicher angeschlossene Einheiten und ein Verfahren zu deren Betrieb
DE2241257C3 (de) Datenverarbeitende Anlage
DE2227882C2 (de) Virtuelle Speicheranordnung
DE3131341C2 (de)
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2717702C2 (de) Speicher-Zugriff-Steuersystem
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE3151745C2 (de)
DE2415900B2 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE2523414A1 (de) Hierarchische speicheranordnung
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE3724730A1 (de) Cache-steuereinrichtung
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE10232926A1 (de) Cachesystem mit Leitungsgruppen und mit Kohärenz sowohl für einzelne Leitungen als auch Gruppen von Leitungen
DE2235841A1 (de) Anordnung zur speichersteuerung mit logischer und echter adressierung
DE1815234A1 (de) Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher
DE10006430A1 (de) Verbessertes Kohärenzprotokoll für einen Computer-Cache
DE19606629A1 (de) Mehrprozessor-Zentraleinheit
DE3919802A1 (de) Speicherbaustein mit vektorprozessoren und einem skalarprozessor
DE4114053A1 (de) Computersystem mit cachespeicher
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: RUDOLPH, W., PAT.-ASS., 7030 BOEBLINGEN

8125 Change of the main classification

Ipc: G06F 12/08

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee