DE4307139A1 - Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System - Google Patents
Serialisierung von Bedienungsanforderungen in einem Multiprozessor-SystemInfo
- Publication number
- DE4307139A1 DE4307139A1 DE19934307139 DE4307139A DE4307139A1 DE 4307139 A1 DE4307139 A1 DE 4307139A1 DE 19934307139 DE19934307139 DE 19934307139 DE 4307139 A DE4307139 A DE 4307139A DE 4307139 A1 DE4307139 A1 DE 4307139A1
- Authority
- DE
- Germany
- Prior art keywords
- processor
- processors
- bus
- microinstruction
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/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/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
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)
- Multi Processors (AREA)
Description
Prozessoren von Multiprozessorsystemen enthalten
Komponenten z. B. Speicher, in die Daten von jedem
der Prozessoren eingelesen, oder aus denen Daten von
jedem der Prozessoren ausgelesen werden können. Der
Befehls- oder Instruktionssatz derartiger Multipro
zessoren enthält notwendigerweise auch solche Be
fehle, für deren Ausführung diese Komponenten für
die Dauer eines Befehls einem Prozessor fest zu
geordnet sind.
Hier gibt es etwa vier Gruppen von Befehlen, mit
denen
- 1. eine Änderung eines Schlüssels in einem Schlüsselspeicher (Speicher, in dem Schlüssel, beispielsweise für die Zugriffsberechtigung auf bestimmte Speicherbereiche gespeichert sind) bewirkt wird, oder
- 2. eine Eintragung in allen Adressenübersetzungs tabellen aller Prozessoren ungültig gemacht wird (IPTE-Befehl), oder
- 3. ein Lesen oder Schreiben einer externen Tages zeit-Einheit (Systemuhr), welches eine ungestörte (ununterbrochene) Folge von Befehlen erfordert, durchgeführt wird, oder
- 4. atomische Lese-/Schreibzugriffe auf den oder die Hauptspeicher oder Caches eines Multiprozessorsystems vorgenommen werden.
In allen in dem vorstehenden Beispiel genannten vier
Operationen ist es dringend erforderlich, daß der
Prozessor, der eine dieser oben genannten Opera
tionen ausführen möchte solange diese Tätigkeit
einstellt, bis alle anderen Prozessoren in ihrem
Befehlsablauf eine Stelle erreicht haben, an der sie
eine solche Tätigkeit schadlos erlauben können.
Diese Stelle ist oft der Beginn eines neuen Befehls
oder das Erreichen eines Unterbrechungsfensters in
unterbrechbaren Befehlen.
In den meisten Multiprozessorsystemen können von den
Prozessoren Befehle der o.g. Art gleichzeitig abge
setzt werden. Unter gleichzeitig soll auch ver
standen werden, wenn bei gerade ablaufendem Befehl
der eingangs genannten Art eines Prozessors noch ein
oder mehrere andere Prozessoren des Multiprozessor
systems solche Befehle ausführen wollen. Beispiels
weise dürfen Befehle der Gruppen 1 und 2 gleich
zeitig in mehreren Prozessoren ausgeführt werden.
So z. B. darf der Prozessor PU1 (Fig. 1) einen IPTE
Befehl ausführen, während in der Ausführungsphase in
dem Prozessor PU2 ebenfalls ein IPTE Befehl pro
zessiert wird. Dies führt zu dem Ergebnis, daß beide
Prozessoren sich gegenseitig eine (Speicher-)Seite
ungültig machen, was aber unschädlich ist, weil
beide Befehle keine virtuellen Speicherzugriffe
vornehmen.
Befehle der Gruppen 3 und 4, sowie deren Kombi
nationen mit Befehlen der Gruppen 1 und 2 dürfen
dagegen nicht gleichzeitig ausgeführt werden. Die
Folgen wären Verletzungen der Integrität der be
troffenen Daten, ferner Architekturverletzungen,
d. h. es würden Operationen ausgeführt, welche die
Regeln der zugrundeliegenden Architektur mißachten
und somit nicht erlaubte Ergebnisse produzieren, die
zu Mikrocodefehlern und Festfahrsituationen (dead
locks) des Mikrocodeablaufs im Prozessorsystem
führen. Diese wirken sich dann leider wie Hardware-
deadlocks aus. Es muß also beim Entwurf derartiger
Rechnersysteme dafür Sorge getragen werden, daß
solche Betriebssituationen vermieden werden.
So ist beispielsweise in der U.S. Patentschrift
5,016,167 beschrieben, wie bei einem Multipro
zessorsystem mit einem verschachtelten Speicher das
Festfahren verhindert wird, wenn mehrere Prozessoren
Zugriffsabsichten auf ein und denselben Teil des
Speichers äußern. Es wird hierzu ein Zähler ver
wendet, der die Anzahl aufeinander folgender Zu
griffsanforderungen eines Prozessors zählt, dessen
Anforderungen zurückgewiesen wurden. Wenn der
Zählerstand einen vorgegebenen Schwellenwert er
reicht hat, dann bewirkt ein Überlaufsignal des
Zählers eine Sperrung des Zugriffs aller übrigen
Prozessoren auf den betreffenden Teil des Speichers
solange, bis der bisher nicht erfolgreiche Prozessor
mit seinem Speicherzugriff Erfolg hatte. Außerdem
wird das Problem der Datenintegrität für Befehle der
3. und 4. Gruppe der o.g. Befehle, sowie daraus
resultierende Architekturverletzungen nicht gelöst.
Das Problem bei den bekannten Multiprozessorsystemen
ist aber, daß die Strukturen, die ein solches Fest
fahren und eine Verletzung der Datenintegrität ver
hindern können, bisher als sehr aufwendige und
komplizierte Methoden und Schaltkreise realisiert
worden sind, die einen störungsfreien und vor allem
schnellen Betrieb und, zudem bei kleineren Systemen,
einen wirtschaftlichen Einsatz oft in Frage gestellt
haben.
Die Aufgabe der Erfindung besteht somit in der Lö
sung des Problems, bei Multiprozessorsystemen Fest
fahrsituationen und insbesondere Verletzungen der
Datenintegrität auf ökonomische, sichere und
schnelle Weise zu vermeiden.
Gelöst wird diese Aufgabe der Erfindung durch die in
den Patentansprüchen angegebenen Merkmale. Vorteil
hafte Weiterbildungen und Ausgestaltungen des Gegen
standes der Erfindung sind in den Unteransprüchen
dargestellt.
Auf diese Weise wird durch die Erfindung der Vorteil
erzielt, daß bei Multiprozessorsystemen bei gleich
zeitig abgesetzten Befehlen der eingangs genannten
Art mehrerer Prozessoren des Systems Festfahr
situationen sicher, schnell und wirtschaftlich und,
im Falle von Befehlen der 3. und 4. Gruppe, sowie
deren Kombinationen mit Befehlen der Gruppen 1 und
2, Verletzungen der Datenintegrität vermieden wer
den.
Im folgenden, wird die Erfindung an durch Zeich
nungen erläuterten Ausführungsbeispielen näher be
schrieben. Hierbei zeigen:
Fig. 1 ein Blockschaltbild eines Multipro
zessorsystems, in das die Erfindung
integriert ist,
Fig. 2, 4, 6 Blockschaltbilder einer
Schaltungsanordnung, die vorgesehen ist,
wenn ein Prozessor alle anderen
Prozessoren, die Befehle der 1. bis 4.
Gruppe der o.g. Art ausführen wollen,
ruhigstellt,
Fig. 3 ein Zeitdiagramm zur Veranschaulichung der
Arbeitsweise der Schaltungsanordnung, wenn
ein Prozessor, der einen Befehl der 1. bis
4. Gruppe der o.g. Art ausführt, alle übrigen Prozessoren, die sich in der Aus führung normaler Befehle befinden, ruhig stellt und
4. Gruppe der o.g. Art ausführt, alle übrigen Prozessoren, die sich in der Aus führung normaler Befehle befinden, ruhig stellt und
Fig. 5 ein Zeitdiagramm zur Veranschaulichung der
Arbeitsweise der Schaltungsanordnung, wenn
mehrere Prozessoren gleichzeitig Befehle
der 1. bis 4. Gruppe der o.g. Befehle
ausgeben, die jeweils eine Ruhigstellung
der anderen Prozessoren erfordern.
Bei dem in Fig. 1 dargestellten Multiprozessorsystem
MP sind dessen Prozessoren PU0 bis PUn, sowie ein
Speicher-Direktzugriffsadapter DMA und ein Haupt
speicher MS über einen Prozessorbus PB miteinander
verbunden, über den Daten, Adressen sowie Kommandos,
wie "CMD1, CMD2, . . . oder CMD Valid" übertragen werden.
Ferner ist ein Busanforderungsbus RB und ein Bus
zuteilungsbus GB vorgesehen, über welche die Pro
zessoren und der Speicher-Direktzugriffsadapter mit
einer Buszuteilungseinheit ARB verbunden sind und
über die Busanforderungssignale, sowie Buszu
teilungssignale übertragen werden.
Ein Steuerbus CB schließlich stellt eine Steuerver
bindung unter den Prozessoren, dem Hauptspeicher und
dem Speicher-Direktzugriffsadapter her, über den
Steuerinformation ausgetauscht wird.
In Fig. 1 ist ferner noch eine externe Systemuhr TOD,
ein Schlüsselspeicher KS, der meist dem Haupt
speicher zugeordnet ist, in dem Schlüssel ge
speichert sind, die nur dem Inhaber Zugriffe auf
bestimmte Speicherbereiche erlauben, sowie ein
Ruhigstellungsnetz QN dargestellt.
Die Hauptaufgabe des Prozessorbusses PB ist, wie
schon erwähnt, die Übertragung von Daten, sowie
Kommandos und Adressen von und zum Hauptspeicher
sowie zwischen den Prozessoren untereinander und dem
Speicher-Direktzugriffsadapter.
Die Aufgabe des Speicher-Direktzugriffsadapters
besteht in der Steuerung der Kommunikation zwischen
der Ein-/ Ausgabeseite, also den Kanälen, an denen
die Ein-/Ausgabegeräte angeschlossen sind und dem
Hauptspeicher sowie den Prozessoren.
Fig. 3 zeigt in Verbindung mit den Anordnungen in
den Fig. 2, 4 und 6, ein Beispiel für einen Ab
lauf, bei welchem ein Prozessor PU1, der einen Be
fehl der 2. Gruppe ausführt, alle anderen Prozessoren
PU0 und PU2 bis PUn des MP ruhigstellt. Es wird in
diesem Beispiel die durchaus reale Annahme gemacht,
daß die PUi dieses MP einfache, d. h. nicht sehr
komplexe Befehle sehr wohl als festverdrahtete Be
fehle ausführen können, daß aber komplexere Befehle
im Mikro-Ausführungsmodus abgearbeitet werden. Hier
zu werden diese Befehle in Form von Mikrobefehls
routinen interpretiert und ausgeführt.
In der obersten Zeile zeigt Fig. 3 den augenblick
lichen Inhalt des laufenden Befehlsregisters CIR
dieses Prozessors PU1. Dieser ist ein Befehl IPTE
(Invalidate Page Table Entry), mit dem Seiten
tabellen-Einträge ungültig gemacht werden. Es han
delt sich bei diesem Befehl um einen komplexeren
Makrobefehl, der vom Prozessor durch eine Folge von
Mikrobefehlen interpretiert werden muß.
In der zweiten Zeile in Fig. 3 ist folglich am Inhalt
des Mikro-Operationsregisters MOPR(PU1) zu erkennen,
daß der Befehl IPTE durch mehrere Mikrobefehle in
terpretiert wird. Der dritte Mikrobefehl dieser
Befehlsfolge in der PU1 ist ein sogenannter ECTLSQ
(External Control Set Quiesce)-Befehl, der veran
laßt, daß das Signal PUBR (PB-Anforderung) über den
Busanforderungsbus RB zur Buszuteilungseinheit ARB
übertragen wird, die PB-Zuteilungen auf der Basis
des Prioritätsranges der beteiligten PUs vornimmt.
PU1 wartet nun auf das Buszuteilungssignal PUBG auf
dem Buszuteilungsbus GB. Im Mikrozyklus MCYC T3
(Zykluszeit T3) des Befehls ECTLSQ stellt dann PU1
das Kommando CMD1 auf den PB, das folgendes bein
haltet:
- 1. ein Kommando-Byte ECTL, das "Externe Steuerung für alle PUs" angibt;
- 2. ein Subkommando-Byte QR, das "Ruhigstellungs anforderung" angibt; und
- 3. ein Anforderer-Identifizierer RID mit der Nummer der anfordernden PU, im vorliegenden Falle also eine 1 für PU1.
Für die Steuerung der Prozessor-Ruhigstellung oder
man kann auch sagen für die Serialisierung be
stimmter Abläufe (nämlich die Ausführung der Befehle
der eingangs genannten Gruppen 1 bis 4) zwischen den
einzelnen Prozessoren, ist in jedem Prozessor PUi
eine Schaltungsanordnung vorgesehen, wie sie in den
Fig. 2, 4 und 6 für eine MP-Anordnung mit 7
Prozessoren PU0-PU6 dargestellt ist.
Das Kommando CMD1, das PU1 im Mikrozyklus MCYC(T3)
auf den Prozessorbus PB gesetzt hat, gelangt in das
Prozessorbus-Eingangsregister PBIR aller Pro
zessoren, außer PU1 und wird 1. im RID Decoder RID
DECO decodiert, um den Anforderer (PU1) zu identi
fizieren. 2. gelangt es auch zum Kommando-Decoder
CMD DECO, der das Kommando-Byte ECTL und das Subkom
mando-Byte QR decodiert. Diese Verhältnisse sind in
den Fig. 2 und 3 für PU2 dargestellt.
An seinem Ausgang liegt nach:der Decodierung das
Signal QSET, das nach UND-Kombination mit dem in der
Verriegelungsschaltung VAL LT verriegelten Signal
+CMD VAL, gleichbedeutend mit "Kommando gültig", ein
Signal +ECTLSQ ergibt. Dieses Signal, das nicht
direkt gleichbedeutend mit dem Mikrobefehl ECTLSQ
ist (vgl. Fig. 3, MOPR(PU1)), jedoch von diesem über
CMD1 abgeleitet ist, setzt, zusammen mit dem ent
sprechenden Signal am Ausgang des RID DECO, also am
Ausgang 1 (da es PU1 identifiziert), nur die Ver
riegelungsschaltung QURLT(PU1) in allen Prozessoren,
außer PU1. (Das Ausgangssignal der gesetzten
QURLT(PU1) bedeutet somit: PU1 hat eine Anforderung
"Ruhigstellung, bzw. Serialisierung aller anderen
PUs" auf den PB gestellt.) Die Verriegelungsschal
tungen QURLT(PU0) und QURLT(PU2) bis QURLT(PU6), für
alle anderen PUs bleiben in der Rückstell-Lage.
Da alle PUs dieselbe Schaltungsanordnung nach Fig. 2
aufweisen, findet der oben beschriebene Vorgang in
allen PUs des MP statt, wie er für PU2 in Fig. 3
auch an Hand eines Impuls-/Zeit Diagramms dar
gestellt ist, außer für PU1.
Gleichzeitig mit dem Einstellen der Verriegelungs
schaltungen QURLT(PU1) in allen PUs, außer PU1 des
MP, stellt PU1 eine Verriegelungsschaltung
IQULT(PU1) (interne Ruhigstellung von PU1) ein, die,
wie Fig. 4 zeigt, PU- individuell vorgesehen ist,
d. h. jede PU hat nur eine eigene solche Verriegel
ungsschaltung, im Gegensatz zu den QURLTs, von denen
jede PU einen vollständigen Satz QURLT(PU0-PU6)
aufweist. Das Ausgangssignal BCL einer gesetzten
IQULT(PUi) erzeugt über eine ODER-Schaltung GDR eine
positive Steuerspannung am Eingang eines Open Drain
Teibers DR, der die Funktion einer steuerbaren Im
pedanz hat. Fig. 3 verdeutlicht den zeitlichen
Ablauf der Steuerung auch dieser Verriegelungsschal
tungen in dem jeweiligen Prozessor.
Die Einstellung von IQULT(PU1) durch PU1 beendet das
Anliegen eines negativen Spannungspegels über den
Open Drain Treiber DR an das Ruhigstellungsnetz QN.
Mit einer positiven Steuerspannung an seinem Eingang
befindet sich nun dieser Treiber im Zustand hoher
Impedanz Z (Sperrzustand). Der Spannungspegel (QU)
auf dem QN bleibt aber infolge des negativen Aus
gangspegels eines sich im Zustand niedriger Impedanz
befindlichen (leitenden) DR einer oder mehrerer
anderer Prozessoren noch solange negativ, bis sich
alle Treiber im Zustand hoher Impedanz (Sperr
zustand) befinden. Erst dann, wenn alle DR gesperrt
sind, geht das Potential auf dem QN auf einen posi
tiven Wert Q+, das über R anliegt, wie Fig. 4
zeigt.
Betrachtet man nun wieder Fig. 3, dann läßt sich
fest-stellen, daß PU2 gerade den Befehl B ausführt,
der sich im Befehlsregister CIR für den laufenden
Befehl befindet. Im ersten Mikrozyklus T0 von B war
ein sogenanntes Torsteuersignal GSST (gate soft
stop) wirksam, das die Bedeutung "weicher Stop"
(soft stop) bzw."potentieller Stop" hat. Dieses
Signal wird immer im ersten Mikrozyklus desjenigen
Makrobefehls gebildet, der sich gerade im CIR be
findet. Das nächste GSST-Signal kommt nach dem 55.
Mikrobefehl wieder. Es sei nun angenommen, daß der
Befehl B hier unterbrechbar ist. Ein Mikrobefehl
ASST (allow soft stop) im Mikro-Operationsregister
MOPR(PU1) definiert die unterbrechbare Stelle und
schaltet die entsprechende Verriegelungsschaltung
SSTLT(PU2) ein, da QURLT(PU1) noch gesetzt ist (vgl.
Fig. 2). Die SSTLT(PU1) kann nicht eingestellt wer
den, da, wie aus Fig. 2 analog für PU1 entnommen
werden kann, das Signal +CMD VALID(PU1) in der in
PU1 vorhandenen analogen Schaltungsanordnung eine
Einstellung von VAL LT, wegen nicht erfüllter UND-
Bedingung am UND-Tor GT CMD VAL verhindert, und
ferner auch QURLT(PU1) nicht eingestellt ist.
Die Wirkung dieses weichen Stops ist, daß die Mikro
befehlsdecoder aller anderen PUs, d. h. aller außer
PU1, auf NOP (=No operation) gesetzt werden (mittels
sog. erzwungener Operationen), so daß die ent
sprechenden PUs einzyklige Mikrobefehle NOP aus
führen, in denen sie quasi auf der Stelle treten.
Es wird also, da QURLT(PU1) in PU2 noch immer ge
setzt ist, die SSTLT(PU2) in PU2 gesetzt, mit der
Folge, daß PU2 seinen Treiber DR auf hohe Impedanz
umsteuert, was aus Fig. 4 analog zu den näher dar
gestellten Verhältnissen für PU0 und PU6 hervorgeht.
Unter der berechtigten Annahme, daß in der Zwischen
zeit auch alle anderen, den Prozessorbus PB anfor
dernden PUs sich im Zustand des weichen Stops be
finden, zieht der Widerstand R alle Anschlüsse VTPU0
bis VTPU6 der PUs mit dem QN auf positives Potental
QU+, an dem R mit seinem anderen Anschluß anliegt.
Wie Fig. 3 weiter verdeutlicht, befindet sich PU1 in
einer durch das Signal +BC bedingten erzwungenen
Mikro-Verzweigungsbefehlsschleife (BC-Schleife; BC=
branch on condition) so lange, bis die Verzweigungs
bedingung durch "QU=QU+" (quiesce all + = true),
(vgl. Fig. 3) in Verbindung mit dem noch im Zu
sammenhang mit Fig. 5 zu erläuternden Signal QUW
(PUi) (quiesce wait) in Fig. 4 aufgehoben wird, ein
Zustand, der das Signal + NBC am Ausgang einer UND-
Schaltung GA erzeugt. Danach, d. h. eine Mikro
zykluszeit Ti später, wird dann der Befehl ECIPTE
(external control invalidate page table entry) zur
Invalidierung der Seitentabellen-Eintragung aus
geführt. Das Kommando CMD2 wird auf den PB ge
stellt, das folgenden Inhalt hat:
- 1. ein Kommando-Byte ECTL, das "Externe Steuerung an alle PUs", bedeutet;
- 2. ein Subkommando "INVTBL", das invalidiere den Seitentabellen-Eintrag bedeutet;
- 3. ein Adressenfeld mit der zu invalidierenden Tabellenadresse; und
- 4. die RID, die in diesem Falle undeterminiert ist.
Die Invalidierung des Seitentabellen-Eintrags wird
daraufhin in allen PUs durchgeführt. Danach folgt
ein Mikrobefehl ECTLRQ. Nach der dritten PB-An
forderung mittels PUBR und der Zuteilungsgewährung
mittels PUBG sendet PU1 das CMD3 über den PB mit der
Wirkung, daß der CMD DECO das Signal QRES erzeugt,
das, weil ein gültiger CMD (+CMD VALID) vorliegt,
das Signal -ECTLRQ zur Folge hat, durch welches die
IQULT(PU1) in PU1 und die QURLT(PU1)-en in allen
anderen PUs zurückgestellt werden. Ferner wird da
durch das Signal QU auf dem QN wieder negativ, und
die SSTLT(PU1-PU6) schalten zurück, wodurch wieder
die Ausgangslage im MP hergestellt wird.
Eine etwas anderes Verhalten des MP ergibt sich aus
einer Betriebssituation, in der zwei oder mehr PUs
Befehle gleichzeitig ausgeben, die eine Ruhig
stellung bzw. Serialisierung der anderen PUs erfor
derlich machen
Fig. 5 zeigt die Verhältnisse in einem Zeitdiagramm,
in dem PU2 die anderen PUs ruhigstellen/
serialisieren möchte. Der laufende Befehl, der sich
im CIR von PU2 befindet ist, wie im vorigen Bei
spiel, IPTE zur Invalidierung eines Seitentabellen-
Eintrags. Der Befehl in PU1 (CIR) ist SEXT (STORE
EXTERNAL TIMER) zur Speicherung des Standes eines
externen Zeitgebers (Timer). Es sei nun angenommen,
daß dieser Timer in einer DMA-Einheit realisiert
ist. Bei diesem Makrobefehl SEXT erfordert das
Lesen oder Schreiben von Zeit-Werten mehr als einen
Lesebefehl SE (SENSE) und auch mehr als einen
Schreibbefehl STO (STORE). Die mittels der
Lesebefehle erhaltenen Daten gelangen über den PB in
in einen Zwischenspeicher (nicht dargestellt) in der
PU1 und werden von dort mit mehreren Schreibbefehlen
STO über den PB in den Hauptspeicher übertragen.
Den ruhiggestellten PUs darf es somit nicht erlaubt
sein, während dieser Zeit auf den Timer zuzugreifen,
weil sie ja den PB benutzen müßten und außerdem
falsche Werte erhielten.
Beide, PU1 und PU2, haben ihre Busanforderung PUBR
auf den Prozessorbus PB gegeben. PU1 erhielt ihre
Zuteilung PUBG zuerst von der Buszuteilungseinheit
ARB auf Grund ihrer höheren Priorität und stellt
somit ihr Kommando CMD1 auf den PB. Daher wird in
PU2 die QURLT(PU1) eingestellt. PU2 wartet im
Mikrozyklus T2 auf ihr PUBG-Signal, das ihr den
Zugriff auf den PB gewähren wird. Nach erfolgter
Zuteilung stellt PU2 ihr Kommando CMD4 auf den PB.
Der einzige Unterschied dieses Kommandos gegenüber
dem CMD1 von PU1 besteht in der anderen RID-Angabe,
nämlich RID=2.
Wie schon im ersten Beispiel an Hand der Fig. 3
gezeigt wurde, haben diese Aktionen zur Folge, daß
verschiedene Verriegelungsschaltungen eingestellt
werden. Im zweiten Beispiel sind dies die IQULT(PU2)
in PU2 und QURLT(PU2) in PU0, PU1 und PU3-PU6.
Nimmt man wieder an, daß die übrigen PUs sich schon
in dem Zustand des weichen Stops befinden, dann geht
das QN auf Pluspotential +QU, obwohl SSTLT(PU2) hier
nicht eingeschaltet ist (vgl. Fig. 4, wo SSTLT(PU2)
ODER-verknüpft ist mit IQULT(PU2), in Analogie zu
IQULT(PU0) oder IQULT(PU6)). Der Open Drain Treiber
DR in PU2 wird wieder durch das Ausgangssignal von
GDR, das diesesmal über den anderen Eingang der
ODER-Schaltung, an dem das Signal +SSTLT(PU2) liegt,
erzeugt wurde, gesperrt.
Beide Prozessoren befinden sich nun in der bereits
erläuterten Mikro-Verzweigungsbefehlsschleife. Die
Verzweigungsbedingung +NBC (no branch on condition)
darf aber nur für einen Prozessor, nämlich PU1,
beendet werden. Dieses wird durch ein Signal
QUW(PU2) (quiesce wait) (Ruhigstellung für PU2 war
ten) erreicht, das, wie Fig. 4 zeigt über einen
Inverter zu einer UND-Schaltung GA übertragen wird,
deren UND-Bedingung nun wegen des Inverters nicht
mehr erfüllt ist. Das hat zur Folge, daß GA über
einen Inverter das Ausgangssignal +BC erzeugt, das
PU2 in der BC-Schleife beläßt; PU1 hingegen verläßt
die BC-Schleife, da die in Fig. 6 dargestellte Prio
ritätsschaltung, die, wie übrigens alle anderen
Schaltungen nach Fig. 2 aus Teilenummern-Gründen in
jeder PUi (fast) identisch vorhanden ist, für die
ranghöhere PU1 das Signal QUW(PU1) nicht erzeugt.
Somit wird der PU1 mit der niedrigeren Ordnungszahl,
aber dem höheren Prioritätsrang, die Buszuteilung
gewährt.
Die Schaltungsanordnung in Fig. 6 verwendet hierzu
einen PU Adressendecoder PUADR DECO, der
beispielsweise aus einer 3 hoch 2 Codekombination,
die jede PU an seinen Eingängen I1-I3 bereitstellt,
die entsprechende PU identifiziert; und mittels
einer nachgeschalteten Decodierungslogik, bestehend
aus einigen UND-und ODER-Schaltungen, wird dieses
QUW(PUi)-Signal erzeugt. Das Signal QUW (PU2) bleibt
für PU2 aktiv, so daß diese PU in der Mikro-Ver
zweigungsbefehlsschleife bleiben muß.
PU1 kann nun über den PB auf den externen Timer
zugreifen oder jede andere Mikrobefehlsfolge aus
führen, die Atomizität, d. h. eine unterbrechungs
freie Businhaberschaft des zugehörigen Prozessors,
im vorliegenden Falle also der PU1, erfordert.
Am Operationsende setzt PU1 die Verriegelungsschal
tungen IQULT(PU1) in PU1 und alle QURLT(PU1) in den
anderen PUs wieder zurück, und das Potential auf QN
wird wieder negativ. Nach dem letzten Mikrobefehl L
(last) fährt PU1 mit dem nächsten Makrobefehl A, der
sich nun im Befehlsregister CIR für den laufenden
Befehl befindet, fort. Dieser bewirkt in seinem
ersten Mikrozyclus T0 das Signal GSST, das zusammen
mit dem noch immer aktiven Ausgangssignal von
QURLT(PU2) die SSTLT(PU1) einschaltet. Damit wird
auch das Potential auf dem QN wieder positiv (alle
Treiber DR an QN befinden sich im Sperrzustand).
PU2 kann somit die BC-Schleife verlassen (wegen
Signal +BNC) und die Ausführung des sich noch im CIR
befindenden IPTE-Makrobefehls fortsetzen.
Die in der vorstehenden Beschreibung genannten Ver
riegelungsschaltungen sind bistabile Kippschal
tungen, aufgebaut als sog. Master/Slave Latche M/S,
deren Takteingänge aus Gründen der Vereinfachung
weggelassen wurden. Sowohl die Einstelleingänge
(Setzeingänge), als auch die Rückstelleingänge
(Rücksetzeingänge) sind mit UND- und ODER-Schaltungen
versehen, um die gewünschten Signalkombinationen zum
Einstellen und Rückstellen dieser Schaltungen zu
realisieren.
Der Aufbau der BC-Schleifen bzw. des NOP-Zustandes
hängt im wesentlichen von der Architektur der ver
wendeten Prozessoren ab und macht meist Gebrauch von
sogenannten +1 Adressenmodifizierern, welche die
Adresse im Mikrobefehls-Adressenregister (nicht
dargestellt) je Zykluszeit T (nur bei einzyklischen
Mikrobefehlen) um jeweils den Wert 1 erhöhen. Zur
Schleifenbildung kann dann die Adressenmodifikation
unterbunden werden, so daß für die Dauer weiterer
Zykluszeiten der Mikorobefehl im Mikro-Operations
register MOPR verbleibt. Eine Schleife kann dadurch
beendet werden, daß im Falle eines bedingten Ver
zweigungsbefehls BC, bei nicht erfüllter Ver
zweigungsbedingung, z. B. +NBC in Fig. 4, die Adresse
des Mikrobefehls ECIPTE in das MOPR der betreffenden
PU gesetzt wird, beispielsweise dadurch, daß die
Folgeadresse nach der Aufhebung der Modifizierungs
sperre, dann bereits die Adresse der ECIPTE im
Steuerspeicher (Mikro-Befehlsspeicher) (nicht dar
gestellt) des betreffenden Prozessors ist.
Claims (3)
1. Verfahren in einem Multiprozessorsystem (MP)
bei dem mehrere Prozessoren (PU0-PUn) und zen
trale Komponenten (MS, DMA, ARB) über ein Bus
system (PB, RB, GB, CB) miteinander verbunden
sind, zur Serialisierung von Buszuteilungen
(PUBG), wenn zwei oder mehrere Prozessoren auf
den Prozessorbus (PUB) zugreifen wollen, um
Makrobefehle (z. B. ITPE) auszuführen, die einer
ununterbrochenen Buszuteilung über mehrere Zyk
len bedürfen,
dadurch gekennzeichnet, daß Makrobefehle der
o.g. Art jeweils als eine Folge von Mikrobe
fehlen ausgeführt werden, bei welcher denjen
igen Mikrobefehlen (z. B. ECIPTE), welche die
Operationen der auszuführenden Funktion (z. B.
Invalidiere Seitentabellen Eintrag) steuern,
ein erster Mikrobefehl (ECTLSQ), vorausgeht,
der mittels in jedem Prozessor vorgesehenen
Schaltungsanordnungen (Fig. 2, 4, 6) über ein
separates, alle Prozessoren verbindendes Ruhig
stellungsnetz (QN) eine Ruhigstellung
bzw. Serialisierung anderer Prozessoren (z. B.
PU0, PU2. . .PUn), als der anfordernden (z. B. U1),
einleitet und denen ein zweiter Mikrobefehl
(ECTLRQ) nachfolgt, der mittels der genannten
Schaltungsanordnungen über das Ruhigstellungs
netz die Ruhigstellung, nach Ausführung der ge
nannten Funktion wieder aufhebt.
2. Verfahren nach Anspruch 1, dadurch gekenn
zeichnet,
daß für eine Betriebssituation, in welcher ein
Prozessor (z. B. PU1; Fig. 3), der einen Makrobe
fehl der genannten Art (z. B. IPTE) ausführen
möchte, während andere Prozessoren Befehle
einer anderen Art ausführen, der Prozessor mit
dem höheren Prioritätsrang die Prozessorbus
zuteilung erhält und mittels des genannten
ersten Mikrobefehls (ECTLSQ) in jedem Prozessor
einen Anforderungsidentifizierer (QURLT(PU1))
einstellt, welcher seinerseits, jeweils zu
einer bestimmten Taktzeit (z. B. T0) zu Beginn
eines Makrobefehls in einem anderen Prozessor
oder bei Vorliegen eines Unterbrechungsfensters
(ASST) in einem unterbrechbaren Befehl in einem
anderen Prozessor, in jedem anderen Prozessor
eine erste bistabile Kippschaltung (SSTLT(PU0,
PU2-PUn)) einstellt, deren Ausgangssignal
(+SSTLT(PU0, PU2-n) im zugehörigen
Mikro-Operationsregister (MOPR ( PU0,
PU2-n)) einen einzykligen NOP-Mikrobefehl
erzwingt, bei welchem der Prozessor keine Funk
tion ausführt, daß der genannte erste Mikro
befehl ferner im eigenen Prozessor (z. B. PU1)
zu einer bestimmten Taktzeit (z. B. T4) seines
Mikrozyklus eine zweite bistabile Kippschaltung
(z. B. IQULT(PU1)) einstellt, die über eine
steuerbare Impedanz (DR) an das Ruhig
stellungsnetz QN angeschaltet ist,
wobei deren Ausgangssignal (BCL) die steuerbare
Impedanz in den Zustand hoher Impedanz
einstellt, wodurch das Signal (+BC) erzeugt
wird, das im zugehörigen Mikro-Operationsre
gister MOPR(PU1) einen BC-Mikrobefehl erzwingt
bei dem der Prozessor auf eine Bedingung
(QU=QU+) wartet, daß aber die steuerbaren Im
pedanzen aller anderen Prozessoren über das
Ausgangssignal (+SSTLT(PU0, PU2-PUn)) ihrer
jeweiligen ersten bistabilen Kippschaltungen in
den Zustand hoher Impedanz eingestellt werden,
so daß, wenn alle PUs ihre Anschlüsse (VPU0-
VPUn) auf hohe Impedanz geschaltet haben, das
Ruhigstellungsnetz über einen Widerstand (R)
auf +Potential (QU+) liegt und die
genannte Bedingung (QU=QU+) erfüllt ist,
wodurch die BC-Mikrobefehlsschleife aufgehoben
und der nächste Mikrobefehl (ECIPTE) in das
Mikro-Operationsregister des Prozessors zur
Durchführung der eigentlichen Funktion gelangt
und, daß schließlich nach Beendigung dieses
Mikrobefehls der genannte zweite Mikrobefehl
(ECTRLQ) zu einer bestimmten Taktzeit (z. B. T4)
in seinem Mikrozyklus die zweite bistabile
Kippschaltung (z. B. IQULT(PU1)) wieder zurück
stellt, so daß die zugehörige steuerbare Im
pedanz wieder in den leitenden Zustand gebracht
und das Potential auf dem Ruhigstellungsnetz
wieder negativ wird und ebenso den An
forderungsidentifizierer (z. B. QURLT(PU1)) in
allen Prozessoren zurückstellt, so daß die
ersten bistabilen Kippschaltungen
(SSTLT(PU0, PU2-n)) in allen anderen Pro
zessoren zurückgestellt werden und diese aus
dem NOP-Zustand austreten und mit ihrem
nächsten Makro- oder Mikrobefehl fortfahren.
3. Verfahren nach Anspruch 1 , dadurch gekenn
zeichnet,
daß für eine Betriebssituation, in welcher zwei
(z. B. PU1 und PU2) oder mehrere Prozessoren
Makrobefehle der genannten Art gleichzeitig
ausführen möchten, der Prozessor (PU1; Fig. 5)
mit dem höheren Prioritätsrang die Buszuteilung
erhält und mittels des genannten ersten Mikro
befehls (ECTLSQ) in jedem Prozessor einen An
forderungsidentifizierer (QURLT(PU1)) und
im eigenen Prozessor zu einer bestimmten Takt
zeit (z. B. T4) seines Mikrozyklus eine zweite
bistabile Kippschaltung (IQLT(PU1)) einstellt,
die über eine steuerbare Impedanz (DR) an ein
Ruhigstellungsnetz (QN) angeschaltet ist, wobei
deren Ausgangssignal (BCL) die steuerbare Im
pedanz in den Sperrzustand einstellt, wodurch
ein Signal (+BC) erzeugt wird, das im zuge
hörigen Mikro-Operationsregister (MOPR(PU1))
den BC-Befehl (bedingte Verzweigung)
erzwingt, bei dem der Prozessor auf eine
Bedingung (QU=QU+) wartet, daß ferner nun der
Prozessor mit dem nächst niedrigen Prio
ritätsrang (PU2) die Buszuteilung erhält, so daß
deren Anforderungsidentifizierer (QURLT(PU2))
in allen Prozessoren, sowie die zweite bista
bile Kippschaltung (IQULT(PU2)) im eigenen Pro
zessor eingestellt wird, wodurch, wenn alle
anderen Prozessoren ihre steuerbaren Impedanzen
gesperrt haben, das Potential auf dem Ruhig
stellungsnetz auf QU+ geht, obwohl die erste
bistabile Kippschaltung (SSTLT(PU2) zurückge
setzt ist, so daß beide anfordernden Prozessoren
sich in einer BC-Schleife befinden, daß nun
ferner ein Ruhigstellungs-Wartesignal
(QUW(PU2)) mittels einer logischen
Schaltungsanordnung (Fig. 6) für den (die)
rangniederen Prozessor(en) (PU2) erzeugt wird,
das die BC-Schleife für diesen Prozessor auf
rechterhält, hingegen die Nichterzeugung eines
Ruhigstellungs-Wartesignals (QUW(PU1)) beim
ranghöheren Prozessor die BC-Schleife aufhebt,
wodurch der nächste und die weiteren Mikro
befehle der eine Atomizität erfordernden Mikro
befehlsfolge ausgeführt wird, an deren Ende die
zweite bistabile Kippschaltung dieses
Prozessors und die Anforderungsidentifizierer
dieses Prozessors in alle Prozessoren zurück
gestellt werden und-das Ruhigstellungsnetz wie
der auf -Potential gebracht wird, und daß
schließlich durch den nächsten
Makrobefehl (A) dieses Prozessors zur be
stimmten Zykluszeit (T0) die erste bistabile
Kippschaltung (SSTLT(PU1)) des ranghöheren Pro
zessors eingestellt und das Ruhigstellungsnetz
wieder auf QU+ Potential geht, wodurch die BC-
Schleife für den rangniederen Prozessor (PU2)
beendet wird, so daß er nun die unterbrochene
Makrobefehlsfolge des IPTE Makrobefehls beenden
kann.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19934307139 DE4307139C2 (de) | 1993-03-06 | 1993-03-06 | Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19934307139 DE4307139C2 (de) | 1993-03-06 | 1993-03-06 | Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4307139A1 true DE4307139A1 (de) | 1994-09-08 |
DE4307139C2 DE4307139C2 (de) | 1997-02-13 |
Family
ID=6482158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19934307139 Expired - Fee Related DE4307139C2 (de) | 1993-03-06 | 1993-03-06 | Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4307139C2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976108B2 (en) * | 2001-01-31 | 2005-12-13 | Samsung Electronics Co., Ltd. | System on a chip having a system bus, an external bus, and a bus arbiter with programmable priorities for both buses, software, and method for assigning programmable priorities |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DD220439A1 (de) * | 1983-12-27 | 1985-03-27 | Norbert Hrubesch | Einrichtung zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechner |
EP0366433A2 (de) * | 1988-10-25 | 1990-05-02 | Hewlett-Packard Company | Gegenseitige Verriegelung für ein Multiprozessorsystem |
EP0366432A2 (de) * | 1988-10-25 | 1990-05-02 | Hewlett-Packard Company | Busverriegelungsverfahren und -vorrichtung während atomarer Rechneroperationen |
-
1993
- 1993-03-06 DE DE19934307139 patent/DE4307139C2/de not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DD220439A1 (de) * | 1983-12-27 | 1985-03-27 | Norbert Hrubesch | Einrichtung zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechner |
EP0366433A2 (de) * | 1988-10-25 | 1990-05-02 | Hewlett-Packard Company | Gegenseitige Verriegelung für ein Multiprozessorsystem |
EP0366432A2 (de) * | 1988-10-25 | 1990-05-02 | Hewlett-Packard Company | Busverriegelungsverfahren und -vorrichtung während atomarer Rechneroperationen |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976108B2 (en) * | 2001-01-31 | 2005-12-13 | Samsung Electronics Co., Ltd. | System on a chip having a system bus, an external bus, and a bus arbiter with programmable priorities for both buses, software, and method for assigning programmable priorities |
Also Published As
Publication number | Publication date |
---|---|
DE4307139C2 (de) | 1997-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE2523372C3 (de) | Eingabe-/Ausgabe-Anschlußsteuereinrichtung | |
DE2817183C2 (de) | Datenverarbeitungsanlage mit einer durch Mikroprogramm gesteuerten Zentraleinheit | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2641741C2 (de) | Rechenanlage aus mehreren miteinander über ein Sammelleitungssystem verbundenen und zusammenwirkenden Einzelrechnern und einem Steuerrechner | |
DE2731188C2 (de) | Schaltungsanordnung zur Behandlung von Unterbrechungsanforderungen | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE3248215C2 (de) | ||
DE69632634T2 (de) | Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit | |
DE4129614A1 (de) | System und verfahren zur datenverarbeitung in einer mehrzahl von betriebsarten entsprechend programminterner parallelverarbeitungseigenschaften unter verwendung eines cachespeichers | |
DE3110196A1 (de) | Datenverarbeitungssystem | |
DE112013000891T5 (de) | Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten | |
DE2917441A1 (de) | Multiprozessoranlage | |
DE2702090A1 (de) | Geraet zur verarbeitung von unterbrechungen in mikroverarbeitungssystemen | |
DE3606211A1 (de) | Multiprozessor-computersystem | |
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
DE10296959T5 (de) | System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen | |
DE69822866T2 (de) | System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem | |
EP0006164A1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE2015971A1 (de) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE2855673A1 (de) | Anordnung zur handhabung des direkten zugriffs auf den speicher einer datenverarbeitungsanlage | |
DE2625113C2 (de) | Speicherschutzeinrichtung | |
DE2617127A1 (de) | Mehrfachprogramm-datenverarbeitungssystem | |
EP0124806B1 (de) | Vergabeschaltung für Parallelbusse von Datenverarbeitungsanlagen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8128 | New person/name/address of the agent |
Representative=s name: SCHAEFER, W., DIPL.-ING., PAT.-ASS., 70597 STUTTGA |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |