DE4307139C2 - Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System - Google Patents
Serialisierung von Bedienungsanforderungen in einem Multiprozessor-SystemInfo
- Publication number
- DE4307139C2 DE4307139C2 DE19934307139 DE4307139A DE4307139C2 DE 4307139 C2 DE4307139 C2 DE 4307139C2 DE 19934307139 DE19934307139 DE 19934307139 DE 4307139 A DE4307139 A DE 4307139A DE 4307139 C2 DE4307139 C2 DE 4307139C2
- Authority
- DE
- Germany
- Prior art keywords
- processor
- microinstruction
- processors
- bus
- pun
- 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/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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (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 aus fü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 zugrunde liegenden Architektur mißachten und somit
nicht erlaubte Ergebnisse produzieren, die zu Mikrocodefehlern
und Festfahrsituationen (deadlocks) 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 Be
triebssituationen vermieden werden.
So ist beispielsweise in der U.S. Patentschrift 5,016,167
beschrieben, wie bei einem Multiprozessorsystem 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
verwendet, der die Anzahl aufeinander folgender Zugriffsanfor
derungen eines Prozessors zählt, dessen Anforderungen
zurückgewiesen wurden. Wenn der Zählerstand einen vorgegebenen
Schwellenwert erreicht 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.
In der Offenlegungsschrift des DDR-Patents DD 2 20 439 A1 wird
eine Einrichtung zur blockweisen Datenübertragung zwischen den
Speichern zweier Rechner beschrieben, die durch einen
gemeinsamen Datenbus verbunden sind. Die Datenübertragung vom
Initiativrechner zum Zielrechner wird nur mit den Befehlen des
Initiativrechners ermöglicht. Mittels eines derartigen Befehls
wird zunächst die Anfangsadresse im Speicher des Zielrechners
spezifiziert, die angibt, in welchen Speicherbereich der
ankommende Datenblock geschrieben werden soll. Der Prozessor
des Zielrechners wird nun von einer Zustandslogik in einen
Status versetzt, in welchem er seine eigene Programmausführung
unterbricht und in einer inkrementierenden Arbeitsweise die
korrekte Adressierung des Speichers übernimmt. Um diesen
Status herbeizuführen, sendet eine von der Zustandslogik
einschaltbare Befehlsgebereinheit einen NOP-Befehl zum
Dateneingang des Prozessors. Dadurch wird die
Befehlsausführung dieses Prozessors solange unterbrochen, bis
die Datenübertragung abgeschlossen ist.
Aus der EP 0 366 432 A2 ist ein Verfahren in einem
Multiprozessorsystem bekannt, bei dem mehrere Prozessoren und
zentrale Komponenten über ein Bussystem zur Serialisierung von
Buszuteilungen miteinander verbunden sind, wenn zwei oder
mehrere Prozessoren auf den Prozessorbus zugreifen wollen, um
Makrobefehle auszuführen, die einer ununterbrochenen
Buszuteilung über mehrere Zyklen bedürfen und die als Folge
von Mikrobefehlen ausgeführt werden. Dazu ist ein alle
Prozessoren verbindendes "Ruhigstellungsnetz" vorgesehen,
worüber die "Ruhigstellung" bzw. Serialisierung anderer
Prozessoren als dem anfordernden eingeleitet wird. Nach der
Ausführung der Funktion seitens des anfordernden Prozessors
wird die "Ruhigstellung" wieder aufgehoben.
Aus der EP 0 366 433 ist ein Verfahren und eine Vorrichtung zur
Erteilung einer Zugriffsberechtigung an einen Prozessor in
einem Multiprozessorsystem bekannt. Dabei wird sichergestellt,
daß dem Prozessor, dem der Bus zugeteilt ist, der Bus "privat"
solange zur Verfügung steht, wie es zur Ausführung der
entsprechenden Operation seitens dieses Prozessors
erforderlich, ohne daß der Prozessor dabei von den anderen
Prozessoren dem Multiprozessorsystems unterbrochen wird.
Das Problem bei den bekannten Multiprozessorsystemen ist aber,
daß die Strukturen, die ein solches Festfahren und eine
Verletzung der Datenintegrität verhindern 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 deadlock-
Situationen und Verletzungen der Datenintegrität auf
sichere und schnelle Weise zu vermeiden.
Gelöst wird diese Aufgabe der Erfindung durch die in
Patentanspruch 1 angegebenen Merkmale. Vorteilhafte
Weiterbildungen und Ausgestaltungen des Gegenstandes der
Erfindung sind im Unteranspruch dargestellt.
Auf diese Weise wird durch die Erfindung der Vorteil
erzielt, daß bei Multiprozessorsystemen bei gleichzeitig
abgesetzten Befehlen der eingangs genannten Art mehrerer
Prozessoren des Systems Festfahrsituationen 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 Daten
integrität vermieden werden.
Im folgenden, wird die Erfindung an durch Zeichnungen
erläuterten Ausführungsbeispielen näher beschrieben.
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
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 Annahme gemacht,
daß die PUi dieses MP einfache, d. h. nicht sehr
komplexe Befehle 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
Befehls folge 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 QU+, das über R anliegt, wie Fig. 4
zeigt.
Betrachtet man nun wieder Fig. 3, dann läßt sich
feststellen, 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
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 soft stops ist, daß die Mikro
befehlsdecoder aller azideren 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 soft stops be
finden, zieht der Widerstand R alle Anschlüsse VTPU0
bis VTPU6 der PUs mit dem QN auf positives Potential
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) solange, 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 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 soft 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-Mikrobefehls-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 Latches 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 Mikrobefehl 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 (2)
1. Verfahren in einem Multiprozessorsystem (MP) bei dem
mehrere Prozessoren (PU0-PUn) und zentrale Komponenten
(MS, DMA, ARB) über ein Bussystem (PB, RB, GB, CB) mit
einem Prozessorbus (PB) miteinander verbunden sind, zur
Serialisierung von Buszuteilungen (PUBG), wenn zwei oder
mehrere Prozessoren auf den Prozessorbus (PB) zugreifen
wollen, um Makrobefehle (z. B. ITPE) auszuführen, die einer
ununterbrochenen Buszuteilung über mehrere Zyklen bedür
fen, wobei Makrobefehle jeweils als eine Folge von Mikro
befehlen ausgeführt werden, bei welcher denjenigen Mikro
befehlen (z. B. ECIPTE), welche die Operationen der aus
zuführenden Funktion (z. B. Invalidiere Seitentabellen
Eintrag) steuern, ein erster Mikrobefehl (ECTLSQ), voraus
geht, der mittels in jedem Prozessor (PUo-PUn) vorge
sehenen Schaltungsanordnungen über ein separates, alle
Prozessoren verbindendes Ruhigstellungsnetz (QN) eine
Ruhigstellung anderer Prozessoren (z. B. PU0, PU2 . . . PUn),
als der anfordernden (z. B. PU1), einleitet und denen ein
zweiter Mikrobefehl (ECTLRQ) nachfolgt, der mittels der
Schaltungsanordnungen über das Ruhigstellungsnetz (QN) die
Ruhigstellung nach Ausführung der Funktion wieder aufhebt,
dadurch gekennzeichnet,
daß für eine Betriebssituation, in welcher ein Prozessor (z. B. PU1; Fig. 3), der den Makrobefehl (z. B. IPTE) aus führen möchte, während andere Prozessoren andere Befehle ausführen, der Prozessor mit dem höheren Prioritätsrang die Prozessorbuszuteilung erhält und mittels des ersten Mikrobefehls (ECTLSQ) in jedem Prozessor einen Anfor derungsidentifizierer (z. B. 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-PUn) im zugehörigen Mikro- Operationsregister (MOPR(PU0, PU2-PUn)) einen einzykligen NOP-Mikrobefehl erzwingt, bei welchem der Prozessor keine Funktion ausführt,
daß der erste Mikrobefehl 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 ein Ausgangssignal (BCL) eine steuerbare Impedanz (DR) mit hoher Impedanz an das Ruhigstellungsnetz QN anschaltet, wodurch das Signal (+BC) erzeugt wird, das im zugehörigen Mikro-Operationsregister (MOPR+(PU1)) eine BC-Mikrobefehlsschleife erzwingt, bei dem der Prozessor auf eine Bedingung (QU=QU+) wartet,
daß die steuerbaren Impedanzen (DR) aller anderen Pro zessoren über das Ausgangssignal (+SSTLT(PU0, PU2-PUn)) ihrer jeweiligen ersten bistabilen Kippschaltungen (SSTLT-(PU0, PU2-PUn)) 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 Mikro befehl (ECIPTE) in das Mikro-Operationsregister des Pro zessors zur Durchführung der eigentlichen Funktion gelangt
und, daß schließlich nach Beendigung dieses Mikrobefehls der zweite Mikrobefehl (ECTRLQ) zu einer bestimmten Takt zeit (z. B. T4) in seinem Mikrozyklus die zweite bistabile Kippschaltung (z. B. IQULT(PU1)) wieder zurückstellt, so daß die zugehörige steuerbare Impedanz (DR) wieder in den lei tenden Zustand gebracht und das Potential auf dem Ruhig stellungsnetz (QN) wieder negativ wird und ebenso den An forderungsidentifizierer (z. B. QURLT(PU1)) in allen Pro zessoren zurückstellt, so daß die ersten bistabilen Kipp schaltungen (SSTLT(PU0, PU2-PUn)) in allen anderen Prozes soren zurückgestellt werden und diese aus dem NOP-Zustand austreten und mit ihrem nächsten Makro- oder Mikrobefehl fortfahren.
daß für eine Betriebssituation, in welcher ein Prozessor (z. B. PU1; Fig. 3), der den Makrobefehl (z. B. IPTE) aus führen möchte, während andere Prozessoren andere Befehle ausführen, der Prozessor mit dem höheren Prioritätsrang die Prozessorbuszuteilung erhält und mittels des ersten Mikrobefehls (ECTLSQ) in jedem Prozessor einen Anfor derungsidentifizierer (z. B. 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-PUn) im zugehörigen Mikro- Operationsregister (MOPR(PU0, PU2-PUn)) einen einzykligen NOP-Mikrobefehl erzwingt, bei welchem der Prozessor keine Funktion ausführt,
daß der erste Mikrobefehl 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 ein Ausgangssignal (BCL) eine steuerbare Impedanz (DR) mit hoher Impedanz an das Ruhigstellungsnetz QN anschaltet, wodurch das Signal (+BC) erzeugt wird, das im zugehörigen Mikro-Operationsregister (MOPR+(PU1)) eine BC-Mikrobefehlsschleife erzwingt, bei dem der Prozessor auf eine Bedingung (QU=QU+) wartet,
daß die steuerbaren Impedanzen (DR) aller anderen Pro zessoren über das Ausgangssignal (+SSTLT(PU0, PU2-PUn)) ihrer jeweiligen ersten bistabilen Kippschaltungen (SSTLT-(PU0, PU2-PUn)) 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 Mikro befehl (ECIPTE) in das Mikro-Operationsregister des Pro zessors zur Durchführung der eigentlichen Funktion gelangt
und, daß schließlich nach Beendigung dieses Mikrobefehls der zweite Mikrobefehl (ECTRLQ) zu einer bestimmten Takt zeit (z. B. T4) in seinem Mikrozyklus die zweite bistabile Kippschaltung (z. B. IQULT(PU1)) wieder zurückstellt, so daß die zugehörige steuerbare Impedanz (DR) wieder in den lei tenden Zustand gebracht und das Potential auf dem Ruhig stellungsnetz (QN) wieder negativ wird und ebenso den An forderungsidentifizierer (z. B. QURLT(PU1)) in allen Pro zessoren zurückstellt, so daß die ersten bistabilen Kipp schaltungen (SSTLT(PU0, PU2-PUn)) in allen anderen Prozes soren zurückgestellt werden und diese aus dem NOP-Zustand austreten und mit ihrem nächsten Makro- oder Mikrobefehl fortfahren.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß für eine Betriebssituation, in welcher mehrere Pro zessoren (z. B. PU1 und PU2) Makrobefehle (z. B. IPTE) gleichzeitig ausführen möchten, der Prozessor (PU1; Fig. 5) mit dem höheren Prioritätsrang die Buszuteilung erhält und mittels des ersten Mikrobefehls (ECTLSQ) in jedem Prozessor einen Anforderungsidentifizierer (z. B. QURLT- (PU1)) und im eigenen Prozessor zu einer bestimmten Takt zeit (z. B. T4) seines Mikrozyklus die zweite bistabile Kippschaltung (z. B. IQLT(PU1)) zur Überprüfung der Be dingung (QU=QU+) einstellt, daß der Prozessor mit dem nächst niedrigen Prioritätsrang (PU2) die Buszuteilung erhält, so daß deren Anforderungsidentifizierer (z. B. QURLT(PU2)) in allen Prozessoren, sowie die zweite bista bile Kippschaltung (z. B. IQULT(PU2)) im eigenen Prozessor eingestellt wird, wodurch, wenn alle anderen Prozessoren ihre steuerbaren Impedanzen (DR) gesperrt haben, das Potential auf dem Ruhigstellungsnetz (QN) auf QU+ geht,
daß dadurch, daß die erste bistabile Kippschaltung (z. B. SSTLT(PU2)) zurückgesetzt ist, die mehreren anfordernden Prozessoren sich in den Bc-Mikrobefehlsschleifen befinden,
daß ein Ruhigstellungs-Wartesignal (z. B. QUW(PU2)) mit tels einer logischen Schaltungsanordnung (Fig. 6) für den bzw. die rangniederen Prozessor(en) (z. B. PU2) erzeugt wird, das die BC-Mikrobefehlsschleife für diesen Prozessor aufrechterhält, hingegen die Nichterzeugung eines Ruhig stellungs-Wartesignals (z. B. QUW(PU1)) beim ranghöheren Prozessor (z. B. PU1) die BC-Mikrobefehlsschleife aufhebt, wodurch der nächste und die weiteren Mikrobefehle der eine Atomizität erfordernden Mikrobefehlsfolge ausgeführt wird, an deren Ende die zweite bistabile Kippschaltung (z. B. IQLT(PU1)) dieses Prozessors und der Anforderungs identifizierer (z. B. QURLT(PU1)) dieses Prozessors in allen Prozessoren zurückgestellt werden und das Ruhig stellungsnetz (QN) wieder auf negatives Potential gebracht wird,
und daß schließlich durch den nächsten Makrobefehl (A) dieses Prozessors zur bestimmten Zykluszeit (T0) die erste bistabile Kippschaltung (z. B. SSTLT(PU1)) des ranghöheren Prozessors (z. B. PU1) eingestellt und das Ruhigstellungs netz (QN) wieder auf QU+ Potential geht, wodurch die BC- Mikrobefehlsschleife für den rangniederen Prozessor (z. B. PU2) beendet wird, so daß er nun die unterbrochene Mikrobe fehlsfolge des Makrobefehls (z. B. IPTE) beenden kann.
daß für eine Betriebssituation, in welcher mehrere Pro zessoren (z. B. PU1 und PU2) Makrobefehle (z. B. IPTE) gleichzeitig ausführen möchten, der Prozessor (PU1; Fig. 5) mit dem höheren Prioritätsrang die Buszuteilung erhält und mittels des ersten Mikrobefehls (ECTLSQ) in jedem Prozessor einen Anforderungsidentifizierer (z. B. QURLT- (PU1)) und im eigenen Prozessor zu einer bestimmten Takt zeit (z. B. T4) seines Mikrozyklus die zweite bistabile Kippschaltung (z. B. IQLT(PU1)) zur Überprüfung der Be dingung (QU=QU+) einstellt, daß der Prozessor mit dem nächst niedrigen Prioritätsrang (PU2) die Buszuteilung erhält, so daß deren Anforderungsidentifizierer (z. B. QURLT(PU2)) in allen Prozessoren, sowie die zweite bista bile Kippschaltung (z. B. IQULT(PU2)) im eigenen Prozessor eingestellt wird, wodurch, wenn alle anderen Prozessoren ihre steuerbaren Impedanzen (DR) gesperrt haben, das Potential auf dem Ruhigstellungsnetz (QN) auf QU+ geht,
daß dadurch, daß die erste bistabile Kippschaltung (z. B. SSTLT(PU2)) zurückgesetzt ist, die mehreren anfordernden Prozessoren sich in den Bc-Mikrobefehlsschleifen befinden,
daß ein Ruhigstellungs-Wartesignal (z. B. QUW(PU2)) mit tels einer logischen Schaltungsanordnung (Fig. 6) für den bzw. die rangniederen Prozessor(en) (z. B. PU2) erzeugt wird, das die BC-Mikrobefehlsschleife für diesen Prozessor aufrechterhält, hingegen die Nichterzeugung eines Ruhig stellungs-Wartesignals (z. B. QUW(PU1)) beim ranghöheren Prozessor (z. B. PU1) die BC-Mikrobefehlsschleife aufhebt, wodurch der nächste und die weiteren Mikrobefehle der eine Atomizität erfordernden Mikrobefehlsfolge ausgeführt wird, an deren Ende die zweite bistabile Kippschaltung (z. B. IQLT(PU1)) dieses Prozessors und der Anforderungs identifizierer (z. B. QURLT(PU1)) dieses Prozessors in allen Prozessoren zurückgestellt werden und das Ruhig stellungsnetz (QN) wieder auf negatives Potential gebracht wird,
und daß schließlich durch den nächsten Makrobefehl (A) dieses Prozessors zur bestimmten Zykluszeit (T0) die erste bistabile Kippschaltung (z. B. SSTLT(PU1)) des ranghöheren Prozessors (z. B. PU1) eingestellt und das Ruhigstellungs netz (QN) wieder auf QU+ Potential geht, wodurch die BC- Mikrobefehlsschleife für den rangniederen Prozessor (z. B. PU2) beendet wird, so daß er nun die unterbrochene Mikrobe fehlsfolge des Makrobefehls (z. B. IPTE) 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 DE4307139A1 (de) | 1994-09-08 |
DE4307139C2 true 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) |
Families Citing this family (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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DD220439B1 (de) * | 1983-12-27 | 1988-08-03 | Norbert Hrubesch | Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern |
US5175829A (en) * | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
JPH02306355A (ja) * | 1988-10-25 | 1990-12-19 | Apollo Computer Inc | バスロックシステム |
-
1993
- 1993-03-06 DE DE19934307139 patent/DE4307139C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE4307139A1 (de) | 1994-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69021603T2 (de) | Buszugriffsarbitrierung in digitalen Rechnern. | |
DE69230462T2 (de) | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln | |
DE3852698T2 (de) | Multiprozessorsystem mit Vervielfältigung von globalen Daten. | |
DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
DE3883532T2 (de) | Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus. | |
DE2760322C2 (de) | ||
DE68922784T2 (de) | Mehrfachbus-Mikrorechnersystem mit Busarbitrierung. | |
DE69132344T2 (de) | Dynamische Busarbitrierung | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE2523372C3 (de) | Eingabe-/Ausgabe-Anschlußsteuereinrichtung | |
DE2731188C2 (de) | Schaltungsanordnung zur Behandlung von Unterbrechungsanforderungen | |
DE2641741C2 (de) | Rechenanlage aus mehreren miteinander über ein Sammelleitungssystem verbundenen und zusammenwirkenden Einzelrechnern und einem Steuerrechner | |
DE69632634T2 (de) | Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit | |
DE3851534T2 (de) | Vorrichtung und verfahren zur buszugriffssteuerung. | |
DE69028017T2 (de) | Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen | |
DE3689198T2 (de) | Systembus für Kommunikation zwischen Prozessoren. | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE3888353T2 (de) | Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus. | |
DE3850387T2 (de) | Vorrichtung und verfahren zum zugriff eines knotens auf einen bus. | |
DE3606211A1 (de) | Multiprozessor-computersystem | |
DE3146356A1 (de) | Datenverarbeitungssystem | |
DE2917441A1 (de) | Multiprozessoranlage | |
DE69030688T2 (de) | Halte- und Verriegelungsschaltung für Mikroprozessor | |
CH657714A5 (de) | Mehrprozessorenanlage. | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. |
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 |