DE3919802A1 - Speicherbaustein mit vektorprozessoren und einem skalarprozessor - Google Patents
Speicherbaustein mit vektorprozessoren und einem skalarprozessorInfo
- Publication number
- DE3919802A1 DE3919802A1 DE3919802A DE3919802A DE3919802A1 DE 3919802 A1 DE3919802 A1 DE 3919802A1 DE 3919802 A DE3919802 A DE 3919802A DE 3919802 A DE3919802 A DE 3919802A DE 3919802 A1 DE3919802 A1 DE 3919802A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- block
- validity
- request
- address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
- G06F15/8069—Details on data memory access using a cache
-
- 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/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Description
Die Erfindung betrifft ein Speichersteuersystem und
insbesondere ein Anpassungssteuersystem eines Hauptspei
chers und eines Pufferspeichers in einem Vektor-und Ska
larprozessorsystem.
In Computersystemen des Standes der Technik wird in ei
nem Pufferspeicher oder Cache-Speicher eine Kopie des
Inhalts des Hauptspeichers gespeichert, wobei der Puf
ferspeicher aus Elementen aufgebaut ist, die schneller
sind als diejenigen des Hauptspeichers, so daß der Pro
zessor schnell auf den Pufferspeicher zugreifen kann.
In einem Multiprozessorsystem, in dem eine Mehrzahl von
Befehlsprozessoren jeweils einen einen einzigen Haupt
speicher gemeinsam nutzenden Pufferspeicher aufweisen,
wird eine Anpassungssteuerung zwischen dem Hauptspeicher
und dem Pufferspeicher vorgenommen, wenn eine Speicher
operation vom Befehlsprozessor an den Hauptspeicher aus
geführt wird, auf eine Weise, wie sie aus US 40 56 844-A
(JP-B-54-40 182-A) bekannt ist. In diesem System ist im
Pufferspeicher getrennt und unabhängig von einem Puffer
adressenfeld, in dem eine Adresse des Pufferspeichers im
Hauptspeicher registriert ist, ein Frontadressenfeld
vorgesehen. Das Frontadressenfeld ist eine Verwaltungs
tabelle, auf die von anderen Prozessoren zum Prüfen der
Speicheradresse Bezug genommen wird und die dazu dient,
die Anpassungssteuerung zwischen dem Hauptspeicher und
dem Pufferspeicher schnell auszuführen. In US 40 56 844-A
wird das Pufferadressenfeld mit BAA-1 oder BAA-11
zeichnet, während das Frontadressenfeld mit BAA-2 oder
BAA-12 bezeichnet wird.
Ein Vektorprozessor wird dazu verwendet, wissenschaftli
che und technische Operationen schnell auszuführen. Ein
Vektorprozessor weist eine Mehrzahl von Vektorregistern
zum Halten von Vektordaten und eine Mehrzahl von Opera
tionseinheiten zum Bearbeiten der Vektordaten auf. Oft
mals kommt ein Parallelelementsystem zur Anwendung, in
dem die von einem Vektorbefehl zu verarbeitenden Vektor
daten in eine Mehrzahl von Gruppen unterteilt und die
Operationen in den entsprechenden Gruppen parallel aus
geführt werden. In diesen Fällen wird der Vektorprozes
sor, wenn er auf den Hauptspeicher zugreift, einer Mehr
zahl von Anforderungseinrichtungen (die auf den Haupt
speicher zugreifen und die Daten zwischen dem Hauptspei
cher und dem Vektorregister übertragen) für die unter
teilten Elementgruppen parallel zugeordnet.
Bei einem Multiprozessor eines Supercomputers, der eine
Mehrzahl von Vektorprozessoren und eine Mehrzahl von ei
ne Skalaroperation und eine Vorbereitungsoperation für
den Vektorprozessor, den Pufferspeicher in jedem Skalar
prozessor und für den von den Vektorprozessoren und den
Skalarprozessoren gemeinsam genutzten Hauptspeicher aus
führenden Skalarprozessoren aufweist, ist der Anpas
sungssteuerung zwischen dem Hauptspeicher und dem Puf
ferspeicher in der Vergangenheit keine Beachtung ge
schenkt worden. Dementsprechend ist im Multiprozessor
des Supercomputers das folgende Problem aufgetreten.
Falls als Einrichtung zum Ausführen der Anpassungssteu
erung zwischen dem Hauptspeicher und dem Pufferspeicher
ein Frontadressenfeld zum Prüfen der Speicheradresse
vorgesehen ist, ist bei einem Speichervorgang vom Vek
torprozessor zum Hauptspeicher aufgrund der Wartezeit
beim Wiederauffinden des Frontadressenfeldes eine we
sentliche Abnahme des Durchsatzes einer Speicheranfor
derung unvermeidlich, weil die Vektorprozessoren pa
rallel eine Mehrzahl von Speicheranforderungen ausgeben.
Wenn andererseits zur Erfüllung der Speicheranforderun
gen der Vektorprozessoren eine Mehrzahl von Frontadres
senfeldern vorgesehen ist, nimmt der Hardwareumfang in
hohem Maße zu, so daß der Baustein von den Frontadres
senfeldern belegt wird.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein
Speichersteuersystem zu schaffen, das mittels einer
kleinen Zahl von Frontadressenfeldern im Multiprozessor
system des Supercomputers, der eine Mehrzahl von Vektor
prozessoren mit einer Mehrzahl von Speicheranforderungs
einrichtungen, eine Mehrzahl von je einen Pufferspeicher
besitzenden Skalarprozessoren und einen von den Vektor
prozessoren und Skalarprozessoren gemeinsam genutzten
Hauptspeicher aufweist, die Anpassungssteuerung zwischen
dem Hauptspeicher und dem Pufferspeicher wirksam bewerk
stelligen kann.
Diese Aufgabe wird erfindungsgemäß gelöst durch einen
Speichersteuerbaustein eines Multiprozessorsystems, wel
ches eine Mehrzahl von Vektorprozessoren, die je eine
Einrichtung zur Speicherungsanforderung an den Haupt
speicher besitzen, und eine Mehrzahl von Skalarprozes
soren, die je einen Pufferspeicher, der eine Kopie des
Hauptspeichers speichert, und eine Verwaltungstabelle
(Frontadressenfeld), die die Adresse der Speicherkopie
im Hauptspeicherregister des Pufferspeichers enthält,
aufweist, wobei der Hauptspeicher in Blöcke unterteilt
ist, die den Speichereinheiten des Pufferspeichers ent
sprechen und wobei ein Blockgültigkeitsspeicher vorgese
hen ist, der angibt, ob ein Block des Hauptspeichers im
Pufferspeicher vorliegt. Der Blockgültigkeitsspeicher
enthält Blockgültigkeitsbits, von denen je eines für je
den Block vorgesehen ist, wobei jedes Bit dann gültig
ist, wenn der entsprechende Block im Pufferspeicher vor
liegt. Wenn die Speicheroperation vom Vektorprozessor an
den Hauptspeicher ausgeführt wird, wird vor der Bezug
nahme auf die Verwaltungstabelle auf den Blockgültig
keitsspeicher Bezug genommen, so daß die Anpassungssteu
erung zwischen dem Hauptspeicher und dem Pufferspeicher
bewerkstelligt wird. Der Blockgültigkeitsspeicher weist
auf seiner Eingabeseite eine Schaltung auf, die die eine
Mehrzahl von kontinuierlichen Speicheradressen aufwei
sende Anforderung auf eine Anforderung reduziert. Ferner
ist der Hauptspeicher in Gruppen unterteilt, die je eine
Mehrzahl von Blöcken aufweisen, welche die Speicherein
heiten des Pufferspeichers darstellen. Zur Angabe, ob
ein Teil der Blöcke oder alle Blöcke einer jeden Gruppe
im Pufferspeicher vorliegen, ist eine Blockgruppengül
tigkeitstabelle vorgesehen. Die Blockgruppengültigkeits
tabelle weist Blockgruppengültigkeitsbits auf, von denen
je eines für jede Blockgruppe vorgesehen ist, wobei je
des Blockgruppengültigkeitsbit gültig ist, wenn wenig
stens einer der Blöcke der entsprechenden Blockgruppe im
Pufferspeicher vorliegt. Während eines Speichervorgangs
vom Vektorprozessor zum Hauptspeicher wird vor der Be
zugnahme auf den Blockgültigkeitsspeicher auf die Block
gruppengültigkeitstabelle zugegriffen.
In der vorliegenden Erfindung ist der Hauptspeicher in
die Speichereinheiten des Pufferspeichers bildende
Blöcke unterteilt, außerdem ist für jeden der Skalarpro
zessoren ein Blockgültigkeitsspeicher vorgesehen, der
angibt, ob die Blöcke des Hauptspeichers im Pufferspei
cher vorliegen. Wenn der Vektorprozessor eine Speicher
anforderung ausgibt, wird vor dem Zugriff auf das Front
adressenfeld vom Blockgültigkeitsspeicher die Speicher
adresse geprüft, woraufhin auf das Frontadressenfeld nur
dann zugegriffen wird, wenn das Blockgültigkeitsbit des
die Speicheradresse enthaltenden Blocks gültig ist.
Folglich wird der Zugriff auf das Frontadressenfeld be
gonnen, nachdem das Vorliegen der Speicheradresse im
Frontadressenfeld bestätigt worden ist. Somit wird die
Anzahl der Zugriffe und, aufgrund der kleinen Zahl von
Frontadressenfeldern, die Wartezeit verringert. Die
Blockgültigkeitsspeicher werden in eine Mehrzahl von
Banken so unterteilt, daß jede von ihnen unabhängig ar
beiten kann. Dadurch wird die Wartezeit weiter verrin
gert.
Am Eingang des Blockgültigkeitsspeichers werden die
Speicheradressen der von der Mehrzahl der Anforderungs
einrichtungen gleichzeitig ausgegebenen Speicherungsan
forderungen verglichen; ebenso werden die Speicheradres
sen der zeitlich aufeinanderfolgenden Speicheranforde
rungen des Vektorprozessors verglichen, so daß festge
stellt werden kann, ob die Speicheranforderungen zum
gleichen Block des Pufferspeichers gehören, wodurch die
an den gleichen Block gerichteten Speicheranforderungen
in eine einzige Anforderung gepackt werden können. Da
durch kann die Anzahl der Zugriffe verringert werden.
Der Hauptspeicher wird in Gruppen unterteilt, von denen
jede eine Mehrzahl von die Speichereinheiten des Puffer
speichers bildenden Blöcken besitzt; für jede Speicher
anforderungseinrichtung im Vektorprozessor ist eine
Blockgruppengültigkeitstabelle vorgesehen, die angibt,
ob ein Teil der Blöcke oder alle Blöcke der jeweiligen
Hauptspeichergruppe im Pufferspeicher vorliegen. Wenn
der Vektorprozessor eine Speicheranforderung ausgibt,
wird die Speicheradresse vor dem Zugriff auf den Block
gültigkeitsspeicher mittels der Blockgruppengültigkeits
tabelle geprüft, woraufhin auf den Blockgültigkeitsspei
cher nur dann zugegriffen wird, wenn das Blockgruppen
gültigkeitsbit der die Speicheradresse enthaltenden
Blockgruppe gültig ist. Daher wird die Zahl der Zugriffe
an den Blockgültigkeitsspeicher verringert und die War
tezeit verkürzt.
Die Erfindung wird im folgenden anhand von Ausführungs
beispielen unter Bezug auf die Zeichnungen näher erläu
tert; es zeigen:
Fig. 1 den Aufbau eines Multiprozessorsystems eines
Supercomputers einschließlich einer Speicher
steuereinheit gemäß einer erfindungsgemäßen
Ausführungsform;
Fig. 2 die Beziehung zwischen den Adressen des Haupt
speichers, der Blockgruppengültigkeitstabelle,
des Blockgültigkeitsspeichers und des Front
adressenfeldes des in Fig. 1 gezeigten Systems:
Fig. 3 eine erläuternde Darstellung des Betriebs der
Blockgruppengültigkeitstabelle und des Block
gültigkeitsspeichers, wenn ein Vektorprozessor
eine Speicheranforderung ausgibt;
Fig. 4 eine erläuternde Darstellung der Eintragungs
und Ungültigmachungsoperation des Blockgültig
keitsspeichers und der Blockgruppengültigkeits
tabelle von Fig. 1;
Fig. 5 eine auf eine zweite Ausführungsform bezogene
erläuternde Darstellung des Betriebs der Block
gruppengültigkeitstabelle und des Blockgültig
keitsspeichers, wenn ein Vektorprozessor eine
Speicheranforderung ausgibt; und
Fig. 6 eine auf die zweite Ausführungsform bezogene
erläuternde Darstellung der Eintragungs- und
Ungültigmachungsoperation des Blockgültigkeits
speichers und der Blockgruppengültigkeitstabel
le.
Nun wird das Prinzip und Ausführungsformen der Erfindung
beschrieben.
Wie in Fig. 1 gezeigt, weist ein Multiprozessorsystem
einen Hauptspeicher (HS) 1, der von einer Mehrzahl von
Skalarprozessoren (SP) 3 und 4 und einer Mehrzahl von
Vektorprozessoren (VP) 5 und 6 gemeinsam genutzt wird,
E/A-Prozessoren (EAP) 7 und 8, einen Erweiterungsspei
cher (ES) 9 und eine Speichersteuerung (SS) 2 zur Steu
erung der von den Skalarprozessoren 3 und 4, den Vektor
prozessoren 5 und 6, den E/A-Prozessoren 7 und 8 und dem
Erweiterungsspeicher 9 ausgegebenen Anforderungen an den
Hauptspeicher 1 auf.
Die Skalarprozessoren 3 und 4 weisen Pufferspeicher (DS)
31 und 41 und Pufferadressenfelder (PAF) 30 und 40, in
die die Adressen der Pufferspeicher 31 bzw. 41 im Haupt
speicher 1 eingetragen werden, auf.
Die Vektorprozessoren 5 und 6 weisen Vektorregister 51 A
bis 51 D, 61 A bis 61 D und auf den Hauptspeicher 1 bezoge
ne Speicheranforderungseinrichtungen 50 A bis 50 D bzw.
60 A bis 60 D auf. Die Vektorregister 51 A bis 61 D dienen
zur Speicherung der Kopien der Vektordaten des Haupt
speichers 1 und besitzen die gleichen Funktionen wie die
Pufferspeicher 31 und 41 in den Skalarprozessoren 3 und
4.
Die Vektorprozessoren 5 und 6 operieren so, daß sie Ele
mente parallel abarbeiten. Wenn beispielsweise der Vek
torprozessor 5 den Speicherbefehl ausgibt, die Daten des
Vektorregisters 51 A in einem kontinuierlichen Bereich
des Hauptspeichers 1 zu speichern, werden die Daten der
Vektorregister 51 A bis 51 D in vier Elemente unterteilt,
und den vier Anforderungseinrichtungen zugeordnet, so
daß das erste Element der Anforderungseinrichtung 50 A,
das zweite Element der Anforderungseinrichtung 50 B usw.
zugeordnet wird (parallele Elementabarbeitung). Die An
forderungseinrichtungen 50 A bis 50 D geben jeweils Spei
cheranforderungen an den Hauptspeicher 1 aus.
Die Speichersteuerung 2 weist die Frontadressenfelder
(FAF) 21 A und 21 B, die eine Kopie der Pufferadressenfel
der 30 und 40 darstellen, die Blockgültigkeitsspeicher
(BGS) 20 A und 20 B, die angeben, ob der Block des Haupt
speichers 1 in den Pufferspeichern 31 und 41 vorliegt,
und Blockgruppengültigkeitstabellen (BGGT) 22 A bis 22 H,
die angeben, ob ein Teil der Blöcke oder alle Blöcke der
Blockgruppe des Hauptspeichers 1 in den Pufferspeichern
31 oder 41 vorliegen, auf. Für jede der Speicheranfor
derungseinrichtung 50 A bis 50 D und 60 A bis 60 D der Vek
torprozessoren 5 und 6 ist eine Blockgruppengültigkeits
tabelle vorgesehen.
Wenn der Vektorprozessor 5 einen Speicherbefehl ausgibt,
werden die Vektorspeicherdaten gemäß der parallelen Ele
mentabarbeitung unterteilt und den Speicheranforderungs
einrichtungen 50 A bis 50 D zugeordnet. Zuerst werden die
von den Speicheranforderungseinrichtungen 50 A bis 50 D
ausgegebenen Speicheranforderungsadressen mittels der
Blockgruppengültigkeitstabellen 22 A bis 22 D geprüft. Wie
oben beschrieben, sind die Blockgruppengültigkeitstabel
len 22 A bis 22 D Tabellen, die für jede Blockgruppe der
Pufferspeicher 31 und 41, beispielsweise für jedes Seg
ment (1048576 Bytes) oder für jede Seite (4096 Bytes),
ein Blockgruppengültigkeitsbit besitzen. Die Zahl der
Eintragungen entspricht der Kapazität des Hauptspeichers
1. Für jede der Speicheranforderungseinrichtungen 50 A
bis 50 D ist eine Blockgruppengültigkeitstabelle 22 A bis
22 D vorgesehen (vier Blockgruppengültigkeitstabellen in
der vorliegenden Ausführungsform). Wenn die Speicheran
forderung ausgegeben wird, wird das Blockgruppengültig
keitsbit der in der Speicheradresse enthaltenen Block
gruppe geprüft. Wenn das Blockgruppengültigkeitsbit gül
tig ist, d.h. wenn es den Wert "1" besitzt, wird die
Speicheranforderung an die Blockgültigkeitsspeicher 20 A
und 20 B geschickt. Wenn es ungültig ist, d. h. wenn es
den Wert "0" besitzt, wird die Speicheranforderung igno
riert und nicht als Anforderung an die Blockgültigkeits
speicher 20 A und 20 B geschickt.
Die von den Blockgruppengültigkeitstabellen 22 A bis 22 D
ausgegebenen, den Blockgültigkeitsspeicheranforderungen
zugehörigen Speicheradressen werden an eine Schaltung
(die später beschrieben wird) geschickt, die diese
gleichzeitig von den Blockgruppengültigkeitstabellen 22 A
bis 22 D geschickten Speicheradressen vergleicht und
prüft, ob sie Speicheranforderungen an den gleichen
Block in den Pufferspeichern 31 und 41 sind. Die Block
gültigkeitsspeicheranforderungen an den gleichen Block
werden auf eine Blockgültigkeitsspeicheranforderung ver
ringert. Dieser Vorgang wird später mit Bezug auf Fig.
beschrieben.
Die von den Blockgruppengültigkeitstabellen 22 A bis 22 D
ausgegebenen und von der erwähnten Schaltung reduzierten
Blockgültigkeitsspeicheranforderungen werden an
schließend an eine weitere Schaltung (die später be
schrieben wird) geschickt, die die Speicheradressen
zeitlich nacheinander vergleicht. Wie die Parallelver
gleichsschaltung prüft auch die serielle Vergleichs
schaltung, ob die Anforderungen Blockgültigkeitsspei
cheranforderungen für den gleichen Block in den Puffer
speichern 31 und 41 sind. Die Blockgültigkeitsspeicher
anforderungen für den gleichen Block werden auf eine
Blockgültigkeitsspeicheranforderung verringert, an
schließend wird auf die Blockgültigkeitsspeicher 20 A und
20 B zugegriffen.
Die Blockgültigkeitsspeicher 20 A und 20 B sind Speicher,
die für jeden Block der Pufferspeicher 31 und 41 je ein
Blockgültigkeitsbit besitzen. Für jeden der Pufferspei
cher 31 und 41 ist in dem System ein Blockgültigkeits
speicher vorgesehen. Beispielsweise sind in einem Sy
stem, das den Skalarprozessor 3 mit dem Pufferspeicher
31 und den Skalarprozessor 4 mit dem Pufferspeicher 41
aufweist, 2 Blockgültigkeitsspeicher 20 A und 20 B vorge
sehen. Die Zahl der Eintragungen der Blockgültigkeits
speicher 20 A und 20 B entspricht der Gesamtzahl der
Blöcke im Hauptspeicher 1. Die Blockgültigkeitsspeicher
20 A und 20 B sind in eine Mehrzahl von Banken unterteilt,
die die Anforderungen an die Blockgültigkeitsspeicher
20 A und 20 B kontinuierlich bearbeiten können. Die Block
gültigkeitsspeicher 20 A und 20 B prüfen die Blockgültig
keitsbits der in den Speicheradressen der gleichzeitig
eingegebenen Blockgültigkeitsspeicheranforderungen ent
haltenen Blöcke; wenn ein Blockgültigkeitsbit gültig
ist, d.h. wenn es den Wert "1" besitzt, wird die ent
sprechende Anforderung an das entsprechende Frontadres
senfeld 21 A bzw. 21 B übertragen, ist es ungültig, so
wird die entsprechende Anforderung ignoriert und nicht
an das entsprechende Frontadressenfeld 21 A bzw. 21 B ge
schickt. Die an das Frontadressenfeld geschickte Anfor
derung sucht das Frontadressenfeld 21 A bzw. 21 B nach der
Speicheradresse ab. Liegt die Speicheradresse im Front
adressenfeld 21 A bzw. 21 B vor, d.h. sollen die Daten des
Pufferspeichers 31 bzw. 41 durch die Speicheranforderung
des Vektorprozessors 5 bzw. 6 wieder eingeschrieben wer
den, wird der Block im Pufferspeicher 31 bzw. 41 für un
gültig erklärt, um damit die Anpassungssteuerung zwi
schen dem Hauptspeicher und dem Pufferspeicher auszufüh
ren.
Die Eintragung und das Ungültigmachen der gültigen Bits
der Blockgruppengültigkeitstabellen 22 A bis 22 H und der
Blockgültigkeitsspeicher 20 A und 20 B werden dann ausge
führt, wenn die Daten synchron zur Eintragung oder Un
gültigmachung der Adressen der Pufferspeicher 31 und 41
im Hauptspeicher 1 für die Frontadressenfelder 21 A und
21 B in den Pufferspeicher eingetragen oder gültig ge
macht werden. Wenn die Anforderung, die Daten des Haupt
speichers 1 in den Pufferspeicher 31 oder 41 einzutra
gen, ausgegeben wird, wird die im Hauptspeicher enthal
tene Adresse des Pufferspeichers in die dem Block des
Pufferspeichers entsprechende Eintragung des Frontadres
senfeldes 21 A oder 21 B aufgenommen, anschließend wird
der gesamte Blockgültigkeitsspeicher 20 A bzw. 20 B des
Systems für die den betreffenden Block enthaltenden
Blockgruppengültigkeitstabellen 22 A bis 22 H blockgrup
penweise gelesen. Wenn der Block beispielsweise 128
Bytes und die Blockgruppe 1048576 Bytes enthält, werden
die Blockgültigkeitsbits der den Block enthaltenden 8192
Eintragungen gelesen.
Dann wird das gültige Bit in die dem Block entsprechende
Eintragung des Blockgültigkeitsspeichers aufgenommen.
Das heißt, das Blockgültigkeitsbit wird auf "1" gesetzt
und die Blockgültigkeitsbits der den Block enthaltenden
8192 Eintragungen werden untersucht. Wenn alle Blockgül
tigkeitsbits aller Blockgültigkeitsspeicher im System
den Wert "0" besitzen, d.h. wenn vor der Anforderung der
Frontadressenfeldeintragung das der Blockgruppe entspre
chende Blockgruppengültigkeitsbit der Blockgruppengül
tigkeitstabelle den Wert "0" besitzt, wird in die der
Blockgruppe entsprechende Eintragung aller Blockgruppen
gültigkeitstabellen ein gültiges Bit aufgenommen. Das
heißt, das Blockgruppengültigkeitsbit wird auf den Wert
"1" gesetzt. Wenn wenigstens eines der Blockgültigkeits
bits aller Blockgültigkeitsspeicher des Systems der den
Block enthaltenden 8192 Eintragungen den Wert "1" be
sitzt, d.h. wenn vor der Eintragungsanforderung des
Frontadressenfeldes das der Blockgruppe entsprechende
Blockgruppengültigkeitsbit der Blockgruppengültigkeits
tabelle den Wert "1" besitzt, wird für die Blockgruppen
gültigkeitstabelle keine Eintragung gefordert, weshalb
auf die Blockgruppengültigkeitstabelle nicht zugegriffen
wird.
Das Ungültigmachen der gültigen Bits der Blockgruppen
gültigkeitstabelle und des Blockgültigkeitsspeichers
wird genauso ausgeführt wie die Eintragung. Wenn auf
grund der von einem anderen Prozessor wie etwa dem Vek
torprozessor oder dem Skalarprozessor ausgegebenen Spei
cheranforderung an den Hauptspeicher 1 die Daten des
Pufferspeichers 31 oder 41 neu geschrieben werden, wird
der Block des Pufferspeichers und die Eintragung des
Frontadressenfeldes ungültig gemacht, ebenso wie die
Eintragung des Blockgültigkeitsspeicher, d.h. das Block
gültigkeitsbit wird auf den Wert "0" gesetzt. Dann wer
den die Blockgültigkeitsbits der den Block enthaltenden
8192 Eintragungen aller Blockgültigkeitsspeicher des
Systems gelesen und untersucht. Wenn alle Blockgültig
keitsbits den Wert "0" besitzen, d.h. wenn alle Blöcke
der Blockgruppe aufgrund der Speicherungsanforderungen
durch den anderen Prozessor ungültig sind, werden die
Eintragungen aller Blockgruppengültigkeitstabellen für
die Blockgruppe ungültig gemacht, d.h. das Blockgruppen
gültigkeitsbit wird auf den Wert "0" gesetzt. Wenn we
nigstens eines der Blockgültigkeitsbits der 8192 Ein
tragungen aller Blockgültigkeitsspeicher des Systems den
Wert "1" besitzt, braucht die Eintragung der Blockgrup
pengültigkeitstabelle nicht ungültig gemacht zu werden,
weshalb auf die Blockgruppengültigkeitstabelle nicht zu
gegriffen wird. Auf diese Weise wird die Anpassungssteu
erung an das Frontadressenfeld, den Blockgültigkeits
speicher und die Blockgruppengültigkeitstabelle ausge
führt, wodurch eine Anpassungssteuerung zwischen dem
Hauptspeicher 1 und den Pufferspeichern 31 und 41 er
zielt wird.
In Fig. 2 ist eine schematische Darstellung gezeigt, mit
der die Beziehung der Adressen zwischen dem Hauptspei
cher 1, dem Vektorprozessor 5 (oder 6), dem Skalarpro
zessor 3 (oder 4), der Blockgruppengültigkeitstabelle
22, dem Blockgültigkeitsspeicher 20 und dem Frontadres
senfeld 21 erläutert wird. Aus Gründen der Einfachheit
werden nicht alle Komponenten von Fig. 1 in Fig. 2 ge
zeigt.
Der Vektorprozessor 5 erzeugt eine 4-Byte(31 Bits)-Real
adresse. Diese stellt eine Adresse im Hauptspeicher
(der eine Kapazität von 231 Bytes (2 GB) besitzt) dar.
Die höherwertigen 11 Bits (0.1 bis 1.3) der erzeugten
Realadresse werden an die Blockgruppengültigkeitstabelle
22 geschickt (das höchstwertige Bit wird nicht verwen
det). Wie oben beschrieben, besitzt die Blockgruppen
gültigkeitstabelle 22 2K (211) Blockgruppengültigkeits
bits, von denen durch die höherwertigen 11 Bits der
Realadresse eines gelesen wird.
Wenn das gelesene Blockgruppengültigkeitsbit den Wert
"1" besitzt, besteht die Möglichkeit, daß ein Block der
dem Blockgruppengültigkeitsbit entsprechenden Blockgrup
pe in den Pufferspeicher 31 (oder 41) eingetragen worden
ist. Daher wird auf den Blockgültigkeitsspeicher 20 Be
zug genommen.
An den Blockgültigkeitsspeicher 20 werden die höherwer
tigen 24 Bits (0.1 bis 3.0) der Realadresse des Vektor
prozessors 5 geliefert. Wie oben beschrieben, besitzt
der Blockgültigkeitsspeicher 16 M (224) Blockgültigkeits
bits, von denen eines gelesen wird.
Wenn das gelesene Blockgültigkeitsbit den Wert "1" be
sitzt, bedeutet dies, daß der diesem Blockgültigkeitsbit
entsprechende Block im Pufferspeicher 31 (oder 41) ein
getragen worden ist. Wenn das Blockgültigkeitsbit den
Wert "1" besitzt, wird ohne Aufsuchen des Frontadressen
feldes 21 festgelegt, daß der diesem Blockgültigkeitsbit
entsprechende Block im Pufferspeicher 31 (oder 41) ein
getragen worden ist. Wenn folglich das Blockgültigkeits
bit den Wert "1" besitzt, kann der Block des Pufferspei
chers 31 ohne Aufsuchen des Frontadressenfeldes 21 ge
löscht werden. Da dies jedoch eine zusätzliche Ungültig
machungsoperation für das Pufferadressenfeld 30 erfor
derlich macht und die Anpassungssteuerung zwischen den
Frontadressenfeld 31 und dem Pufferadressenfeld 30 ver
kompliziert, wird nicht das vom Blockgültigkeitsspeicher
22 gelesene Blockgültigkeitsbit für die Ungültigmachung
des Pufferadressenfeldes 30 verwendet, statt dessen wird
an das Frontadressenfeld 21 für den Suchvorgang die
Realadresse des Vektorprozessors 5 (oder 6) als Auswahl
signal für den Selektor 214 A oder 214 B geliefert. Ebenso
wird die Adresse anderer Anforderungseinrichtungen (bei
spielsweise dem E/A-Prozessor) an den Selektor 214 A oder
214 B geliefert.
Wenn die Anpassung im Frontadressenfeld 21 ausgeführt
wird, wird das gültige Bit der diesem Block entsprechen
den Eintragung im Pufferadressenfeld 30 auf den Wert "0"
zurückgesetzt, um den Block im Pufferspeicher 31 ungül
tig zu machen.
Fig. 3 stellt eine erläuternde Darstellung des Betriebs
der Blockgruppengültigkeitstabelle und des Blockgültig
keitsspeichers dar, wenn von dem in Fig. 1 gezeigten
Vektorprozessor eine Speicheranforderung ausgegeben
wird.
Nun wird mit Bezug auf Fig. 3 der Vorgang der Anpas
sungssteuerung zwischen dem Hauptspeicher 1 und den Puf
ferspeichern 31 und 42 erläutert, wenn von den Vektor
prozessoren 5 und 6 Speicheranforderungen (mit den Spei
cheradressen) ausgegeben werden.
Die von den Speicheranforderungseinrichtungen 50 A bis
50 D bzw. 60 A bis 60 D der Vektorprozessoren 5 bzw. 6
ausgegebenen Speicheranforderungen (mit den Speicher
adressen) 200 A bis 200 H werden von der Speichersteuerung
2 angenommen und an die entsprechenden Blockgruppengül
tigkeitstabellen 22 A bis 22 H geliefert. Wie oben be
schrieben, sind die Blockgruppengültigkeitstabellen 22 A
bis 22 H Tabellen, die für jede 2020-Bytegruppe (Block
gruppe) ein Blockgruppengültigkeitsbit besitzen und die
Blockgruppengültigkeitsbits derjenigen Blockgruppen le
sen, die die den Speicheranforderungen zugehörigen Spei
cheradressen enthalten. Wenn das Blockgruppengültig
keitsbit den Wert "1" besitzt, d.h. wenn die Möglichkeit
besteht, daß die Daten des Pufferspeichers durch die
Speicheranforderung neu geschrieben werden, wird die
Speicheranforderung verwendet als Anforderung (mit den
Speicheradressen) 201 A bis 201 H an die Vergleichsschal
tung 202. Wenn das Blockgruppengültigkeitsbit den Wert
"0" besitzt, d.h. wenn keine Möglichkeit besteht, daß
die Daten des Pufferspeichers durch die Speicheranfor
derung neu geschrieben werden, wird die Speicheranfor
derung ohne Anforderungsausgabe an die Vergleichsschal
tung 202 beendet. Die Speicheranforderung führt jedoch
die Speicheroperation für den Hauptspeicher 1 aus, ob
wohl nicht auf die Blockgültigkeitsspeicher 20 A und 20 B
zugegriffen werden muß.
Die Vergleichsschaltung 202 dient dazu, die von den
Blockgruppengültigkeitstabellen 22 A bis 22 H gleichzeitig
ausgegebenen Speicheranforderungen (mit den Speicher
adressen) 201 A bis 201 H zu verringern. Die Vergleichs
schaltung 202 vergleicht die Speicheradressen der einge
gebenen Speicheranforderungen (mit den Speicheradressen)
201 A bis 201 H und verringert sie auf eine Anforderung,
falls eine Mehrzahl von Anforderungen zum gleichen Block
gehört. Die von der Vergleichsschaltung 202 verringerten
Anforderungen (mit den Speicheradressen) werden an die
Vergleichsschaltung 206 und das Flip-Flop 204 geliefert.
Die Vergleichsschaltung 206 und das Flip-Flop 204 dienen
dazu, die elementweise verringerten Anforderungen 203
seriell weiter zu verringern. Das Flip-Flop 204 dient
dazu, die Anforderungen (mit den Speicheradressen) 203
vorübergehend zu halten. Wenn die Anforderungen (mit den
Speicheradressen) ununterbrochen ausgegeben werden, wird
die erste Anforderung im Flip-Flop 204 gehalten, geht
außerdem durch die Vergleichsschaltung 206 und wird als
Anforderung (mit Speicheradresse) 207 verwendet, um auf
die Blockgültigkeitsspeicher 20 A und 20 B zuzugreifen.
Dann wird die zweite Anforderung im Flip-Flop 204 gehal
ten und ebenso an die Vergleichsschaltung 206 geliefert,
während die erste im Flip-Flop 204 gehaltene Anforderung
als Anforderung 205 für die Vergleichsschaltung 206 ver
wendet wird. Wie die Vergleichsschaltung 202 vergleicht
die Vergleichsschaltung 206 die Adressen der Anforde
rungen (mit den Speicheradressen) 203 und 205 und ver
ringert diese auf eine Anforderung, falls Anforderungen
für den gleichen Block des Pufferspeichers 130 vorlie
gen. Für die dritte und die folgenden Anforderungen wer
den ununterbrochene Speicheradressen in zeitlicher Ab
folge nacheinander genauso verringert. Auf diese Weise
werden die Anforderungen (mit den Speicheradressen), die
durch die Blockgruppengültigkeitstabellen 22 A bis 22 H
hindurchgegangen sind, elementweise und seriell verrin
gert und als Anforderung (mit den Speicheradressen) 207
für die Blockgültigkeitsspeicher 20 A und 20 B verwendet.
Da das Speichern der Daten vom Vektorprozessor üblicher
weise kontinuierliche Speicheradressen aufweist, kann
die Zahl der Suchvorgänge des Blockgültigkeitsspeichers
20 durch die Verringerung der Anforderungen bedeutend
verringert werden.
Die Blockgültigkeitsspeicher 20 A und 20 B sind Speicher,
die für jeden Block des Pufferspeichers ein Blockgültig
keitsbit besitzen. Wie oben beschrieben, weist jeder
Blockgültigkeitsspeicher 16777216 Eintragungen auf. Der
Blockgültigkeitsspeicher 20 A entspricht dem Pufferspei
cher 31 im Skalarprozessor 3, während der Blockgültig
keitsspeicher 20 B dem Pufferspeicher 41 im Skalarprozes
sor 4 entspricht. Das dem gültigen Block im Pufferspei
cher 31 bzw. 41 entsprechende Blockgültigkeitsbit im
Blockgültigkeitsspeicher 20 A bzw. 20 B hat den Wert "1".
Die Blockgültigkeitsspeicher 20 A und 20 B werden in vier
Bänke 208 A bis 208 D bzw. 208 E bis 208 H unterteilt. Wenn
die Anforderungen (mit den Speicheradressen) 207 für die
Blockgültigkeitsspeicher 20 A und 20 B ausgegeben werden,
lesen die Blockgültigkeitsspeicher 20 A und 20 B die
Blockgültigkeitsbits der den Speicheradressen entspre
chenden Eintragungen. Wenn das Blockgültigkeitsbit den
Wert "1" besitzt, d.h. wenn die Daten des Pufferspei
chers 31 oder 41 durch die Speicheranforderung neu ge
schrieben werden, wird die Anforderung (mit den Spei
cheradressen) 209 A oder 209 B für das Frontadressenfeld
21 A oder 21 B des entsprechenden Blockgültigkeitsspei
chers ausgegeben. Wenn das Blockgültigkeitsbit den Wert
"0" besitzt, d.h. wenn die Daten des Pufferspeichers
durch die Speicherungsanforderung nicht neu geschrieben
werden, wird die Anforderung 209 A oder 209 B für das
Frontadressenfeld 21 A oder 21 B des entsprechenden Block
gültigkeitsspeichers nicht ausgegeben und die Anforde
rung beendet. Da die Blockgültigkeitsspeicher 20 A und
20 B eine größere Kapazität besitzen als die Blockgrup
pengültigkeitstabellen 22 A bis 22 H, werden sie aus Spei
chern aufgebaut, die zwar eine höhere Dichte, aber eine
niedrigere Geschwindigkeit haben als die Blockgruppen
gültigkeitstabellen 22 A bis 22H. (Beispielsweise vier
4M-DRAM-LSI′s.) Folglich werden sie in vier Banken 208 A
bis 208 D bzw. 208 E bis 208 H unterteilt und können die
Anforderungen an die Blockgültigkeitsspeicher konti
nuierlich bearbeiten. Die Anforderung 209 A oder 209 B vom
Blockgültigkeitsspeicher 20 A oder 20 B wird zusammen mit
der Speicheranforderung 210 vom Erweiterungsspeicher 9,
der Speicheranforderung 211 A oder 211 B vom E/A-Prozessor
7 oder 8 und der Speicheranforderung 212 oder 213 vom
Skalarprozessor 3 oder 4 an den Selektor 214 A oder 214 B
geliefert. Die Selektoren 214 A und 214 B erteilen den An
forderungen eine Priorität; die gewählte Anforderung
215 A oder 2 i 5 B greift auf das Frontadressenfeld 21 A oder
21 B zu. Da auf beide Frontadressenfelder 21 A und 21 B zu
gegriffen werden können soll, werden die Anforderung 210
des Erweiterungsspeichers 9 und die Anforderungen 211 A
und 211 B der E/A-Prozessoren 7 und 8 an beide Selektoren
214 A und 214 B geliefert. Andererseits besteht die Anfor
derung des Skalarprozessors 3 darin, die Speicheropera
tion im Pufferspeicher 31 des Skalarprozessors 3 anzu
fordern, weshalb es nicht notwendig ist, auf das dem
Pufferspeicher 31 entsprechende Frontadressenfeld 21 A
zuzugreifen. Vielmehr muß nur geprüft werden, ob die Da
ten des Pufferspeichers 41 im Skalarprozessor 4 neu ge
schrieben worden sind. Folglich wird die Anforderung des
Skalarprozessors 3 nur für das dem Pufferspeicher 41
entsprechende Frontadressenfeld 21 B an den Selektor 214 B
geliefert. Das Frontadressenfeld 21 A oder 21 B prüft die
Anforderungsadresse der vom Selektor 214 A oder 214 B aus
gewählten Speicheranforderung, woraufhin es die Ungül
tigmachungsanforderung 216 A oder 216 B der Eintragung des
Pufferspeichers an den Skalarprozessor 3 oder 4 ausgibt,
wenn die Anforderungsadresse zu der Adresse der im Puf
ferspeicher 3 i oder 41 eingetragenen Daten paßt, d.h.
wenn die Daten des Pufferspeichers 31 oder 41 durch die
Speicheranforderung neu geschrieben werden müssen.
In Fig. 4 wird die Eintragungs-/Ungültigerklärungsopera
tion des Blockgültigkeitsspeichers und der Blockgruppen
gültigkeitstabelle von Fig. 1 erläutert. Mit Bezug auf
Fig. 4 wird im folgenden der Vorgang der Eintragung und
des Ungültigmachens der Blockgültigkeitsbits der Block
gültigkeitsspeicher 20 A und 20 B und der Blockgruppengül
tigkeitsbits der Blockgruppengültigkeitstabellen 22 A bis
22 H im einzelnen beschrieben.
Wenn vom Skalarprozessor die Frontadressenfeld-Eintra
gungsanforderung (mit einer Anforderungsadresse) 217 A
ausgegeben wird, wird für das Frontadressenfeld 21 A eine
Eintragungsoperation vorgenommen. Dann wird vom Front
adressenfeld 21 A die Blockgültigkeitsspeicher-Holanfor
derung (mit der Anforderungsadresse) 218 A ausgegeben.
Diese Anforderung 218 A wird sowohl an den Selektor 219 A
wie auch an den Selektor 219 B geliefert, wo sie jeweils
als vom Selektor 219 A bzw. 219 B gewählte Anforderung
220 A bzw. 220 B verwendet und an die Blockgültigkeits
speicher 20 A bzw. 20 B geliefert wird. Die Blockgültig
keitsspeicher 20 A und 20 B lesen alle Eintragungen der
die Anforderungsadressen der Eintragungsanforderungen
enthaltenden Blockgruppe. In der vorliegenden Ausfüh
rungsform werden die Blockgültigkeitsbits aller 8192
Eintragungen gelesen.
Dann wird die Blockgültigkeitsspeicher-Eintragungsanfor
derung 218 A ausgegeben. Die Anforderung 218 A wird an den
Selektor 219 A geliefert, der die Anforderung 220 A aus
wählt und an den Blockgültigkeitsspeicher 20 A liefert.
Der Blockgültigkeitsspeicher 20 A trägt das Gültigkeits
bit ein, d.h. er setzt das Blockgültigkeitsbit auf den
Wert "1", um den die Anforderungsadresse der Eintra
gungsanforderung enthaltenden Block einzutragen.
Die Blockgültigkeitsbits 221 A und 221 B der im Lesevor
gang von den Blockgültigkeitsspeichern 20 A und 20 B gele
senen 8192 Eintragungen werden an die ODER-Schaltungen
222 A und 222 B geliefert. Die Ausgaben 223 A und 223 B der
ODER-Schaltungen 222 A und 222 B werden durch die NOR-
Schaltung 224 einer logischen NOR-Operation unterzogen.
Wenn die Ausgabe 225 der NOR-Schaltung 224 den logischen
Wert "1" besitzt, d.h. wenn alle Blockgültigkeitsbits
der die Eintragungsanforderungsadressen der Blockgültig
keitsspeicher 20 A und 20 B enthaltenden Blockgruppen den
Wert "0" besitzen und das Blockgruppengültigkeitsbit vor
der Annahme der momentanen Eintragungsanforderung den
Wert "0" hatte, ist die Eintragung des Blockgruppengül
tigkeitsbits für die Blockgruppengültigkeitstabelle 22 A
bis 22 H erforderlich. Die Ausgabe 225 der NDR-Schaltung
224 wird an die UND-Schaltung 226 A geliefert. Wenn die
Ausgabe 225 den logischen Wert "1" besitzt, wird die
UND-Schaltung 226 A aktiviert, so daß die Speicheranfor
derung (mit der Anforderungsadresse) vom Frontadressen
feld als Blockgruppengültigkeitstabellen-Eintragungsan
forderung (mit der Anforderungsadresse) 227 A verwendet
wird. Die Blockgruppengültigkeitstabellen-Eintragungsan
forderung 227 A wird an den Selektor 228 geliefert, dann
wird die vom Selektor 228 gewählte Anforderung (mit der
Anforderungsadresse) 229 den Blockgruppengültigkeitsta
bellen 22 A bis 22 H zugeführt. Dort wird das Gültigkeits
bit eingetragen, d.h. das Blockgruppengültigkeitsbit
wird auf den Wert "1" gesetzt, um die die Eintragungsan
forderungsadresse enthaltende Blockgruppe einzutragen.
Wenn die Ausgabe 225 der NOR-Schaltung 224 den logischen
Wert "0" besitzt, d.h. wenn eines der Blockgültigkeits
bits der die Anforderungsadressen der Eintragungsanfor
derungen der Blockgültigkeitsspeicher 20 A und 20 B ent
haltenden Blockgruppen den Wert "1" besitzen und das
Blockgruppengültigkeitsbit vor der Annahme der momenta
nen Eintragungsanforderung den Wert "1" hatte, ist eine
Eintragung des Blockgruppengültigkeitsbits für die
Blockgruppengültigkeitstabellen 22 A bis 22 H nicht erfor
derlich. Wenn die Ausgabe 225 der NOR-Schaltung 224 den
logischen Wert "0" besitzt, wird die UND-Schaltung 226 A
nicht aktiviert, weshalb keine Blockgruppengültigkeits
tabellen-Eintragungsanforderung 227 A ausgegeben wird.
Wenn die Frontadressenfeld-Eintragungsanforderung (mit
der Anforderungsadresse) 217 B vom Skalarprozessor 4 aus
gegeben wird, wird ein dem oben beschriebenen Prozeß
analoger Prozeß ausgeführt.
Nun wird der Ablauf beschrieben, der ausgeführt wird,
wenn vom Skalarprozessor 4 eine Frontadressenfeld-Ungül
tigmachungsanforderung ausgegeben wird.
Wenn der Skalarprozessor 4 die Frontadressenfeld-Ungül
tigmachungsanforderung (mit der Anforderungsadresse)
217 B ausgibt, wird die Ungültigmachungsoperation beim
Frontadressenfeld 21 B begonnen. Das Frontadressenfeld
21 B gibt daraufhin die Blockgültigkeitsspeicher-Ungül
tigmachungsanforderung (mit der Anforderungsadresse)
218 B aus. Diese Anforderung wird an den Selektor 219 B
geliefert, der die Anforderung (mit der Anforderungs
adresse) 220 B auswählt und an den Blockgültigkeitsspei
cher 20 B liefert. Der Blockgültigkeitsspeicher 20 B macht
die Eintragung des die Anforderungsadresse der Ungültig
machungsanforderung enthaltenden Blocks ungültig, d.h.
er setzt das Blockgültigkeitsbit auf den Wert "0" zu
rück. Dann wird die Blockgültigkeitsspeicher-Holanfor
derung (mit der Anforderungsadresse) ausgegeben. Diese
Anforderung wird an die Selektoren 219 A und 219 B gelie
fert, woraufhin die von den Selektoren 219 A und 219 B ge
wählten Anforderungen (mit den Anforderungsadressen)
220 A und 220 B an die Blockgültigkeitsspeicher 20 A bzw.
20 B geliefert werden. Die Blockgültigkeitsspeicher 20 A
und 20 B lesen alle Eintragungen der die Ungültigma
chungsanforderungsadressen enthaltenden Blockgruppen.
Die Blockgültigkeitsbits 221 A und 221 B der 8192 Eintra
gungen werden an die ODER-Schaltungen 222 A bzw. 222 B ge
liefert. Die Ausgaben 223 A bzw. 223 B der ODER-Schaltun
gen 222 A bzw. 222 B werden an die NOR-Schaltung 224 ge
liefert. Wenn die Ausgabe 225 der NOR-Schaltung 224 den
logischen Wert "1" besitzt, d.h. wenn alle Blockgültig
keitsbits der die Anforderungsadressen der Ungültigma
chungsanforderungen der Blockgültigkeitsspeicher 20 A und
20 B enthaltenden Blockgruppen den Wert "0" besitzen und
die Blockgültigkeitsbits aller Blockgültigkeitsspeicher
dieser Gruppe durch den momentanen Ungültigmachungspro
zeß auf den Wert "0" gesetzt worden sind, ist ein Zu
rücksetzen der Blockgruppengültigkeitsbits der Block
gruppengültigkeitstabellen 22 A bis 22 H auf den Wert "0"
erforderlich. Die Ausgabe 225 der NOR-Schaltung 224 wird
an die UND-Schaltung 226 B geliefert. Wenn die Ausgabe
225 den logischen Wert "1" besitzt, wird die UND-Schal
tung 226 B aktiviert, so daß sie die Blockgruppengültig
keitstabellen-Ungültigmachungsanforderung (mit der An
forderungsadresse) 227 B ausgibt.
Die Blockgruppengültigkeitstabellen-Ungültigmachungsan
forderung (mit der Anforderungsadresse) 227 B wird an den
Selektor 228 geliefert. Dieser wählt die Anforderung
(mit der Anforderungsadresse) 229 aus und liefert sie an
die Blockgruppengültigkeitstabellen 22 A bis 22 H, um die
Eintragung der die Anforderungsadresse der Ungültigma
chungsanforderung enthaltenden Blockgruppe ungültig zu
machen, d.h. um das Blockgruppengültigkeitsbit auf den
Wert "0" zurückzusetzen. Wenn die Ausgabe 225 der NOR-
Schaltung 224 den logischen Wert "0" besitzt, d.h. wenn
eines der Blockgültigkeitsbits des die Anforderungs
adressen der Ungültigmachungsanforderungen der Blockgül
tigkeitsspeicher 20 A und 20 B enthaltenden Blockgruppe
den Wert "1" besitzt und dieser Wert des Blockgültig
keitsbits nach der Bearbeitung der momentanen Ungültig
machungsanforderung in der dieser Blockgruppe entspre
chenden Blockgültigkeitsspeichereintragung vorliegt, ist
ein Zurücksetzen der Blockgruppengültigkeitsbits der
Blockgruppengültigkeitstabellen 22 A bis 22 H auf den Wert
"0" nicht erforderlich. Wenn die Ausgabe 225 der NOR-
Schaltung 224 den logischen Wert "0" besitzt, wird die
UND-Schaltung 226 B nicht aktiviert, weshalb keine Block
gruppengültigkeitstabellen-Ungültigmachungsanforderung
227 B ausgegeben wird. Wenn die Frontadressenfeld-Ungül
tigmachungsanforderung 217 A vom Skalarprozessor 3 ausge
geben wird, wird ein dem oben beschriebenen Prozeß ana
loger Prozeß ausgeführt.
In der zweiten Ausführungsform wird ein Blockgültig
keitsspeicher der ersten Ausführungsform von einer Mehr
zahl von Skalarprozessoren 3 und 4 gemeinsam genutzt. In
dieser Ausführungsform wird der Eintragungsstatus des
Frontadressenfeldes eines jeden Skalarprozessors in ei
nem einzigen Blockgültigkeitsspeicher wiedergegeben. In
dieser Ausführungsform werden in einer Speicheroperation
vom Vektorprozessor die Blockgruppengültigkeitstabelle
und der Blockgültigkeitsspeicher je nach Erfordernis ab
gesucht, wie dies auch in der ersten Ausführungsform der
Fall war. Wenn die Suche im Blockgültigkeitsspeicher er
folgreich ist, wird die Suche für die Frontadressenfel
der der Skalarprozessoren 3 und 4 ausgeführt. In der
vorherigen Ausführungsform bestand eine eins-zu-eins-
Entsprechung zwischen den Blockgültigkeitsspeichern und
den Frontadressenfeldern. Wenn daher im Blockgültig
keitsspeicher ein Wert gefunden wurde, wurde immer auch
ein Wert im entsprechenden Frontadressenfeld gefunden.
Aufgrund des Systemaufbaus wird das Frontadressenfeld
abgesucht. Andererseits ist in der vorliegenden, zweiten
Ausführungsform unbekannt, in welchem der Frontadressen
felder ein Wert gefunden werden wird, falls im Block
gültigkeitsspeicher ein Wert gefunden wird. Demgemäß ist
es notwendig, beide Frontadressenfelder abzusuchen, um
festzustellen, in welchem Frontadressenfeld sich ein
entsprechender Wert befindet.
In der vorliegenden Ausführungsform wird im Ungültigma
chungsprozeß des Pufferspeichers eines anderen, mit der
Speicheroperation von einem Skalarprozessor verbundenen
Skalarprozessors festgelegt, daß der zu speichernde
Block im Pufferspeicher wenigstens eines Skalarprozes
sors gespeichert worden ist, falls festgestellt wird,
daß dieser Block im Pufferspeicher desjenigen Skalarpro
zessors gespeichert worden ist, der die Speicheranfor
derung ausgegeben hat, selbst wenn der Pufferspeicher
des anderen Skalarprozessors ungültig ist, so daß der
Blockgültigkeitsspeicher und die Blockgruppengültig
keitstabelle nicht zurückgesetzt werden (Blockgültig
keitsbit, Blockgruppengültigkeitsbit). Wenn dieser Block
nicht im Pufferspeicher des die Speicheranforderung aus
gebenden Skalarprozessors, sondern im Pufferspeicher des
anderen Skalarprozessors gespeichert wird, wird der
Rücksetzprozeß für den Blockgültigkeitsspeicher und die
Blockgruppengültigkeitstabelle dieses Blocks begonnen.
Im Eintragungsprozeß in das entsprechende, der Schreib
operation des Blocks von einem Skalarprozessor in den
Pufferspeicher zugehörige Frontadressenfeld wird festge
legt, daß derjenige Block, dessen alter Inhalt durch die
Eintragung gelöscht werden soll und dessen neuer Inhalt
im Pufferspeicher des anderen Skalarprozessors gespei
chert werden soll, im Pufferspeicher wenigstens eines
Skalarprozessors gespeichert wird, selbst wenn der ein
getragene Inhalt des Frontadressenfeldes des einen Ska
larprozessors modifiziert wird. Daher werden der Block
gültigkeitsspeicher und die Blockgruppengültigkeitsta
belle nicht aktualisiert. Durch die gemeinsame, auf die
dem Skalarprozessor entsprechenden Frontadressenfelder
Bezug nehmende Steuerung wird die Vollständigkeit der
Inhalte des Pufferadressenfeldes (des Frontadressenfel
des) und des Blockgültigkeitsspeichers/der Blockgruppen
gültigkeitstabelle gewährleistet, selbst wenn die Puf
ferspeicher der Skalarprozessoren den Blockgültigkeits
speicher gemeinsam nutzen.
Wenn es beim Auftreten eines Systemfehlers erforderlich
wird, alle Inhalte des Pufferspeichers eines Skalarpro
zessors nach Beendigung des Prozesses ungültig zu ma
chen, werden nicht nur der Pufferspeicher dieses Skalar
prozessors, sondern auch die Pufferspeicher anderer Ska
larprozessoren ungültig gemacht, während der Blockgül
tigkeitsspeicher/die Blockgruppengültigkeitstabelle zu
rückgesetzt werden (Blockgültigkeitsbit, Blockgruppen
gültigkeitsbit), so daß die Vollständigkeit der Inhalte
des Pufferadressenfeldes (des Frontadressenfeldes) und
des Blockgültigkeitsspeichers/der Blockgruppengültig
keitstabelle gewährleistet ist.
Die zweite Ausführungsform wird nicht mit Bezug auf die
Zeichnungen erläutert.
In Fig. 5 bezeichnen die gleichen Bezugsziffern die
gleichen Elemente wie in Fig. 3. Die Beziehung zwischen
den Adressen des Hauptspeichers, der Blockgruppengültig
keitstabelle, dem Blockgültigkeitsspeicher, dem Front
adressenfeld, dem Pufferadressenfeld und dem Pufferspei
cher ist die gleiche wie die in Fig. 2 gezeigte Bezie
hung.
Wie in Fig. 5 gezeigt, ist eine Mehrzahl von Skalarpro
zessoren vorgesehen, während nur ein Blockgültigkeits
speicher vorgesehen ist. In dem in Fig. 5 gezeigt Aufbau
sind die Operationen der Blockgruppengültigkeitstabellen
22 A bis 22 H, der Vergleichsschaltung 202, des Flip-Flops
204 und der Vergleichsschaltung 206 dieselben wie die in
Verbindung mit Fig. 3 erläuterten Operationen, wenn eine
Speicheranforderung (mit einer Speicheradresse) vom Vek
torprozessor ausgegeben wird.
Wie die oben beschriebenen Blockgültigkeitsspeicher 20 A
und 20 B stellt auch der Blockgültigkeitsspeicher 20 ei
nen Speicher dar, der für jeden Block des Pufferspei
chers ein Blockgültigkeitsbit aufweist. Er weist 224
Eintragungen auf. Der Blockgültigkeitsspeicher 20 ist
dem Pufferspeicher 31 im Skalarprozessor 3 und dem Puf
ferspeicher 41 im Skalarprozessor 4 zugeordnet. Das ei
nem gültigen Block im Pufferspeicher 31 oder im Puffer
speicher 41 entsprechende Blockgültigkeitsbit ist auf
den Wert "1" gesetzt. Da der Blockgültigkeitsspeicher 20
eine größere Kapazität besitzt als die Blockgrupoengül
tigkeitstabellen 22 A bis 22 H, weist er Speicher von hö
herer Kapazität und niedrigerer Geschwindigkeit als die
Blockgruppengültigkeitstabellen 22 A bis 22 H auf. Daher
wird der Blockgültigkeitsspeicher 20 in vier Banken 208 A
bis 208 D unterteilt, so daß die Anforderungen an den
Blockgültsgkeitsspeicher kontinuierlich abgearbeitet
werden können. Wenn an den Blockgültigkeitsspeicher 20
eine Anforderung (mit Speicheradresse) 207 ausgegeben
wird, liest der Blockgültigkeitsspeicher 20 das der An
forderungsadresse entsprechende Blockgültigkeitsbit der
Eintragung. Wenn das Blockgültigkeitsbit den Wert "1"
besitzt, d. h. wenn die Daten des Pufferspeichers 31 oder
41 durch die Speicheranforderung neu geschrieben werden
soll, wird an die Frontadressenfelder 21 A und 21 B eine
Anforderung (mit der Speicheradresse) 209 ausgegeben.
Wenn andererseits das Blockgültigkeitsbit den Wert "0"
besitzt, d.h. wenn die Daten des Pufferspeichers 31 oder
41 durch die Speicheranforderung nicht neu geschrieben
werden sollen, wird die Anforderung (mit der Speicher
adresse) 209 an die Frontadressenfelder 21 A und 21 B
nicht ausgegeben, so daß der Prozeß beendet wird. Die
Anforderung (mit der Speicheradresse) 209 vom Blockgül
tigkeitsspeicher 20 wird zusammen mit der Speicheranfor
derung 210 (mit der Speicheradresse) vom Erweiterungs
speicher 9, den Speicheranforderungen (mit dem Speicher
adressen) 211 A und 211 B der E/A-Prozessoren 7 und 8 und
den Speicheranforderungen (mit den Speicheradressen) 212
und 213 der Skalarprozessoren 3 und 4 an den Selektor
214 geliefert. Der Selektor 214 ordnet den Anforderungen
eine Priorität zu, woraufhin die gewählten Anforderungen
(mit den Speicheradressen) 215 A und 215 B auf die Front
adressenfelder 21 A und 21 B zugreifen. Die Frontadressen
felder 21 A und 21 B prüfen die Speicheradressen der vom
Selektor 214 gewählten Anforderungen, woraufhin eine Un
gültigmachungsanforderung 216 A oder 216 B für die Eintra
gung des Pufferspeichers an den Skalarprozessor 3 oder 4
ausgegeben wird, falls die Speicheradresse zu der Adres
se der im Pufferspeicher 31 oder 41 eingetragenen Daten
paßt, d.h. falls die Daten des Pufferspeichers 31 oder
41 durch die Speicherungsanforderung neu geschrieben
werden sollen.
In Fig. 6 wird der Eintragungs-/Ungültigmachungsbetrieb
des in Fig. 5 gezeigten Blockgültigkeitsspeichers und
der Blockgruppengültigkeitstabelle erläutert. Nun wird
mit Bezug auf Fig. 6 der Eintragungs-/Ungültigmachungs
betrieb des Blockgültigkeitsbits des Blockgültigkeits
speichers 20 und der Blockgruppengültigkeitsbits der
Blockgruppengültigkeitstabellen 22 A bis 22 H im einzelnen
erläutert. Wenn vom Skalarprozessor 3 eine Frontadres
senfeld-Eintragungsanforderung (mit der Anforderungs
adresse) 23 i ausgegeben wird, wird die Adresse des alten
Blocks, der durch die Eintragung gelöscht wird, vom
Frontadressenfeld 21 A gelesen und von der Diskriminator
schaltung 24 über die Signalleitung 24 b an den Selektor
214 geschickt. Wird für das Frontadressenfeld 21 A die
Eintragungsoperation vorgenommen, so wird die Prüfung
des durch die Eintragung zu löschenden Blocks, dessen
Adresse über die Signalleitung 24 b geschickt wird, für
das Frontadressenfeld 21 b parallel ausgeführt. Wenn
festgestellt wird, daß der durch die Eintragung zu lö
schende Block nicht im Pufferspeicher 41 des Skalarpro
zessors 4 eingetragen worden ist, d.h. wenn festgestellt
wird, daß der Block nach der Löschung in keinem der Puf
ferspeicher 31 und 41 vorliegen wird, wird eine Ungül
tigmachungsanforderung (mit der Anforderungsadresse) 24 a
an den Blockgültigkeitsspeicher 20 ausgegeben. Der Pro
zeß des Ausgebens der Anforderung an den Blockgültig
keitsspeicher 20 in dem Fall, daß vom Skalarprozessor 4
die Frontadressenfeld-Eintragungsanforderung (mit der
Anforderungsadresse) 238 ausgegeben wird, ist die glei
che wie die im oben beschriebenen Ablauf.
Wenn die Frontadressenfeld-Ungültigmachungsanforderungen
(mit den Anforderungsadressen) 211 a, 211 b und 210 von
den E/A-Prozessoren 7 und 8 und dem Erweiterungsspeicher
9 mittels Speicherungsanforderung an den Hauptspeicher 1
geschickt werden, werden sie über den Selektor 214 an
die Frontadressenfelder 21 A und 21 B geschickt. Die
Frontadressenfelder 21 A und 21 B werden mittels der An
forderungsadressen der Ungültigmachungsanforderungen ab
gesucht; wenn die Diskriminatorschaltung 24 feststellt,
daß der die Anforderungsadresse enthaltende Block im
Pufferspeicher 31 oder 41 eingetragen worden ist, wird
die Eintragung des Frontadressenfeldes ungültig gemacht,
woraufhin eine Ungültigmachungsanforderung (mit der
Speicheradresse) 24 a an den Blockgültigkeitsspeicher 20
ausgegeben wird.
Wenn die Ungültigmachungsanforderung (mit der Speicher
adresse) 23 i für das Frontadressenfeld 21 a vom Skalar
prozessor 3 mittels der Speicherungsanforderung an den
Hauptspeicher 1 geschickt wird, werden die Frontadressen
21 A und 21 B von der Anforderungsadresse abgesucht. Wenn
die Diskriminatorschaltung feststellt, daß der diese
Adresse enthaltende Block im Pufferspeicher (Pufferspei
cher 41) des Skalarprozessors (Skalarprozessor 4), der
von demjenigen Skalarprozessor (Skalarprozessor 3), der
die Ungültigmachungsanforderung für das Frontadressen
feld ausgegeben hat, verschieden ist, und daß der diese
Adresse enthaltende Block nicht im Pufferspeicher (Puf
ferspeicher 31) desjenigen Skalarprozesscrs (Skalarpro
zessor 3), der die Ungültigmachungsanforderung für das
Frontadressenfeld ausgegeben hat, eingetragen worden
ist, wird das Frontadressenfeld 21 A ungültig gemacht und
eine Ungültigmachungsanforderung (mit der Anforderungs
adresse) 24 a an den Blockgültigkeitsspeicher 20 ausgege
ben. Wenn festgestellt wird, daß die die Anforderungs
adresse der Ungültigmachungsanforderung enthaltenden
Blöcke in den Pufferspeichern 31 und 41 eingetragen wor
den sind, wird das Frontadressenfeld 21 b für den Puffer
speicher 41 ungültig gemacht, aber keine Anforderung an
den Blockgültigkeitsspeicher 20 ausgegeben, weil dieser
Block im Pufferspeicher 31 auch dann gehalten wird, wenn
der Pufferspeicher 41 ungültig gemacht wird, weshalb der
Blockgültigkeitsspeicher 20 nicht aktualisiert werden
muß.
Der Prozeß der Ausgabe der Anforderung an den Blockgül
tigkeitsspeicher 20 ist in dem Fall, daß die Ungültigma
chungsanforderung vom Skalarprozessor 4 an das Front
adressenfeld ausgegeben wird, der gleiche wie oben be
schrieben.
Wenn an den Blockgültigkeitsspeicher 20 die Eintragungs
anforderung (mit der Anforderungsadresse) ausgegeben
wird, wird diese Anforderung vom Blockgültigkeitsspei
cher 20 empfangen, woraufhin die Blockgültigkeitsbits
aller Eintragungen (213 Eintragungen) derjenigen Block
gruppe, die die Anforderungsadresse der Eintragungsan
forderung enthält, gelesen werden. Dann wird das Block
gültigkeitsbit für die Eintragung des die Anforderungs
adresse der Eintragungsanforderung enthaltenden Blocks
auf den Wert "1" gesetzt. Parallel zu diesem Prozeß wer
den die im vorigen Lesezyklus gelesenen Blockgültig
keitsbits 20 a der 213 Eintragungen an die NOR-Schaltung
223 geliefert. Wenn die Ausgabe 223 a der NOR-Schaltung
223 den Wert "1" besitzt, d.h. wenn alle Blockgültig
keitsbits der die Anforderungsadresse der Eintragungsan
forderung enthaltenden Blockgruppe den Wert "0" besitzen
und wenn das Blockgruppengültigkeitsbit vor der Annahme
der momentanen Eintragungsanforderung den Wert "0" be
saß, ist die Eintragung des Blockgruppengültigkeltsbits
in die Blockgruppengültigkeitstabellen 22 A bis 22 H er
forderlich. Die Ausgabe 223 a der NOR-Schaltung 223 wird
an die UND-Schaltung 226 geliefert. Wenn die Ausgabe
223 a den Wert "1" besitzt, wird die UND-Schaltung 226
aktiviert und die Eintragungsanforderung (mit der Anfor
derungsadresse) als Blockgruppengültigkeitstabellen-Ein
tragungsanforderung (mit der Anforderungsadresse) 226 a
verwendet. Die Blockgruppengültigkeitstabellen-Eintra
gungsanforderung (mit der Anforderungsadresse) wird an
die Blockgruppengültigkeitstabellen 22 A bis 22 H gelie
fert. Das Blockgruppengültigkeitsbit wird für die Ein
tragung der die Anforderungsadresse enthaltenden Block
gruppe auf den Wert "1" gesetzt. Wenn die Ausgabe 223 a
der NOR-Schaltung 223 den Wert "0" besitzt, d.h. wenn
eines der Blockgültigkeitsbits der die Anforderungs
adresse der Eintragungsanforderung des Blockgültigkeits
speichers 20 enthaltenden Blockgruppe den Wert "1" be
sitzt und das Blockgruppengültigkeitsbit vor der Annahme
der momentanen Eintragungsanforderung den Wert "1" hat
te, ist keine Eintragung des Blockgruppengültigkeitsbits
in die Blockgruppengültigkeitstabellen 20 A bis 20 H er
forderlich. Wenn die Ausgabe 223 a der NOR-Schaltung
den Wert "0" besitzt, wird die UND-Schaltung 226 nicht
aktiviert und keine
Blockgruppengültigkeitstabellen-Eintragungsanforderung
226 a ausgegeben.
Wenn andererseits an den Blockgültigkeitsspeicher 20 die,
Ungültigmachungsanforderung (mit der Anforderungsadres
se) 24 a ausgegeben wird, wird diese vom Blockgültig
keitsspeicher 20 empfangen, woraufhin die Eintragung des
die Anforderungsadresse der Ungültigmachungsanforderung
enthaltenden Blocks ungültig gemacht wird, d.h. das
Blockgültigkeitsbit wird auf den Wert "0" zurückgesetzt.
Dann werden alle Eintragungen der Blockgruppen, die die
Ungültigmachungsadresse enthalten, vom Blockgültigkeits
speicher 20 gelesen. Die somit gelesenen Blockgültig
keitsbits 20 a der 213 Eintragungen werden an die NOR-
Schaltung 223 geliefert. Wenn die Ausgabe 223 a der NOR-
Schaltung 223 den Wert "1" besitzt, d.h. wenn alle
Blockgültigkeitsbits der Blockgruppen, die die Anforde
rungsadresse der Ungültigmachungsanforderung für den
Blockgültigkeitsspeicher 20 enthalten, den Wert "0" be
sitzen und wenn das Blockgültigkeitsbit in der Block
gruppe vom momentanen Ungültigmachungsprozeß auf dem
Wert "0" belassen wird, ist ein Rücksetzen der Block
gruppengültigkeitsbits der Blockgruppengültigkeitstabel
len 22 A bis 22 H auf den Wert "0" erforderlich. Die Aus
gabe 223 a der NOR-Schaltung 223 wird an die UND-Schal
tung 226 geliefert. Wenn die Ausgabe 223 a den Wert "1"
besitzt, wird die UND-Schaltung 226 aktiviert und die
Blockgruppengültigkeitstabellen-Ungültigmachungsanfor
derung (mit der Anforderungsadresse) 226 a ausgegeben.
Die Blockgruppengültigkeitstabellen-Ungültigmachungsan
forderung 225 a wird an die Blockgruppengültigkeitstabel
len 22 A bis 22 H geliefert, so daß die Eintragungen der
jenigen Blockgruppe, die die Anforderungsadresse der Un
gültigmachungsanforderung enthält, ungültig gemacht
wird, d.h, die Blockgruppengültigkeitsbits werden auf
den Wert "0" zurückgesetzt. Wenn die Ausgabe 223 a der
NOR-Schaltung 223 den Wert "0" besitzt, d.h. wenn eines
der Blockgültigkeitsbits derjenigen Blockgruppen, die
die Anforderungsadresse der Ungültigmachungsanforderung
enthalten, den Wert "1" besitzt und wenn eine Eintragung
mit dem Blockgültigkeitsbitwert "1" im Blockgültigkeits
speicher 20 besteht, die dieser Blockgruppe nach der Ab
arbeitung der momentanen Ungültigmachungsanforderung
entspricht, ist kein Rücksetzen des Blockgruppengültig
keitsbits der Blockgruppengültlgkeitstabellen 22 A bis
22 H auf den Wert "0" notwendig. Wenn die Ausgabe 223 a
der NOR-Schaltung 223 den Wert "0" besitzt, wird die
UND-Schaltung 225 nicht aktiviert und keine Blockgrup
pengültigkeitstabellen-Ungültigmachungsanforderung 226 a
ausgegeben.
Wenn im Multiprozessorsystem ein Fehler auftritt, kann
das Ungültigmachen aller Pufferspeicher eines Skalarpro
zessors notwendig werden. In diesem Fall ist nicht nur
das Ungültigmachen der diesen Pufferspeichern entspre
chenden Frontadressenfelder erforderlich, sondern ebenso
das Ungültigmachen der Blockgültigkeitsspeicher/Block
gruppengültigkeitstabellen. Wenn die Blockgültigkeits
speicher/Blockgruppengültigkeitstabellen ungültig ge
macht werden müssen, ist das Ungültigmachen aller Puf
ferspeicher der anderen Skalarprozessoren, die die
Blockgültigkeitsspeicher/Blockgruppengültigkeitstabellen
gemeinsam nutzen, erforderlich. Wenn die Initialisie
rungsschaltung 25 sämtliche Ungültigmachungsanforderun
gen (mit den Anforderungsadressen) 25 i und 25 j für die
Blockgültigkeitsspeicher/Blockgruppengültigkeitstabellen
von den Skalarprozessoren 3 und 4 empfängt, gibt sie die
Anforderung (mit der Anforderungsadresse) 25 a an den
Blockgültigkeitsspeicher 20 aus, um die Blockgültig
keitsbits von der 0-ten bis zur letzten Eintragung des
Blockgültigkeitsspeichers auf den Wert "0" zurückzu
setzen. Durch die Anforderung 25 a wird der Blockgültig
keitsspeicher 20 vollständig ungültig gemacht, während
die Blockgruppengültigkeitsbit-Ungültigmachungsanforde
rung an die Blockgruppengültigkeitstabelle ausgegeben
wird, so daß die Blockgruppengültigkeitstabelle voll
ständig ungültig gemacht wird. Die Gesamtungültigma
chungsanforderung für die Pufferspeicher der Skalarpro
zessoren wird zwischen den Skalarprozessoren mittels ei
ner (nicht gezeigten) Schnittstelle übertragen, so daß
alle Pufferspeicher ungültig gemacht werden. In diesem
Fall werden die Pufferspeicher der Skalarprozessoren,
die den Multiprozessor aufbauen, zu Gruppen zusammenge
faßt, wobei jede Gruppe durch den jeweiligen Skalarpro
zessor gesteuert wird. Das Blockgültigkeitsbit des
Blockgültigkeitsspeichers wird gesteuert in Abhängigkeit
davon, ob ein Block in einem derjenigen Pufferspeicher,
die zu der gleichen Gruppe gehören, eingetragen worden
ist, so daß die Eintragung der Blöcke in die Pufferspei
cher aus verschiedenen Gruppen nicht beeinflußt wird. In
diesem Fall ist es notwendig, daß die Blockgruppengül
tigkeitstabelle eine jedem Blockgültigkeitsspeicher ent
sprechende Tabelle aufweist.
Claims (19)
1. Multiprozessorsystem mit einer gemeinsamen
Speichereinrichtung (1) für eine Mehrzahl von Prozes
soreinrichtungen (3, 4), die jeweils einen Puffer
speicher (31, 41) zum Speichern einer Kopie der in
der gemeinsamen Speichereinrichtung (1) gespeicherten
Information aufweisen,
dadurch gekennzeichnet, daß
die gemeinsame Speichereinrichtung (1) in eine Mehrzahl von Blöcken unterteilt ist;
Blockgültigkeitsspeichereinrichtungen (20 A, 20 B) vorgesehen sind, die eine Mehrzahl von jeweils einem Block entsprechenden Gültigkeitsbits besitzt, welche jeweils angeben, ob eine Kopie einer einem entspre chendem Block zugehörigen Information im Pufferspei cher (31, 41) gespeichert ist;
Einrichtungen (2) vorgesehen sind, die ermitteln, ob ein einem bestimmten Block entsprechendes Gültig keitsbit positiv ist, falls ein bestimmter Prozessor Informationen in diesem bestimmten Block der gemein samen Speichereinrichtung (1) speichert; und
die Einrichtungen (2) die im Pufferspeicher eines weiteren Prozessors gespeicherte Kopie der in dem be stimmten Block enthaltenen Information ungültig ma chen.
die gemeinsame Speichereinrichtung (1) in eine Mehrzahl von Blöcken unterteilt ist;
Blockgültigkeitsspeichereinrichtungen (20 A, 20 B) vorgesehen sind, die eine Mehrzahl von jeweils einem Block entsprechenden Gültigkeitsbits besitzt, welche jeweils angeben, ob eine Kopie einer einem entspre chendem Block zugehörigen Information im Pufferspei cher (31, 41) gespeichert ist;
Einrichtungen (2) vorgesehen sind, die ermitteln, ob ein einem bestimmten Block entsprechendes Gültig keitsbit positiv ist, falls ein bestimmter Prozessor Informationen in diesem bestimmten Block der gemein samen Speichereinrichtung (1) speichert; und
die Einrichtungen (2) die im Pufferspeicher eines weiteren Prozessors gespeicherte Kopie der in dem be stimmten Block enthaltenen Information ungültig ma chen.
2. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß
jede Blockgültigkeitsspeichereinrichtung (20 A, 20 B)
in eine Mehrzahl von Banken (208 A bis 208 D, 208 E bis
208 H) unterteilt ist.
3. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß die
Blockgültigkeitsspeichereinrichtungen (20 A, 20 B) an
ihren Eingängen eine Schaltung (202, 204, 206) zur
Verringerung von eine Mehrzahl von kontinuierlichen
Speicheradressen aufweisenden Anforderungen auf eine
einzige Anforderung enthalten.
4. Multiprozessorsystem gemäß Anspruch 3,
dadurch gekennzeichnet, daß die
Verringerungsschaltung eine Einrichtung (202) ent
hält, die die eine Mehrzahl von Speicheradressen auf
weisenden Anforderungen auf eine einzige Anforderung
verringert, wenn eine Mehrzahl von Anforderunger vor
kommen, die im gleichen Block enthaltene Speicher
adressen besitzen.
5. Multiprozessorsystem gemäß Anspruch 3,
dadurch gekennzeichnet, daß die
Verringerungsschaltung eine Einrichtung (204, 206)
enthält, die die Anforderungen auf eine einzige An
forderung verringert, wenn die eine Mehrzahl von kon
tinuierlichen Speicheradressen aufweisenden Anforde
rungen im gleichen Block enthalten sind.
6. Multiprozessorsystem gemäß Anspruch 1,
gekennzeichnet durch eine Block
gruppengültigkeitstabelle (22 A bis 22 D, 22 E bis 22 H),
die eine Mehrzahl von Blockgruppengültigkeitsbits
aufweist, von denen jedes einer aus einer Anzahl vor,
Blöcken aufgebauten Blockgruppe entspricht, wobei je
des Blockgruppengültigkeitsbit angibt, ob wenigstens
eines der denjenigen Blöcken, die in der entsprechen
den Blockgruppe enthalten sind, entsprechender Gül
tigkeitsbits positiv ist.
7. Multiprozessorsystem gemäß Anspruch 6,
gekennzeichnet durch eine Ein
richtung, die vor der Bezugnahme auf den Blockgültig
keitsspeicher (20 A, 20 B) auf die Blockgruppengültig
keitstabelle (22 A bis 22 H) zugreift, wenn der be
stimmte Prozessor eine Anforderung mit einer Spei
cheradresse ausgibt, und eine Einrichtung, die die
Bezugnahme auf den Blockgültigkeitsspeicher (20 A,
20 B) beendet, wenn ein der Speicheradresse entspre
chendes Blockgruppengültigkeitsbit positiv ist.
8. Multiprozessorsystem gemäß Anspruch 7,
dadurch gekennzeichnet, daß der
Blockgültigkeitsspeicher (20 A, 20 B) an seinem Eingang
eine Schaltung (202, 204, 205) aufweist, die die eine
Mehrzahl von kontinuierlichen Speicheradressen auf
weisenden Anforderungen auf eine einzige Anforderung
verringert.
9. Multiprozessorsystem gemäß Anspruch 8,
dadurch gekennzeichnet, daß die
Verringerungsschaltung eine Einrichtung (202) auf
weist, die die eine Mehrzahl von Speicheradressen
aufweisenden Anforderungen auf eine einzige Anforde
rung verringert, wenn eine Mehrzahl von Anforderungen
vorkommen, die im gleichen Block enthaltene Speicher
adressen enthalten.
10. Multiprozessorsystem gemäß Anspruch 8,
dadurch gekennzeichnet, daß die
Verringerungsschaltung eine Einrichtung (204, 206)
aufweist, die die Anforderungen auf eine einzige An
forderung verringern, wenn die eine Mehrzahl von kon
tinuierlichen Speicheradressen aufweisenden Anforde
rungen im gleichen Block enthalten sind.
11. Speichersteuersystem mit einem Hauptspeicher (1) ei
ner Basisprozessoreinheit (3, 4) und wenigstens einer
zusätzlichen Prozessoreinheit (5, 6) zur Datenverar
beitung,
gekennzeichnet durch
eine Pufferspeicher (31, 41) zum Auslesen und Einschreiben der Kopie eines im Hauptspeicher (1) enthaltenen Informationsblocks;
ein Pufferadressenfeld (30, 40), das mit dem Hauptspeicher (1) verbunden ist und die im Hauptspei cher (1) enthaltene Adresse speichert, die der Kopie des im Pufferspeicher (31, 41) gespeicherten Informa tionsblocks entspricht;
eine erste Erkennungseinrichtung, die mit dem Pufferadressenfeld (30, 40) verbunden ist und ermit telt, ob im Pufferadressenfeld (30, 40) eine Adresse gespeichert ist, die einem in der Basisprozessorein heit (3, 4) erzeugten Adressensignal entspricht, wel ches den Ort der Adresse im Hauptspeicher (1) angibt;
ein Frontadressenfeld (21 A, 21 B), das mit dem Hauptspeicher (1) verbunden ist und eine Kopie der Inhalte des Pufferadressenfeldes (30, 40) speichert;
eine zweite Erkennungseinrichtung, die mit dem Frontadressenfeld (21 A, 21 B) verbunden ist und die im Hauptspeicher (1) enthaltene Speicheradresse ermit telt, in die die Speicheradresseninformation durch eine zusätzliche Prozessoreinheit (5, 6) geschrieben werden soll;
eine Einrichtung zum Ungültigmachen einer Block information im Pufferspeicher (31, 41), wobei die Blockinformation diejenige Information enthält, die in den Hauptspeicher (1) mittels der zusätzlichen Prozessoreinheit (5, 6) geschrieben wird;
einen Blockgültigkeitsspeicher (20 A, 20 B), der eine Mehrzahl von Blockgültigkeitsbits aufweist, die jeweils einem der Blöcke entsprechen, in die der Hauptspeicher (1) unterteilt ist und die Blockinfor mation enthalten, wobei jedes Blockgültigkeitsbit an gibt, ob eine der Blockinformation entsprechende Ko pie im Pufferspeicher (31, 41) gespeichert ist;
eine Einrichtung, die aufgrund des Einschreibens von Information in einen bestimmten Block im Haupt speicher (1) mittels der zusätzlichen Prozessorein heit (5, 6) ein dem bestimmten Block entsprechendes Blockgültigkeitsbit aus dem Blockgültigkeitsspeicher (20 A, 20 B) liest; und
eine Einrichtung, die die zweite Erkennungsein richtung nur dann aktiviert, wenn das ausgelesene Blockgültigkeitsbit positiv ist.
eine Pufferspeicher (31, 41) zum Auslesen und Einschreiben der Kopie eines im Hauptspeicher (1) enthaltenen Informationsblocks;
ein Pufferadressenfeld (30, 40), das mit dem Hauptspeicher (1) verbunden ist und die im Hauptspei cher (1) enthaltene Adresse speichert, die der Kopie des im Pufferspeicher (31, 41) gespeicherten Informa tionsblocks entspricht;
eine erste Erkennungseinrichtung, die mit dem Pufferadressenfeld (30, 40) verbunden ist und ermit telt, ob im Pufferadressenfeld (30, 40) eine Adresse gespeichert ist, die einem in der Basisprozessorein heit (3, 4) erzeugten Adressensignal entspricht, wel ches den Ort der Adresse im Hauptspeicher (1) angibt;
ein Frontadressenfeld (21 A, 21 B), das mit dem Hauptspeicher (1) verbunden ist und eine Kopie der Inhalte des Pufferadressenfeldes (30, 40) speichert;
eine zweite Erkennungseinrichtung, die mit dem Frontadressenfeld (21 A, 21 B) verbunden ist und die im Hauptspeicher (1) enthaltene Speicheradresse ermit telt, in die die Speicheradresseninformation durch eine zusätzliche Prozessoreinheit (5, 6) geschrieben werden soll;
eine Einrichtung zum Ungültigmachen einer Block information im Pufferspeicher (31, 41), wobei die Blockinformation diejenige Information enthält, die in den Hauptspeicher (1) mittels der zusätzlichen Prozessoreinheit (5, 6) geschrieben wird;
einen Blockgültigkeitsspeicher (20 A, 20 B), der eine Mehrzahl von Blockgültigkeitsbits aufweist, die jeweils einem der Blöcke entsprechen, in die der Hauptspeicher (1) unterteilt ist und die Blockinfor mation enthalten, wobei jedes Blockgültigkeitsbit an gibt, ob eine der Blockinformation entsprechende Ko pie im Pufferspeicher (31, 41) gespeichert ist;
eine Einrichtung, die aufgrund des Einschreibens von Information in einen bestimmten Block im Haupt speicher (1) mittels der zusätzlichen Prozessorein heit (5, 6) ein dem bestimmten Block entsprechendes Blockgültigkeitsbit aus dem Blockgültigkeitsspeicher (20 A, 20 B) liest; und
eine Einrichtung, die die zweite Erkennungsein richtung nur dann aktiviert, wenn das ausgelesene Blockgültigkeitsbit positiv ist.
12. Speichersteuersystem gemäß Anspruch 11,
dadurch gekennzeichnet, daß die
zusätzliche Prozessoreinheit (5, 6) ein Vektorprozes
sor mit einer Mehrzahl von Speicheranforderungsein
richtungen (50 A bis 50 D, 60 A bis 60 D) ist, wobei die
Speicheranforderungseinrichtungen jeweils Speicheran
forderungen mit Speicheradressen ausgeben.
13. Speichersteuersystem gemäß Anspruch 11,
gekennzeichnet durch eine Block
gruppengültigkeitstabelle mit einer Mehrzahl von
Blockgruppengültigkeitsbits, von denen jedes einer
aus einer vorbestimmten Anzahl von Blöcken aufgebau
ten Blockgruppe entspricht, wobei jedes Blockgruppen
gültigkeitsbit angibt, ob wenigstens eines derjenigen
Blockgültigkeitsbits, die den in der entsprechenden
Blockgruppe enthaltenen Blöcken entsprechen, positiv
ist.
14. Speichersteuersystem gemäß Anspruch 12,
dadurch gekennzeichnet, daß der
Blockgültigkeitsspeicher an seinem Eingang eine
Schaltung (202, 204, 206) aufweist, die die eine
Mehrzahl von kontinuierlichen Speicheradressen ent
haltenden Anforderungen auf eine einzige Anforderung
verringert.
15. Speichersteuersystem mit einem Hauptspeicher (1),
einer Mehrzahl von Basisprozessoreinheiten (3, 4) und
wenigstens einer zusätzlichen Prozessoreinheit (5,
6),
dadurch gekennzeichnet, daß
jede Basisprozessoreinheit (3, 4) einen Puffer speicher (31, 41) zum Speichern einer Kopie einer im Hauptspeicher (1) gespeicherten Information, ein Puf feradressenfeld (30, 40) zum Halten der Adresse der jenigen Information, deren Kopie im Pufferspeicher (31, 41) gespeichert ist, und eine erste Erkennungs einrichtung zur Feststellung, ob im Pufferadressen feld (30, 40) eine Adresse gespeichert ist, die einem in der Basisprozessoreinheit (3, 4) erzeugten Adres sensignal entspricht, welches den Ort der Adresse im Hauptspeicher (1) angibt, aufweist; und
eine Mehrzahl von Frontadressenfeldern, vor denen jedes einer der Basisprozessoreinheiten (3, 4) zuge ordnet ist, um eine Kopie der Inhalte eines in der entsprechenden Basisprozessoreinheit (3, 4) enthal tenen Pufferadressenfeldes (30, 40) zu speichern;
eine Mehrzahl von zweiten Erkennungseinrichtun gen, die mit entsprechenden Frontadressenfeldern (21 A, 21 B) verbunden sind und diejenige Speicher adresse im Hauptspeicher (1) ermitteln, in die die Speicheradresseninformation mittels einer zusätzli chen Prozessoreinheit (5, 6) geschrieben werden soll;
eine Mehrzahl von Einrichtungen, die jeweils ent sprechend mit einer zweiten Erkennungseinrichtung verbunden sind und die in einem entsprechenden Puf ferspeicher (31, 41) enthaltene Information ungültig machen, wobei die Blockinformation diejenige Informa tion enthält, die mittels der zusätzlichen Prozessor einheit (5, 6) in den Hauptspeicher (1) geschrieben wird;
ein Blockgültigkeitsspeicher (20), der der Mehr zahl von Basisprozessoreinheiten (3, 4) gemeinsam ist und eine Mehrzahl von Blockgültigkeitsbits aufweist, von denen jedes einem der Blöcke entspricht, in die der Hauptspeicher (1) unterteilt ist und die die Blockinformation enthalten, wobei jedes Blockgültig keitsbit angibt, ob eine einem bestimmten Informa tionsblock entsprechende Kopie im Pufferspeicher (31, 41) gespeichert ist;
eine Einrichtung, die aufgrund des Einschreibens von Information in einen bestimmten Block des Haupt speichers (1) mittels der zusätzlichen Prozessorein heit (5, 6) ein diesem bestimmten Block entsprechen des Blockgültigkeitsbit aus dem Blockgültigkeitsspei cher (20) ausliest; und
eine Einrichtung, die alle zweiten Erkennungsein richtungen nur dann aktiviert, wenn das ausgelesene Blockgültigkeitsbit positiv ist, vorgesehen sind.
jede Basisprozessoreinheit (3, 4) einen Puffer speicher (31, 41) zum Speichern einer Kopie einer im Hauptspeicher (1) gespeicherten Information, ein Puf feradressenfeld (30, 40) zum Halten der Adresse der jenigen Information, deren Kopie im Pufferspeicher (31, 41) gespeichert ist, und eine erste Erkennungs einrichtung zur Feststellung, ob im Pufferadressen feld (30, 40) eine Adresse gespeichert ist, die einem in der Basisprozessoreinheit (3, 4) erzeugten Adres sensignal entspricht, welches den Ort der Adresse im Hauptspeicher (1) angibt, aufweist; und
eine Mehrzahl von Frontadressenfeldern, vor denen jedes einer der Basisprozessoreinheiten (3, 4) zuge ordnet ist, um eine Kopie der Inhalte eines in der entsprechenden Basisprozessoreinheit (3, 4) enthal tenen Pufferadressenfeldes (30, 40) zu speichern;
eine Mehrzahl von zweiten Erkennungseinrichtun gen, die mit entsprechenden Frontadressenfeldern (21 A, 21 B) verbunden sind und diejenige Speicher adresse im Hauptspeicher (1) ermitteln, in die die Speicheradresseninformation mittels einer zusätzli chen Prozessoreinheit (5, 6) geschrieben werden soll;
eine Mehrzahl von Einrichtungen, die jeweils ent sprechend mit einer zweiten Erkennungseinrichtung verbunden sind und die in einem entsprechenden Puf ferspeicher (31, 41) enthaltene Information ungültig machen, wobei die Blockinformation diejenige Informa tion enthält, die mittels der zusätzlichen Prozessor einheit (5, 6) in den Hauptspeicher (1) geschrieben wird;
ein Blockgültigkeitsspeicher (20), der der Mehr zahl von Basisprozessoreinheiten (3, 4) gemeinsam ist und eine Mehrzahl von Blockgültigkeitsbits aufweist, von denen jedes einem der Blöcke entspricht, in die der Hauptspeicher (1) unterteilt ist und die die Blockinformation enthalten, wobei jedes Blockgültig keitsbit angibt, ob eine einem bestimmten Informa tionsblock entsprechende Kopie im Pufferspeicher (31, 41) gespeichert ist;
eine Einrichtung, die aufgrund des Einschreibens von Information in einen bestimmten Block des Haupt speichers (1) mittels der zusätzlichen Prozessorein heit (5, 6) ein diesem bestimmten Block entsprechen des Blockgültigkeitsbit aus dem Blockgültigkeitsspei cher (20) ausliest; und
eine Einrichtung, die alle zweiten Erkennungsein richtungen nur dann aktiviert, wenn das ausgelesene Blockgültigkeitsbit positiv ist, vorgesehen sind.
16. Speichersteuersystem gemäß Anspruch 15,
gekennzeichnet durch Blockgrup
pengültigkeitstabellen mit einer Mehrzahl von Block
gruppengültigkeitsbits, von denen jedes einer aus ei
ner vorbestimmten Anzahl von Blöcken aufgebauten
Blockgruppe entspricht, wobei jedes Blockgruppengül
tigkeitsbit angibt, ob wenigstens eines derjenigen
Blockgültigkeitsbits, die den in einer entsprechenden
Blockgruppe enthaltenen Blöcken entsprechen, positiv
ist.
17. Speichersteuersystem gemäß Anspruch 16,
dadurch gekennzeichnet, daß ei
ne Verringerungsschaltung (202, 204, 206) vorgesehen
ist, die Einrichtungen zur Verringerung der eine
Mehrzahl von Speicheradressen enthaltenden Anforde
rungen auf eine einzige Anforderung, wenn eine Mehr
zahl von im gleichen Block enthaltenen Speicheradres
sen aufweisenden Anforderungen vorkommen, enthält.
18. Speichersteuersystem gemäß Anspruch 16,
dadurch gekennzeichnet, daß die
Verringerungsschaltung (202, 204, 206) Einrichtungen
(204, 205) aufweist, die die Anforderungen auf eine
einzige Anforderung verringern, wenn die eine Mehr
zahl von kontinuierlichen Speicheradressen enthalten
den Anforderungen im gleichen Block enthalten sind.
19. Speichersteuersystem gemäß Anspruch 15,
dadurch gekennzeichnet, daß
eine Anforderung an andere, den Blockgültigkeitsspei
cher (20) gemeinsam nutzende Prozessoren übertragen
werden, wenn eine Anforderung zum Ungültigmachen der
gesamten Information im Pufferspeicher (31, 41) eines
Prozessors ausgegeben wird, damit die gesamte im Puf
ferspeicher (31, 41) des einen Prozessors enthaltene
Information ungültig gemacht und der Blockgültig
keitsspeicher (20) und die Blockgruppengültigkeitsta
belle (200 a bis 200 h) initialisiert werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14944688 | 1988-06-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3919802A1 true DE3919802A1 (de) | 1989-12-21 |
DE3919802C2 DE3919802C2 (de) | 1997-01-30 |
Family
ID=15475297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3919802A Expired - Fee Related DE3919802C2 (de) | 1988-06-17 | 1989-06-16 | Speichersteuersystem für ein Multiprozessorsystem |
Country Status (3)
Country | Link |
---|---|
US (1) | US5475849A (de) |
JP (1) | JPH0754484B2 (de) |
DE (1) | DE3919802C2 (de) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4014733A1 (de) * | 1989-05-10 | 1990-11-15 | Hitachi Ltd | Verfahren und vorrichtung zur steuerung eines pufferspeichers |
WO2000075785A1 (en) * | 1999-06-08 | 2000-12-14 | Arm Limited | Status bits for cache memory |
US7797670B2 (en) | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
US7822922B2 (en) | 2004-04-22 | 2010-10-26 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US8250397B2 (en) | 2007-01-08 | 2012-08-21 | Apple Inc. | N-way synchronization of data |
US8321374B2 (en) | 2005-06-21 | 2012-11-27 | Apple Inc. | Peer-to-peer N-way syncing in decentralized environment |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US8868491B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520190A (ja) * | 1991-07-10 | 1993-01-29 | Koufu Nippon Denki Kk | キヤツシユ無効化処理回路 |
JP2000259610A (ja) * | 1999-03-04 | 2000-09-22 | Nec Kofu Ltd | ベクトルデータ処理装置およびマルチプロセッサ構成におけるベクトルデータ処理装置のメモリクリア方式 |
US8924654B1 (en) * | 2003-08-18 | 2014-12-30 | Cray Inc. | Multistreamed processor vector packing method and apparatus |
JP5021978B2 (ja) * | 2006-08-11 | 2012-09-12 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US11663118B2 (en) * | 2021-03-10 | 2023-05-30 | Infineon Technologies Ag | Address vectors for data storage elements |
Citations (4)
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 |
DE2847960A1 (de) * | 1977-11-28 | 1979-05-31 | Ibm | Speichersteuereinrichtung |
DE3439302A1 (de) * | 1983-10-27 | 1985-05-09 | Hitachi, Ltd., Tokio/Tokyo | Speichersteuerungsvorrichtung |
EP0265636A1 (de) * | 1986-10-03 | 1988-05-04 | BBC Brown Boveri AG | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3581291A (en) * | 1968-10-31 | 1971-05-25 | Hitachi Ltd | Memory control system in multiprocessing system |
US3618041A (en) * | 1968-10-31 | 1971-11-02 | Hitachi Ltd | Memory control system |
US3588829A (en) * | 1968-11-14 | 1971-06-28 | Ibm | Integrated memory system with block transfer to a buffer store |
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
US4819154A (en) * | 1982-12-09 | 1989-04-04 | Sequoia Systems, Inc. | Memory back up system with one cache memory and two physically separated main memories |
US4785398A (en) * | 1985-12-19 | 1988-11-15 | Honeywell Bull Inc. | Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page |
JPS62285157A (ja) * | 1986-06-04 | 1987-12-11 | Hitachi Ltd | 記憶制御方式 |
-
1989
- 1989-06-16 DE DE3919802A patent/DE3919802C2/de not_active Expired - Fee Related
- 1989-06-16 JP JP1152346A patent/JPH0754484B2/ja not_active Expired - Lifetime
-
1992
- 1992-04-06 US US07/846,147 patent/US5475849A/en not_active Expired - Fee Related
Patent Citations (4)
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 |
DE2847960A1 (de) * | 1977-11-28 | 1979-05-31 | Ibm | Speichersteuereinrichtung |
DE3439302A1 (de) * | 1983-10-27 | 1985-05-09 | Hitachi, Ltd., Tokio/Tokyo | Speichersteuerungsvorrichtung |
EP0265636A1 (de) * | 1986-10-03 | 1988-05-04 | BBC Brown Boveri AG | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher |
Non-Patent Citations (1)
Title |
---|
IEEE Transactions on Computers, Vol. C-27, Nr. 12, Dezember 1978, S. 1112-1118 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4014733A1 (de) * | 1989-05-10 | 1990-11-15 | Hitachi Ltd | Verfahren und vorrichtung zur steuerung eines pufferspeichers |
WO2000075785A1 (en) * | 1999-06-08 | 2000-12-14 | Arm Limited | Status bits for cache memory |
US6272033B1 (en) | 1999-06-08 | 2001-08-07 | Arm Limited | Status bits for cache memory |
US7822922B2 (en) | 2004-04-22 | 2010-10-26 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US8321374B2 (en) | 2005-06-21 | 2012-11-27 | Apple Inc. | Peer-to-peer N-way syncing in decentralized environment |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US8635209B2 (en) | 2005-06-21 | 2014-01-21 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US7797670B2 (en) | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
US8868491B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US8250397B2 (en) | 2007-01-08 | 2012-08-21 | Apple Inc. | N-way synchronization of data |
Also Published As
Publication number | Publication date |
---|---|
US5475849A (en) | 1995-12-12 |
DE3919802C2 (de) | 1997-01-30 |
JPH0754484B2 (ja) | 1995-06-07 |
JPH0277858A (ja) | 1990-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3151745C2 (de) | ||
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE3011552C2 (de) | ||
DE3803759C2 (de) | ||
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE3932675A1 (de) | Virtuelles maschinensystem | |
DE2241257A1 (de) | Datenverarbeitende anlage | |
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE2847960A1 (de) | Speichersteuereinrichtung | |
DE4134192A1 (de) | Integrierter schaltkreis mit verarbeitung im speicher | |
DE3919802C2 (de) | Speichersteuersystem für ein Multiprozessorsystem | |
DE4103093C2 (de) | Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens | |
DE2817431A1 (de) | Speicherhierarchie | |
DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
DE2912073C2 (de) | ||
DE2718551B2 (de) | ||
EP0010186A1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE4117672A1 (de) | Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers | |
DE4234695C2 (de) | Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE4114053A1 (de) | Computersystem mit cachespeicher | |
DE102021108478A1 (de) | System und Verfahren zur Cache-Verzeichnis-TCAM-Fehlererkennung und - Korrektur | |
DE3105115A1 (de) | Datenverarbeitungssystem mit bezueglich einer schluesselspeicherung ringfoermig angeschlossenen mulitprozessoren | |
DE4135031A1 (de) | Eingabe/ausgabeeinrichtungen | |
DE3832758A1 (de) | Computerisierte arbeitsstation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8181 | Inventor (new situation) |
Free format text: ANDO, TOSHIMITSU, HADANO, JP MATSUURA, TSUGUO, KANAGAWA, JP ISOBE, TADAAKI, HADANO, KANAGAWA, JP |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |