DE3782343T2 - Zustandsanpassung fuer parallele verarbeitung. - Google Patents

Zustandsanpassung fuer parallele verarbeitung.

Info

Publication number
DE3782343T2
DE3782343T2 DE8787906856T DE3782343T DE3782343T2 DE 3782343 T2 DE3782343 T2 DE 3782343T2 DE 8787906856 T DE8787906856 T DE 8787906856T DE 3782343 T DE3782343 T DE 3782343T DE 3782343 T2 DE3782343 T2 DE 3782343T2
Authority
DE
Germany
Prior art keywords
signal
generating
contents
register
processors
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
DE8787906856T
Other languages
English (en)
Other versions
DE3782343D1 (de
Inventor
Richard Vollaro
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.)
Iconectiv LLC
Original Assignee
Bell Communications Research Inc
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 Bell Communications Research Inc filed Critical Bell Communications Research Inc
Application granted granted Critical
Publication of DE3782343D1 publication Critical patent/DE3782343D1/de
Publication of DE3782343T2 publication Critical patent/DE3782343T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Description

    Erfindungsgebiet
  • Diese Erfindung betrifft im allgemeinen Mehrprozessorkonfigurationen und im besonderen Schaltungsanordnungen und zugehörige Methodik zum Abgleichen in Beziehung stehender Zustandsänderungen, die asynchron in den verschiedenen Prozessoren berechnet werden.
  • Hintergrund der Erfindung
  • Ein programmierbarer Digitalrechner bietet eine anpassungsfähige Umgebung zur Simulation komplexer Systeme, wie zum Beispiel ein Mehrschichtprotokoll oder ein Kommunikationsnetzwerk. Ein einmal beschriebenes Systemmodell kann ausgiebig analysiert und dann modifiziert werden, um die Wirkungen von Störungen zu untersuchen. Obwohl zahlreiche Simulationsverfahren vorhanden sind, weichen sie hauptsachlich in ihren Einzelheiten ab, nicht in ihren allgemeinen Eigenschaften. Die meisten universellen Simulatoren zeigen die folgenden wesentlichen Merkmale: (1) das Modell, einmal aus einem Ausgangszustand aktiviert, wird durch eine Reihe von Ereignissen, die Zustandsänderungen des Modells entsprechen, dargestellt, und oftmals sind diese Änderungen mit besonderen Zeitereignissen in einer simulierten Zeitumgebung verbunden; und (2) simulierte Zeit darf nicht durch die zum Berechnen der Ereignisse oder Zustandsänderungen erforderiche Zeit beeinflußt werden.
  • Um bestimmte Simulationen handlich zu machen, ist es sehr öft nötig, für komplexe Modelle parallele Verarbeitung anzuwenden. Bei paralleler Verarbeitung werden Berechnungen der sich ändernden Zustände des Modells in zur parallelen Ausführung geeignete Tasks unterteilt. Ein inhärentes Problem der parallelen Lösung besteht jedoch in der Schwierigkeit sicherzustellen, daß die Berechnungen, die auf die Prozessoren zur autonomen Ausführung verteilt sind, richtig synchronisiert oder abgestimmt sind. Als ein einfaches Beispiel wird angenommen, daß zwei Prozessoren parallel arbeiten und der erste Prozessor die Ergebnisse von dem zweiten Prozessor benötigt. Dann muß die Simulation so eingerichtet werden, daß der zweite Prozessor seine Ergebnisse an den ersten Prozessor übermittelt bevor der zweite Prozessor seine Berechnungen fortsetzen kann. Dies ist besonders wichtig, wenn der zweite Prozessor seine Ausführung beendet bevor die Ausführung des ersten Prozessors beendet ist.
  • In einem herkömmlichen Weg zur Lösung dieses Problems der Zustandsanpassung wurden Softwaretechniken verwendet. Algorithmen zur Planung, Benachrichtigung und Prüfung, die zum Aufrechterhalten der Ausführungsfolge erforderlich sind, erzeugen ein beachtliches Overhead, das die durch Parallelverarbeitung gewonnene Effizienz wesentlich vermindert.
  • Um die mit Softwarelösungen verbundenen Problem zu mindern, wurden in jüngster Zeit Schaltungsanordnungen als eine Alternative vorgeschlagen. Beispielhaft für die aktuellsten herkömmlichen Schaltungsanordnungen ist U.S. Patent Nr. 4,392,196, erteilt an Glenn et al.
  • Glenn et al offenbart Einrichtungen zum Abstimmen simulierter Zeit zwischen den einzelnen Prozessoren in einem Mehrprozessor-Emulationssystem. Dies wird unter Verwendung eines Zeitfensters erreicht, das innerhalb jedes Prozessors und einem Haupttaktsignal errichtet ist. Während der Ausführung kann jeder Prozessor, der innerhalb des Zeitrahmens des gemeinsamen Zeitfensters arbeitet, die Ausführung fortsetzen. Jeder Prozessor, der hinter das Fenster zurückfällt, muß das Vorrücken des Hauptsignals anhalten bis der Prozessor lange genug arbeiten kann, um in das Fenster zurückzukehren. Jeder Prozessor, der dem Fenster voranläuft, muß in einen Leerlaufzustand gehen bis das Hauptsignal für das verarbeitende Element genügend vorrückt, um in das Fenster zurückzukehren.
  • Bei Glenn et al ist es erforderlich, einen Satz von Parametern zu wählen, welche die Funktion des Synchronisationsmechanismusses entsprechend dem System, das modelliert wird, skalieren. Dies kann so lange wirkungsvoll getan werden wie die Dauer von Tasks, die von den einzelnen Prozessoren ausgeführt werden, gemessen in Einheiten simulierter Zeit, nicht über einen breiten Bereich variiert. Wenn klug gewählt, rückt die simulierte Zeit mit einer Rate vor, welche die Prozessorleerlaufzeit mindert und so zur Ausführungseffizienz beiträgt. Eine weniger kluge Wahl kann jedoch eine schwache Ausführungseffizienz und sogar einen Verlust der Zeitabstimmung zur Folge haben.
  • Die Auflösung des Zeitabgleichmechanismusses bei Glenn et al variiert in Übereinstimmung mit zwei Parametern, nämlich der Fensterspanne und dem Inkrement simulierter Zeit bei jedem Vorrücken des Hauptsignals. Die Einschränkungen auf diese Parameter sind allgemein wie folgt. Das Inkrement darf nicht größer sein als die Länge der Zeit der kleinsten Task, die modelliert wird. Die Fensterspanne darf nicht größer sein als die kleinste Zeitdauer, die abzustimmen oder zu synchronisieren ist. Ein vorsichtiger Weg, das System von Glenn et al zu verwenden, besteht darin, seine Auflösung durch Wahl der kleinstmöglichen Werte für die Parameter zu maximieren. Dies maximiert jedoch die zum Vorrücken simulierter Zeit erforderliche Zahl von Hauptsignalübergängen und vermindert dadurch die Ausführungseffizienz auf ein Minimum, da die Prozessoren mehr Leerlaufzeit verwenden werden, da simulierte Zeit inkremental während der unvermeidlichen Perioden von Untätigkeit vorgerückt wird. Bei einer Simulation, der lange Perioden simulierter Zeit zwischen Zustandsänderungen eigen sind, ist die Verminderung der Effizienz erheblich. Ein Simulation, die lange Perioden zwischen Gruppen von Zustandsänderungen enthält, gebietet einen kleinen Inkrementparameter und erleidet folglich eine niedrige Ausführungseffizienz.
  • Somit erfordern Glenn et al sorgfältige Untersuchung des Simulationsmodells und kluge Wahl von Parametern, um ein geeignetes Gleichgewicht zwischen Abstimmungsauflösung und Ausführungseffizienz zu treffen. Die Zahl der Möglichkeiten variiert, wenn die Zahl der zu modellierenden Systeme verändert wird.
  • Zusammenfassung der Erfindung
  • Die oben beschriebenen Nachteile und Beschränkungen der herkömmlichen Verfahren und Schaltungsanordnungen zum Abstimmen der Verarbeitungszustände, die einer Mehrzahl von Prozessoren, die ein Mehrprozessorsystem umfassen, zugeteilt sind, werden erfindungsgemäß, wie beansprucht, beseitigt, indem jeder autonome Prozessor mit Einrichtungen zum Blockieren des Haupt- oder Globalreferenzgenerators innerhalb einer Einheit simulierter Zeit versehen wird. Der Referenzgenerator wird nur neu gestartet nachdem alle Taskverarbeitung in der von der Sequenz der sich ändernden Zustände geforderten Reihenfolge beendet ist. Außerdem wird die Ausführungseffizienz maximiert durch automatisches Ermitteln der unvermeidlichen Perioden langer Verzögerung zwischen geplanten Zuständen und Vorrücken zu dem frühesten, nächstfolgend geplanten Zustand in wenigen vorbestimmten Einheiten simulierter Zeit.
  • Die Organisation und Funktion dieser Erfindung wird besser aus einer Betrachtung der detaillierten Beschreibung der veranschaulichenden Ausführungen davon verstanden, die folgen, wenn sie mit den begleitenden Zeichnungen in Verbindung gebracht werden.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein Blockschaltbild, das drei Prozessoren und ihre zugehörigen Zustandsabstimmungsschaltungen (SA) zeigt, die ein erfindungsgemäß zusammengestelltes Mehrprozessorsystem bilden;
  • Fig. 2 zeigt, wiederum als Blockschaltbild, einen Prozessor und seine zugehörige Zustandsabstimmungsschaltung aus Fig. 1, worin die SA- Schaltung dargestellt ist, die einen Inkremental-Zustandsabstimmteil (ISA) und einen Schnellvorschub-Zustandsabstimmteil (RASA) enthält; und
  • Fig. 3 ist ein Zeitdiagramm, das einen Inkrementalvorschub gefolgt von einem Schnellvorschub zeigt.
  • In den Figuren sind Referenznummern gleicher Elemente um 1000, 2000 usw. erhöht, abhängig von dem einzelnen in Betracht gezogenen Prozessor des Mehrprozessorsystems.
  • Detaillierte Beschreibung
  • Zu Fig. 1. Drei autonome Prozessoren 100, 1100 und 2100 im Mehrprozessorsystem 20 sind über gemeinsamen Kommunikationsbus 101 miteinander verbunden, der den in der Computertechnik gut bekannten VME-Bus veranschaulicht. Alle anderen nicht dargestellten Prozessoren sind in gleicher Weise mit Bus 101 verbunden. Jeder Prozessor 100, 1100 oder 2100 ist der Reihenfolge mit einer zugehörigen Zustandsanpassungsschaltung (SA) 50, 1050 oder 2050 verbunden. Alle SA-Schaltungen 50, 1050 und 2050 sind identisch mit Globalreferenzgenerator 110 über Blockierungsleitung 111 (INH) und Impulsleitung (Q) 112 verbunden. Außerdem sind die SA-Schaltungen 50, 1050 und 2050 mit DATA-Bus 301 verbunden. Alle anderen, nicht dargestellten Zustandsanpassungsschaltungen sind mit Generator 110 und Bus 301 in der gleichen Weise verbunden. Außerdem arbeitet jeder Prozessor 100, 1100 oder 2100 und seine zugehörige SA-Schaltung in einem im wesentlichen autonomen Modus, d.h. in dem Sinn, daß jeder Prozessor einen internen Taktgeber (nicht dargestellt) enthält, der von den Taktgebern aller anderen Prozessoren unabhängig ist. Obwohl die Prozessoren autonom arbeiten, bilden die Prozessoren ein paralleles Verarbeitungssystem mit der Notwendigkeit aufeinander einzuwirken, zum Beispiel durch Übertragen von Informationen, die in einem Prozessor erzeugt werden oder gespeichert sind, an bestimmte von den anderen Prozessoren, die diese Information benötigen. Dies wird durch Senden eines Unterbrechungssignals über Bus 101 in herkömmlicher Weise bewirkt.
  • Wie ebenfalls in Fig. 1 dargestellt ist, besteht jede SA-Schaltung 50, 1050 oder 2050 aus zwei Hauptunterschaltungen, nämlich dem Inkremental-Zustandsanpassungsnetzwerk 200 (ISA) und dem Schnellvorschub-Zustandsanpassungsnetzwerk (RASA) 300.
  • Nun zu Fig. 2. Eine repräsentative SA-Schaltung, nämlich SA-Schaltung 50 zugehörig zu Prozessor 100, ist in Blockschaltbildform dargestellt. Zuerst ISA-Netzwerk 200 betrachtend, speichert Zustandsänderungsregister 230 Information, welche die nächste, von Prozessor 100 geplante Zustandsänderung anzeigt. Diese Information, die von Prozessor 100 herrührt, wird über Bus 231 an Register 230 geliefert. Globalreferenzelement 210 ist eine Kombination aus Register und Zähler mit zwei Eingangsknoten. Als Zähler registriert Element 210 die von Referenzgenerator 110 erzeugten Zustandsanpassungsimpulse wie auf Leitung 112 bei dem CL-Eingang von Element 210 vorhanden. Als Register lädt Element 210 über den LIN-Eingang die auf Bus 311 vorhandenen Daten, wenn immer der L-Eingang zu Element 210 aktiviert wird.
  • Weitere Einzelheiten die Registerbetriebsart betreffend werden in Kürze präsentiert, wenn Schnellvorschubnetzwerk 300 erörtert wird.
  • Das Zustandsänderungsregister 230 und das Globalreferenzelement 210 liefern Eingänge an Komparator 220. Wenn immer die beiden Eingänge gleich werden, erzeugt Komparator 220 ein logischen 1-Pegel bei seinem Ausgang auf Leitung 221. Das Signal auf Leitung 221 liefert, wenn es durch den Offen-Kollektor-Inverter 240 invertiert wird, ein entsprechendes Signal auf Leitung 111, die mit dem Blockierungseingang (INH) von Globalreferenzgenerator 110 verbunden ist. Wegen der Anordnung aller Offen-Kollektor-Inverter in SA-Schaltungen 50, 1050 und 2050 verhält sich, wie durch Inverter 240 veranschaulicht, Leitung 111 als verdrahteter ODER-Bus. Folglich erzeugt ein logischer 1-Pegel am Ausgang von Komparator 240 eine dominierende logische 0, die alle logischen 1-Pegel auf Leitung 111 unterdrückt und Generator 110 wird blockiert, d.h. er setzt die Erzeugung von Impulsen auf Leitung 112 aus. Andernfalls erzeugt eine logische 0 aus Komparator 220 eine passive logische 1 am Ausgang von Inverter 240 und SA-Schaltung 200 wird Leitung 111 nicht kontrollieren. Auch ist angemerkt, daß der Ausgang von Komparator 220 mit dem Unterbrechungseingang von Prozessor 100 verbunden ist, so daß eine logische 1 auf Leitung 221 Prozessor 100 informiert, daß Statusänderungsregister 230 und Globalelement 210 Gleichheit erzielt haben. Als Anmerkung, eine logische 1 am Ausgang von Komparator 220 wird als ein Abschaltsignal herangezogen und eine logische 0 wird Freigabesignal genannt. Es sollte auch angemerkt werden, daß der Ausgang von Globalelement 210 über Bus 211 an Prozessor 100 geliefert wird.
  • In Form einer Funktionsbeschreibung von SA-Netzwerk 200 wird vorausgesetzt, daß Verarbeitung aus dem initialisierten Zustand beginnt, in dem der Inhalt des Globalelements 210 null ist und Zustandsänderungsregister 230 mit einer nicht-null Darstellung der nächsten geplanten Zustandsänderung z.B. "2" auf einer normalisierten Basis geladen wurde. Globalelement 210 wird durch jeden Impuls aus Generator 110 erhöht. Wenn Element 210 eine "2" registriert, erzeugt Komparator 220 eine logische 1 und Leitung 111 wird durch Inverter 240 Tief erklärt. Alle Globalelemente 210, 1210 und 2210 hören mit Inkrementieren auf. Außerdem wird Prozessor 100 über eine Unterbrechung auf Leitung 221 über das Abschaltsignal in Kenntnis gesetzt und kann zum Beispiel durch Aussenden von Information an die Prozessoren 1100 und 2100 über Bus 101 antworten. Wenn die Kommunikation beendet ist, lädt Prozessor 100 Zustandsänderungsregister 230 mit neuen Zustandsänderungsdaten. Um Referenzgenerator 110 davon abzuhalten, vorzurücken in dem Fall, daß die Prozessoren, die übertragene Zustandsänderungen enpfangen, nicht voll geantwortet haben, d.h. neue Zustandsänderungen berechnet und sie abgeschickt haben, bevor der sendende Prozessor seine nächste Zustandsänderung abschickt, ist ein Verriegelungsmechanismus erforderlich. Verriegelung kann durch ein Kommunikationsprotokoll erzielt werden, das über Bus 101 oder in Schaltungsform durch Speichern von INH Leitung 111 bis alle Nachrichten empfangenden Prozessoren die Information verarbeitet und ihre betreffenden Speicher freigegeben haben, erstellt wird. Komparator 220 erzeugt nun ein Freigabesignal und Globalgenerator 110 setzt wieder ein und erzeugt Impulse auf Leitung 112. Ein voller Deaktivierungs- Reaktivierungszyklus von Inkremental-Zustandsanpassungsnetzwerk 200 ist nun beendet. Der Zyklus ist in dem Sinn inkremental, daß Globalelement 210 durch die Folge von Zustandsanpassungsimpulsen nacheinander vergößert wird. Dies steht im Gegensatz zu einem globalen Laden von Element 210 aus RASA 300, wobei der Inhalt von Element 210 nach dem Laden grundsätzlich unabhängig ist, aber sowohl größer als sein voriger Inhalt als auch die von Generator 110 herrührenden Impulse ist.
  • Der Globalreferenzgenerator 110, ausgiebig vorangehend beschrieben, kann veranschaulichend aus einen Haupttaktgeber und Einrichtungen, wie zum Beispiel einer UND-Schaltung, gebildet sein, der unter Kontrolle des INH-Signals auf Leitung 111 zum Torsteuern des Haupttaktsignals auf Impuls- oder Q-Leitung 112 arbeitet.
  • Das RASA-Netzwerk von SA-Schaltung 50 ist wie folgt zusammengesetzt. Vorschubelement 310 ist ein Schieberegister mit seriellem Eingang und parallelem Ausgang mit, der Reihe nach, seriellem Eingang an DATA-Bus 301 und parallelem Ausgang an Bus 311. Bitzähler 320 ist ein Zähler mit einer Maximalzählung gleich der Bitzahl in Globalelement 210. Wenn zum Beispiel Element 210 32 Bits lang ist, dann ist Zähler 320 ein 5-Bit-Zähler. Puffer 320 ist ein Schieberegister mit parallelem Eingang und seriellem Ausgang, über Bus 332 bzw. Leitung 331. Flip-Flop 340 ist ein J-K Typ, der voreingestellt werden kann. Exclusive-ODER-Schaltung 360, die auf Puffer 330 und die Information auf Bus 301 anspricht, dient als der K-Eingang zu Flip-Flop 340. Die Ausgänge von Puffer 330 und Flip-Flop 340 dienen als Eingänge zu Offen-Kollektor-UND-Gatter 350. Der Ausgang von Gatter 350 ist auch mit DATA-Bus 301 verbunden. Strobeleitung 321 wird durch das Übertragsignal von Bitzähler 320 angesteuert und dieses Signal dient als das Ladesignal für Globalreferenzelement 210 in ISA-Netzwerk 200.
  • Aus der früheren Beschreibung tritt die Verarbeitung einer geplanten Zustandsänderung auf wenn immer INH-Leitung 111 zu Referenzgenerator 110 geltend gemacht wird, d.h. ein Tief auf Leitung 111 vorhanden ist. Da Leitung 111 auch als Eingang zu Vorschubregister 310 und Bitzähler 320 dient, werden beide zurückgesetzt, wenn Leitung 111 zur Geltung kommt. Außerdem hat die Aussage auf Leitung 111 zur Folge, daß Pufferregister 330 über Bus 332 mit dem Inhalt des Zustandsänderungsregisters 230 geladen wird. Schließlich wird Flip-Flop 340 durch das Tief auf Leitung 111 voreingestellt. Der durch das Tief auf Leitung 111 ausgelöste Zustand wird als der Ausgangszustand von RASA-Netzwerk angesehen. Dieser Ausgangszustand muß bei der Zeit hergestellt werden, wenn INH freigegeben ist und Referenzgenerator 110 reaktiviert wird.
  • Wenn Leitung 111 freigegeben wird, d.h. Hoch wird, weil alle Prozessoren 100, 1100 und 2100 neue geplante Zustandsänderungen in ihre betreffenden Zustandsänderungsregister, beispielhaft durch Register 230 dargestellt, laden, dann beginnen Vorschubregister 310, Pufferregister 330 und sowohl Bitzähler 320 als auch Globalreferenzelement 210 synchron Referenzimpulse von Generator 110 über Leitung 112 zu enpfangen. Flip-Flop 340 und Exclusiv-ODER-Gatter 360 steuern die Torsteuerung von Daten aus Puffer 330 auf DATA-Bus 301 auf folgende Art.
  • Da Flip-Flop 340 durch Leitung 101 voreingestellt wurde, sind Daten auf Leitung 331 aus Puffer 330 aufbereitet, um durch UND-Gatter 350 auf Bus 301 zu gelangen. Beliebige andere RASA-Netzwerke 1300 und 2300 können auch gleichzeitig Daten auf Bus 301 legen. Die Offen- Kollektor-Eigenschaften von UND-Gatter 350 erlauben einem Tief Signalpegel, d.h. eine logische 0, zu dominieren und dadurch Bus 301 zu kontrollieren. Folglich wird der Zustand auf dem Bus 301 nur durch ein einzelnes Pufferregister 330, 1330 oder 2330 kontrolliert. Der tatsächliche Zustand auf Bus 301 ist der kleinste Wert, in dem binären Zahlensinn, der von der Mehrzahl von Pufferregistern 330, 1330 2330, die auf Bus 301 zugreifen, übergeben wird. Dies wird für jedes RASA-Netzwerk 300, 1300 oder 2300 auf Grund der Funktion von Gatter 360 (ähnlich für Gatter 1360 oder 2360), das den Zustand von Bus 301 mit dem Ausgang von Puffer 330 (ähnlich für Puffer 1330 oder 2330) vergleicht, sichergestellt. Wenn der Zustand von dem Ausgang abweicht, wird Flip-Flop 350 zurückgesetzt und der Ausgang von Puffer 330 wird durch das Gatter 350 von Bus 301 getrennt. Schließlich wird der "kleinste Wert" Zustand auf Bus 301 sowohl in das Vorschubregister 310 als auch in die anderen Vorschubregister 1310, 2310 geschoben. Dieser Zustand stellt die früheste, nächstgeplante Zustandsänderung dar.
  • Wenn ein Übertragsignal aus Bitzähler 320 vorliegt, wie durch einen Impuls auf Strobeleitung 321 verdeutlicht, werden die Inhalte von Vorschubregister 310 in das Globalreferenzelement 210 geladen, womit der Zyklus der Schnellvorschub-Zustandsanpassung beendet wird. Da alle anderen RASA-Netzerke 1300 und 2300 Strobeleitungen haben, die mit Leitung 321 übereinstimmend sind, werden Globalreferenzelemente 1210 und 2210 ebenfalls mit dem "kleinste Wert" Zustand geladen. Auf diese Weise werden die Inhalte von jedem Globalreferenzelement, beispielhaft durch Element 210 dargestellt, vorwärts übersprungen, ohne auf die Inkremental-Vorschübe warten zu müssen. Da der "kleinste Wert" Bus 301 dominiert, wird Element 210 in geordneter Weise, vom kleinsten Wert zum höchsten Wert der Zustandsänderung, vorwärts übersprungen, wodurch das Ordnen automatisch bewirkt wird.
  • Es sollte auch verstanden werden, daß, wenn eine Zustandsänderung auftritt, d.h. Komparator 220 ein Abschaltsignal ausgibt und ein Schnellvorschubzyklus im Gang ist, der Schnellvorschubzyklus aufgehoben und durch das über Leitung 111 verbreitete Vorrangsignal neu initialisiert wird.
  • Hinsichtlich der obigen Beschreibung sind die Elemente und Einrichtungen, die ISA-Netzwerk 200 und RASA-Netzwerk 300 bilden, gut bekannte Elemente, die leicht erhältlich sind. Die Arbeitsgeschwindigkeiten dieser Elemente und Einrichtungen werden ausgewählt, so daß Referenzgenerator 110 innerhalb eines Referenzsignalintervalls oder Impulsperiode leicht blockiert werden kann.
  • Um die erforderliche zeitliche Festlegung der verschiedenen Komponenten, welche die Absimmungsschaltung 50 bilden, zu veranschaulichen, zeigt Fig. 3 ein Zeitdiagramm, das ein Auftreten eines Inkrementalzyklusses, dem ein Schnellvorschubzyklus folgt, darstellt. In Fig. 3 wird vorausgesetzt, daß die verschiedenen Register 210, 230, 310 und 330 mit 4 Bit, hauptsächlich wegen der Kürze der Darstellung des Zeitdiagramms, aufgebaut sind.
  • Auf Linie (i) von Fig. 3 sind die Referenzimpulse, die von Generator 110 auf Leitung 112 erzeugt werden, dargestellt. Anfangs erscheinen Impulse, da der Zustand von INH-Leitung 111, gezeigt auf Linie (ii), Hoch ist. An einer geeigneten Stelle, dargestellt durch die erste vertikale unterbrochene Linie, wird Leitung 111 Tief wegen einer Anpassung zwischen, sagen wir, Globalreferenzelement 210 und Zustandsänderungsregister 230. Innerhalb eines Zyklusses von Generator 110 treten keine Referenzimpulse mehr aus Leitung 112 aus. Während des DAUER 1 oder D1 markierten Intervalls arbeitet der dem angepaßten Zustand entsprechende Prozessor und kommuniziert, falls erforderlich, über Bus 101 von Fig. 1 mit anderen Prozessoren.
  • An einem bestimmten Punkt in dem Intervall D1 wird Leitung 111 Hoch erklärt. Dies wird durch die Fläche A1 auf Linie (ii) dargestellt. Die Komponenten von Zustandsanpassungsschaltung 50 sind so angeordnet, daß der erste Impuls von Leitung 112 nach der Freigabe von INH- Leitung 111 ein ganzer Impuls ist. Dies ist auf Linie (i) bei der zweiten vertikalen unterbrochenen Linie, die den Abschluß des Inkrementalzyklusses und den Anfang des Schnellvorschubzyklusses abtrennt, dargestellt. Der Schnellvorschubzyklus hat eine Dauer, die als DAUER 2 oder D2 dargestellt ist.
  • Am Anfang von D2 werden zwei Zustandsänderungsregister 230 und 1230 mit Binärdaten 1001 bzw. 1010 zum Zweck der Veranschaulichung geladen. In Dezimalform haben die nächsten geplanten Zustandsänderungen nach "9" bzw. "10" Impulsen aus dem Generator 110 aufzutreten. Da Zähler 320 ein 2-Bit-Zähler ist, wird ein Übertrag bei der Vorderflanke des fünften Impulses auftreten. Das Übertrag-Strobesignal ist auf Linie (vi) von Fig. 3 gezeigt.
  • Vor dem Strobe wird jedoch der Zustand von Bus 301 auf einer dynamischen Basis mit jedem auftretenden Taktimpuls bestimmt. Der Zustand von Bus 301 ist auf Linie (v) dargestellt und repräsentiert, wie zuvor beschrieben, den im binären Sinn kleinsten Wert, der von den verschiedenen Zustandsänderungsregistern 230, 1230 usw. gespeichert ist. Linien (iii) bzw. (iv) zeigen die Inhalte der Register 1230 und 230 für das veranschaulichende Zeitdigramm, wenn die Inhalte seriell aus den entsprechenden Pufferregistern 1330 bzw. 330 herausgeschoben werden. Wie dargestellt, bestimmt der Inhalt von Register 230 den Zustand von Bus 301.
  • Sobald ein Strobesignal an 321 auftritt, werden Referenzregister 210, 1210 usw. mit der Zustandsänderung geladen, die dem minimalen Bus- Zustand entspricht, der in diesem Fall die in Register 230 gespeicherte binäre 1001 ist. Sobald geladen, stellt Komparator 220 fest, daß ein Gleichheitszustand aufgetreten ist, und INH-Leitung 111 wird Tief erklärt. Dies ist auf Linie (ii) als an der Vorderflanke des fünften Generatorimpulses auftretend dargestellt. Folglich wurde Globalelement 210 vorwärts von "4" nach "9" auf einer normalisierten Basis übersprungen. Ähnlich enthalten andere Globalreferenzelemente nunmehr einen normalisierten Wert von "9".
  • Der Schnellvorschubzyklus ist beendet, nachdem alle Prozessoren ihre nächstgeplanten Zustandsänderungen abgeschickt haben und nachdem sie INH-Leitung 111 freigeben. Dies ist durch Fläche A2 auf Linie (ii) bezeichnet. Der nächste unmittelbare volle Taktimpuls beschneidet DAUER 2 und Schaltung 50 ist nunmehr bereit für den nächsten Zyklus.
  • Es soll verstanden werden, daß die oben ausgewiesenen Anordnungen schlicht der Veranschaulichung der erfindungsgemäßen Anwendung der Prinzipien, wie beansprucht, dienen. Da jeder Bitzähler 320, 1320 oder 2320 eine gleichartige Funktion ausführt, ist es so zum Beispiel möglich, System 20 mit nur einem, mit Referenzgenerator 110 gekoppelten Bitzähler zu gestalten und eine Signalstrobeleitung von dem einzelnen Bitzähler an alle Globalelemente 210, 1210 und 2210 zu führen.
  • Während Zustandsänderungsregister 230, 1230 und 2230 veranschaulichend als nur die nächste unmittelbar geplante Zustandsänderung speichernd beschrieben wurden, ist es auch möglich, jedes dieser Zustandsänderungsregister einzurichten, um eine Vielzahl geordneter Zustandsänderungen zu speichern, die, zum Beispiel durch bewegen eines Zeigers unter Kontrolle einer geeigneten Speicheradressierungseinrichtung, ausgewählt werden.
  • Obwohl die Beschreibung der veranschaulichenden Ausführung lehrte, daß Referenzgenerator 110 das Element war, das durch die verdrahtete ODER-Leitung 111 blockiert wird, kann es außerdem auch möglich sein, einen freilaufenden Generator vorzusehen und INH Leitung 111 einzurichten, um Registrierung von Referenzsignalen in jedem globalen Element 210, 1210 und 2210 zu blockieren.
  • Daher ist es ferner zu verstehen, daß die hierin beschriebene Schaltungsanordnung und Methodik nicht auf die zum Zweck der Erläuterung offengelegten spezifischen Formen beschränkt ist, sondern andere Ausführungen annehmen kann, die nur durch den Umfang der anliegenden Ansprüche begrenzt sind.

Claims (12)

1. Schaltungsanordnung (50, 1050, 2050, 110) in einem Mehrprozessorsystem (20) zum Anpassen der Verarbeitungszustände von durch einen gemeinsamen Übertragungskanal (101) miteinander verbundenen autonomen Prozessoren (100, 1100, 2100) und mit einer Einrichtung (110) zum Generieren aufeinanderfolgender Bezugssignale, die genannte Schaltungsanordnung GEKENNZEICHNET durch
- eine auf die Prozessoren ansprechende Einrichtung (z.B. 230) zum Speichern von Größen, welche die von jedem der zugehörigen Prozessoren geplanten nächsten Verarbeitungszustände anzeigen, und
- mit der Generier- und der Speichereinrichtung verbundene Einrichtungen (z.B. 210, 220, 240, 111) zum Vergleichen der Anzahl der genannten generierten Bezugssignale mit den genannten Größen und zum Blockieren der Generierungseinrichtung, wenn die genannte Anzahl mit einer der genannten Größen äquivalent ist.
2. Schaltungsanordnung nach Anspruch 1, ferner mit einer mit der Speichereinrichtung verbundenen Einrichtung (300) zum Vergrößern der genannten Anzahl generierter Signale um einen Wert, der dem nach Ablauf einer vorbestimmten Anzahl der genannten aufeinanderfolgenden Bezugssignale frühesten der genannten nächsten Verarbeitungszustände entspricht.
3. Schaltungsanordnung nach Anspruch 1, bei der die genannte Speichereinrichtung ferner eine mit dem zugehörigen Prozessor (100) verbundene Einrichtung (230) zum Speichern einer der genannten Größen aufweist, die das nächste vom genannten zugehörigen Prozessor geplante Ereignis anzeigt, und bei der die Vergleichs- und Blockiereinrichtung ferner in Verbindung mit jedem der genannten Prozessoren aufweist:
- eine auf die genannte Generiereinrichtung ansprechende Einrichtung (210) zum Registerspeichern der genannten Bezugssignale,
- eine mit der genannten Speichereinrichtung und der genannten Registerspeichereinrichtung verbundene Einrichtung (220) zum Vergleichen der Inhalte der genannten Speichereinrichtung mit den Inhalten der genannten Registerspeichereinrichtung, derart, daß ein Vergleichssignal (Leitung 221) abgebbar ist, wenn die genannten Inhalte äquivalent sind, und
- eine mit der genannten Vergleichseinrichtung verbundene Einrichtung (240, 111) zum Blockieren der genannten Generiereinrichtung, wenn das genannte Vergleichssignal anliegt, und zum Benachrichtigen des zugehörigen Prozessors bei Feststellung des genannten Vergleichssignals.
4. Schaltungsanordnung nach Anspruch 3, bei der die genannte Benachrichtungseinrichtung eine Einrichtung zum Benachrichtigen (Bus 101) aller übrigen Prozessoren (1100, 2100) bei Feststellung des genannten Vergleichssignals umfaßt.
5. Schaltungsanordnung nach Anspruch 3, bei der die genannte Schaltungsanordnung ferner umfaßt eine mit der Vielzahl je der genannten Speicher- und Registerspeichereinrichtungen verbundene Einrichtung (z.B. 300) zum Laden der Inhalte der niedrigstwertigen Größe aus den genannten Speichereinrichtungen in jede der genannten Registerspeichereinrichtungen, wenn das Vergleichssignal von keiner der genannten Vergleichseinrichtungen vor einer vorgewählten Anzahl der genannten Bezugssignale generiert wird.
6. Schaltungsanordnung nach Anspruch 3, ferner mit einer mit jedem der genannten Prozessoren verbundene Schnellsprung- Einrichtung (300) und einem die Vielzahl der genannten Schnellsprung-Einrichtungen verbindenden Datenbus (301).
7. Schaltungsanordnung nach Anspruch 6, bei der die genannte Schnellsprung-Einrichtung ferner aufweist:
- eine auf die genannte Generiereinrichtung ansprechende Einrichtung (320) zum Bereitstellen eines Übernahmesignals nach einer vorbestimmten Anzahl der genannten Bezugssignale,
- eine mit der genannten Speichereinrichtung verbundene Einrichtung (330) zum Empfangen der Inhalte der genannten Speichereinrichtung nach dem Erlöschen des genannten Vergleichssignals,
- eine zwischen der genannten Empfangseinrichtung und dem genannten Datenbus zwischengeschaltete Einrichtung (340, 350, 360) zum seriellen Abgeben der Inhalte der genannten Empfangseinrichtung mit einer den Bezugssignalen entsprechenden Geschwindigkeit auf den genannten Datenbus, bis eine Nichtübereinstimmung zwischen den genannten Inhalten der genannten Empfangseinrichtung und den Daten auf dem genannten Datenbus auftritt,
- eine mit der genannten Registerspeichereinrichtung verbundene Einrichtung (310) zum Sichern der auf dem genannten Datenbus erzeugten Daten und zum anschließenden Laden der Inhalte der genannten Sicherungseinrichtung in die genannte Registerspeichereinrichtung, wenn das Übernahmesignal erzeugt wird, und
- eine Einrichtung zum Reinitialisieren jeder der genannten Schnellsprung-Einrichtungen, wenn das Vergleichssignal vor dem Auftreten des Übernahmesignals erzeugt wird.
8. Schaltungsanordnung nach Anspruch 1, bei der die genannte Einrichtung zum Generieren aufeinanderfolgender Bezugssignale torgesteuerte Taktsignale erzeugt, bei der die genannte Speichereinrichtung ferner eine mit ihrem zugehtirigen Prozessor (100) verbundene Einrichtung (230) zum Speichern des Zeitpunktes des vom genannten zugehörigen Prozessor geplanten nächsten Ereignisses aufweist, und bei der die genannte Vergleichs- und Blockiereinrichtung ferner in Verbindung mit jedem der Prozessoren aufweist:
- eine auf die genannte Generiereinrichtung ansprechende Einrichtung (210) zum Registerspeichern der genannten Taktsignale,
- eine mit der genannten Speichereinrichtung und der genannten Registerspeichereinrichtung verbundene Einrichtung (220) zum Erzeugen eines Sperrsignals, wenn die Inhalte der genannten Speicher- und Registerspeichereinrichtungen gleich sind, und zum Erzeugen eines Freigabesignals in den anderen Fällen, und
- eine mit der genannten Generiereinrichtung und der genannten Erzeugereinrichtung verbundene Einrichtung (240, 221, 101) zum Blockieren der Generiereinrichtung und zum Benachrichtigen aller Prozessoren abhängig vom Sperrsignal und zum Freigeben der genannten Generiereinrichtung abhängig vom genannten Freigabesignal.
9. Schaltungsanordnung nach Anspruch 8, die in Verbindung mit jedem der Prozessoren eine Schnellsprung-Einrichtung (300) und einen jede der genannten Schnellsprung-Einrichtungen anbindenden Datenbus (301) aufweist.
10. Schaltungsanordnung nach Anspruch 9, bei der die genannte Schnellsprung-Einrichtung ferner aufweist:
- eine auf die genannte Generiereinrichtung ansprechende Zähleinrichtung (320) zum Bereitstellen eines Übernahmesignals nach einer vorgewählten Anzahl der genannten Taktsignale,
- eine mit der genannten Speichereinrichtung verbundene Zwischenspeichereinrichtung (330) zum Empfangen der Inhalte der genannten Speichereinrichtung in einem Parallelbetrieb, wenn das Übernahmesignal erzeugt wird,
- eine zwischen der genannten Zwischenspeichereinrichtung und dem genannten Datenbus zwischengeschaltete Einrichtung zum Bestimmen eines Niedrigstwertes zum seriellen Übertragen, mit der Geschwindigkeit der genannten Taktsignale, der Inhalte der genannten Zwischenspeichereinrichtung über den genannten Datenbus, bis zwischen den genannten Inhalten der genannten Zwischenspeichereinrichtung und den Daten auf dem genannten Datenbus eine Nichtübereinstimmung auftritt,
- einen mit der genannten Registerspeichereinrichtung verbundenen Vorregisterspeicher (310) zum Sichern der vom genannten Datenbus generierten Daten und zum anschließenden Parallelladen der Inhalte des genannten Vorregisterspeichers in die genannte Registerspeichereinrichtung, wenn das genannte Übernahmesignal erscheint, und
- eine mit dem genannten Vorregisterspeicher, der genannten Zähleinrichtung, der genannten Zwischenspeichereinrichtung und der genannten Bestimmungseinrichtung verbundene Einrichtung (111) zum Rücksetzen jeder der Schnellsprung-Einrichtungen, wenn das genannte Sperrsignal von einer der genannten Erzeugereinrichtungen vor dem Erscheinen des genannten Übernahmesignals festgestellt wird.
11. Verfahren zum Anpassen der Verarbeitungszustände von über einen gemeinsamen Bus miteinander in Verbindung stehenden autonomen Prozessoren in einem Mehrprozessorsystem und mit dem Arbeitsschritt der Generierung einer Reihe von Bezugsimpulsen, das Verfahren GEKENNZEICHNET DURCH DIE ARBEITSCHRITTE:
- Speichern von Größen, welche die von jedem der zugehörigen Prozessoren geplanten nächsten Ereignisse anzeigen,
- Vergleichen der Anzahl generierter Impulse mit den genannten Größen, und
- Blockieren des Generierschrittes, wenn die genannte Anzahl Impulse einer der genannten Größen äquivalent ist, wobei der genannte Blockierschritt auftritt, bis der Prozessor, der diese eine von den genannten Größen bereitstellt, einen neuen nächsten Verarbeitungszustand speichert.
12. Verfahren nach Anspruch 11, ferner umfassend das Vergrößern der genannten Anzahl Impulse um einen Wert, der dem nach Ablauf einer vorbestimmten Anzahl der genannten Impulse frühesten der genannten nächsten Verarbeitungszustände entspricht.
DE8787906856T 1986-12-23 1987-07-23 Zustandsanpassung fuer parallele verarbeitung. Expired - Fee Related DE3782343T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/945,489 US4833638A (en) 1986-12-23 1986-12-23 Parallel processing state alignment
PCT/US1987/001750 WO1988004810A1 (en) 1986-12-23 1987-07-23 Parallel processing state alignment

Publications (2)

Publication Number Publication Date
DE3782343D1 DE3782343D1 (de) 1992-11-26
DE3782343T2 true DE3782343T2 (de) 1993-04-15

Family

ID=25483169

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8787906856T Expired - Fee Related DE3782343T2 (de) 1986-12-23 1987-07-23 Zustandsanpassung fuer parallele verarbeitung.

Country Status (6)

Country Link
US (1) US4833638A (de)
EP (1) EP0337993B1 (de)
JP (1) JPH02500306A (de)
CA (1) CA1274020A (de)
DE (1) DE3782343T2 (de)
WO (1) WO1988004810A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222237A (en) * 1988-02-02 1993-06-22 Thinking Machines Corporation Apparatus for aligning the operation of a plurality of processors
US5313620A (en) * 1989-04-06 1994-05-17 Bell Communications Research, Inc. Selective receiver for each processor in a multiple processor system
EP0403229A1 (de) * 1989-06-13 1990-12-19 Digital Equipment Corporation Verfahren und Vorrichtung zur Aufgabenablaufplanung in wiederholten Iterationen in einem digitalen Datenverarbeitungssystem mit mehreren Prozessoren
US5261099A (en) * 1989-08-24 1993-11-09 International Business Machines Corp. Synchronous communications scheduler allowing transient computing overloads using a request buffer
US5434981A (en) * 1989-09-28 1995-07-18 Rockwell International Corporation Functionally programmable PCM data analyzer and transmitter for use in telecommunication equipment
US5210836A (en) * 1989-10-13 1993-05-11 Texas Instruments Incorporated Instruction generator architecture for a video signal processor controller
US5367678A (en) * 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
US5434995A (en) * 1993-12-10 1995-07-18 Cray Research, Inc. Barrier synchronization for distributed memory massively parallel processing systems
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
US6757847B1 (en) * 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5913763B2 (ja) * 1979-02-16 1984-03-31 富士電機株式会社 バス使用制御方法及び装置
US4392196A (en) * 1980-08-11 1983-07-05 Harris Corporation Multi-processor time alignment control system
JPS5837725A (ja) * 1981-08-31 1983-03-05 Toshiba Corp バスライン占有制御方式
EP0131658B1 (de) * 1983-07-08 1987-10-28 International Business Machines Corporation Synchronisationsvorrichtung für ein Multiprocessing-System

Also Published As

Publication number Publication date
EP0337993B1 (de) 1992-10-21
US4833638A (en) 1989-05-23
DE3782343D1 (de) 1992-11-26
EP0337993A1 (de) 1989-10-25
JPH02500306A (ja) 1990-02-01
WO1988004810A1 (en) 1988-06-30
CA1274020A (en) 1990-09-11

Similar Documents

Publication Publication Date Title
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE69120586T2 (de) Rechnersystem mit synchronem Bus
DE3818546C2 (de)
DE2155159B2 (de) Anordnung zum synchronisieren der rechner in einem mehrrechnersystem
DE2717311C3 (de) Datenprozessor
DE3782343T2 (de) Zustandsanpassung fuer parallele verarbeitung.
DE68922984T2 (de) Programmierbare Zeitsteuerung der Datenübertragung.
DE3236302A1 (de) Speicherprogrammierbare steuerung
DE2719531B2 (de) Digitale Logikschaltung zur Synchronisierung der Datenübertragung zwischen asynchrongesteuerten Datensystemen
DE2223196C3 (de) Verfahren und Anordnung zur Impulsbreitensteuerung
DE69216338T2 (de) Schnittstellenschaltung zur Datenübertragung
DE4005042A1 (de) Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit
DE2225462A1 (de) Verfahren und Einrichtung zur Mittelwertbildung der von einem Vorwärts-Rückwärtssignalgeber her anliegenden Signale
DE69031361T2 (de) Taktsignalgeneratorsystem
EP0201634B1 (de) Digitaler Wortgenerator zur automatischen Erzeugung periodischer Dauerzeichen aus n-bit-Wörtern aller Wortgewichte und deren Permutationen
DE3018509C2 (de) Schieberegister
DE68903280T2 (de) Vektorschlange in computern mit vektorregister.
DE69131454T2 (de) Datenprozessor zur Impulssignalerzeugung als Antwort auf externes Taktsignal
DE1119567B (de) Geraet zur Speicherung von Informationen
DE69524837T2 (de) Asynchrone Speicheranordnung mit seriellem Zugriff und entsprechendes Speicher- und Leseverfahren
DE2633155A1 (de) Einrichtung zur erzeugung zeitdefinierter steuersignale
DE60100450T2 (de) Multiprozessorschnittstelle
DE3123379C2 (de)
DE69229576T2 (de) Unterbrechungsschaltung für den Gebrauch mit einer zentralen Verarbeitungseinheit
DE4025831A1 (de) Pufferspeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee