DE4103093C2 - Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens - Google Patents
Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses VerfahrensInfo
- Publication number
- DE4103093C2 DE4103093C2 DE4103093A DE4103093A DE4103093C2 DE 4103093 C2 DE4103093 C2 DE 4103093C2 DE 4103093 A DE4103093 A DE 4103093A DE 4103093 A DE4103093 A DE 4103093A DE 4103093 C2 DE4103093 C2 DE 4103093C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- buffer memory
- data transfer
- command
- operand
- 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.)
- Expired - Fee Related
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/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
Description
Die Erfindung betrifft ein Verfahren zum Steuern eines Datenüber
tragungs-Pufferspeichers in einem Computersystem, wie es im Oberbegriff des
Patentanspruchs 1 im einzelnen angegeben ist, sowie ein Computersystem zum
Durchführen eines solchen Verfahrens.
Ein Computersystem mit mehreren Prozessoren, von denen jeder einen
eigenen Speicher besitzt und außerdem Zugang zu einem von allen Prozessoren
gemeinsam nutzbaren Hauptspeicher hat, ist aus US 4 445 174 bekannt. Weiter
besitzt das bekannte Computersystem einen zusätzlichen Speicher, der für
alle Prozessoren zugänglich ist und ihnen näher liegt als der Hauptspeicher.
Die den einzelnen Prozessoren getrennt zugeordneten Speicher arbeiten im
Normalbetrieb als ROM, während der zusätzlich vorgesehene Speicher auf einen
Lese- und Schreibbetrieb eingerichtet ist und zum Verbinden der Prozessoren
mit dem Hauptspeicher dienen kann, wobei die Richtungsumkehr im Betrieb
durch Belegungssignale angezeigt wird.
Ein Computersystem mit ähnlichem Aufbau ist aus DE 34 39 302 A1 be
kannt. Bei diesem Computersystem stehen mehrere Prozessoren, die jeder über
einen eigenen Pufferspeicher verfügen, über mehrere Steuereinrichtungen zu
sätzlich mit einem gemeinsamen Hauptspeicher in Verbindung, aus dem Daten
für den Prozessorbetrieb abgerufen werden können, wobei die Zugriffsbedin
gungen durch eine Speichersteuereinheit festgelegt werden.
Bei einem Universalcomputersystem herkömmlicher Bauart mit in den
einzelnen Prozessoren angeordneten Pufferspeichern und einem von allen Pro
zessoren nutzbaren Hauptspeicher kann zwischen diesem und den prozessoreige
nen Pufferspeichern ein Gesamtpufferspeicher vorgesehen werden, der den ge
meinsam genutzten Hauptspeicher in funktionaler Hinsicht näher an die Pro
zessoren heranrücken läßt.
Ein herkömmliches Vektorcomputersystem mit einer Mehrzahl von Pro
zessoren für die Ausführung von Vektorverabeitungen, wie es aus JP 60-37,064
(= US 4 488 083) bekannt ist, weist einen Aufbau auf, der durch eine Daten
übertragung zwischen den Prozessoren mittels eines gemeinsam genutzten Regi
sters eine Übertragung von Daten aus einem von den Prozessoren gemeinsam
genutzten Hauptspeicher ermöglicht. Die Datenübertragung über das gemeinsam
genutzte Register gestattet eine Minimierung des zusätzlichen Platzbedarfs,
der für die Implementierung einer Simultanverarbeitung einer Aufgabe kleinen
Umfangs, die von einem häufigen Datenaustausch begleitet wird, nötig ist,
wobei zwischen den Prozessoren ein Hochgeschwindigkeitsübertragungsweg ver
wendet wird.
Bei einem solchen Einsatz des gemeinsam genutzten Registers ergibt
sich jedoch die Schwierigkeit, daß die zu verwendende Software das Register
selbst benötigt und Registerplätze einbezieht, wodurch keine Flexibilität
beispielsweise für eine Erweiterung der Systemarchitektur besteht. Außerdem
verlangt das gemeinsam genutzte Register eine Verarbeitung zum Sichern und
Wiederauffinden im Register bei einem Wechsel der Aufgabe, so daß eine soft
waremäßige Verwaltung für das gemeinsam genutzte Register notwendig wird. Da
auf die Systemzuverlässigkeit bei der Datenübertragung mittels des gemeinsam
genutzten Registers nicht weiter geachtet wird, werden fehlerkorrigierende
Codes eingesetzt, und außerdem ist eine Verdopplung des gemeinsam genutzten
Registers üblich. Durch die erste Maßnahme verringert sich der Durchsatz bei
der Datenverarbeitung, und die zweite Maßnahme erhöht den Umfang der nötigen
Hardware.
Bei einer Dreiebenen-Speicherarchitektur in einem Universalcomputer
system mit einer Mehrzahl von Prozessoren ergibt sich weiter ein Problem
hinsichtlich der physischen Größe der Bauelemente, da die Größe des Gesamt
pufferspeichers der des Hauptspeichers entsprechen sollte, weil sämtliche
Daten als Speicherobjekt im Pufferspeicher gesetzt werden.
Ein Computersystem mit einem Vektorprozessor verlangt außerdem die
Verbindung des Vektorprozessors mit dem Hauptspeicher über einen Datenweg
mit hohem Durchsatz, damit der Vektorprozessor rasch mit einer großen Anzahl
von Daten gespeist werden kann. In einem solchen System kann nämlich kein
Bauelement nach Art eines Zwischenpufferspeichers angeordnet werden, um den
Abstand der Prozessoren zum Hauptspeicher in funktionaler Hinsicht zu ver
kürzen. Die Datenübertragung erfolgt daher direkt zwischen dem Hauptspeicher
einerseits und dem prozessoreigenen Speicher des betroffenen Prozessors, so
daß dieser Speicher als Pufferspeicher ausfällt. Im Ergebnis wird daher die
Zugriffszeit zu den Daten im prozessoreigenen Speicher gleich lang oder so
gar länger als die Zugriffszeit zu den Daten im Hauptspeicher.
Wegen der Unmöglichkeit der Einfügung eines Zwischenpufferspeichers
in Computersysteme mit einem Vektorprozessor muß auch für Daten, die wie
skalare Befehle, Steuerbefehle usw. keine Vektordaten sind oder enthalten,
stets auf den Hauptspeicher zurückgegriffen werden, wenn eine Datenüber
tragung zwischen einzelnen Prozessoren erfolgen soll.
Der Erfindung liegt daher die Aufgabe zugrunde, den Betrieb eines
Computersystems mit mehreren Prozessoren gleicher oder unterschiedlicher
Funktion und insbesondere unter Einschluß eines Vektorprozessors mit hoher
Effizienz und unter Verwendung eines Zwischenpufferspeichers zu ermöglichen,
der von allen Prozessoren genutzt werden kann, wobei die Prozessoren einzeln
oder in Gruppen zusammengefaßt angeordnet sein können.
Die gestellte Aufgabe wird gemäß der Erfindung gelöst durch ein Steu
erverfahren, wie es in Anspruch 1 angegeben ist. Eine vorteilhafte Ausgestal
tung dieses Verfahrens ergibt sich aus dem Anspruch 2, und für die Durch
führung dieses Verfahrens bevorzugte Computersysteme sind in den Ansprüchen
3 und 4 angegeben.
Mit Hilfe des Verfahrens nach der Erfindung läßt sich die Effizienz
des betroffenen Computersystems erheblich steigern, da die Zugriffszeit zu
den gespeicherten Daten deutlich verkürzt ist.
Wesentlich für die Erfindung ist die Anordnung eines Datenübertra
gungs-Pufferspeichers, der nur zur Speicherung der Operandendaten für einen
Sonderbefehl wie etwa einen Vektorbefehl verwendet wird. Andere Befehle oder
Daten eines üblichen Befehls oder andere Befehle werden in den Datenübertra
gungs-Pufferspeicher nicht eingeschrieben. Der Datenübertragungs-Pufferspei
cher, mit dem ein Computersystem gemäß der Erfindung ausgerüstet ist, wirkt
als Zwischenpufferspeicher, der in der Speicherhierarchie eine Zwischenposi
tion einnimmt. Da er von allen Prozessoren des Computersystems genutzt wer
den kann, läßt sich mit seiner Hilfe ein Datenaustausch zwischen den Prozes
soren mit dem Sonderbefehl mittels Lese- und Schreiboperationen implementie
ren.
Wenn im folgenden von einer "Mehrzahl von Prozessoren" die Rede ist,
so ist damit auch ein Vektorprozessor gemeint, in dem kein Pufferspeicher
angeordnet ist. Außerdem werden die Operandendaten, die von einem Sonder
befehl wie etwa einem Vektorbefehl verschieden sind, zwischen dem jeweiligen
Prozessor und dem gemeinsam genutzten Speicher direkt übertragen, ohne daß
sie in dem in der Speichersteuerung angeordneten Datenübertragungs-Puffer
speicher gespeichert werden.
Der gemeinsam genutzte Speicher ist ein Speicher, der von
der Mehrzahl der Prozessoren genutzt wird, während der
Datenübertragungs-Pufferspeicher ein Pufferspeicher ist,
der so in der Speichersteuerung des eine Mehrzahl von
Prozessoren aufweisenden Computersystems angeordnet ist,
daß er einen Teil der Daten des gemeinsam genutzten Spei
chers kopieren und speichern kann, indem er nur die Ope
randendaten des Sonderbefehls als Speicherobjekt
verwendet. Ferner besitzt jeder der Prozessoren einen
Pufferspeicher, der jeweils so angeordnet ist, daß er
einen Teil der Daten des gemeinsam genutzten Speichers
kopiert und speichert. Der in der Speichersteuerung ange
ordnete Datenübertragungs-Pufferspeicher ist im wesentli
chen in der Mitte zwischen dem jeweiligen Pufferspeicher
der einzelnen Prozessoren und dem gemeinsam genutzten
Speicher angeordnet und wird als Zwischenpufferspeicher
zum Speichern und Liefern der Operandendaten zum Zeit
punkt der Abarbeitung des bestimmten Befehls verwendet.
Daher kann der Datenübertragungs-Pufferspeicher der Spei
chersteuerung von einem eingeschränkten Sonderbefehl
als Zwischenpufferspeicher verwendet werden, indem in ihm
eine Kopie des entsprechenden Teils der Daten des gemein
sam genutzten Speichers gespeichert wird und auf diese
Daten Bezug genommen wird oder indem diese Daten aktuali
siert werden. Dieser Aufbau kann wahlweise, insbesondere
für die Datenübertragung zwischen der Mehrzahl der Pro
zessoren, den Datenübertragungs-Pufferspeicher verwenden,
wodurch z. B. eine Vektorverarbeitung effizient ausgeführt
werden kann.
Durch den Sonderbefehl wird durch den zwischen dem
gemeinsam genutzten Speicher und dem Pufferspeicher ange
ordneten Datenübertragungs-Pufferspeicher der Teil der
Daten des gemeinsam genutzten Speichers kopiert, gespei
chert und abgerufen. Wenn daher mit dem Sonderbefehl
Daten zwischen den mit dem gemeinsam genutzten Speicher
verbundenen Prozessoren übertragen werden, ist kein Zu
griff auf den gemeinsam genutzten Speicher erforderlich.
Wenn ferner Daten im Datenübertragungs-Pufferspeicher ab
gerufen werden, ist lediglich ein Zugriff auf den Daten
übertragungs-Pufferspeicher erforderlich, wodurch die Zu
griffszeit für die gewünschten Daten abgekürzt wird.
Hierbei werden während der gesamten Dauer des Zugriffs
mittels des Sonderbefehls keine Daten in irgendeinem
Pufferspeicher der einzelnen Prozessoren, sondern nur im
Datenübertragungs-Pufferspeicher gespeichert. Daher ist
während der gesamten Dauer des Zugriffs auf die für die
Übertragung zwischen den Prozessoren mittels des Sonderbefehls
verwendeten Daten eine Invalidierung der Da
ten im Pufferspeicher in den anderen Prozessoren nicht
erforderlich, wenn Daten mittels des Sonderbefehls
aktualisiert werden, da in den Pufferspeichern der ande
ren Prozessoren keine Kopie des Teils der Daten des ge
meinsam genutzten Speichers gespeichert wird. Wenn ferner
die für die Datenübertragung zwischen den Prozessoren
verwendeten Daten nur für eine Bezugnahme ohne Aktuali
sierung verwendet werden, werden die Daten selbst dann
nicht aktualisiert, wenn sie in den Pufferspeicher des
Prozessors geholt werden, so daß eine Invalidierung nicht
erforderlich ist. Daher kann eine Bezugnahme-Anforderung
mittels eines allgemeinen Bezugnahme-Befehls ausgegeben
werden, wodurch die Daten in jeden der Pufferspeicher der
einzelnen Prozessoren geholt werden. Wenn hierbei von den
Daten des gemeinsam genutzten Speichers im Pufferspeicher
des Prozessors keine Kopie vorhanden ist und diese Kopie
aufgrund der Ausgabe eines von dem Sonderbefehl ei
nes jeden Prozessors verschiedenen Bezugnahme-Befehls im
Datenübertragungs-Pufferspeicher vorhanden ist, wird
zunächst die Kopie der im Datenübertragungs-Pufferspei
cher vorhandenen Daten zum Pufferspeicher übertragen und
dort gespeichert, anschließend wird die Übertragung der
verbleibenden Daten vom gemeinsam genutzten Speicher
fortgesetzt.
Wie oben beschrieben, ermöglicht die Anordnung des Daten
übertragungs-Pufferspeichers im Computersystem mit einer
Mehrzahl von Prozessoren einschließlich eines Vektorpro
zessors, in dem kein physischer Zwischenpuf
ferspeicher angeordnet werden kann, eine Datenübertragung
zwischen den Prozessoren mit hoher Geschwindigkeit.
Die Erfindung wird im folgenden anhand bevorzugter Aus
führungsformen mit Bezug auf die Zeichnungen näher erläu
tert; es zeigen:
Fig. 1 ein Blockschaltbild des Aufbaus eines Computersy
stems gemäß einer ersten Ausführungsform der vor
liegenden Erfindung;
Fig. 2 ein Blockschaltbild des Aufbaus des wesentlichen
Teils der Befehlsverarbeitung eines Skalarprozes
sors;
Fig. 3 eine schematische Darstellung einer Ausführungs
form eines Befehlsformats eines LDPS-Befehls und
eines SDPS-Befehls;
Fig. 4 ein Blockschaltbild des Aufbaus eines Computersy
stems gemäß einer zweiten Ausführungsform der
vorliegenden Erfindung; und
Fig. 5 ein Blockschaltbild des Aufbaus eines Computersy
stems gemäß einer dritten Ausführungsform der
vorliegenden Erfindung.
In Fig. 1 ist ein Blockschaltbild des Aufbaus eines Com
putersystems gemäß einer ersten Ausführungsform der vor
liegenden Erfindung gezeigt. Die Bezugszeichen 1 und 2
bezeichnen Skalarprozessoren (SP0 und SP1), mit denen
eine skalare Operation einer gewöhnlichen Verarbeitung
ausgeführt wird; das Bezugszeichen 3 bezeichnet eine
Speichersteuerung (SS); das Bezugszeichen 4 bezeichnet
einen Hauptspeicher (HS), der von den Skalarprozessoren
SP0 und SP1 gemeinsam genutzt wird. Der Skalarprozessor 1
(SP0) und der Skalarprozessor 2 (SP1) umfassen jeweils
einen Pufferspeicher 11b bzw. 12b (PS0 und PS1) zum Spei
chern einer Kopie der Daten im Hauptspeicher 4 und eine
erste Verwaltungstabelle (Pufferadressenfelder PAF0 und
PAF1) 11a bzw. 12a zum Verwalten eines Pufferspeichers,
in den die HS-Adresse eines Blocks, der eine im Puffer
speicher PS0 bzw. PS1 gespeicherte Kopie des Hauptspei
chers HS darstellt, eingetragen wird.
Die Speichersteuerung (SS) 3 ist mit einer zweiten Ver
waltungstabelle (Frontadressenfelder FAF0 und FAF1) 13a
bzw. 13b versehen, mit denen der Pufferspeicher verwaltet
wird, um eine Kopie einer Eintragungsadresse der den Puf
ferspeichern PS0 und PS1 entsprechenden Pufferadressen
felder PAF0 bzw. PAF1 in jeden der Prozessoren einzutra
gen. Diese zweiten Verwaltungstabellen FAF0 und FAF1
stellen jeweils eine Verwaltungstabelle dar, mit denen
eine Speicheradresse geprüft wird, auf die durch andere
Prozessoren Bezug genommen wird; sie ist so angeordnet,
daß in jedem der Prozessoren mit hoher Geschwindigkeit
eine Identitätssteuerung zwischen dem Hauptspeicher HS
und dem Pufferspeicher ausgeführt werden kann. Die Spei
chersteuerung (SS) 3 umfaßt ferner einen Datenübertra
gungs-Pufferspeicher (DPS) 15, in dem eine Kopie eines
Teils der Daten des Hauptspeichers nur für einen Operan
den eines Sonderbefehls gespeichert wird, und eine
dritte Verwaltungstabelle (Datenübertragungs-Adressenfeld
DAF), mit der eine Hauptspeicheradresse einer Datenein
tragungseinheit (Operandendaten), die eine Kopie eines
Teils der im Datenübertragungs-Pufferspeicher (DPS) 15
gespeicherten Hauptspeicherdaten ist, eingetragen wird.
In dem Computersystem, in dem die Mehrzahl der Skalarpro
zessoren SP den Hauptspeicher HS gemeinsam nutzen, können
die mehreren Skalarprozessoren SP asynchron arbeiten,
wenn eine parallele Verarbeitung des hierfür erforderli
chen Hauptspeicherzugriffs implementiert wird. Wenn daher
die Mehrzahl der Skalarprozessoren SP auf Daten in einem
gemeinsamen Bereich des Hauptspeichers HS Bezug nehmen,
wird während einer Reihe von Operationen, des Lesens von
Daten, des Neuschreibens der Daten lediglich bei Herstel
lung einer bestimmten Bedingung auf der Grundlage eines
Wertes der Daten und des Neuspeicherns der Daten im
Hauptspeicher HS von keinem der anderen Prozessoren eine
Anforderung angenommen. Die Daten sollten nach dem Neu
einschreiben durch den anderen Skalarprozessor richtig
ausgelesen werden, wenn Daten vom Hauptspeicher HS gele
sen werden, um demselben Skalarprozessor SP die Verwen
dung der Daten zu ermöglichen.
Um eine solche Reihe von Verarbeitungen auszuführen,
schickt jeder der Skalarprozessoren SP eine Leseanforde
rung zum Lesen der Daten an die Speichersteuerung SS und
nicht an die entsprechenden Pufferspeicher PS, um der
Speichersteuerung die Priorität für die Anforderungen für
ein-derartige Reihe von Operationen vor allen Skalarpro
zessoren SP zu geben und um nur eine einzige Anforderung
aus ihnen auszuwählen. Dann werden die Daten auf der
Grundlage dieser einzelnen Anforderung von der Speicher
steuerung SS gelesen, überschrieben und gespeichert. Die
Anforderung vom anderen Skalarprozessor wird während ei
ner solchen Reihe von Verarbeitungen gesperrt. Der Verar
beitungsmechanismus (einschließlich des Falls, in dem
eine Anforderung gesperrt wird, die sich auf einen Be
reich bezieht, die Gegenstand der Reihe von Operationen
ist, oder in dem keine der Anforderungen gesperrt ist)
wird "Verriegelungsmechanismus" genannt, wobei ein den
Verriegelungsmechanismus verwendender Befehl beispiels
weise einen "Test and Set"-Befehl für einen Computer der
IBM 370-Serie, einen "Compare and Swap"-Befehl
(Vergleichs- und Auslagerungsbefehl) und einen "Compare
Double and Swap"-Befehl (Doppelvergleichs- und Auslage
rungsbefehl) für einen Computer der IBM 370-Serie ent
hält. Es wird beispielsweise der Fall betrachtet, in dem
ein Flag eines bestimmten Bereichs gesetzt wird, in dem
der vom Skalarprozessor SP0 und vom Skalarprozessor SP1
gemeinsam genutzte Hauptspeicher HS durch diese beiden
Skalarprozessoren SP0 und SP1 auf der Grundlage des "Test
and Set"-Befehls (der im folgenden als "TS-Befehl" be
zeichnet wird) aktualisiert wird. In dieser Verarbeitung
werden die Daten im Hauptspeicher, die durch den TS-Be
fehl als Operanden spezifiziert werden, im Datenübertra
gungs-Pufferspeicher DPS und nicht im Pufferspeicher PS
als Daten, die Gegenstand eines Speichervorgangs im Da
tenübertragungs-Pufferspeicher DPS sind, gespeichert.
Zunächst wird aufgrund einer Anforderung durch den TS-Be
fehl vom Skalarprozessor SP0 die dritte Verwaltungsta
belle DAF 14 aufgesucht, dann wird eine Kopie der Daten
vom Hauptspeicher HS 4 in der Speichersteuerung SS 3
befindlichen Datenübertragungs-Pufferspeicher DPS 15 ge
speichert, falls die angeforderten Daten nicht im Daten
übertragungs-Pufferspeicher DPS 15 in der Speichersteue
rung SS 3 vorhanden sind. In diesem Fall stellen die zu
speichernden Daten einen Operanden des TS-Befehls dar, so
daß sie nicht gespeichert und in den Pufferspeicher PS
des Skalarprozessors SP0 nicht eingetragen werden. Da
durch ist eine nachfolgende Bezugnahme vom Datenübertra
gungs-Pufferspeicher DPS 15 möglich. Wenn andererseits
der Skalarprozessor SP1 auf die Daten (Flag) des gleichen
Bereichs Bezug nimmt, wird der TS-Befehl ebenfalls ver
wendet. Da jedoch die Daten bereits im Datenübertragungs-Pufferspeicher
DPS 15 gespeichert worden sind, können sie
für die Übertragung aus dem Datenübertragungs-Pufferspei
cher DPS 15 geholt werden. Der Operand des TS-Befehls
wird in diesem Fall nicht aus dem Pufferspeicher PS0 im
Skalarprozessor SP0 geholt, so daß keine Verarbeitung wie
etwa eine Invalidierung notwendig ist, selbst wenn der
Skalarprozessor SP1 die Daten überschreiben würde.
In Fig. 2 ist ein Blockschaltbild des Aufbaus eines we
sentlichen Teils der Befehlsverarbeitung des Skalarpro
zessors gezeigt. Dieser Teil umfaßt den Skalarprozessor
SP0 1, den Skalarprozessor SP1 2, die Speichersteuerung
SS 3, den Hauptspeicher HS 4, ein Befehlsregister 22,
einen Dekodierer 23 eines Operationskodes, einen Adres
senrechner 24, allgemeine Register 25 und eine Puffer
speicher-Steuerung 26.
Nun wird eine Übersicht über die Befehlsverarbeitung des
Skalarprozessors beschrieben. Der in das Befehlsregister
22 geholte Befehl wird im Dekodierer 23 dekodiert, an
schließend wird eine Verarbeitungsanforderung über eine
Dekodierer-Ausgangsleitung 23a an die Pufferspeicher-Steuerung
26 ausgegeben, wenn ein Befehl einen Zugriff
auf den Hauptspeicher HS erfordert. In diesem Fall wird
über eine Adressenausgangsleitung 24a die Objektadresse
des Hauptspeichers HS spezifiziert. Ferner spezifiziert
der oben genannte TS-Befehl über die Dekodierer-Ausgangs
leitung 23b einen Synchronisationsbefehl. Wenn die Deko
dierer-Ausgangsleitung 23b auf hohen Pegel gesetzt wird,
wird ein Holvorgang der im Hauptspeicher HS vorliegenden
Daten nicht vom Pufferspeicher PS0, sondern von der Puf
ferspeicher-Steuerung 26 direkt erkannt. Daher greift die
Verarbeitung des TS-Befehls auf die Speichersteuerung SS
3 über eine Anforderungsleitung 26a und über eine Adres
senleitung 26c zu, indem über eine Signalleitung 26b die
Feststellung, daß der Befehl der TS-Befehl ist, ermög
licht wird. Dann kann die Speichersteuerung SS 3 die Da
ten vom Datenübertragungs-Pufferspeicher DPS lesen, wenn
die Signalleitung 26b gültig ist (d. h. auf hohem Pegel
liegt). Es wird darauf hingewiesen, daß die Befehlsverar
beitungseinheit des Skalarprozessors SP1 im wesentlichen
den gleichen Aufbau wie der Skalarprozessor SP0 besitzt,
ferner sind eine Anforderungsleitung 27a, eine Signallei
tung 27b und eine Adressenleitung 27c zwischen der Puf
ferspeichersteuerung 27 und der Speichersteuerung SS 3
vorgesehen und mit diesen verbunden.
Wenn die Datenaktualisierungsverarbeitung zwischen dem
Skalarprozessor SP0 und dem Skalarprozessor SP1 beendet
ist und anschließend vom Programm nur ein Lesevorgang
ausgeführt wird, kann die Ausgabe einer Zugriffsanforde
rung mittels eines gewöhnlichen Bezugnahmebefehls (der
vom TS-Befehl verschieden ist) eine Kopie des Pufferspei
chers PS vom Datenübertragungs-Pufferspeicher DPS
im Skalarprozessor SP, der die Anforderung ausgibt, spei
chern. Wenn in diesem Fall die Eintragungseinheit des Da
tenübertragungs-Pufferspeichers DPS kleiner als der Puf
ferspeicher PS ist, werden die Daten vom Hauptspeicher HS
zum Pufferspeicher PS übertragen, nachdem die Übertragung
der Kopie vom Datenübertragungs-Pufferspeicher DPS zum
Pufferspeicher PS abgeschlossen worden ist.
Wenn ferner vom Skalarprozessor SP ein gewöhnlicher
Hauptspeicher-Bezugnahmebefehl (der vom TS-Befehl ver
schieden ist) ausgegeben wird, wird eine Kopie der Daten
im Hauptspeicher HS vom Hauptspeicher HS in den Puffer
speicher PS desjenigen Skalarprozessors SP übertragen,
der die Anforderung ausgibt, falls keine Kopie der an
geforderten Daten im Pufferspeicher PS des entsprechenden
Skalarprozessors SP gespeichert sind. In diesem Fall wird
die Kopie der Daten nicht im Datenübertragungs-Puffer
speicher DPS gespeichert, weil die Anforderung keine Be
zugnahmeanforderung auf der Basis des TS-Befehls ist.
Obwohl die Operandendaten so verarbeitet werden, daß sie
durch den TS-Befehl im Datenübertragungs-Pufferspeicher
DPS gespeichert werden, kann, wie oben beschrieben worden
ist, der Sonderbefehl für die Ausführung dieser Ver
arbeitung ferner den "Compare and Swap"-Befehl und den
"Compare Double and Swap"-Befehl sowie den TS-Befehl ent
halten, wobei der Operand auf im wesentlichen gleiche
Weise wie in der oben erwähnten Verarbeitung verarbeitet
werden kann.
Die oben erwähnte Verarbeitungsoperation ist eine Opera
tion, mit der auf den Hauptspeicher HS mit hoher Ge
schwindigkeit zugegriffen wird, indem die Dauer des Ope
randendatenzugriffs auf den Datenübertragungs-Pufferspei
cher gleich der Dauer der Befehlsverarbeitung durch den
Verriegelungsmechanismus gemacht wird. Es kann darauf
hingewiesen werden, daß ein neuer Befehl für einen Zu
griff insbesondere auf den Datenübertragungs-Pufferspei
cher DPS getrennt verfügt werden kann.
Wenn ein LDPS-Befehl zum Laden unter Verwendung des Da
tenübertragungs-Pufferspeichers DPS als Zugriffsobjekt
oder ein SDPS-Befehl zum Speichern unter Verwendung des
Datenübertragungs-Pufferspeichers DPS als Zugriffsobjekt
ausgegeben wird, wird eine Kopie der Daten vom Hauptspei
cher HS übertragen und im Datenübertragungs-Pufferspei
cher DPS gespeichert, falls im Datenübertragungs-Puffer
speicher DPS kein Objekt-Operand vorhanden ist. Wenn ins
besondere die Kopie eines die Daten enthaltenden Blocks
im Hauptspeicher HS noch nicht im Datenübertragungs-Puf
ferspeicher DPS gespeichert ist, wenn die Daten sowohl im
Hauptspeicher HS als auch im Datenübertragungs-Puffer
speicher DPS gespeichert werden, wird die Kopie des
Blocks des Hauptspeichers HS im Datenübertragungs-Puffer
speicher DPS gespeichert. Im Gegensatz zur Ausgabe eines
gewöhnlichen Ladebefehls oder Speicherbefehls durch ir
gendeinen der Skalarprozessoren besitzt die Verwendung
des LDPS-Befehls bzw. des SDPS-Befehls aufgrund der Be
zugnahme auf die Daten für deren Übertragung zwischen den
Prozessoren den Vorteil, daß keine Daten in den jeweili
gen Pufferspeicher der Prozessoren geholt werden. Wenn
die Daten nicht in jeden der Pufferspeicher geholt wer
den, ist, wie oben beschrieben worden ist, eine Invali
dierung der Inhalte der Pufferspeicher in den anderen
Prozessoren selbst dann nicht erforderlich, wenn die In
halte aufgrund der Ausführung einer Reihe von Verarbei
tungen in Verbindung mit der Mehrzahl der Prozessoren
überschrieben worden sind.
Der Befehl zum Speichern von Daten sowohl im Pufferspei
cher PS eines Prozessors als auch im Datenübertragungs-Pufferspeicher
DPS stellt wie der LDPS-Befehl eine Va
riable dar, die synchron zu den anderen Prozessoren ist.
Dieser Speicherbefehl ist gültig, wenn er zum Zeitpunkt
des Beendens einer Reihe von Verarbeitungen für die Da
tenübertragung zum anderen Prozessor verwendet wird, weil
dieser Befehl selbst dann keine Invalidierungsvearbeitung
bewirkt, wenn Daten in den Pufferspeicher desselben Pro
zessors geholt werden, solange die Daten im anderen Pro
zessor nicht gelöscht werden.
Fig. 3 ist eine schematische Darstellung eines Beispiels
des Befehlsformats des LDPS-Befehls und des SDPS-Befehls.
Wie in Fig. 3 gezeigt, ist das Befehlsformat von einem
Typ, in dem eine Operandenadresse durch Hinzufügung des
in einem allgemeinen Register gespeicherten Inhalts, der
mit X2 und B2 bezeichnet ist, zu dem in D2 vorhandenen
Inhalt gegegeben ist, wobei der Inhalt des Hauptspeichers
HS, der durch die Operandenadresse bezeichnet wird, im
allgemeinen Register gespeichert wird, wie durch R1 ange
geben. In der Computerarchitektur dieser Ausführungsform
wird beispielsweise dann, wenn der Inhalt von R1 auf "0"
gesetzt wird, der Inhalt des Hauptspeichers HS nicht im
allgemeinen Register der 0-ten Adresse gespeichert, statt
dessen wird eine Kopie des Inhalts des Hauptspeichers HS
im Datenübertragungs-Pufferspeicher DPS gespeichert, wenn
die Kopie des Inhalts des Hauptspeichers HS, wie sie
durch die Operandenadresse, die durch X2, B2, und D2 be
rechnet wird, dargestellt ist, nicht im Datenübertra
gungs-Pufferspeicher DPS gespeichert ist. Dadurch kann
die Kopie der Daten vom Hauptspeicher im voraus im Daten
übertragungs-Pufferspeicher DPS gespeichert werden. Die
oben beschriebene Ausführungsform ist auf ein Computersy
stem gerichtet, bei dem ein Datenübertragungs-Pufferspei
cher zwischen dem Hauptspeicher und dem Pufferspeicher
eines Skalarprozessors angeordnet ist. Es wird darauf
hingewiesen, daß der Datenübertragungs-Pufferspeicher,
der nur die Speicherung eines Operanden des bestimmten
Befehls erlaubt, auch in einem Computersystem, das Ska
larprozessoren ohne darin vorgesehene Pufferspeicher auf
weist, ähnlich nützliche Funktionen wie oben beschrieben
erfüllen kann.
Nun werden weitere Ausführungsformen des erfindungsgemä
ßen Computersystems beschrieben. In Fig. 4 ist ein Block
schaltbild des Aufbaus eines Computersystems gemäß einer
zweiten Ausführungsform der vorliegenden Erfindung ge
zeigt, in dem wenigstens einer der Mehrzahl der Prozesso
ren ein Vektorprozessor ist, denn die Erfindung erfaßt
auch ein Computersystem, bei dem eine Vektorverarbeitung
hoher Effizienz implementiert werden kann.
Wie in Fig. 4 gezeigt, umfaßt dieses Computersystem einen
Vektorprozessor (VP) 40, ein Vektorregister (VR) 41 und
eine Speichersteuerung SS 42. Das Computersystem gemäß
der zweiten Ausführungsform ist von einem im allgemeinen
mit "Supercomputer" bezeichneten Typ, der einen mit dem
Vektorregister VR 41 verbundenen Datenweg 43 besitzt, der
mit extrem hohem Durchsatz betrieben werden kann. Daher
kann ein Zwischenpufferspeicher, der die Zeit eines Hoch
geschwindigkeitsdurchlaufs des Hauptspeichers HS kürzer
erscheinen läßt, im allgemeinen nicht verwendet werden,
weil über den Datenweg 43 eine große Anzahl von Daten mit
hoher Geschwindigkeit geschickt wird. Da der Datenweg 43
zum Vektorregister VR 41 selbst dann einen hohen Durch
satz besitzt, wenn ein gewöhnlicher Zwischenpufferspei
cher darin angeordnet würde, wird der Inhalt des Zwi
schenpufferspeichers sofort durch andere Inhalte ersetzt,
wodurch unter Umständen ein häufiger Datentransport vom
Hauptspeicher HS bewirkt wird, um den Inhalt der Daten im
Zwischenpufferspeicher zu halten. Im Ergebnis erscheint
daher die Durchlaufzeit für einen Zugriff auf Daten im
Hauptspeicher HS kürzer, so daß das Computersystem die
Zeit zum Holen der Operandendaten eines derartigen
Sonderbefehls wie etwa des einen Verriegelungsmecha
nismus verwendenden TS-Befehls, der auf die Daten im
Hauptspeicher zugreift, abkürzen kann, indem der Daten
übertragungs-Pufferspeicher DPS 15 vorgesehen wird, der
die Operandendaten des Sonderbefehls al
lein speichern kann.
Auch in der zweiten Ausführungsform ist ein solcher Sonderbefehl,
wie etwa der LDPS-Befehl zum Laden unter
Verwendung des Datenübertragungs-Pufferspeichers DPS als
Zugriffsobjekt oder der SDPS-Befehl zum Speichern unter
Verwendung des Datenübertragungs-Pufferspeichers DPS als
Zugriffsobjekt gültig, wie dies in der ersten Ausfüh
rungsform der Fall war. Unter Verwendung des Datenüber
tragungs-Pufferspeichers DPS kann die Verarbeitung ohne
Ausführung irgendwelcher nutzloser Invalidierungsprozesse
und sogar ohne Holvorgang von Daten aus dem Pufferspei
cher PS implementiert werden.
Die vorangehende Beschreibung ist auf eine Ausführungs
form eines erfindungsgemäßen Computersystems gerichtet,
in der der Datenübertragungs-Pufferspeicher zwischen den
Pufferspeicher des Skalarprozessors und den Hauptspeicher
geschaltet ist. Es wird jedoch darauf hingewiesen, daß
der Datenübertragungs-Pufferspeicher, der die Operanden
daten eines Sonderbefehls allein speichern kann,
ähnlich nützliche Funktionen wie oben beschrieben auch in
einem Computersystem ausführen kann, das Skalarprozesso
ren ohne Pufferspeicher enthält.
In Fig. 5 ist ein Blockschaltbild des Aufbaus eines Com
putersystems gemäß einer dritten Ausführungsform der vor
liegenden Erfindung gezeigt. Der Aufbau dieses Computer
systems ist so erweitert, daß es einen Erweiterungsspei
cher enthält, der für den Hauptspeicher eine größere
Speicherkapazität bereitstellt. Jeder der Mehrzahl der
Prozessoren, die die strukturbildenden Elemente des Com
putersystems darstellen, ist so angeordnet, daß er einem
jeweiligen Subsystem zugehört, das einem eng gekoppelten
Multiprozessorsystem entspricht. In diesem Aufbau des Sy
stems ist der Datenübertragungs-Pufferspeicher für den
Erweiterungsspeicher, der als gemeinsam genutzter Spei
cher dient, vorgesehen. Die Ausführung der Datenübertra
gung zwischen den Prozessoren (Subsystemen) ist daher im
wesentlichen durch den Datenaustausch mit einer Erweite
rungsspeichersteuerung gegeben.
Nun wird das Computersystem gemäß der dritten Ausfüh
rungsform der vorliegenden Erfindung mit Bezug auf Fig.
5 beschrieben. Wie in Fig. 5 gezeigt, umfaßt das Com
putersystem ein einen ersten eng gekoppelten Multiprozes
sor bildendes Subsystem 51, ein einen zweiten eng gekop
pelten Multiprozessor bildendes Subsystem 52, eine Erwei
terungsspeichersteuerung (ESS) 53 und einen Erweiterungs
speicher (ES) 54. Das erste Subsystem 51 umfaßt eine
Mehrzahl von eng gekoppelten Skalarprozessoren (SP0 und
SP1) 51a und 51b, eine Speichersteuerung (SS0) 51c und
einen Hauptspeicher (HS0) 51d, während das zweite Subsy
stem 52 analog eine Mehrzahl von Skalarprozessoren (SP2
und SP3) 52a und 52b, eine Speichersteuerung (SS1) 52c
und einen Hauptspeicher (HS1) 52d umfaßt. Die Erweite
rungsspeichersteuerung 53 umfaßt einen Erweiterungsspei
cher-Datenübertragungs-Pufferspeicher (EDPS) 62 zum Spei
chern einer Kopie eines Teils des Inhalts der Daten des
Erweiterungsspeichers, der Operandendaten eines bestimm
ten Erweiterungsspeicherbefehls speichern kann, und eine
Erweiterungsspeicher-Verwaltungstabelle (EDAF 61) zur
Verwaltung einer Adresse von Daten, die im Erweiterungs
speicher-Datenübertragungs-Pufferspeicher 62 eingetragen
sind. In diesem Computersystem wird der Erweiterungsspei
cher (ES) 54 von den zwei Subsystemen 51 und 52 der eng
gekoppelten Multiprozessoren über die Erweiterungsspei
chersteuerung 53 gemeinsam genutzt.
Das Hauptmerkmal des Computersystems gemäß der dritten
Ausführungsform der vorliegenden Erfindung besteht darin,
daß eine Dateneinheit, die über einen den Hauptspeicher
HS eines Subsystems mit dem Erweiterungsspeicher ES ver
bindenden Datenweg übertragen werden soll, extrem groß
sein kann. Selbst wenn daher ein Pufferspeicher zum Spei
chern von Operandendaten eines gewöhlichen Hauptspei
cher/Erweiterungsspeicher-Übertragungsbefehls zwischen
den Hauptspeicher HS und den Erweiterungsspeicher ES ge
schaltet wäre, würde der Inhalt des Pufferspeichers durch
eine ständige Ausführung der Datenübertragung zwischen
dem Hauptspeicher HS und dem Erweiterungsspeicher ES un
unterbrochen ersetzt, wenn eine die Pufferkapazität über
steigende Datenmenge übertragen wird, weshalb die übliche
Wirkung eines Pufferspeichers nicht erzielt wird. Ande
rerseits wird jedoch bei der Ausführung der Verarbeitung
eines Aktualisierungbefehls, der durch die Verriegelung
einer Verbindung zwischen jedem der Subsysteme der eng
gekoppelten Multiprozessoren, die über den Erweiterungs
speicher ES miteinander verbunden sind, Daten aktuali
siert, etwa ein "Compare Double and Swap Extended
Storage"-Befehl (Doppelvergleichs- und Erweiterungsspei
cherausladungsbefehl, DVESA-Befehl), ein den Hauptspei
cher HS mit dem Erweiterungsspeicher ES verbindender Weg
verwendet. In diesem Fall wird der Erweiterungsspeicher-
Datenübertragungs-Pufferspeicher (EDPS) 62 als Puffer
speicher zum ausschließlichen Speichern von Operandenda
ten eines derartigen Befehls, der auf die oben beschrie
bene Weise gesperrt wird, verwendet, wodurch die für
einen Datenholvorgang großen Ausmaßes erforderliche
Durchlaufzeit abgekürzt wird.
In der beschriebenen Ausführungsform soll ein Befehl wie
etwa ein Bezugnahmebefehl für die Bezugnahme auf im
Hauptspeicher selbst gespeicherte Daten, ein einen Ver
riegelungsmechanismus verwendender Befehl und ein Befehl,
dessen Objekt des Zugriffs auf den Datenübertragungs-Puf
ferspeicher DPS für einen bestimmten Zweck getrennt vor
liegt, die Operandendaten nur im Datenübertragungs-Puf
ferspeicher DPS und nicht im Pufferspeicher PS eines je
den Prozessors speichern. Solange daher von dem einge
schränkten Sonderbefehl, wie er oben beschrieben
worden ist, auf das Programm Bezug genommen wird, kann
auf den in der Nähe angeordneten Datenübertragungs-Puf
ferspeicher DPS zugegriffen werden, ohne daß auf den
Hauptspeicher HS zugegriffen werden muß, wodurch die Ge
schwindigkeit des Datenzugriffs erhöht wird. Ferner wird
kein Holvorgang von Daten in den Pufferspeicher ausge
führt, so daß keine Invalidierungsverarbeitung erforder
lich ist, was die Verarbeitungsleistung und die Effizienz
des Computersystems verbessert.
Es wird darauf hingewiesen, daß der Datenübertragungs-Pufferspeicher
DPS eine geringe physische Größe besit
zen kann und die Kosten nicht erhöht, weil das zu spei
chernde Objekt auf Operandendaten eines Sonderbefehls
beschränkt ist.
Der unmittelbar vorher beschriebene Befehlsverarbeitungs
mechanismus, der einen in der Speichersteuerung angeord
neten Datenübertragungs-Pufferspeicher DPS verwendet,
kann insbesondere in einem Computersystem geeignet ver
wendet werden, das, wie etwa ein Supercomputer für die
Ausführung einer Vektorverarbeitung, eine Mehrzahl von
Prozessoren, die Vektor- und Skalarprozessoren umfassen,
enthält und dennoch aufgrund des extrem hohen Durchsatzes
des Datenweges zwischen dem Vektorprozessor VP und dem
Hauptspeicher HS nicht mit einem Zwischenpufferspeicher
versehen ist. Das heißt, daß dieser Mechanismus die Hol
zeit des Befehlsoperanden wie etwa eines Steuerbefehls
für die Vektorverarbeitung, der als Speicherobjekt im Da
tenübertragungs-Pufferspeicher DPS dient, abkürzt, indem
der Datenübertragungs-Pufferspeicher für das einge
schränkte Speicherobjekt verwendet wird.
In einem solchen System ist eine Datenübertragungseinheit
beim Empfang oder bei der Ausgabe von Daten zwischen den
Subsystemen der eng gekoppelten Multiprozessoren über den
Erweiterungsspeicher so groß, daß kein Pufferspeicher,
jedoch der Erweiterungsspeicher-Datenübertragungs-Puffer
speicher EDPS mit eingeschränktem Speicherobjekt angeord
net werden kann, wodurch die Holzeit für den Erweite
rungsspeicher-Befehlsoperanden, der als Speicherobjekt
für den Erweiterungsspeicher-Datenübertragungs-Puffer
speicher EDPS dient, abgekürzt werden kann.
Die obige Beschreibung ist für besondere Ausführungsfor
men eines Computersystems gegeben worden.
Es wird jedoch darauf hingewiesen, daß die vorliegende
Erfindung nicht auf diese Ausführungsformen, wie sie oben
beschrieben worden sind, eingeschränkt sein soll, viel
mehr sollen verschiedene Veränderungen und Abwandlungen
dieser Ausführungsformen vom Umfang der Erfindung abge
deckt sein.
Durch die vorliegende Erfindung wird ein Computersystem
mit einer Mehrzahl von Prozessoren einschließlich eines
Vektorprozessors geschaffen, bei dem ein Pufferspeicher
verwendet werden kann, durch den die Probleme, die durch
ein von der Mehrzahl der Prozessoren gemeinsam genutztes
Register entstehen, gelöst werden kann. Dadurch kann eine
Vektorverarbeitung mit hoher Effizienz implementiert wer
den. Das Computersystem mit der Mehrzahl der Prozessoren
einschließlich des Vektorprozessors und ohne physisch
vorhandenen Zwischenpufferspeicher kann eine Datenüber
tragung zwischen den Prozessoren mit hoher Geschwindig
keit ausführen, indem die Speichersteuerung mit einem Da
tenübertragungs-Pufferspeicher ausgerüstet wird, dessen
Speicherobjekt auf die zwischen die Prozessoren zu über
tragenden Daten beschränkt ist.
Claims (4)
1. Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers (15; 62) in
einem Computersystem, das
- - mehrere Prozessoren (1, 2; 40; 51a, 51b, 52a, 52b),
- - einen von diesen Prozessoren (1, 2; 40; 51a, 51b, 52a, 52b) gemeinsam genutzten Speicher (4; 54) und
- - eine Speichersteuerung (3; 42; 53) mit einem zwischen den Prozessoren
(1, 2; 40; 51a, 51b, 52a, 52b) und dem von diesen gemeinsam genutzten
Speicher (4; 54) angeordneten Datenübertragungs-Pufferspeicher (15; 62)
aufweist,
gekennzeichnet durch folgende Schritte: - - Feststellung, ob ein augenblicklicher Befehl ein Sonderbefehl ist, und
Markierung dieses Befehls durch ein Signal auf einer Pufferspeicher-Anforderungsleitung
(26a, 27a) und
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertragungs-Pufferspeicher
(15; 62) zu einem anfordernden Prozessor (1, 2; 40;
51a, 51b, 52a, 52b), wenn sich der Operand im Datenübertragungs-Pufferspeicher
(15; 62) befindet,
und
Übertragung des Operanden des Sonderbefehls vom gemeinsam genutzten Speicher (4; 54) zum Datenübertragungs-Pufferspeicher (15; 62) mit anschließender Übertragung des Operanden des Sonderbefehls vom Daten-Übertragungs-Pufferspeicher (15; 62) zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand ursprünglich nicht im Datenübertragungs-Pufferspeicher (15; 62) gespeichert war, und - b) im Fall, daß der augenblickliche Befehl kein Sonderbefehl ist,
Übertragung des Operanden des Befehls vom Datenübertragungs-Puffer
speicher (15; 62) zum anfordernden Prozessor (1, 2; 40; 51a, 51b,
52a, 52b), wenn der Operand im Datenübertragungs-Pufferspeicher (15;
62) gespeichert ist,
und
Übertragung des Operanden des Befehls vom gemeinsam genutzten Speicher (4; 54) unter Umgehung des Datenübertragungs-Pufferspeichers (15; 62) unmittelbar zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand nicht im Datenübertragungs-Puffer speicher (15; 62) gespeichert ist.
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertragungs-Pufferspeicher
(15; 62) zu einem anfordernden Prozessor (1, 2; 40;
51a, 51b, 52a, 52b), wenn sich der Operand im Datenübertragungs-Pufferspeicher
(15; 62) befindet,
und
2. Verfahren nach Anspruch 1 für ein Computersystem, zu dessen Prozessoren
außer Skalarprozessoren (1, 2) auch ein Vektorprozessor (40) gehört,
gekennzeichnet durch folgende Schritte:
- - Senden der Operandendaten eines vom Vektorprozessor (40) auszuführenden Vektorbefehls vom gemeinsam genutzten Speicher (4) unmittelbar zum Vek torprozessor (40) über einen Datenweg (43) mit hoher Übertragungsge schwindigkeit,
- - Kopieren des Teils der Daten des gemeinsam genutzten Speichers (4), der die Operandendaten des Sonderbefehls beinhaltet, und
- - Speichern der erhaltenen Kopie im Datenübertragungs-Pufferspeicher (15).
3. Computersystem mit
- - mehreren Prozessoren (1, 2; 40),
- - mehreren Speichern (11b, 12b), die einer ersten Speicherhierarchieebene angehören und jeweils einem Prozessor (1, 2; 40) zur Verfügung stehen, und
- - einem Speicher (4), der einer zweiten Speicherhierarchieebene angehört
und von den Speichern (11b, 12b) der ersten Speicherhierarchieebene
gemeinsam genutzt wird,
gekennzeichnet
durch eine Speichersteuerung (3), die zwischen den Speichern (11b, 12b)
der ersten Speicherhierarchieebene und dem Speicher (4) der zweiten
Speicherhierarchieebene angeordnet ist und einen Datenübertragungs-Pufferspeicher
(15; 62) für eine Datenübertragung zwischen den
Speichern (11b, 12b) der ersten Speicherhierarchieebene zum Spei
chern einer Kopie des den Operanden eines Sonderbefehls enthaltenden
Teils der Daten des Speichers (4) der zweiten Speicherhierarchie
ebene aufweist,
und
durch die Ausführung folgender Schritte: - - Feststellung, ob ein augenblicklicher Befehl ein Sonderbefehl ist,
und Markierung dieses Befehls durch ein Signal auf einer Puffer
speicher-Anforderungsleitung (26a, 27a) und
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertra
gungs-Pufferspeicher (15; 62) zu einem anfordernden Prozessor
(1, 2; 40; 51a, 51b, 52a, 52b), wenn sich der Operand im Daten
übertragungs- Pufferspeicher (15; 62) befindet,
und
Übertragung des Operanden des Sonderbefehls vom gemeinsam genutzten Speicher (4; 54) zum Datenübertragungs-Pufferspeicher (15; 62) mit anschließender Übertragung des Operanden des Sonderbefehls vom Datenübertragungs-Pufferspeicher (15; 62) zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand ursprünglich nicht im Datenübertragungs-Pufferspeicher (15; 62) gespeichert war, und - b) im Fall, daß der augenblickliche Befehl kein Sonderbefehl ist,
Übertragung des Operanden des Befehls vom Datenübertragungs-Pufferspeicher
(15; 62) zum anfordernden Prozessor (1, 2; 40;
51a, 51b, 52a, 52b), wenn der Operand im Datenübertragungs-Pufferspeicher
(15; 62) gespeichert ist,
und
Übertragung des Operanden des Befehls vom gemeinsam genutzten Speicher (4; 54) unter Umgehung des Datenübertragungs-Puffer speichers (15; 62) unmittelbar zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand nicht im Daten übertragungs-Pufferspeicher (15; 62) gespeichert ist.
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertra
gungs-Pufferspeicher (15; 62) zu einem anfordernden Prozessor
(1, 2; 40; 51a, 51b, 52a, 52b), wenn sich der Operand im Daten
übertragungs- Pufferspeicher (15; 62) befindet,
und
4. Computersystem mit
- - mehreren Subsystemen (51, 52) mit mehreren zugeordneten Prozessoren (51a, 51b, 52a, 52b), die durch gemeinsam genutzte Speicher (51d, 52d) operativ fest miteinander verbunden sind, und
- - einem Erweiterungsspeicher (54), der von den Subsystemen (51, 52)
gemeinsam genutzt wird,
gekennzeichnet durch - - eine Erweiterungsspeichersteuerung (53) mit einem Erweiterungs-Daten
übertragungs-Pufferspeicher (62), der zwischen den von den Prozessoren
(51a, 51b, 52a, 52b) gemeinsam genutzten Speichern (51d, 52d) und dem
von den Subsystemen (51, 52) gemeinsam genutzten Erweiterungsspeicher
(54) zur Speicherung einer Kopie des den Operanden eines Sonderbefehls
enthaltenden Teils der Daten des Erweiterungsspeichers (54) angeordnet
ist,
und
durch die Ausführung folgender Schritte: - - Feststellung, ob ein augenblicklicher Befehl ein Sonderbefehl ist, und
Markierung dieses Befehls durch ein Signal auf einer Pufferspeicher-Anforderungsleitung
(26a, 27a) und
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertragungs-Pufferspeicher
(15; 62) zu einem anfordernden Prozessor (1, 2; 40;
51a, 51b, 52a, 52b), wenn sich der Operand im Datenübertragungs-Pufferspeicher
(15; 62) befindet,
und
Übertragung des Operanden des Sonderbefehls vom gemeinsam genutzten Speicher (4; 54) zum Datenübertragungs-Pufferspeicher (15; 62) mit anschließender Übertragung des Operanden des Sonderbefehls vom Daten übertragungs-Pufferspeicher (15; 62) zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand ursprünglich nicht im Datenübertragungs-Pufferspeicher (15; 62) gespeichert war, und - b) im Fall, daß der augenblickliche Befehl kein Sonderbefehl ist,
Übertragung des Operanden des Befehls vom Datenübertragungs-Puffer
speicher (15; 62) zum anfordernden Prozessor (1, 2; 40; 51a, 51b,
52a, 52b), wenn der Operand im Datenübertragungs-Pufferspeicher (15;
62) gespeichert ist,
und
Übertragung des Operanden des Befehls vom gemeinsam genutzten Spei cher (4; 54) unter Umgehung des Datenübertragungs-Pufferspeichers (15; 62) unmittelbar zum anfordernden Prozessor (1, 2; 40; 51a, 51b, 52a, 52b), wenn der Operand nicht im Datenübertragungs-Pufferspeicher (15; 62) gespeichert ist.
- a) im Fall, daß der augenblickliche Befehl ein Sonderbefehl ist,
Übertragung des Operanden des Sonderbefehls vom Datenübertragungs-Pufferspeicher
(15; 62) zu einem anfordernden Prozessor (1, 2; 40;
51a, 51b, 52a, 52b), wenn sich der Operand im Datenübertragungs-Pufferspeicher
(15; 62) befindet,
und
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023310A JP2825906B2 (ja) | 1990-02-01 | 1990-02-01 | 計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4103093A1 DE4103093A1 (de) | 1991-08-08 |
DE4103093C2 true DE4103093C2 (de) | 1998-05-28 |
Family
ID=12107019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4103093A Expired - Fee Related DE4103093C2 (de) | 1990-02-01 | 1991-02-01 | Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens |
Country Status (3)
Country | Link |
---|---|
US (1) | US5293602A (de) |
JP (1) | JP2825906B2 (de) |
DE (1) | DE4103093C2 (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
US5426754A (en) * | 1992-05-26 | 1995-06-20 | International Business Machines Corporation | Cross-interrogate method and means for combined scaler and vector processing system |
US5398331A (en) * | 1992-07-08 | 1995-03-14 | International Business Machines Corporation | Shared storage controller for dual copy shared data |
DE4238593A1 (de) * | 1992-11-16 | 1994-05-19 | Ibm | Mehrprozessor-Computersystem |
KR0122528B1 (ko) * | 1993-01-08 | 1997-11-20 | 윌리엄 티.엘리스 | 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템 |
JP3248992B2 (ja) * | 1993-07-13 | 2002-01-21 | 富士通株式会社 | マルチプロセッサ |
GB2284494B (en) * | 1993-11-26 | 1998-09-09 | Hitachi Ltd | Distributed shared memory management system |
JPH10507023A (ja) * | 1994-10-06 | 1998-07-07 | ヴァーク・インコーポレイテッド | 共用メモリシステム |
US5630045A (en) * | 1994-12-06 | 1997-05-13 | International Business Machines Corporation | Device and method for fault tolerant dual fetch and store |
US5829052A (en) * | 1994-12-28 | 1998-10-27 | Intel Corporation | Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system |
US5881264A (en) * | 1996-01-31 | 1999-03-09 | Kabushiki Kaisha Toshiba | Memory controller and memory control system |
US5867725A (en) * | 1996-03-21 | 1999-02-02 | International Business Machines Corporation | Concurrent multitasking in a uniprocessor |
KR100280285B1 (ko) | 1996-08-19 | 2001-02-01 | 윤종용 | 멀티미디어 신호에 적합한 멀티미디어 프로세서 |
US5809536A (en) * | 1996-12-09 | 1998-09-15 | Intel Corporation, Inc. | Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache |
US5848434A (en) * | 1996-12-09 | 1998-12-08 | Intel Corporation | Method and apparatus for caching state information within a directory-based coherency memory system |
US6748465B2 (en) * | 2001-09-28 | 2004-06-08 | Intel Corporation | Local bus polling support buffer |
WO2011161829A1 (ja) * | 2010-06-25 | 2011-12-29 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
DE3439302A1 (de) * | 1983-10-27 | 1985-05-09 | Hitachi, Ltd., Tokio/Tokyo | Speichersteuerungsvorrichtung |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56153782A (en) * | 1980-04-30 | 1981-11-27 | Fuji Photo Film Co Ltd | Photoconductive thin-film for television camera tube using photosensitizer layer containing amorphous silicon |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
-
1990
- 1990-02-01 JP JP2023310A patent/JP2825906B2/ja not_active Expired - Lifetime
-
1991
- 1991-01-28 US US07/647,513 patent/US5293602A/en not_active Expired - Fee Related
- 1991-02-01 DE DE4103093A patent/DE4103093C2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
DE3439302A1 (de) * | 1983-10-27 | 1985-05-09 | Hitachi, Ltd., Tokio/Tokyo | Speichersteuerungsvorrichtung |
Also Published As
Publication number | Publication date |
---|---|
US5293602A (en) | 1994-03-08 |
DE4103093A1 (de) | 1991-08-08 |
JP2825906B2 (ja) | 1998-11-18 |
JPH03228169A (ja) | 1991-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4103093C2 (de) | Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens | |
DE3803759C2 (de) | ||
DE3151745C2 (de) | ||
DE69915243T2 (de) | Speicherplattenanordnung-Steuerungsvorrichtung | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
DE4237417C2 (de) | Datenverarbeitungssystem | |
EP0600112A1 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff | |
DE3502147C2 (de) | ||
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE2718551C3 (de) | Adressenumsetzer | |
DE3919802A1 (de) | Speicherbaustein mit vektorprozessoren und einem skalarprozessor | |
DE3911721A1 (de) | Schaltung zur verzoegerten freigabe eines schreibvorganges in einen vorratsspeicher fuer ein zweifachbus-mikrocomputersystem | |
DE10103070B4 (de) | Verfahren und Prüfschaltung zum Ermitteln eines Gültigkeitsstatus für einen zeitlich zurückliegenden Loadbefehl | |
DE2617485B2 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
DE3832758A1 (de) | Computerisierte arbeitsstation | |
CH632349A5 (de) | Einrichtung zur mikrobefehlssteuerung. | |
DE69626282T2 (de) | Programmierbare vorrichtung und verfahren zum befehlsauffang | |
DE3931505C2 (de) | Speichersteuerung in einer Datenverarbeitungsanlage | |
DE4218622C2 (de) | Parallelcomputer mit Beschleunigungsfunktion | |
DE60216016T2 (de) | Mikroprozessor mit Aufrechterhaltung der Speicherübereinstimmung | |
DE2355814A1 (de) | Kanalzugriffseinrichtung fuer eine hierarchische speicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |