DE4307139A1 - Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System - Google Patents

Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System

Info

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
Application number
DE19934307139
Other languages
English (en)
Other versions
DE4307139C2 (de
Inventor
Wolfgang Dipl Ing Fischer
Klaus Joerg Dipl Ing Getzlaff
Brigitte Kurz
Hans-Werner Dipl Ing Tast
Udo Dipl Ing Wille
Birgit Withelm
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE19934307139 priority Critical patent/DE4307139C2/de
Publication of DE4307139A1 publication Critical patent/DE4307139A1/de
Application granted granted Critical
Publication of DE4307139C2 publication Critical patent/DE4307139C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling 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
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.
DE19934307139 1993-03-06 1993-03-06 Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System Expired - Fee Related DE4307139C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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