DE3932227A1 - Multiprozessorsystem - Google Patents
MultiprozessorsystemInfo
- Publication number
- DE3932227A1 DE3932227A1 DE19893932227 DE3932227A DE3932227A1 DE 3932227 A1 DE3932227 A1 DE 3932227A1 DE 19893932227 DE19893932227 DE 19893932227 DE 3932227 A DE3932227 A DE 3932227A DE 3932227 A1 DE3932227 A1 DE 3932227A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- buffer
- buffer memory
- working
- 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.)
- Ceased
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/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
Die Erfindung betrifft ein Multiprozessorsystem mit
einer hierarchischen Speicherstruktur und insbesondere
ein Multiprozessorsystem mit einer zwei oder mehr Ebenen
aufweisenden Speicherstruktur, die einen Hauptspeicher
und eine Pufferspeicheranordnung aufweist, wobei eine
Speichersteuerung auf jeder Ebene und die Verarbeitung
von einer Mehrzahl von Prozessoren ausgeführt wird, und
in der eine exklusive Datensteuerung zwischen einer
Mehrzahl von Pufferspeichern wirksam ausgeführt wird,
wenn Daten mit der gleichen Adresse in die Mehrzahl der
Pufferspeicher einer jeden Ebene eingegeben werden.
In herkömmlichen Datenverarbeitungsanlagen ist die eine
hierarchische Speicherstruktur besitzende Multiprozes
sorsystemtechnik verwendet worden, um die Verarbeitungs
geschwindigkeit und die Verarbeitungskapazität zu stei
gern.
In Fig. 6 ist ein Beispiel eines solchen herkömmlichen
Multiprozessorsystems mit einer hierarchischen Speicher
struktur erläutert.
Wie in Fig. 6. gezeigt, weist die Speicherstruktur des
Multiprozessorsystems eine hierarchische Dreiebenen
struktur auf, die aus einem Hauptspeicher (HS) 61, einem
in einer Speichersteuerung (SS) 62 enthaltenen Arbeits
pufferspeicher (AS) 66 und aus Pufferspeichern (PS) 64 a
und 64 b, die in entsprechenden Zentraleinheiten (CPU)
63 a und 63 b enthalten sind, besteht. Der AS 66, der SS
62 ist mit einem Eingabe/Ausgabeprozessor (EAP) 65 ver
bunden, der eine Kanalverarbeitungsfunktion aufweist und
die Eingabe/Ausgabesteuerung ausführt. Zwischen dem HS
61, dem AS 66 und den PS 64 a und 64 b wird eine Speicher
steuerung ausgeführt, während die Datenverarbeitung an
hand der Lesedaten der CPU 63 a bzw. 63 b und eines Pro
gramms vom HS 61 ausgeführt wird.
In einem solchen Multiprozessorsystem wird die Daten-
Übertragung vom AS 66 zu den PS 64 a bzw. 64 b mittels
Blockeinheiten ausgeführt, während die Datenübertragung
vom HS 61 zum AS 66 mittels sogenannter Zeileneinheiten,
die aus einem oder einer Mehrzahl (n) von Blöcken beste
hen, ausgeführt wird. Die in Fig. 6 gezeigte Zeilenein
heit (A) besteht aus vier Blockeinheiten (a 0, a 1, a 2 und
a 3). Wenn beispielsweise die CPU 63 a im Block a 0 enthal
tene Daten liest, dieser Block a 0 jedoch nicht im PS 64 a
der CPU 63 a enthalten ist, so wird auf den AS 66 der SS
62 zugegriffen, damit die Eingabe des Blocks a 0 in den
PS 64 a erfolgen kann. Wenn in diesem Fall im AS 66 keine
den Block a 0 enthaltende Zeile A vorhanden ist, greift
die SS 62 auf den HS 61 zu, liest die Zeile A aus dem HS
61 aus und gibt sie einerseits in den AS 66 ein und
überträgt sie andererseits zum PS 64 a.
Wenn z.B. die CPU 63 b Daten in den Block a 0 überträgt,
dieser Block a 0 jedoch im PS 64 b nicht vorhanden ist, so
wird der Block a 0 ebenfalls aus dem AS 66 eingegeben.
Wenn, wie in Fig. 6 gezeigt, der Block a 0 in den PS 64 a
eingetragen wird, ist der Block a 0 daher gleichzeitig
sowohl im PS 64 a als auch im PS 64 B vorhanden.
In einem System mit einer solchen hierarchischen Spei
cherstruktur wird als Speicherverfahren zum Schreiben
von Daten in jeden der Pufferspeicher oftmals ein
"Durchspeicher-Verfahren" (Store-Through-Verfahren),
d.h. ein Verfahren, in dem gleichzeitig in einen Haupt-
Speicher und in einer Pufferspeicher geschrieben wird,
für den PS 64 a und PS 64 b verwendet, um die Steuerung zu
erleichtern, während für den AS 66 ein "Einspeicher-Ver
fahren" (Store-In-Verfahren), d.h. ein Verfahren, in dem
nur in den Arbeitspufferspeicher geschrieben und in den
Hauptspeicher nur für den Austausch wieder eingeschrie
ben wird, verwendet, um die Durchsätze zu verringern. In
dem in Fig. 6 gezeigten System werden für die PS 64 a und
PS 64 b das "Durchspeicher-Verfahren" und für den AS 66
das "Einspeicher-Verfahren" verwendet.
Hierbei besteht die Möglichkeit, daß Daten desselben
Blocks gleichzeitig in den PS 64 a und in den PS 64 b ein
getragen werden, wie oben beschrieben worden ist. Wenn
z.B. die CPU 63 a Daten in den Block a 0 des PS 64 a in ei
nem solchen Zustand wieder einschreibt, in dem der Block
a 0 gleichzeitig sowohl im PS 64 a als auch im PS 64 b vor
handen ist, wird der Block a 0 im PS 64 a aktualisiert,
während der Block a 0 im PS 64 b nicht aktualisiert wird,
obwohl die Dateninhalte miteinander identisch sein soll
ten, wodurch eine Datenfehlanpassung zwischen den Puf
ferspeichern bewirkt wird.
Wenn ferner im AS 66 des SS 62 Daten des Blocks a 0 durch
die Eingabe/Ausgabeverarbeitung mittels des EAP 65 wie
der eingeschrieben oder geändert werden, wird der Block
a 0 weder im PS 64 a noch im PS 64 b aktualisiert, so daß
eine Datenfehlanpassung zwischen dem Block a 0 im AS 66
und dem Block a 0 im PS 64 a und im PS 64 b bewirkt wird.
Um die Datenfehlanpassung zwischen den Pufferspeichern
zu verhindern, ist daher eine Verarbeitung erforderlich,
die denjenigen Block des Pufferspeichers, dessen Daten
nicht aktualisiert werden, ungültig macht.
In Fig. 7 ist ein Beispiel einer Blockinvalidierungsver
arbeitung des Pufferspeichers im Multiprozessorsystem
erläutert. In Fig. 7 bezeichnen die Bezugszeichen 67 a
und 67 b PS-Verzeichnisse (Pufferadressenfelder: PAF), in
denen Daten einer Hauptspeicheradresse, deren Daten im
Pufferspeicher enthalten sind, gespeichert sind; diese
PS-Verzeichnisse 67 a und 67 b entsprechen dem PS 64 a bzw.
dem PS 64 b, d.h. das PS-Verzeichnis (PAF) 67 a ist ein
Verzeichnis der im PS 64 a gespeicherten Daten, während
das PAF 67 b ein Verzeichnis der im PS 64 b gespeicherten
Daten ist. Die PAF 67 a und 67 b weisen eine Mehrzahl von
Eintragungen auf, von denen jede so angeordnet ist, daß
sie wenigstens in einem 1 : 1-Verhältnis jedem der Blöcke
des PS 64 a und des PS 64 b entspricht. Wie in Fig. 8 ge
zeigt, weist jede der Eintragungen einen Adressenbereich
(ADR) 68, der Adreßdaten kennzeichnet, die die Entspre
chung eines Pufferspeicherblocks mit einer Hauptspei
cheradresse angeben, und einen Gültigkeitsbitbereich (G-
Bit) 69, der die Gültigkeit einer Eintragung kennzeich
net, auf.
In Fig. 7 sind ferner Schnittstellen 71, 72 und 73 ge
zeigt, die entsprechend die CPU 63 a, die CPU 63 b und den
EAP 65 miteinander verbinden und zur Steuerung der Inva
lidierungsverarbeitung verwendet werden. Jede der
Schnittstellen 71, 72 und 73 stellt einen Signalweg für
die Übertragung eines Signals an jede der CPU′s dar, wo
bei diese Signale die Speicherung in jeder der entspre
chenden CPU′s 63 a, 63 b und 63 c und die entsprechenden
Speicheradressen kennzeichnen.
Wenn der Block a 0 im PS 64 a und im PS 64 b vorhanden ist,
wird im Adressenbereich 68 der entsprechenden Eintragung
des PAF 67 a und des PAF 67 b eine Hauptspeicheradresse
ADR a 0 im HS 61 für den Block a 0 eingetragen, während
das G-Bit des Gültigkeitsbitbereichs 69 der entsprechen
den Eintragung den Wert "1" besitzt und dadurch anzeigt,
daß die Daten des Blocks gültig sind. Wenn die CPU 63 a
Daten in den Block a 0 des PS 64 a in diesem Beispiel wie
der einschreibt, wird über die Schnittstelle 71 der CPU
63 b mitgeteilt, daß der Block a 0 geschrieben wird. Damit
kann die CPU 63 b im PAF 67 b den Block a 0 suchen; die
Eintragung wird für ungültig erklärt, d.h. das G-Bit
wird auf den Wert "0" gesetzt, wenn sich herausstellt,
daß die über die Schnittstelle 71 geschickte Speicher
adresse ADR a 0 der CPU 63 a im PAF 67 b eingetragen ist.
Wenn sich herausstellt, daß die Adresse ADR a 0 nicht im
PAF 67 b eingetragen ist, wird keine Invalidierungsverar
beitung ausgeführt. Die Speicherverarbeitung in der CPU
63 b wird ebenso ausgeführt, wie oben bereits beschrieben
worden ist. Wenn ferner der EAP 65 eine Speicherverar
beitung im AS 66 (Fig. 6) ausführt, wird über die
Schnittstelle 73 sowohl zur CPU 63 a als auch zur CPU 63 b
eine Speicheradresse geschickt. Die Invalidierungsverar
beitung für die CPU′s 63 a und 63 b wird ebenso ausge
führt, wie oben bereits beschrieben worden ist.
In Fig. 9 ist ein weiteres Beispiel der Blockinvalidie
rungsverarbeitung für den Pufferspeicher im Multiprozes
sorsystem erläutert. In diesem Beispiel ist in der Spei
chersteuerung (SS) eine Kopie des Pufferadressenfeldes
(PAF), das ein Verzeichnis des Pufferspeichers dar
stellt, als Frontadressenfeld (FAF) vorgesehen, um für
den Pufferspeicher eine Identitätskontrolle auszuführen.
Wie in Fig. 9 gezeigt, ist also die SS 62 zusätzlich mit
einem FAF 77 a, das eine Kopie des PAF 67 a darstellt, und
mit einem FAF 77 b, das eine Kopie des PAF 67 b darstellt,
ausgerüstet. Die Struktur des Frontadressenfeldes 77 a
bzw. 77 b ist dieselbe wie diejenige des Pufferadressen
feldes 67 a bzw. 67 b. Wenn im Pufferspeicher ein Daten
block eingetragen wird und die Adressendaten im PAF ein
getragen werden, werden dieselben Adressendaten zusätz
lich im entsprechenden FAF eingetragen.
Wenn beispielsweise der Block a 0 gleichzeitig im PS 64 a
und im PS 64 b vorhanden ist, wird die Blockadresse ADR
a 0 sowohl im PAF 67 a und im PAF 67 b als auch im FAF 77 a
und im FAF 77 b eingetragen. Um zu diesem Zeitpunkt der
CPU 63 a das Wiedereinschreiben der Daten in den Block a 0
des PS 64 a zu ermöglichen, wird von der CPU 63 a über die
Schnittstelle 74 an die SS 62 eine Speicheranforderung
ausgegeben, da die Daten im PS entsprechend dem "Durch
speicher-Verfahren" eingetragen werden. Die SS 62
schreibt in den Block a 0 im AS 66 die angeforderten Da
ten wieder ein und untersucht das FAF 77 b, um zu ermit
teln, ob der Block im PS 64 b vorhanden ist. Wenn die
Adresse ADR a 0 des Blocks a 0 auch im FAF 77 b eingetragen
ist, macht die SS 62 die Eintragung im FAF 77 b ungültig.
Zur gleichen Zeit wird über die Schnittstelle 75 an die
CPU 63 b eine Invalidierung der Eintragung im PAF 67 b an
gefordert, woraufhin die CPU 63 b die Eintragung im PAF
67 b ungültig macht.
Wenn die CPU 63 b ebenso wie oben beschrieben eine Spei
cheranforderung ausgibt, untersucht die SS 62 die FAF
77 a und macht die Eintragung ungültig, falls die Block
adresse im PAF 67 b eingetragen ist; ferner veranlaßt sie
über die Schnittstelle 74 die CPU 63 a, die Eintragung
des PAF 67 a ungültig zu machen. Wenn der EAP 65 eine
Speicherforderung ausgibt, untersucht die SS 62 sowohl
das PAF 77 a als auch das PAF 77 b und macht deren Ein
tragungen ungültig, falls die entsprechende Blockadresse
eingetragen ist.
Die SS 62 ist zusätzlich zu den Verzeichnissen FAF 77 a
und FAF 77 b mit einem Arbeitspufferadressenfeld (AAF)
76, das ein Verzeichnis des AS 66 darstellt, versehen.
Wie in Fig. 10 gezeigt, weist jede Eintragung im AAF 76
einen Gültigkeitsbitbereich 78, der eine gültige Eintra
gung kennzeichnet, einen Adressenbereich 79, der eine
der Eintragung entsprechende Hauptspeicheradresse einer
Zeile des AS 66 kennzeichnet, und einen Wiedereinschrei
be/Nichtwiedereinschreibe-Bitbereich (C-Bitbereich) 80,
der angibt, daß die Zeile in den AS 66 eingetragen wor
den ist und daß dann die Zeile wieder eingeschrieben
wurde, auf. Da in den Arbeitspufferspeicher mittels des
"Einspeicher-Verfahrens" eingetragen wird, bestimmt die
SS 62 aufgrund der Anzahl der Bits im C-Bitbereich 80,
ob die aus dem AS 66 geholte Zeile wieder in den HS 61
geschrieben werden muß, wenn die Zeile im AS 66 ersetzt
wird.
Es muß jedoch festgestellt werden, daß eine Erweiterung
der Datenverarbeitungsanlage gefordert worden ist, um
ein System auszubilden, mit dem Datenmengen, die in der
letzten Zeit stark zugenommen haben, verarbeitet werden
können oder das für verschiedene Einsatzformen geeignet
ist.
Das Blockschaltbild von Fig. 11 erläutert ein Beispiel
eines Multiprozessorsystems, das ein gegenüber dem in
Fig. 6 gezeigten Multiprozessorsystem noch erweitertes
System darstellt. Dieses erweiterte Multiprozessorsystem
weist vier Zentraleinheiten (CPU#0 63 a, CPU#1 63 b, CPU#2
63 c und CPU#3 63 d) und zwei Eingabe/Ausgabeprozessoren
(EAP#0 65 a und EAP#1 65 b) auf. Diese Systemstruktur wird
durch Hinzufügung zweier Zentraleinheiten und eines Ein
gabe/Ausgabeprozessors zur Systemstruktur des in Fig. 6
gezeigten Multiprozessorsystems ausgebildet. In dieser
Datenverarbeitungsanlage werden die Zentraleinheiten
(CPU) und die Eingabe/Ausgabeprozessoren (EAP), deren
Anzahl jeweils doppelt so groß ist wie im in Fig. 6 ge
zeigten Multiprozessorsystem, miteinander verbunden.
Wenn ein Multiprozessorsystem mit der in Fig. 11 gezeig
ten Systemstruktur erweitert werden soll, müssen die
folgenden Probleme gelöst werden: in der Speichersteue
rung (SS) 62 im in Fig. 11 gezeigten Multiprozessorsy
stem ist die Ausführung einer Verarbeitung erforderlich,
die sich durch die Annahme von Anforderungen von jeder
der vier CPU′s und jedem der beiden EAP′s ergibt; daher
sollte das System einen Durchsatz haben, mit dem Verar
beitungsanforderungen von insgesamt sechs Maschinen be
wältigt werden können. Hierfür ist in der Speichersteue
rung dieses erweiterten Multiprozessorsystems eine in
terne Hochgeschwindigkeitssteuerlogik erforderlich, wes
halb die logische Steuereinheit kompliziert wird, die
Anzahl der Hardware-Logikelemente ansteigt und ein Hoch
geschwindigkeitsspeicherelement erforderlich wird. Um
ferner die Trefferrate von Anforderungen von jedem der
Anforderungsausgabeelemente, also der CPU′s 63 a, 63 b,
63 c und 63 d und der EAP′s 65 a und 65 b so hoch wie im in
Fig. 6 gezeigten System zu halten, ist eine Arbeitspuf
ferspeicherkapazität (AS-Kapazität) erforderlich, die
doppelt so groß ist wie die Arbeitspufferspeicherkapazi
tät des in Fig. 6 gezeigten Systems. Weiterhin ist die
Verwendung einer großen Anzahl von Leitungen, die die
CPU′s 63 a, 63 b, 63 c und 63 d und die EAP′s 65 a und 65 b
mit der SS 62 verbinden, ebenso erforderlich wie die
Ausstattung der SS 62 mit Anschlußöffnungen, deren An
zahl derjenigen der Verbindungsleitungen entspricht.
Wie oben beschrieben worden ist, kann der Kompliziert
heitsgrad der Steuerlogik des in Fig. 11 gezeigten Mul
tiprozessorsystems zur Erweiterung von dessen System
struktur nicht erhöht werden, ohne daß die Steuerlogik
aufgrund der Hardware-Leistungsfähigkeit verschiedene
Einschränkungen erfährt.
Alternativ dazu kann ein Multiprozessorsystem beispiels
weise mit einer Struktur ausgebildet werden, in der ge
trennte Speichersteuerungen eingebaut sind. Ein diesem
Beispiel gemäßes Multiprozessorsystem wird mit Bezug auf
Fig. 12 beschrieben, in der ein Blockschaltbild gezeigt
ist, das eine Ausführungsform einer Multiprozessorsy
stemstruktur, in der zwei Speichersteuerungen eingebaut
sind, erläutert. Die Datenverarbeitungsanlage des in
Fig. 12 gezeigten Multiprozessorsystems weist zwei Spei
chersteuerungen (SS#0, SS#1) 62 a und 62 b; vier Zentraleinheiten
(CPU#0, CPU#1 und CPU#3) 63 a, 63 b, 63 c
und 63 d und zwei Eingabe/Ausgabeprozessoren (EAP#0,
EAP#1) 65 a und 65 b auf. Wie in Fig. 12 gezeigt, ist bei
einer solchen Systemstruktur die Anzahl der mit jeweils
einer Speichersteuerung (SS) 62 a bzw. 62 b verbundenen
CPU′s und EAP′s gleich derjenigen der in Fig. 6 erläu
terten Systemstruktur. Daher sind die für die SS 62 a und
62 b geforderten Durchsätze in dem in Fig. 12 gezeigten
System beinahe gleich dem für die SS 62 von Fig. 6 ge
forderten Durchsatz, so daß die Systemstruktur nicht wie
bei der in Fig. 11 gezeigten Systemstruktur durch die
Hardware-Leistungsfähigkeit eingeschränkt ist.
In der in Fig. 12 gezeigten Systemstruktur ist es jedoch
erforderlich, eine PS-Datenidentitätskontrolle in jeder
der CPU′s sowohl für die PS 64 c und 64 d als auch für die
PS 64 a und 64 b auszuführen. Weiterhin ist die Ausführung
der Datenidentitätskontrolle für die AS 66 a und 66 b in
den jeweiligen Speichersteuerungen 62 a bzw. 62 b erfor
derlich.
Wenn beispielsweise Daten des Blocks a 0 weder im AS noch
im PS eingetragen sind, gibt die CPU 63 a an die SS 62 a
eine Leseanforderung zum Lesen von Daten im Block a 0
aus. Dann werden die den Block a 0 enthaltende Zeile A in
den AS 66 a und der Block a 0 in den PS 64 a eingetragen.
Wenn in diesem Zustand auch die CPU 63 c eine Leseanfor
derung zum Lesen der Daten des Blocks a 0 an die SS 62 b
ausgibt, wird die Zeile A in den AS 66 b und der Block a 0
in den PS 64 c eingetragen. Wenn von der CPU 63 b und von
der CPU 63 d eine Leseanforderung zum Lesen von Daten des
Blocks a 0 in diesem Zustand an die SS 62 a bzw. an die SS
62 b ausgegeben wird, so wird der Block a 0 außerdem in
den PS 64 b bzw. PS 64 d eingetragen. Folglich ist die
Zeile A in beiden Arbeitspufferspeichern AS 66 a und 66 b
eingetragen, während sämtliche Pufferspeicher PS 64 a,
64 b, 64 c und 64 d in einem Zustand sind, in dem der Block
a 0 gleichzeitig eingetragen ist.
In diesem Zustand bewirkt das Wiedereinschreiben der Da
ten im Block a 0 durch die CPU 63 a die Wiedereinschreibe
verarbeitung der Daten des Block a 0 im PS 64 a und in der
Zeile A im AS 66 a. Jedoch werden weder die Daten des
Blocks a 0 in den Pufferspeichern PS 64 b, 64 c und 64 d
noch die Daten des Blocks a 0 in der Zeile A des Arbeits
speichers AS 66 b wieder eingeschrieben. Daher ist es
notwendig, sowohl den Block a 0 in den Pufferspeichern PS
64 b, 64 c und 64 d mittels der PS-Datenidentitätskontrolle
als auch die Zeile A des Arbeitspufferspeichers AS 66 b
mittels der AS-Datenidentitätskontrolle ungültig zu ma
chen.
Um die Invalidierungsverarbeitung auszuführen, ist die
AAF-Eintragung in Erweiterung ihres Eintragungsinhaltes
so ausgebildet, daß sie zusätzlich zu einem G-Bitbereich
96, einem ADR-Bereich 97 und einem C-Bitbereich einen
EX-Bitbereich 99 enthält, wie in Fig. 13 gezeigt ist.
Der EX-Bitbereich 99 dient der Implementierung einer ex
klusiven Steuerung der Invalidierungsverarbeitung: eine
Zeile, deren EX-Bits, jeweils den Wert "1" besitzen, ist
nur in derselben Speichersteuerung und nicht im Arbeits
pufferspeicher der anderen Speichersteuerung und nur in
denjenigen Pufferspeichern, die in der mit der einen
Speichersteuerung verbundenen CPU enthalten sind und
nicht in denjenigen Pufferspeichern, die in der mit der
anderen Speichersteuerung verbundenen CPU enthalten
sind, angeordnet.
Mit dieser Anordnung ist es möglich, lediglich durch
Veranlassung derjenigen Speichersteuerung, die mit der
die Wiedereinschreibeverarbeitung ausführenden CPU ver
bunden ist, ihr eigenes AAF für den AS aufzusuchen, un
mittelbar das Nichtvorliegen der den Block enthaltenden
Zeile im AS der entsprechenden anderen Speichersteuerung
festzustellen, wenn die CPU Daten dieses Blocks in den
Arbeitspufferspeicher wieder einschreibt; folglich wird
die andere Speichersteuerung nicht gestartet, wenn die
Zeile in ihrem Arbeitspufferspeicher nicht vorhanden
ist.
Nun wird mit Bezug auf Fig. 14 die Operation in einem
solchen Multiprozessorsystem eingehend beschrieben.
Wie in Fig. 14 gezeigt, sind mit dem HS 61 zwei Spei
chersteuerungen SS 62 a und 62 b verbunden, während die
CPU′s 63 a und 63 b und der EAP 65 a mit der SS 62 a und die
CPU′s 63 c und 63 d und der EAP 65 b mit der Speichersteue
rung SS 62 b verbunden sind. Die CPU 63 a enthält den PS
64 a und dessen Verzeichnis PAF 67 a, während die CPU 63 b
den PS 64 b und dessen Verzeichnis PAF 67 b enthält. Die
Speichersteuerung SS 62 a enthält den Arbeitspufferspei
cher AS 66 a und dessen Verzeichnis AAF 76 a sowie die
Verzeichnisse FAF 77 a und 77 b, die Kopien der jeweiligen
Pufferadressenfelder PAF 67 a bzw. 67 b darstellen. Die SS
62 b enthält den AS 66 b und dessen Verzeichnis AAF 76 b
sowie die Verzeichnisse FAF 77 c und 77 d, die Kopien der
jeweiligen PAF 67 c bzw. 67 d darstellen, die CPU 63 c bzw.
CPU 63 d enthält den PS 64 c und dessen Verzeichnis PAF
67 c bzw. den PS 64 d und dessen Verzeichnis PAF 67 d. Der
Inhalt einer jeden Eintragung in den PAF′s 67 a, 67 b, 67 c
und 67 d weist ebenso wie die in Fig. 8 gezeigte Eintra
gung einen Gültigkeitsbitbereich und einen Adressenbe
reich auf. Der Inhalt einer jeden Eintragung der AAF′s
76 a und 76 b weist, wie in Fig. 13 gezeigt ist, einen
Gültigkeitsbitbereich (G-Bitbereich) 96, einen Adressen
bereich (ADR-Bereich) 97, einen Wiedereinschreibe/Nicht
wiedereinschreibe-Bitbereich (C-Bitbereich) 98 und einen
EX-Bitbereich 99 auf.
Die SS 62 a beginnt mit dem Aufsuchen der AAF 76 a auf
grund des Empfangs einer Schreibeanforderung zum Schrei
ben von Daten in den Block a 0 der Zeile A über die
Schnittstelle 74 von der CPU 63 a.
Wenn einerseits die Zeile A im AAF 76 a eingetragen ist,
wird die Wiedereinschreibeanforderung im AS 66 a verar
beitet, so daß Daten des Block a 0 der Zeile A in den AS
66 a wieder eingeschrieben werden. Um für den PS 64 b die
Datenidentitätskontrolle auszuführen, untersucht die SS
62 a das FAF 77 b und macht die Eintragung im FAF 77 b un
gültig, wenn dort der Block eingetragen ist, woraufhin
über die Schnittstelle 75 an die CPU 63 b die Ausgabe ei
ner Anforderung zum Invalidieren des Blocks im PAF 67 b
erfolgt. Wenn die Zeile im FAF 77 b nicht eingetragen
ist, wird keine Verarbeitung ausgeführt.
Die Datenidentitätskontrollen für den AS 66 b und die PS
64 c und 64 d können mit dem Wert der EX-Bits derjenigen
Eintragung, in der die Zeile A des AAF 76 a eingetragen
ist, variieren. Wenn das EX-Bit den Wert "1" besitzt,
ist die Zeile A weder im AS 66 b noch in den PS 64 c und
64 d vorhanden, so daß die SS 62 a die Schnittstelle 91
nicht initialisiert. Wenn das EX-Bit den Wert "0" be
sitzt, besteht die Möglichkeit, daß die Zeile A im AS
66 b oder daß der Block (a 0, a 1, a 2, a 3) in der Zeile A
in den PS 64 c und 64 d vorhanden ist, so daß die SS 62 a
die Schnittstelle 91 initialisiert und eine Datenidenti
tätskontrollanforderung an die SS 62 b ausgibt. Diese An
forderung ermöglicht es der SS 62 a, die Schnittstelle 91
zu initialisieren und ferner an die SS 62 b eine Anfor
derung zur Datenidentitätskontrolle auszugeben. Diese
Anforderung veranlaßt die SS 62 b, das AAF 76 b wieder
aufzusuchen und die Eintragung ungültig zu machen, falls
die Zeile A eingetragen ist. Wenn die Blöcke in den
FAF′s 77 c und 77 d vorhanden sind, werden sie (d.h. in
diesem Beispiel: a 0, a 1, a 2 und a 3) wieder aufgefunden,
weshalb die entsprechende Eintragung ungültig gemacht
wird und ferner eine Anforderung zum Invalidieren des
Blocks über die Schnittstellen 94 und 95 an die CPU′s
63 c bzw. 63 d ausgegeben wird. Diese Operationen machen
die Daten der Zeile A im AS 66 b und in den PS′s 64 c und
64 d ungültig, so daß sie verschwinden; daher setzt die
SS 62 a das EX-Bit der Eintragung, in der die Zeile A im
AAF 76 a eingetragen ist, auf den Wert "1" zurück.
Wenn andererseits die Zeile A im AAF 76 a nicht eingetra
gen ist, schickt die SS 62 a eine Datenidentitätskon
trollanforderung über die Schnittstelle 91 an die SS 62 b
und unterbricht die Verarbeitung der Schreibanforderung
an den AS 66 a. Dann sucht die SS 62 b das AAF 76 b auf und
teilt das Suchergebnis, d.h. das Ergebnis, daß die Zeile
A nicht im AAF 76 b eingetragen ist, oder den C-Bitwert
der Eintragung, falls die Zeile A eingetragen ist, über
die Schnittstelle 91 der SS 62 a mit; außerdem macht sie
die Zeile im AAF 76 b ungültig. Ferner sucht die SS 62 b
die FAF′s 77 c und 77 d auf gibt eine Anforderung zum In
validieren der PS 64 c und 64 d an die CPU′s 63 c bzw. 63 d,
wenn die Zeile A eingetragen ist.
Wenn die SS 62 a das das AAF 76 b betreffende Suchergebnis
der SS 62 b über die Schnittstelle 91 empfängt, liest sie
die Zeile A aus dem HS 61, schreibt sie in den AS 66 a,
verarbeitet die Schreibanforderung von der CPU 63 a und
trägt die Eintragung der Zeile A im AAF 76 a ein. In die
sem Moment wird die Zeile A vom AS 76 b und von den PS′s
64 c und 64 d wie oben beschrieben. Zu diesem Zeitpunkt
wird die Zeile A wie oben beschrieben vom AS 66 b und den
PS 64 c und 64 d abgeschickt, während das EX-Bit mit dem
Wert "1" in das AAF 76 a eingetragen wird.
In jedem Fall wird das C-Bit der Eintragung, in der die
Zeile A des AAF 76 a eingetragen ist, auf den Wert "1"
gesetzt. Ferner wird festgestellt, daß die Möglichkeit
besteht, daß das EX-Bit für eine Leseanforderung gesetzt
wird. Wenn daher die Möglichkeit besteht, daß die Daten
in die Zeile A wieder eingeschrieben werden, nachdem die
Daten gelesen worden sind, wird das EX-Bit im voraus ge
setzt.
Nun wird die Operation der SS beschrieben, wenn die Le
seanforderung für das EX-Bit der Zeile A von der CPU
oder dem EAP ausgegeben wird.
Wie in Fig. 14 gezeigt, wird, wenn die CPU 63 a eine Le
seanforderung zum Lesen der Daten der Zeile A ausgibt,
um das EX-Bit zu setzen, diese Anforderung vom PS 62 a
verarbeitet; wenn die Daten im PS 64 a vorhanden sind,
wird das EX-Bit des AAF 76 a nicht gesetzt. Wenn die
Daten im PS 64 a nicht vorhanden sind, wird die Lesean
forderung des EX-Bits an die SS 62 a ausgegeben. Wenn die
Zeile A im AAF 76 a eingetragen ist, wird die Verarbei
tung in der SS 62 a ausgeführt, indem der AS 66 a gelesen
wird, so daß das EX-Bit auch in diesem Fall nicht ge
setzt wird. Wenn die Zeile A im AS 66 a jedoch nicht vor
handen ist, wird über die Schnittstelle 91 bei der SS
62 b angefragt, ob die Zeile A in einem wiedereinge
schriebenen Zustand im AS 66 b vorhanden ist. In diesem
Moment sucht die SS 62 b das AAF 76 b sowie die FAF′s 77 c
und 77 d und teilt über die Schnittstelle 92 mit, daß das
EX-Bit gesetzt werden kann, falls die Zeile A nirgendwo
vorhanden ist. In diesem Fall liest die SS 62 a die Daten
der Zeile A aus dem HS 61, speichert sie im AS 66 a und
setzt das EX-Bit auf den Wert "1", falls die Eintragung
der Zeile A im AAF 76 a eingetragen ist.
Aus JP 60-1 38 653-A (1985) ist eine Technik zur nichtex
klusiven Steuerung zwischen Pufferspeichern in einem er
weiterten Multiprozessorsystem bekannt.
Es wird jedoch weiterhin festgestellt, daß dann, wenn
eine exklusive Steuerung einer hierarchischen Puffer
speicheranordnung in einem Multiprozessorsystem ausge
führt wird, die Speicherverarbeitung durch Suchen der
Zeile im AAF der jeweils anderen SS und durch Invalidie
rung der Eintragung, falls die Zeile dann, wenn das EX-
Bit derselben SS den Wert "0" besitzt, vorhanden ist,
sowie durch Suchen aller Blöcke in der Zeile, um festzu
stellen, ob die Blöcke in den PS, die mit der anderen SS
verbunden sind vorhanden sind, und durch Invalidierung
dieser Blöcke, falls sie vorhanden sind, ausgeführt
wird. Dieses Verfahren ist bei der ununterbrochenen
Speicherverarbeitung im Umfang einer Zeile wirksam. Wenn
jedoch die Speicherverarbeitung nur für einen Blockbe
reich einer Zeile ausgeführt werden soll, wird der Rest
der an den PS geschickten Blöcke, die ursprünglich nicht
ungültig gemacht werden sollten, nichtsdestoweniger un
bedingt ungültig gemacht, so daß wegen des Anstiegs des
NIPV ("Nicht-im-Pufferspeicher-Verhältnis" - die Wahr
scheinlichkeit dafür, daß ein Block, auf den zugegriffen
wird, nicht im PS vorhanden ist) ein Problem entsteht.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein
Muliprozessorsystem zu schaffen, in dem zwischen den
Pufferspeichern eine exklusive Steuerung ausgeführt wer
den kann, ohne daß das NIPV erhöht wird.
Es ist eine weitere Aufgabe der vorliegenden Erfindung,
ein Multiprozessorsystem zu schaffen, das mindestens ei
ne Zweifachspeichersteuerungsstruktur mit jeweils einem
Arbeitspufferspeicher mit einer Zeilengröße, die um ein
Vielfaches größer ist als ein Block eines Pufferspei
chers, aufweist, wobei die wenigstens zweifache Spei
chersteuerungsstruktur die Dateninvalidierungsverarbei
tung aufgrund einer Datenidentitätskontrolle zwischen
den Pufferspeichern der jeweils anderen Speichersteue
rung in einer Blockeinheit und nicht in einer Zeilenein
heit ermöglicht.
Diese Aufgaben werden erfindungsgemäß gelöst durch ein
Multiprozessorsystem, das einen Hauptspeicher (HS), eine
Mehrzahl von Arbeitspufferspeichern (AS) zum Speichern
einer Kopie von Daten des HS, eine Mehrzahl von Zentral
einheiten, eine Mehrzahl von Pufferspeichern (PS) zum
Speichern einer Kopie von Daten eines jeden der AS, wo
bei jedem der AS wenigstens ein PS entspricht, und Puf
feradressenfelder (AAF, PAF), in die eine Hauptspeicher
adresse eingetragen ist, unter der im Hauptspeicher Da
ten gespeichert sind, die den Daten entsprechen, die un
ter der entsprechenden Adresse in jedem der AS bzw. der
PS gespeichert sind, aufweist; das erfindungsgemäße Mul
tiprozessorssystem besitzt eine hierarchische Speicher
struktur, in der die Größe einer Dateneintragungseinheit
des AS ein Vielfaches der Größe der Dateneintragungsein
heit des PS ist, und eine Struktur, in der der PS aus
schließlich für jede der CPU′s verwendet wird; im erfin
dungsgemäßen Multiprozessorsystem sind Steuereinrichtun
gen vorgesehen, in denen eine Mehrzahl besonderer Bits
so angeordnet ist, daß sie einem einem AS entsprechenden
Arbeitspufferadressenfeld (AAF) zugeordnet sind, wobei
die Mehrzahl der besonderen Bits angibt, ob die im der
einen CPU entsprechenden AS gespeicherten Hauptspeicher
adressendaten im der anderen CPU entsprechenden AS und
im damit verbundenen PS gespeichert sind, und in der
beim Wiedereinschreiben von Daten des AS das AAF dieses
AS aufgesucht wird, um zu ermitteln, ob die Daten des
der anderen CPU entsprechenden AS und die Daten des mit
diesen AS verbundenen PS durch die Mehrzahl der besonde
ren Bits einer Eintragung des AAF ungültig gemacht wer
den müssen.
Das erfindungsgemäße Multiprozessorsystem ist durch die
Steuereinrichtungen gekennzeichnet, in denen die beson
deren Bits, die angeben, ob die im der einen CPU ent
sprechenden AS gespeicherten Hauptspeicheradressendaten
im der anderen CPU entsprechenden AS und im damit ver
bundenen PS gespeichert sind, in ein erstes besonderes
Bit für die Ausführung einer Datenidentitätskontrolle
zwischen den Arbeitspufferspeichern (AS) und in ein
zweites besonderes Bit für die Ausführung einer Daten
identitätskontrolle zwischen dem einen AS und dem mit
dem anderen AS verbundenen PS aufgeteilt und als Teil
einer Eintragung des Arbeitspufferadressenfeldes (AAF)
des einen AS oder als der Eintragung entsprechende Spei
cherfeldinformation angeordnet sind und in denen dann,
wenn aufgrund eines Wertes der besonderen Bits die Daten
des AS wieder eingeschrieben werden, eine Identitätskon
trolle zwischen den Arbeitspufferspeichern und eine
Identitätskontrolle zwischen dem einen Arbeitspuffer
speicher und dem Pufferspeicher des anderen Arbeitspuf
ferspeichers unabhängig voneinander ausgeführt werden
können.
Es wird festgestellt, daß im erfindungsgemäßen Multipro
zessorsystem eine Mehrzahl besonderer Bits vorgesehen
ist, die angeben, ob die im der einen CPU entsprechenden
AS gespeicherten Hauptspeicheradressendaten im der ande
ren CPU entsprechenden AS und im damit verbundenen PS
gespeichert sind; diese Mehrzahl besonderer Bits ent
spricht dem jeweiligen Arbeitspufferadressenfeld (AAF)
des Arbeitspufferspeichers. Wenn Daten des AS wieder
eingeschrieben werden, wird das AAF des AS aufgesucht,
um zu ermitteln, ob eine Invalidierungsverarbeitung der
Daten des der anderen CPU entsprechenden Arbeitspuffer
speichers und des mit diesem AS verbundenen PS erforder
lich ist.
Die Mehrzahl besonderer Bits wird in ein EX-Bit zum Aus
führen einer Datenidentitätskontrolle zwischen den Ar
beitspufferspeichern und in ein EX-Bit zum Ausführen der
Datenidentitätskontrolle zwischen dem einen Arbeitspuf
ferspeicher und dem mit dem anderen Arbeitspufferspei
cher verbundenen Pufferspeicher unterteilt. Diese Mehr
zahl besonderer Bits ist als Teil der AAF-Eintragung
oder als der AAF-Eintragung entsprechende Speicherfeld
information vorgesehen. Durch den Rückgriff auf jedes
der besonderen Bits kann unabhängig die Identitätskon
trolle zwischen den Arbeitspufferspeichern und die Iden
titätskontrolle zwischen dem einen Arbeitspufferspeicher
und dem mit dem anderen Arbeitspufferspeicher verbunde
nen Pufferspeicher ausgeführt werden.
Wenn das EX-Bit der besonderen Bits des einen AS, mit
dem die Identitätskontrolle zwischen den Arbeitspuffer
speichern ausgeführt wird, beispielsweise als EXL-Bit
und wenn die dem PS-Block entsprechenden besonderen Bits
beispielsweise als EX0-bis EX3-Bits gespeichert werden,
wird die Verarbeitung so gesteuert, daß die Daten nur in
dem einen AS gespeichert werden, weil dieselben Daten im
anderen AS nicht vorhanden sind, falls das EXL-Bit der
AAF-Eintragung den Wert "1" besitzt. Wenn das EXi-Bit (i
=0, 1, 2, 3), das dem Block der Speicheradresse ent
spricht, den Wert "1" besitzt, ist dieser Block nicht im
anderen PS vorhanden, so daß eine Blockannulierungsan
forderung an den anderen PS ausgegeben wird. Wenn das
EXi-Bit den Wert "0" besitzt, wird eine AS-Speicherope
ration ausgeführt und eine Blockannulierungsanforderung
an den anderen PS ausgegeben. Wenn die entsprechende
Eintragung in diesem dem AS entsprechenden AAF nicht
vorhanden ist oder wenn das EXL-Bit selbst bei Vorhan
densein der Eintragung den Wert "0" besitzt, wird das
andere AAF aufgesucht und dessen Eintragung, wenn sie in
diesem AAF vorhanden ist, ungültig gemacht; dabei wird
dem EXL-Bit der Wert "1" gegeben, ferner werden die ak
tualisierten Daten in dem einen AAF und in dem einen PS
eingetragen. In diesem Moment werden die Blöcke des an
deren PS, die den Blöcken 0 bis 3 entsprechen, nicht al
le ungültig gemacht, vielmehr wird nur der der Speicher
adresse des einen Arbeitspufferspeichers entsprechende
Block ungültig gemacht, wobei das EXi-Bit (i = Blockzahl
der Speicheradressen) den Wert "1" erhält und in dem ei
nen AAF eingetragen wird.
Wenn daher die Datenidentitätskontrolle zwischen den Ar
beitspufferspeichern ausgeführt wird, kann die Invali
dierungsverarbeitung der Pufferspeicherdaten der anderen
Speichersteuerung in Blockeinheiten und nicht in Zeilen
einheiten ausgeführt werden. Das bedeutet, daß die die
Speicheroperation begleitende Ausführung der Invalidie
rungsverarbeitung der Daten im AS und im PS in bezug auf
die Daten des mit der anderen Speichersteuerung verbun
denen PS nur auf den Block, der die Speicheradresse ent
hält, gerichtet ist, während die Daten der anderen
Blöcke der Zeile ungeändert gelassen werden. Solange da
her keine Speicheranforderung für sämtliche Blöcke in
der Zeile ausgegeben wird, kann ein Absinken des Tref
ferverhältnisses des Pufferspeichers verhindert werden.
Die Erfindung wird im folgenden anhand von Ausführungs
beispielen unter Bezug auf die Zeichnungen näher erläu
tert; es zeigen:
Fig. 1 ein Blockschaltbild, das die Gesamtstruktur des
wesentlichen Teils einer Ausführungsform des er
findungsgemäßen Multiprozessorsystems erläutert;
Fig. 2 ein Beispiel der Eintragungsstruktur eines Ver
zeichnisses des Arbeitspufferspeichers gemäß ei
ner Ausführungsform der vorliegenden Erfindung;
Fig. 3 ein Blockschaltbild, das eine Ausführungsform
einer Trefferbeurteilungsschaltung für den Ver
gleich einer Anforderungsadresse mit der Eintra
gung im Arbeitspufferadressenfeld erläutert;
Fig. 4 ein Schaltbild, das den wesentlichen Teil einer
Steuerschaltung zum Ausführen der Treffersteue
rung und zur exklusiven Steuerung des Arbeits
pufferspeichers in der Speichersteuerung erläu
tert;
Fig. 5 ein Schaltbild, das eine weitere Ausführungsform
einer Trefferbeurteilungsschaltung zum Vergleich
der Anforderungsadresse mit der AAF-Eintragung
erläutert;
Fig. 6 ein Blockschaltbild, das eine Ausführungsform
eines Multiprozessorsystems mit einer hierarchi
schen Speicherstruktur erläutert;
Fig. 7 ein Beispiel der Blockinvalidierungsverarbeitung
für den Pufferspeicher im Multiprozessorsystem;
Fig. 8 ein Beispiel der Eintragungsstruktur eines Ver
zeichnisses des Pufferspeichers;
Fig. 9 ein weiteres Beispiel der Blockinvalidierungs
verarbeitung für den Pufferspeicher im Multipro
zessorsystem;
Fig. 10 ein Beispiel der Eintragungsstruktur eines Ver
zeichnisses des Arbeitspufferspeichers;
Fig. 12 ein Blockschaltbild, in dem die Struktur eines
Multiprozessorssystems mit zwei eingebauten
Speichersteuerungen erläutert wird;
Fig. 13 ein weiteres Beispiel der Eintragungsstruktur
eines Verzeichnisses des Arbeitspufferspeichers;
und
Fig. 14 ein Beispiel der Blockinvalidierungsverarbeitung
für den Pufferspeicher im Multiprozessorsystem
von Fig. 12.
In Fig. 1 ist ein Blockschaltbild gezeigt, mit dem die
Gesamtstruktur eines wesentlichen Teils des erfindungs
gemäßen Multiprozessorsystems gemäß einer Ausführungs
form erläutert wird, während in Fig. 2 ein Beispiel der
Eintragungsstruktur eines Verzeichnisses des Arbeitspuf
ferspeichers gemäß einer Ausführungsform der Erfindung
erläutert wird.
Wie in Fig. 1 gezeigt, sind mit dem Hauptspeicher (HS)
61 zwei Speichersteuerungen (SS) 62 a und 62 b verbunden,
während mit der SS 62 a die Zentraleinheiten (CPU#0,
CPU#1) 63 a und 63 b und der Eingabe/Ausgabeprozessor
(EAP#0) 65 a und mit der SS 62 b die Zentraleinheiten
(CPU#2, CPU#3) 63 c und 63 d und der Eingabe/Ausgabeprozessor
(EAP#1) 65 b verbunden sind. Die CPU 63 a enthält
einen Pufferspeicher (PS) 64 a und ein Pufferadressenfeld
(PAF) 67 a, das ein Verzeichnis des PS 64 a darstellt, die
CPU 63 b enthält genauso einen Pufferspeicher (PS) 64 b
und ein Pufferadressenfeld (PAF) 67 b, das ein Verzeich
nis des PS 64 b darstellt. Die SS 62 a enthält einen Ar
beitspufferspeicher (AS) 66 a, ein Arbeitspufferadressen
feld (AAF) 76 a, das ein Verzeichnis des AS 66 a dar
stellt, sowie Frontadressenfelder (FAF) 77 a und 77 b, die
Kopien der entsprechenden PAF′s 67 a und 67 b sind. Die SS
62 b, die CPU 63 c und die CPU 63 d sind genauso aufgebaut
und weisen entsprechend einen Arbeitspufferspeicher,
Pufferspeicher und deren Verzeichnisse bzw. Kopien die
ser Verzeichnisses auf. Der Inhalt einer jeden Eintra
gung der PAF′s 67 a, 67 b, 67 c und 67 d weist, wie in Fig.
8 gezeigt, einen Gültigkeitsbitbereich und einen Adres
senbereich auf. Der Inhalt einer jeden Eintragung der
AAF′s 76 a und 76 b weist einen Gültigkeitsbitbereich, ei
nen Adressenbereich, einen Wiedereinschreibe/Nichtwie
dereinschreibe-Bitbereich und einen Bereich für beson
dere Bits, in den eine Mehrzahl besonderer Bits einge
tragen wird, um die exklusive Steuerung zwischen den
Pufferspeichern auszuführen, auf.
Wie oben beschrieben worden ist, ist die Struktur des in
Fig. 1 gezeigten Multiprozessorsystems dieselbe wie die
mit Bezug auf Fig. 12 beschriebene Multiprozessorsystem
struktur, jedoch wird als Inhalt einer jeden Eintragung
der Arbeitspufferadressenfelder 76 a und 76 b der in Fig.
2 gezeigte Eintragungsinhalt verwendet. Dieser Eintra
gungsinhalt ist dadurch gekennzeichnet, daß die besonde
ren Bits zum Ausführen der exklusiven Steuerung zwischen
den Pufferspeichern mehrere sind. Wie in Fig. 2 gezeigt,
weist die Mehrzahl der Bereiche für besondere Bits in
der Eintragung 20 ein EXL-Bit 21 und die den jeweiligen
Blöcken entsprechenden Bits EX 0 22, EX 1 23, EX 2 24 und
EX 3 25 auf. Das EXL-Bit 21 ist ein Bit, das angibt, daß
Zeilendaten im AS sich in einem ausschließenden Zustand
zwischen den Arbeitspufferspeichern befinden. Wenn das
EXL-Bit 21 den Wert "1" besitzt, ist gewährleistet, daß
im AS der anderen SS keine identische Datenzeile vorhan
den ist. Die Bits EX 0 22, EX 1 23, EX 2 24 und EX 3 25 sind
Steuerbits und entsprechen der jeweiligen Anzahl der aus
Zeilendaten der Eintragung 20 der Arbeitspufferspeicher
bestehenden PS-Blöcke. Wenn jedes der Bits EX 0 22, EX 1
23, EX 2 24 und EX 3 25 den Wert "1" besitzt, ist gewähr
leistet, daß in bezug auf jeden Block in den PS, die mit
dem AS der anderen SS verbunden sind, keine identischen
Daten vorhanden sind.
Nun wird mit Bezug auf Fig. 3 die Trefferbeurteilungs
operation und mit Bezug auf Fig. 4 die gegenseitige Ab
frageoperation des AS und des PS für die Ausführung der
exklusiven Steuerung beschrieben.
Fig. 3 ist ein Blockschaltbild, in dem eine Ausführungs
form einer Trefferbeurteilungsschaltung für den Ver
gleich einer Anforderungsadresse mit einer AAF-Eintra
gung erläutert wird. In Fig. 3 sind eine AAF-Eintragung
20, eine Anforderungsadresse 30, Eintragungsadressenda
ten 30 a für die Anforderungsadresse, 2-Bitdaten 30 b, die
die Blocknummer in der AS-Zeile angeben, ein 2-Bit-Deco
der 31, eine Eintragungsadresse-Vergleichsschaltung 32,
UND-Gatter 33 bis 37, ein ODER-Gatter 38, UND-Gatter 39
und 40, ein Invertierer 41, UND-Gatter 42 und 43 und ein
ODER-Gatter 44 gezeigt. Mit der Eintragungsadressenver
gleichsschaltung 32 werden die Eintragungsadressendaten
30 a für die Anforderungsadresse 30 mit der AAF-Eintra
gung 20 verglichen. Anschließend wird über eine Logik
schaltung anhand dieses Vergleichsergebnisses, anhand
der EX0- bis EX3-Bits und anhand der Dekoderausgabe der
Blockanzahl in jeder der AS-Zeilen ein Status beurteilt.
Die Signale A, B, C und D des Beurteilungsergebnisses,
die an den entsprechenden Ausgängen des ODER-Gatters 44,
des Inverters 41, des UND-Gatters 42 und des UND-Gatters
43 anliegen, geben den jeweiligen Status wieder, wie er
in Tabelle 1 angegeben ist:
Signal A:
In einem "Trefferstatus" wird keine exklusive Steuerung für den anderen AS und den anderen PS gefordert. Dieser Fall tritt ein, wenn für eine von der Speicheranforderung verschiedene Anforderung eine Zeile vorhanden ist und im AS eine gewünschte Zeile mit EXL = 1 für die Speicheranforderung vorhanden ist.
In einem "Trefferstatus" wird keine exklusive Steuerung für den anderen AS und den anderen PS gefordert. Dieser Fall tritt ein, wenn für eine von der Speicheranforderung verschiedene Anforderung eine Zeile vorhanden ist und im AS eine gewünschte Zeile mit EXL = 1 für die Speicheranforderung vorhanden ist.
Signal B:
kein "Trefferstatus".
kein "Trefferstatus".
Signal C:
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, wird für die andere SS eine exklusive Steuerung gefordert, da das EXL-Bit den Wert "0" besitzt, wenn eine Speicheranforderung ausgegeben wird.
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, wird für die andere SS eine exklusive Steuerung gefordert, da das EXL-Bit den Wert "0" besitzt, wenn eine Speicheranforderung ausgegeben wird.
Signal D:
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, ist für den mit dem anderen AS verbundenen PS eine Blockannulierung erforderlich, da das EXi-Bit des Blocks, auf den zugegriffen worden ist, den Wert "0" besitzt.
Obwohl im AS eine Zeile, auf die zugegriffen worden ist, vorhanden ist, ist für den mit dem anderen AS verbundenen PS eine Blockannulierung erforderlich, da das EXi-Bit des Blocks, auf den zugegriffen worden ist, den Wert "0" besitzt.
In Fig. 4 ist ein Blockschaltbild gezeigt, in dem ein
wesentlicher Teil der Steuerschaltung zur Ausführung der
Treffersteuerung und der exklusiven Steuerung des Ar
beitspufferspeichers in der Speichersteuerung erläutert
ist.
Nun wird mit Bezug auf Fig. 4 die Treffersteuerung und
die exklusive Steuerung der SS mittels Integration der
Signale A, B, C und D aus der Trefferbeurteilungsschal
tung (Fig. 3) für jede Zeile im einzelnen beschrieben.
In Fig. 4 bezeichnen die Bezugszeichen 45 a, 45 b, 45 c und
45 d Trefferbeurteilungsschaltungen für die Zeilennummern
0, 1, 2 bzw. 3. Die Signale A, B, C und D einer jeden
Trefferbeurteilungsschaltung entsprechen je nach Zeilen
nummer den Signalen A 0 bis A 3, B 0 bis B 3, C 0 bis C 3 bzw.
D 0 bis D 3. In Fig. 4 sind ferner ODER-Gatter 46 a bis
46 d, 47, 48, 50, 54 und 56, UND-Gatter 49 und 51 bis 53,
ein 4-Bit-Encoder 56 und ein Selektor 57 gezeigt. Das
Signal 59 von einer Austauschlogik (WRA) dient zur Fest
legung einer Zeile, die eine bestimmte Zeile, die im AS
nicht vorhanden ist, ersetzen soll; diese Zeile besteht
aus 2-Bit-Zeilendaten. Ferner ist in Fig. 4 ein Zeilen
nummernregister 68 (2 Bits) des AS gezeigt.
Die logischen Ausgaben I, II, III, IV, V und VI ergeben
sich aus der aus den Logikgattern aufgebauten Logik
schaltung und werden in Tabelle 2 erläutert:
- I: "Treffer"-Verarbeitungsanforderung; keine exklusive
Steuerung für die anderen AS erforderlich.
Wenn das EXi-Bit eines eine Speicheradresse enthaltenden Blocks den Wert "1" besitzt, wird von der logischen Ausgabe VI eine Blockannulierungsanforderung an die andere SS ausgegeben, während dasselbe EXi-Bit den Wert "1" behält. - II: "Treffer"-Verarbeitungsanforderung mit exklusiver
Steuerung der anderen AS erforderlich.
Da das EXL-Bit den Wert "0" besitzt, obwohl im selben AS die gewünschten Zeilendaten vorhanden sind, wird angefragt, ob die identische Zeile im AAF des anderen AS vorhanden ist; falls sie vorhanden ist, wird die Eintragung ungültig gemacht. - III: "Kein Treffer"-Verarbeitungsanforderung für die
Nur-Lese-Holanforderung.
Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die letzten Daten in diesen anderen AAF vorhanden sind, werden diese Daten vom anderen AS übertragen, während die Bits EXL und EX 0 bis EX 3 des einen AAF mit dem Wert "0" erhalten. - IV: "Kein Treffer"-Verarbeitungsanforderung für eine
Holanforderung mit EX-Abruf.
Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die letzten Daten in diesem anderen AAF vorhanden sind (falls die Daten im anderen AS verändert sind), werden die Daten vom anderen AS zu diesem AS übertragen und die Eintragung des anderen AAF ungültig gemacht. - V: "Kein Treffer"-Verarbeitungsanforderung für die
Speicheranforderung.
Wenn sich aufgrund des Aufsuchens des anderen AAF herausstellt, daß die entsprechende Zeile in diesem anderen AAF vorhanden ist, wird die Eintragung ungültig gemacht und dem EXL-Bit der Wert "1" zugeteilt.
Die letzten Daten werden vom anderen AS oder vom Hauptspeicher an diesen AS übertragen. An den anderen PS wird eine Invalidierungsanforderung nur für den Block ausgegeben, der die Speicheranforderung (IV) enthält, während das EXi-Bit den Wert "1" erhält (i ist die Blocknummer desjenigen Blocks, an den die Invalidierungsanforderung ausgegeben worden ist). - VI: Blockannulierungsanforderung für den anderen PS
während der Speicherverarbeitung.
Für einen die Speicheradresse enthaltenden Block wird eine Blockannulierungsanforderung ausgegeben, während das EXi-Bit den Wert "1" erhält (i ist die Blocknummer desjenigen Blocks, der die Speicheradresse enthält).
Bei der von der SS 62 a ausgegebenen Blockannulierungsan
anforderung für die PS wird die Blockannulierung der PS
64 c und 64 d im System auf der Seite der SS 62 b dadurch
ermittelt, ob die entsprechende Eintragung in den
PAF′s 67 c und 67 d vorhanden ist und daß eine Invalidie
rungsanforderung der Eintragung an die PAF′s 67 c und 67 d
nur dann ausgegeben wird, wenn sich aufgrund des Aufsu
chens herausgestellt hat, daß die Eintragung vorhanden
ist.
Die Holanforderung mit EX-Abfrage bedeutet eine Anfor
derung, bei der ein Block oder eine Zeile, die mit hoher
Wahrscheinlichkeit geholt wird, gespeichert wird.
In Fig. 6 ist ein Blockschaltbild gezeigt, das eine wei
tere Ausführungsform der Trefferbeurteilungsschaltung
für den Vergleich der Anforderungsadresse mit der AAF-
Eintragung erläutert. Diese Trefferbeurteilungsschaltung
hat im wesentlichen die gleiche Struktur wie die in Fig.
3 gezeigte Trefferbeurteilungsschaltung; im Unterschied
zu der in Fig. 3 gezeigten Schaltung ist bei den beson
deren Bits, die in die AAF-Eintragung eingetragen wer
den, kein EXL-Bit vorgesehen. Anstatt des Signals vom
EXL-Bit der Schaltung von Fig. 3 ist in der in Fig. 5
gezeigten Schaltung ein aus der logischen Summe der Si
gnale der besonderen Bits EX 0 bis EX 3 sich ergebendes
Signal vorgesehen. Daher ist gegenüber der in Fig. 3 ge
zeigten Schaltung ein ODER-Gatter 60 vorgesehen, dessen
Ausgangssignal anstatt des EXL-Bit-Signals verwendet
wird. Bei der Anwendung einer solchen Trefferbeurtei
lungsschaltung ergibt sich gegenüber der in Fig. 3 ge
zeigten Trefferbeurteilungsschaltung, in der ein EXL-Bit
vorgesehen ist, der Unterschied, daß das EXi-Bit in der
Verarbeitung der Holanforderung mit EX-Abfrage den Wert
"1" erhalten soll, selbst wenn das EXi-Bit des Blocks i,
der der Zugriffadresse entspricht, nicht gespeichert
ist.
Wie oben beschrieben, kann der wesentliche Teil des er
findungsgemäßen Multiprozessorsystems wie folgt zusam
mengefaßt werden:
- 1. Die Identitätskontrolle zwischen den Arbeitspuffer speichern wird für die Speicheranforderung in einer Zeileneinheit ausgeführt, allerdings werden die Daten des Pufferspeichers im anderen System solange nicht ungültig gemacht, wie der Block nicht aktualisiert ist, um die Daten des Pufferspeichers in einer Block einheit zu verwalten. Damit wird eine Erhöhung des NIPV im anderen Pufferspeicher verhindert.
- 2. Bei der Identitätskontrolle zwischen den Arbeitspuf ferspeichern für die Holanforderung mit EX-Abfrage wird die Eintragung des anderen Arbeitspufferspei chers ungültig gemacht, allerdings wird der andere Pufferspeicher solange nicht ungültig gemacht, bis eine Speicheranforderung ausgegeben wird. Daher kann das NIPV des anderen Pufferspeichers kleiner gemacht werden.
Obwohl die obigen Beispiele auf eine dreistufige hierar
chische Speicherstruktur gerichtet sind, versteht es
sich, daß die vorliegende Erfindung auf ein System ange
wendet werden kann, in dem die Speicherstruktur eine
Hierarchie mit vier oder mehr Ebenen aufweist. Es wird
festgestellt, daß die Anzahl der CPU′s, EAP′s und AS′s
leicht erhöht werden kann.
Wie erwähnt, ist die vorliegende Erfindung anhand von
Beispielen beschrieben worden, aber es versteht sich,
daß sie durch diese Beispiele nicht beschränkt werden
soll, und daß verschiedene Änderungen und Abwandlungen
möglich sind, ohne daß vom Geist und vom Umfang der vor
liegenden Erfindung abgewichen wird.
Erfindungsgemäß ist es im Multiprozessorsystem, der ei
nen Hauptspeicher, eine Mehrzahl von Arbeitspufferspei
chern und Pufferspeicher aufweist, möglich, daß der eine
Arbeitspufferspeicher die Daten des anderen Arbeitspuf
ferspeichers und gleichzeitig den die Speicheradresse
enthaltenden Block im mit der anderen Speichersteuerung
verbundenen Pufferspeicher ungültig machen kann, und
dennoch die Daten der restlichen Blöcke der Zeile in ei
nem nicht ungültig gemachten Zustand belassen kann, wenn
die Daten im Arbeitspufferspeicher und im Pufferspeicher
während einer Speicheroperation ungültig gemacht werden
sollen. Folglich kann eine Abnahme des Trefferverhält
nisses im Pufferspeicher solange verhindert werden, wie
keine Speicheranforderung für sämtliche Blöcke der Zeile
ausgegeben wird.
Claims (6)
1. Multiprozessorsystem, das
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a, 63 b, 63 c, 63 d);
eine Mehrzahl von Pufferspeichern (64 a, 64 b, 64 c, 64 d) zur Speicherung einer Kopie von Daten in jedem der Arbeitspufferspeicher (66 a, 66 b); und
ein Verzeichnis, in das eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Da ten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Ar beitspufferspeicher (66 a, 66 b) und der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, bei der die Größe einer Dateneintragungseinheit des Ar beitspufferspeichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Puf ferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder der Puffer speicher (64 a bis 64 d) exklusiv für eine Zentralein heit (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
eine Mehrzahl von besonderen Bits vorgesehen ist, die dem Verzeichnis (76 a, 76 b) des Arbeitspufferspei chers (66 a, 66 b) korrespondieren und die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) ge speicherte Hauptspeicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspufferspeicher (66 b; 66 a) oder in den mit die sen Zentraleinheit verbundenen Pufferspeichern (64 c, 64 d; 64 a, 64 b) gespeichert sind; und
eine Invalidierungsverarbeitung ausgeführt wird, wenn Daten des Arbeitspufferspeichers (66 a; 66 b) wie der eingeschrieben werden, indem das Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) auf gesucht und indem beurteilt wird, ob die Daten des der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) ent sprechenden Arbeitspufferspeichers (66 b; 66 a) und die im mit dieser Zentraleinheit verbundenen Pufferspei cher (64 c, 64 d; 64 a, 64 b) enthaltenen Daten ungültig gemacht werden sollen, wofür ein Wert aus der Mehr zahl der besonderen Bits einer Eintragung des Ver zeichnisses (76 a; 76 b) verwendet wird.
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a, 63 b, 63 c, 63 d);
eine Mehrzahl von Pufferspeichern (64 a, 64 b, 64 c, 64 d) zur Speicherung einer Kopie von Daten in jedem der Arbeitspufferspeicher (66 a, 66 b); und
ein Verzeichnis, in das eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Da ten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Ar beitspufferspeicher (66 a, 66 b) und der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, bei der die Größe einer Dateneintragungseinheit des Ar beitspufferspeichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Puf ferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder der Puffer speicher (64 a bis 64 d) exklusiv für eine Zentralein heit (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
eine Mehrzahl von besonderen Bits vorgesehen ist, die dem Verzeichnis (76 a, 76 b) des Arbeitspufferspei chers (66 a, 66 b) korrespondieren und die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) ge speicherte Hauptspeicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspufferspeicher (66 b; 66 a) oder in den mit die sen Zentraleinheit verbundenen Pufferspeichern (64 c, 64 d; 64 a, 64 b) gespeichert sind; und
eine Invalidierungsverarbeitung ausgeführt wird, wenn Daten des Arbeitspufferspeichers (66 a; 66 b) wie der eingeschrieben werden, indem das Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) auf gesucht und indem beurteilt wird, ob die Daten des der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) ent sprechenden Arbeitspufferspeichers (66 b; 66 a) und die im mit dieser Zentraleinheit verbundenen Pufferspei cher (64 c, 64 d; 64 a, 64 b) enthaltenen Daten ungültig gemacht werden sollen, wofür ein Wert aus der Mehr zahl der besonderen Bits einer Eintragung des Ver zeichnisses (76 a; 76 b) verwendet wird.
2. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß die
entsprechend dem Verzeichnis (76 a; 76 b) des Arbeits
pufferspeichers (66 a; 66 b) vorgesehene Mehrzahl von
besonderen Bits eine Summe n+1 Bits aufweist, von de
nen der der anderen Zentraleinheit (63 c, 63 d; 63 a,
63 b) entsprechende Arbeitspufferspeicher (66 b; 66 a′)
ein Bit belegt und eine Blockeinheit des der einen
Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden
Pufferspeichers (64 a, 64 b; 64 c, 64 d) oder jede der
Einheiten, deren Größe ein Vielfaches der Größe einer
Blockeinheit ist, n Bits belegt.
3. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß
die entsprechend dem Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) vorgesehene Mehr zahl von besonderen Bits so ausgebildet ist, daß die Blockeinheit des der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Pufferspeichers (64 a, 64 b; 64 c, 64 d) oder jeder der Einheiten, deren Größe ein Vielfaches der Größe einer Blockeinheit ist, n Bits aufweisen kann; und
ein Signal der besonderen Bits für den der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entspre chenden Arbeitspufferspeicher (66 b; 66 a) aus der lo gischen Summe der Signale der besonderen Bits, die n Bits aufweisen und für den Pufferspeicher (64 c, 64 d; 64 a, 64 b) vorgesehen sind, gebildet wird.
die entsprechend dem Verzeichnis (76 a; 76 b) des Arbeitspufferspeichers (66 a; 66 b) vorgesehene Mehr zahl von besonderen Bits so ausgebildet ist, daß die Blockeinheit des der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Pufferspeichers (64 a, 64 b; 64 c, 64 d) oder jeder der Einheiten, deren Größe ein Vielfaches der Größe einer Blockeinheit ist, n Bits aufweisen kann; und
ein Signal der besonderen Bits für den der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entspre chenden Arbeitspufferspeicher (66 b; 66 a) aus der lo gischen Summe der Signale der besonderen Bits, die n Bits aufweisen und für den Pufferspeicher (64 c, 64 d; 64 a, 64 b) vorgesehen sind, gebildet wird.
4. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß
dann, wenn Daten des Arbeitspufferspeichers (66 a;
66 b) wieder eingeschrieben werden, Daten des Arbeits
pufferspeichers (66 b; 66 a) der anderen Zentraleinheit
(63 c, 63 d; 63 a, 63 b) durch einen logischen Summenwert
der besonderen Bits, die aus einem Bit für den Ar
beitspufferspeicher (66 b; 66 a) und n Bits für den
Pufferspeicher (64 c, 64 d; 64 a, 64 b) bestehen, ungül
tig gemacht werden.
5. Multiprozessorsystem gemäß Anspruch 1,
dadurch gekennzeichnet, daß
dann, wenn Daten des Arbeitspufferspeichers (66 a;
66 b) wieder eingeschrieben werden, Daten des Arbeits
pufferspeichers (66 b; 66 a) der anderen Zentraleinheit
(63 c, 63 d; 63 a, 63 b) durch einen Wert der besonderen
Bits, der einem Pufferspeicherblock eines Verzeich
nisses (76 b; 76 a) des Arbeitspufferspeichers (66 b;
66 a) entspricht, ungültig gemacht werden.
6. Multiprozessorsystem, das
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a bis 63 d);
eine Mehrzahl von Pufferspeichern (64 a bis 64 d) zur Speicherung einer Kopie von Daten eines jeden der Arbeitspufferspeicher (66 a, 66 b) und
Verzeichnisse (67 a bis 67 d, 76 a, 76 b), in die eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Daten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Arbeitspufferspeicher (66 a, 66 b) bzw. der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, in der eine Dateneintragungseinheit des Arbeitspuffer speichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Pufferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder Pufferspei cher (64 a bis 64 d) exklusiv für eine der Zentralein heiten (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
besondere Bits, die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) gespeicherten Haupt speicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspuffer speicher (66 b; 66 a) und im mit der anderen Zentral einheit verbundenen Pufferspeicher (64 c, 64 d; 64 a, 64 b) gespeichert sind, in ein erstes besonderes Bit zur Ausführung einer Datenidentitätskontrolle zwi schen den Arbeitspufferspeichern (66 a, 66 b) und in ein zweites besonderes Bit zur Ausführung einer Da tenidentitätskontrolle zwischen dem Arbeitspuffer speicher (66 a; 66 b) und dem mit dem anderen Arbeits pufferspeicher (66 b; 66 a) verbundenen Pufferspeicher (64 c; 64 d; 64 a, 64 b) aufgeteilt werden und die beson deren Bits als Teil einer Eintragung des Verzeichnis ses (76 a, 76 b) des Arbeitspufferspeichers (66 a, 66 b) oder als Speicherfeldinformation vorgesehen sind und
die Identitätskontrolle zwischen den Arbeitspuf ferspeichern (66 a, 66 b) aufgrund des Wiedereinschrei bens von Daten in den Arbeitspufferspeicher (66 a, 66 b) mittels des ersten besonderen Bits und die Iden titätskontrolle zwischen dem Arbeitspufferspeicher (66 a, 66 b) und dem anderen Pufferspeicher (64 c, 64 d; 64 a, 64 b) mittels des zweiten besonderen Bits unab hängig voneinander ausgeführt werden.
einen Hauptspeicher (61);
eine Mehrzahl von Arbeitspufferspeichern (66 a, 66 b) zum Speichern einer Kopie von Daten des Haupt speichers (61);
eine Mehrzahl von Zentraleinheiten (63 a bis 63 d);
eine Mehrzahl von Pufferspeichern (64 a bis 64 d) zur Speicherung einer Kopie von Daten eines jeden der Arbeitspufferspeicher (66 a, 66 b) und
Verzeichnisse (67 a bis 67 d, 76 a, 76 b), in die eine Hauptspeicheradresse eingetragen ist, unter der im Hauptspeicher (61) Daten gespeichert sind, die den Daten entsprechen, die unter der entsprechenden Adresse in jedem der Arbeitspufferspeicher (66 a, 66 b) bzw. der Pufferspeicher (64 a bis 64 d) gespeichert sind, aufweist,
eine hierarchische Speicherstruktur besitzt, in der eine Dateneintragungseinheit des Arbeitspuffer speichers (66 a, 66 b) um ein Vielfaches größer ist als eine Dateneintragungseinheit des Pufferspeichers (64 a bis 64 d); und
eine Struktur besitzt, in der jeder Pufferspei cher (64 a bis 64 d) exklusiv für eine der Zentralein heiten (63 a bis 63 d) verwendet wird, dadurch gekennzeichnet, daß
besondere Bits, die angeben, ob die im der einen Zentraleinheit (63 a, 63 b; 63 c, 63 d) entsprechenden Arbeitspufferspeicher (66 a; 66 b) gespeicherten Haupt speicheradressendaten im der anderen Zentraleinheit (63 c, 63 d; 63 a, 63 b) entsprechenden Arbeitspuffer speicher (66 b; 66 a) und im mit der anderen Zentral einheit verbundenen Pufferspeicher (64 c, 64 d; 64 a, 64 b) gespeichert sind, in ein erstes besonderes Bit zur Ausführung einer Datenidentitätskontrolle zwi schen den Arbeitspufferspeichern (66 a, 66 b) und in ein zweites besonderes Bit zur Ausführung einer Da tenidentitätskontrolle zwischen dem Arbeitspuffer speicher (66 a; 66 b) und dem mit dem anderen Arbeits pufferspeicher (66 b; 66 a) verbundenen Pufferspeicher (64 c; 64 d; 64 a, 64 b) aufgeteilt werden und die beson deren Bits als Teil einer Eintragung des Verzeichnis ses (76 a, 76 b) des Arbeitspufferspeichers (66 a, 66 b) oder als Speicherfeldinformation vorgesehen sind und
die Identitätskontrolle zwischen den Arbeitspuf ferspeichern (66 a, 66 b) aufgrund des Wiedereinschrei bens von Daten in den Arbeitspufferspeicher (66 a, 66 b) mittels des ersten besonderen Bits und die Iden titätskontrolle zwischen dem Arbeitspufferspeicher (66 a, 66 b) und dem anderen Pufferspeicher (64 c, 64 d; 64 a, 64 b) mittels des zweiten besonderen Bits unab hängig voneinander ausgeführt werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63241386A JPH0290259A (ja) | 1988-09-27 | 1988-09-27 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3932227A1 true DE3932227A1 (de) | 1990-03-29 |
Family
ID=17073514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19893932227 Ceased DE3932227A1 (de) | 1988-09-27 | 1989-09-27 | Multiprozessorsystem |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH0290259A (de) |
DE (1) | DE3932227A1 (de) |
GB (1) | GB2223868B (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
CA2047888A1 (en) * | 1990-07-27 | 1992-01-28 | Hirosada Tone | Hierarchical memory control system |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
KR100515059B1 (ko) * | 2003-07-22 | 2005-09-14 | 삼성전자주식회사 | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 |
EP1986101B1 (de) * | 2006-02-14 | 2012-06-20 | Fujitsu Ltd. | Kohärenz-aufrechterhaltungseinrichtung und kohärenz-aufrechterhaltungsverfahren |
JP2015182104A (ja) | 2014-03-24 | 2015-10-22 | ファナック株式会社 | レーザ光の伝播監視機能を備えたレーザ加工機 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4675811A (en) * | 1983-12-27 | 1987-06-23 | Hitachi, Ltd. | Multi-processor system with hierarchy buffer storages |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
-
1988
- 1988-09-27 JP JP63241386A patent/JPH0290259A/ja active Pending
-
1989
- 1989-09-27 GB GB8921803A patent/GB2223868B/en not_active Expired - Fee Related
- 1989-09-27 DE DE19893932227 patent/DE3932227A1/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4675811A (en) * | 1983-12-27 | 1987-06-23 | Hitachi, Ltd. | Multi-processor system with hierarchy buffer storages |
Also Published As
Publication number | Publication date |
---|---|
JPH0290259A (ja) | 1990-03-29 |
GB8921803D0 (en) | 1989-11-08 |
GB2223868B (en) | 1993-01-20 |
GB2223868A (en) | 1990-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE2847960C2 (de) | Speichersteuereinrichtung | |
DE69031086T2 (de) | Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken | |
DE3803759C2 (de) | ||
DE3932675C2 (de) | ||
DE69733374T2 (de) | Speichersteuerungsvorrichtung und -system | |
DE3011552C2 (de) | ||
DE69715203T2 (de) | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE69029173T2 (de) | Mikroprozessor | |
DE2241257A1 (de) | Datenverarbeitende anlage | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE3502147C2 (de) | ||
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2547488A1 (de) | Mikroprogrammierte datenverarbeitungsanlage | |
DE68928333T2 (de) | Pufferspeicher, der zur Speicherung von Befehls- und Datenblöcken auf verschiedene Blockgrössen geeignet ist | |
DE3588061T2 (de) | Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät. | |
DE69421340T2 (de) | Kohärenter Datenaustausch, Verwaltungsverfahren zwischen den Stufen einer mindestens dreistufigen Speicherhierarchie | |
DE69230159T2 (de) | Steuerschaltung für Zwei-Torspeicher | |
DE3873388T2 (de) | Cache-speicher. | |
DE4117672A1 (de) | Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers | |
DE69131761T2 (de) | Datenverarbeitung zur Kohärenzaufrechterhaltung von Cache-Speicherdaten | |
DE3919802C2 (de) | Speichersteuersystem für ein Multiprozessorsystem | |
DE69131212T2 (de) | Cache-Kohärenz in logischen Caches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |