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

Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System

Info

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
Application number
DE19934307139
Other languages
English (en)
Other versions
DE4307139A1 (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)
  • 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.
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.
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 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)

* 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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 バスロックシステム

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