DE3750680T2 - Multiprozessor-Busprotokoll. - Google Patents

Multiprozessor-Busprotokoll.

Info

Publication number
DE3750680T2
DE3750680T2 DE3750680T DE3750680T DE3750680T2 DE 3750680 T2 DE3750680 T2 DE 3750680T2 DE 3750680 T DE3750680 T DE 3750680T DE 3750680 T DE3750680 T DE 3750680T DE 3750680 T2 DE3750680 T2 DE 3750680T2
Authority
DE
Germany
Prior art keywords
bus
processor
transmit
receive
ready
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
DE3750680T
Other languages
English (en)
Other versions
DE3750680D1 (de
Inventor
David J Lilja
Steven W Wierenga
Richard A Zacher
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Application granted granted Critical
Publication of DE3750680D1 publication Critical patent/DE3750680D1/de
Publication of DE3750680T2 publication Critical patent/DE3750680T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)

Description

  • Das vorliegende System betrifft allgemein die Kommunikation zwischen digitalen Prozessoren in einem Mehrprozessor-Computersystem und insbesondere ein Protokoll für einen Mehrprozessor-Bus.
  • Viele digitale Computersysteme benutzen eine Mehrzahl von unabhängigen Prozessoren zur Durchführung von Rechenoperationen. Beispiele sind unter anderem fehlertolerante, modulare und parallele Verarbeitungssysteme. Diese unabhängigen Prozessoren müssen zur Durchführung von Systemoperationen von Zeit zu Zeit Daten austauschen.
  • Daten werden zwischen Prozessoren typischerweise auf einem Bus ausgetauscht. Das Protokoll des Mehrprozessorsystems steuert den Zugriff auf den Bus durch Prozessoren, vereinfacht die Bildung eines Sender/Empfänger-Prozessorpaares und erzeugt eine Synchronisierungsreferenz für die Übertragung von Daten von dem Sender zum Bus und vom Bus zum Empfänger.
  • Bei vielen exisitierenden Systemen ist ein spezieller Bus-Controller mit dem Bus verbunden und fragt die Prozessoren ab, um zu ermitteln, welche Prozessoren zum Senden von Daten bereit sind. Die Sender-Abfragesequenz wird durch einen Prozessor eingeleitet, der sendebereit ist und den Bus-Controller auf einer allen Prozessoren gemeinsamen speziellen Leitung ansteuert.
  • Der Bus-Controller ermittelt, welche Prozessoren sendebereit sind, indem er die Prozessoren auf speziellen Ansteuerungsleitungen abfragt.
  • In einem Beispiel eines Mehrprozessor-Busprotokolls, das in dem US-Patent Nr. 4,228,496 von Katzman et al. offenbart ist, beginnt der Bus-Controller dann mit einem Datenaustausch, indem er den Sender aktiviert. Diese Aktivierung erfolgt über die individuelle Ansteuerungsleitung zum Sender. Der Sender bestätigt dann gegebenenfalls die Sendebereitschaft. Der Bus-Controller aktiviert den Empfänger über die individuelle Ansteuerungsleitung zum Empfänger. Wenn der Empfänger bereit zum Empfangen von Daten ist, dann signalisiert er dies dem Bus-Controller mit einem Bestätigungssignal.
  • In dem System von Katzman wird die Übertragung über den Bus durch den Systemtakt synchronisiert. Dieses Taktsignal wird über individuelle Taktleitungen zu jedem Prozessor gespeist. Alle diese Leitungen haben dieselbe Länge, so daß die Taktsignal-Ankunftszeiten bei jedem Prozessor nicht versetzt sind.
  • Die Dauer des Systemtaktsignals muß lang genug sein, um den Lauf eines Signals zwischen an entgegengesetzten Enden des Busses positionierten Prozessoren und die Ausregelzeiten für den Bus zu ermöglichen. Demgemäß wird die maximale Datenübertragungsrate durch die Länge des Busses bestimmt.
  • Ein Hauptziel jedes Mehrprozessor-Busprotokolls ist es, eine hohe Datenübertragungsrate zwischen Prozessoren über den Bus zu ermöglichen. Mehrere Aspekte existierender Protokollsysteme verhindern die Erzielung hoher Datenübertragungsraten. Erstens entsteht durch die Notwendigkeit, eine Senderanforderung vor einer Abfrage zu generieren, eine Senderbestätigung zu übertragen und die Bestätigung vor einer Übertragung zu empfangen, Busgesamtzeit. Zweitens erfordert das synchrone Übertragungssystem, daß Daten auf dem gesamten Bus gültig sein müssen, bevor sie zu einem Empfänger übertragen werden, weil sich der Empfänger an einer beliebigen Stelle auf dem Bus befinden kann. Somit wird die maximale Datenübertragungsrate durch die Laufzeitverzögerung von Signalen bestimmt, die über die Länge des Busses laufen.
  • Außerdem erfordert die Notwendigkeit, separate Taktleitungen gleicher Länge und individuelle Ansteuerungsleitungen zu jedem Prozessor bereitzustellen, eine große Zahl von Adern zur Bildung des Busses, wodurch die Herstellungskomplexität erhöht und die Bushardware verteuert wird.
  • Die vorliegende Erfindung ist ein Busprotokollsystem, das die Prozessoren in einem kontinuierlichen geöffneten Schleifenablauf abfragt, um sendebereite Prozessoren zu identifizieren und die bereiten Prozessoren nacheinander als Sendeprozessoren zu wählen. Das Bussystem benutzt nur Busleitungen, die allen Prozessoren gemeinsam sind. Es werden keine radialen Leitungen benutzt. Somit werden weniger Busleitungen benutzt als bei existierenden Systemen, wodurch die Kosten und Komplexität der Herstellung verringert und die Zuverlässigkeit erhöht werden.
  • Gemäß einem Aspekt der Erfindung wird ein asynchrones Synchronisierungssystem verwendet, um ein Paket von Worten zwischen einem Sendeprozessor und einem Empfangsprozessor zu übertragen. Die Wörter in einem Paket werden von dem Sendeprozessor durch Impulse in einem Sendesignal auf den Bus getastet und durch Impulse in einem Empfangssignal in den Empfangsprozessor geladen. Das Empfangssignal wird von dem Sendesignal am Sendeprozessor durch Verzögern des Sendesignals um die Verzögerung DR abgeleitet.
  • Gemäß einem weiteren Aspekt der Erfindung fragt ein Bus-Controller gleichzeitig alle Prozessoren durch Aufdrücken eines Abfragesignals auf einem Steuerbus ab, um zu ermitteln, welche Prozessoren sendebereit sind. Ein sendebereiter Prozessor drückt ein Bereitschaftssignal auf eine diesem Prozessor zugewiesene eindeutige Busleitung auf. Die aufgedrückten Bereitschaftssignale auf den eindeutigen Busleitungen bilden eine Sendemaske.
  • Gemäß einem weiteren Aspekt der Erfindung empfängt der Bus-Controller die Sendemaske, identifiziert die sendebereiten Prozessoren und wählt nacheinander jeden der bereiten Prozessoren als Sendeprozessoren aus. Der Bus- Controller geht von der Annahme aus, daß alle bereiten Prozessoren nach dem Wahl bereit sind, ein Paket zu senden. Somit leitet der Bus-Controller nach dem Auswählen eines bestimmten bereiten Prozessors als Sendeprozessor automatisch einen kompletten Datenübertragungszyklus ein, um den gewählten Prozessor zur Übertragung eines kompletten Pakets zu dem Bus zu aktivieren.
  • Nach einem weiteren Aspekt der Erfindung generiert der gewählte bereite Prozessor ein negatives Bestätigungssignal, um anzuzeigen, daß der gewählte Prozessor beim Auswählen nicht bereit ist. Dieses negative Bestätigungssignal wird zu dem Bus-Controller übertragen. Der Bus-Controller bricht nach Empfang eines negativen Bestätigungssignals den Datenübertragungszyklus für diesen Prozessor ab und wählt einen anderen der bereiten Prozessoren als Sendeprozessor aus.
  • Nach einem weiteren Aspekt der Erfindung fragt der Bus-Controller die Prozessoren nochmals ab, nachdem alle auf die vorhergehenden Abfragen reagierenden Prozessoren ausgewählt wurden. Dieser Abfrage- und Auswahlprozeß findet in einem offenen Schleifenverfahren statt.
  • Das oben beschriebene Abfragesystem ist effizienter als existierende Systeme, da die Abfrage automatisch abläuft, ohne daß positive Anforderungen für den Zugriff von den Prozessoren erforderlich wären, und weil Auswahl und Aktivierung automatisch ablaufen, ohne daß eine positive Bereitschaftsbestätigung von den Prozessoren erforderlich wäre. Die automatische Abfolge wird nur dann unterbrochen, wenn ein negatives Bestätigungssignal bei dem Bus-Controller eingeht, daß ein gewählter Prozessor nicht sendebereit ist.
  • Gemäß einem weiteren Aspekt der Erfindung wählt ein gewählter, sendebereiter Prozessor einen anderen Prozessor zum Empfangen seines Datenpakets aus. Dieses Paket wird automatisch an den gewählten Empfangsprozessor gesendet, es sei denn, daß der gewählte Empfänger anzeigt, daß er nicht zum Empfang des Pakets bereit ist. Auch hier wird, da keine Notwendigkeit für ein positives Bereitschafts- Bestätigungssignal besteht, die Datenübertragungsrate erhöht.
  • Nach einem weiteren Aspekt der Erfindung wird die oben beschriebene Verzögerung DR so gesteuert, daß ihre Dauer etwa gleich der Hälfte der Dauer des Sendesignals ist. Somit stimmen am Sendeprozessor die Datensignale und die Sendeimpulse miteinander überein und die Empfangsimpulse liegen in der Mitte zwischen den Sendeimpulsen.
  • Nach einem weiteren Aspekt der Erfindung wird die Dauer des Sendesignals so gesteuert, daß sie etwa gleich der Summe des Buszeitabstandes und der Zeittoleranz am Empfängerprozessor ist. Existierende synchrone Bussysteme sind darauf beschränkt, ein Sendesignal mit einer Dauer zu benutzen, die etwa gleich der Summe der Buslaufzeit und der Zeittoleranz am Empfänger ist. Demgemäß ist die Dauer des Sendesignals kleiner und die Datenübertragung kürzer bei dem vorliegenden System als bei bekannten Systemen, weil der Buszeitabstand geringer ist als die Buslaufzeit.
  • Die Erfindung wird nachfolgend, jedoch nur beispielhaft, unter Bezugnahme auf die Begleitzeichnungen näher erläutert. Dabei zeigt:
  • Fig. 1 ein schematisches Diagramm eines Mehrprozessor- Bussystems;
  • Fig. 2 ein schematisches Diagramm eines Bus-Controllers;
  • Fig. 3 ein schematisches Diagramm des gemeinsamen EIN-Warteschlangenabschnitts der Interprozessor-Steuerung;
  • Fig. 4A ein schematisches Diagramm des gemeinsamen AUS-Warteschlangenabschnittes der Interprozessor-Steuerung;
  • Fig. 4B ein schematisches Diagramm der Logik für die AUS-Warteschlangenadressierung;
  • Fig. 4C ein schematisches Diagramm der physischen Schaltung für die AUS-Warteschlangenadressierung;
  • Fig. 5 ein Zustandsdiagramm, das den Betrieb des Bus- Controllers veranschaulicht;
  • Fig. 6 ein Zustandsdiagramm, das den Betrieb des EIN-Warteschlangenabschnitts veranschaulicht; Fig. 6 zeigt das Zustandsübergangsdiagramm für die Empfangszustandsmaschine;
  • Fig. 7 ist ein Zustandsdiagramm, das den Betrieb des AUS-Warteschlangenabschnitts veranschaulicht;
  • Fig. 8A ist ein Synchronisierungsdiagramm, das die Signalübergänge auf dem E-Bus, dem D-Bus, der Empfangsbefehlsleitung und der NAK-Leitung beschreibt;
  • Fig. 8B ist ein schematisches Diagramm der Sendemaske;
  • Fig. 8C ist ein schematisches Diagramm des Wortes 00 eines Pakets;
  • Fig. 9 ist ein Synchronisierungsdiagramm, das die verschiedenen Taktsignale und Datenübergänge beschreibt;
  • Fig. 10 ist ein Synchronisierungsdiagramm, das die relativen Positionen des RCLK und eines Datenwortes bei einem Empfänger beschreibt.
  • Fig. 1 ist ein schematisches Diagramm eines Mehrprozessor-Bussystems. In Fig. 1 beinhaltet das Mikroprozessorsystem 31 individuelle Prozessormodule 33.
  • Jedes Prozessormodul 33 umfaßt eine zentrale Prozessoreinheit 105, einen Speicher 107 und eine Interprozessor-Steuerung 55. Die individuellen Prozessormodule 33 sind durch Interprozessor-Busse 35 für Interprozessor- Kommunikationen verbunden. In der spezifischen Ausgestaltung des Mehrprozessorsystems 31 sind bis zu sechzehn Prozessormodule 33 durch zwei Interprozessor-Busse 35 (angedeutet als X-Bus und als Y-Bus in Fig. 1) miteinander verknüpft.
  • Jedem Interprozessor-Bus 35 ist ein Bus-Controller 37 zugeordnet.
  • Die Zentraleinheit (CPU) 105 jedes Prozessors 33 beinhaltet einen Host-Prozessor 113 und ein zugehöriges Mikroprogramm 115. Die Bus-Controller 37, die
  • Interprozessor-Busse 35 und die Interprozessor-Steuerungen 55 zusammen mit zugehörigen Host-Prozessoren 113 und Mikroprogrammen 115 bilden ein Interprozessor-Bussystem. Aufbau und Betrieb dieses Systems werden nachfolgend ausführlicher beschrieben.
  • Die über den Bus übertragenen Informationen werden in Mehrwortpaketen übertragen. In einer bevorzugten Form der vorliegenden Erfindung ist jedes Paket ein Sechzehn-Wörter- Paket, bei dem fünfzehn der Wörter Datenwörter sind.
  • Die Steuerlogik in dem Bus-Controller 37 und den Interprozessor-Steuerungen 55 der einzelnen Module 33 folgen einem detaillierten Protokoll. Das Protokoll gewährleistet die Zusammenstellung eines Sender-Empfänger- Paares und eines Zeitraumes für die Datenpaketübertragung.
  • Der X-Bus 35 ist in seiner Struktur mit dem Y-Bus 35 identisch, daher wird nur die Struktur eines Busses ausführlich beschrieben. Wie in Fig. 1 dargestellt, umfaßt jeder Bus 35 sechzehn individuelle Bus-Datenleitungen 57, drei codierte Steuerleitungen plus einer Paritätsleitung (dem EBUS) 59, einer Empfangsbefehlsleitung 62 (RCVCMD), einer NAK-Leitung 64 und zwei Taktleitungen (SCLK 66 und RCLK 68).
  • Ebenfalls wie in Fig. 1 dargestellt, beinhaltet die Interprozessor-Steuerung 55 jedes Prozessormoduls 33 zwei EIN-Warteschlangenabschnitte 65 (als ein EIN-Warteschlangenabschnitt X und ein EIN-Warteschlangenabschnitt Y dargestellt) sowie einen gemeinsamen AUS-Warteschlangenabschnitt 67.
  • In Fig. 1 hat jeder EIN-Warteschlangenabschnitt 65 mit dem Datenbus 59, der RCLK-Leitung 68, RCVCMD, gekoppelte Eingänge, und einen Ausgang, der mit der NAK-Leitung 66 des entsprechenden Interprozessor-Busses 35 verbunden ist. Der gemeinsame AUS-Warteschlangenabschnitt 67 hat Ausgänge, die mit den Datenbussen 57, der NAK-Leitung 64, der RCLK-Leitung 68 und der Empfangsbefehlsleitung 62 gekoppelt sind, und Eingänge, die mit dem EBUS 57, dem DBUS 57, der NAK-Leitung 64 und der SCLK-Leitung 66 der entsprechenden Busse gekoppelt sind.
  • Alle Leitungen in den Datenbussen sind allen Prozessormodulen 33 gemeinsam. Es gibt keine radialen Leitungen, d. h. spezielle Leitungen von dem Bus-Controller 37 zu einem einzelnen Prozessormodul 33. Durch die Abwesenheit von radialen Leitungen wird elektrisches Rauschen verringert, die Zuverlässigkeit des Systems wird erhöht und die Systemkosten werden reduziert.
  • Fig. 2 ist ein schematisches Diagramm eines Bus- Controllers 37. In Fig. 2 umfaßt der Bus-Controller 37 eine Bus-Controller-Zustandsmaschine 70, einen Oszillator 72, der mit den Takteingängen der Bus-Controller- Zustandsmaschine 70, dem Takteingang eines Bus-Controller- Vektorregisters 74 und über ein Bus-Controller- Verzögerungselement 76 mit der SCLK-Leitung 66 gekoppelt ist. Der Ausgang des Vektorregisters 74 ist mit den Datensteuerleitungen 57 und 59 über einen Ausgangstransceiver 78 gekoppelt. Die Eingänge der Bus- Controller-Zustandsmaschine 70 sind mit den Daten- und Steuerleitungen 57 und 59 über einen Eingangstransceiver 80 gekoppelt.
  • Fig. 3 ist ein schematisches Diagramm des gemeinsamen EIN-Warteschlangenabschnitts 65 der Interprozessor- Steuerung 55. In Fig. 3 führt ein EIN-Warteschlangenpuffer 90 eine Speicherfunktion durch. Ein Dateneingang des EIN-Warteschlangenpuffers 90 ist über ein EIN-Warteschlangen- Vektorregister 92 mit dem D-Bus 57 gekoppelt. Ein Datenausgang des EIN-Warteschlangenpuffers 90 ist mit einem SM_SJ-Bus 94 gekoppelt, der Daten zwischen dem EIN-Warteschlangenpuffer 90 und dem Hauptspeicher 107 eines Prozessormoduls 33 überträgt.
  • Der EIN-Warteschlangenabschnitt beinhaltet eine Empfangszustands-Logikmaschine 96 und eine CPU-Steuerzustands-Logikmaschine 98. Die Empfangsmaschine 96 hat einen Takteingang, der mit der RCLK-Leitung 68 gekoppelt ist, und die CPU-Logikmaschine 98 hat einen Takteingang, der mit dem CPU-Takt gekoppelt ist.
  • Die Zentraleinheit 105 arbeitet mit einem anderen Takt als dem interprozessor-Bustakt. Während des Füllens einer AUS-Warteschlange oder des Leerens einer EIN-Warteschlange in der Interprozessor-Steuerung 55 durch die Zentraleinheit erfolgt der Betrieb mit der Taktrate der Zentraleinheit. Die Übertragung von Paketen über den Interprozessor-Bus erfolgt jedoch stets mit der Bustaktrate. Bei dem vorliegenden System gibt es zwei Bustakte, den SCLK und den RCLK. Sowohl SCLK als auch RCLK werden mit derselben Rate getaktet, es gibt jedoch einen relativen Phasenunterschied zwischen den beiden Signalen.
  • Der Takteingang zum Vektorregister 92 ist auch über einen Transceiver und einen Taktpuffer mit der RCLK-Leitung gekoppelt. Demgemäß werden sowohl die Empfangszustandsmaschine 96 als auch das Vektorregister 92 durch das RCLK-Signal getaktet.
  • Die Empfangszustandslogik 96 beinhaltet Eingänge, die mit der Empfangsbefehlsleitung 92, dem D-Bus 57, einem SJ-Bus 100, einer Empfangsleitung 102 und einer REQ_IQ-Leitung 104 gekoppelt sind. Die Empfangszustands-Logikmaschine 96 hat Ausgänge, die mit einer Löschleitung 106, der NAK-Leitung 64 und einer CPU_OWNS_IQ-Leitung 108 gekoppelt sind.
  • Die CPU-Steuerzustands-Logikmaschine 98 hat Eingänge, die mit dem S_FUN-Bus 100 und der CPU_OWNS_IQ-Leitung 108 gekoppelt sind. Die CPU-Steuerzustands-Logikmaschine 98 hat Ausgänge, die mit der Empfangsleitung 102, der Löschleitung 107 und der REQ_IQ-Leitung 104 verbunden sind. Ein EIN-Warteschlangenzähler 110 hat Eingänge, die über den MUX 111 mit den CNT_EN_CLR-Leitungen 106 und 107 gekoppelt sind, und einen Ausgang, der mit einem Adreß-Bus 112 gekoppelt ist. Der Steuereingang von MUX 111 ist mit der CPU_OWNS_IQ-Leitung 108 gekoppelt. Der Adreß-Bus 112 ist mit dem Adreßeingang des EIN-Warteschlangenpuffers 90 gekoppelt.
  • Jeder EIN-Warteschlangenpuffer 90 ist ein sechzehn Wörter tiefer Puffer zum Speichern eines Pakets. Die Adressierung jedes EIN-Warteschlangenpuffers 90 ist unter Verwendung eines Vier-Bit-Zählers 110 zur Generierung der Wortadresse unkompliziert. Der Zähler wird automatisch weitergeschaltet, sobald der Bus die Wartschlange beschreibt und sobald der Prozessor von der Warteschlange liest oder diese beschreibt.
  • Fig. 4A ist ein schematisches Diagramm des gemeinsamen AUS-Warteschlangenabschnitts 67 der Interprozessor- Steuerung 55. Aus Fig. 4A ist ersichtlich, daß bei einem AUS-Warteschlangenpuffer 160 der Datenausgang über ein OQ-Vektorregister 162 und dem MUX 163 mit dem D-Bus 57 gekoppelt ist. Ein Sendemaskengenerator 163a ist über MUX 163 mit dem D-Bus gekoppelt. Der Dateneingangsport des OQ-Puffers 160 ist mit dem SM_SJ-Bus 94 gekoppelt. Bei einer Sendezustandsmaschine 164 ist der Takteingang mit der SCLK-Leitung 66 und bei einer von der Zentraleinheit gesteuerten Sendezustandsmaschine 166 ist der Takteingang mit dem CPU-Takt gekoppelt. Der Takteingang des OQ-Vektorregisters 162 ist über einen Transceiver und einen Taktpuffer mit dem SCLK gekoppelt.
  • Die Sendezustandsmaschine 164 hat Eingänge, die mit einer NAK-Eingangsleitung 168, dem E-Bus 59, dem D-Bus 57, einer Sendeleitung 170, einer REQ_OQ-Leitung 172, einer OUTQ_NOT_EMPTY-Leitung 173 und einer Nullstellungsleitung 174 gekoppelt sind. Die Sendezustandsmaschine 164 hat Ausgänge, die mit einer NAK-Ausgangsleitung 176, dem D-Bus 57, der Empfangsbefehlsleitung 62, einer CPU_OWNS_OQ-Leitung 176, einer CNT_EN_CLR-Leitung 178, einer RESPOND_TO_POLL-Leitung 179 und einer Zeitabschaltungsleitung 180 gekoppelt sind.
  • Die von der Zentraleinheit gesteuerte Sendezustandsmaschine 166 hat Eingänge, die mit dem SFUN-Bus 100 und der CPU_OWNS_OQ-Leitung 108 gekoppelt sind. Die von der Zentraleinheit gesteuerte Sendezustandsmaschine 166 hat Ausgänge, die mit den SEND- und den REQ_OQ-Leitungen 170 und 172 und mit einer CNT_EN_CLR-Leitung 182 gekoppelt sind.
  • Ein AUS-Warteschlangenzähler 184 hat Eingänge, die mit den CNT_EN_CLR-Leitungen 174 und 182 und mit SCLK und mit CPUCLK über MUX 186 gekoppelt sind. Der Steuereingang von MUX 186 ist mit der CPU_OWNS_OQ-Leitung 176 gekoppelt. Ein Adreßbus 186 ist mit dem Adreßeingang des AUS-Warteschlagenpuffers 160 gekoppelt. Jeder AUS-Warteschlangenabschnitt beinhaltet außerdem eine RCLK-Generierungsschaltung, die ein AUS-Warteschlangen- Verzögerungselement 190 mit einem Eingang aufweist, der mit der SCLK-Leitung 66 gekoppelt ist, und einen Ausgang, der mit der RCLK-Leitung 68 gekoppelt ist.
  • Die Fig. 4B und 4C beschreiben logische und physische Implementationen des AUS-Warteschlangen- Adressierungszählers 184 und des AUS-Warteschlangenpuffers 160. Aus Fig. 4B ist ersichtlich, daß der AUS-Warteschlangenpuffer 160 aus einer einzelnen Speichermatrix von 256 Wörtern Tiefe mit sechzehn Bit Breite besteht (plus zwei Paritätsbits). Die AUS-Warteschlange 160 ist in der Lage, bis zu sechzehn Pakete von jeweils sechzehn Wörtern zu speichern. Die Adressierungslogik für diese Matrix implementiert eine kreisförmige Warteschlange. Der Bus entfernt Pakete vom unteren Ende der Warteschlange und der Prozessor fügt dem oberen Ende der Warteschlange Pakete hinzu. In Fig. 4C ist zu sehen, daß drei Zähler CPU_PACKPNT 184a, BUS_PACKPNT 184b, OQ_CNT 184c zum Generieren von Adressen für den OQ-Puffer 160 benutzt werden.
  • Der CPU_PACKPNT 184a zeigt auf den nächsten freien Paketort in der Warteschlange. Er gibt die oberen vier Bits der Adresse, wenn der Prozessor in der AUS-Warteschlange 160 liest oder schreibt. Dieser Zähler kann mit einer RESET OUT QUEUE Mikrooperation (Ausgangswarteschlange rückstellen) gelöscht und mit einer NEXT-Mikrooperation (Nächste) weitergeschaltet werden.
  • Der BUS_PACKPNT-Zähler 184b zeigt auf das nächste Paket, das darauf wartet, auf den Bus gesendet zu werden. Es gibt die oberen vier Adreßbits der AUS-Warteschlange, wenn die Buszustandsmaschine 70 von der Warteschlange liest. Dieser Zähler wird mit der RESET OUT QUEUE Mikrooperation gelöscht. Er wird nach dem Senden eines Paketes automatisch weitergeschaltet.
  • Der Zähler OQ-CNT 184c gibt die niedrigeren vier Adreßbits für die AUS-Warteschlange und zeigt somit auf ein Wort in einem Paket. Dieser Zähler wird mit der RESET OUT QUEUE Mikrooperation oder mit einer RESET COUNT Mikrooperation (Zähler zurückstellen) zurückgestellt. OQ- CNT 184c wird automatisch weitergeschaltet, wenn ein Wort auf die AUS-Warteschlange 160 geschrieben oder von dieser gelesen wird. Nach sechzehn gelesenen oder geschriebenen Wörtern springt dieser Zähler auf Null um. Somit ist das siebzehnte Wort eines Pakets dasselbe wie das erste Wort.
  • Die Fig. 5, 6 und 7 sind Zustandsdiagramme, die den Betrieb des Bus-Controllers 37, des EIN-Warteschlangenabschnitts 65 und des AUS-Warteschlangenabschnitts 67 veranschaulichen.
  • In jeder Figur zeigen die durchgezogenen Linien mit Pfeilen Übergänge von dem gegenwärtigen Zustand zum nächsten Zustand an. Gestrichelte Pfeile, die auf den durchgezogenen Pfeilen enden, zeigen Zustände an, die erfüllt sein müssen, bevor die angezeigten Übergänge stattfinden können.
  • Fig. 8 ist ein Synchronisierungsdiagramm, das Signalübergänge auf dem E-Bus 59, dem D-Bus 57, der Empfangsbefehlszeile 62 und der NAK-Zeile 64 schreiben.
  • Es folgt eine Beschreibung des Systemprotokolls für eine erfolgreiche Übertragung eines Pakets zwischen den Prozessoren 33, wie in Fig. 1 dargestellt. Damit eine erfolgreiche Übertragung stattfinden kann, muß der EIN-Warteschlangenpuffer leer sein und die Empfangszustandsmaschine 96 muß sich im WAIT_FOR_CMD-Zustand befinden, der AUS-Warteschlangenpuffer 160 ist voll und die Sendezustandsmaschine 164 befindet sich im WAIT_FOR_CND-Zustand und die Bus-Controller- Zustandsmaschine 70 muß sich im POLL_PROC-Zustand befinden.
  • Während der Übertragung übermittelt die Bus- Controller-Zustandsmaschine codierte Signale auf dem E-Bus 59. In Tabelle 1 sind die Namen dieser codierten Signale und der Signalcode aufgeführt und es wird eine Kurzbeschreibung der Funktion jedes codierten Signals gegeben (das * zeigt an, daß Daten logisch tief sind).
  • Tabelle 2 führt die Zustandsübergänge für die Empfangszustandsmaschine auf und Tabelle 3 enthält die Zustandsübergänge für die Sendezustandsmaschine.
  • TABELLE 1
  • DATA(00 : 15) *
  • Diese sechzehn Leitungen führen die IPB-Daten, wobei DATA(00) dann das höchstwertige Bit ist.
  • CNTL (0 : 2, P) *
  • Diese codierten Steuerleitungen werden nur durch die BC aufgedrückt werden. In der nachfolgenden Beschreibung bedeutet "1", daß das Signal aufgedrückt ist, während eine "0" bedeutet, daß das Signal nicht aufgedrückt wurde. Man beachte, daß die Signale niedrig aufgedrückt werden. CNTL(P)* hat für die drei Steuerleitungen ungerade Parität.
  • 000,1 - NULL
  • Die BC drückt diesen Befehl auf, um anzuzeigen, daß auf dem Bus nichts passiert. Es ist sinnvoll, während der Abfragezyklen Laufzeitverzögerungen einzurechnen.
  • 001,0 -- (reserviert)
  • 100,0 -- DATA_XFER
  • Die BC drückt diesen Befehl auf, um anzuzeigen, daß eine Datenübertragung abläuft.
  • 101,1 -- RESET
  • Die BC kann diesen Befehl aufdrücken, um die Sendezustandsmaschinen auf jedem der Prozessoren zurückzustellen. Die Rückstellung der Zustandsmaschinen ist synchron zu SCLK.
  • 101,1 -- POLL_PROC
  • Wenn die BC diesen Befehl aufdrückt, dann steuert der Prozessor, der ein Paket zu senden hat, die dieser Prozessornummer entsprechende Datenleitung an.
  • 111,0 -- SNDCMD
  • Die BC gibt diesen Befehl zusammen mit einer Prozessornummer auf DATA(04 : 07) und DATA(12 : 15), um einen Prozessor zum Senden auszuwählen.
  • TABELLE 2 RECEIVE Maschinenzustands-Übergangstabelle
  • Eingänge in Maschine
  • CPU_REQIG
  • R_SELECT = RCVCMD & RCVSEL
  • RECEIVE
  • IQ_CNT15 Zustandsübergangstabelle Name Aktueller Zustand Eingang Nächster Zustand Übergänge von unbenutzten Zuständen
  • TABELLE 3 SEND-Zustandsmaschine-Übergangstabelle
  • Eingänge in Maschine
  • PU_REQOQ
  • _SELECT = SNDCMD & SNDSEL
  • EMPTY
  • TIMEOUT
  • POLL_PROC
  • SEND
  • NAK_IN
  • CNT0 Zustandsübergangstabelle für SEND-Zustandsmaschine Name Aktueller Zustand Eingang Nächster Zustand Übergänge von unbenutzten Zuständen 0001
  • Gemäß den Fig. 5 bis 8 und den Tabellen 1 bis 3 drückt die Bus-Controller-Zustandsmaschine das Abfrage-Prozessorsignal für die Taktzyklen 1 bis 3 auf. Dieses Abfrage-Prozessorsignal wird von der SEND-Zustandsmaschine empfangen und bewirkt den Übergang von dem WAIT_FOR_COMMAND-Zustand (warte auf Befehl) in den RESPOND_TO_POLL-Zustand (Antwort auf Abfrage).
  • Die Zustandsmaschine bestimmt dann, ob im OUTQ RAM 160 ein Paket sendebereit gespeichert ist. Ist das Paket sendebereit, dann steuert die Sendezustandsmaschine 164 den Zustand des RESP_TO_POLL-Signals auf der Leitung 175, so daß MUX 163 den Sendemaskengenerator 163a mit dem D-Bus 57 koppelt. Der Sendemaskengenerator 163a drückt ein Signal auf einer eindeutigen Leitung des diesem bestimmten Prozessor zugewiesenen D-Bus 57 auf, um anzuzeigen, daß der Prozessor sendebereit ist. Ist ein Paket nicht bereit, dann steuert die Sendezustandsmaschine 164 den Zustand des RESP_TO_POLL-Signals auf der Leitung 173 so, daß MUX 163 das Register 162 mit dem D-Bus 57 koppelt. Das Register 162 drückt ein Signal auf den eindeutigen Leitungen des D-Bus 57 auf und zeigt so an, daß der Prozessor nicht sendebereit ist. Wie oben beschrieben, beinhaltet der D-Bus sechzehn individuelle Leitungen, wobei jede dieser Leitungen einem bestimmten der sechzehn Prozessoren zugewiesen ist, die mit dem Bus gekoppelt sind. Demgemäß wird eine Sendemaske generiert, bei der die den sendebereiten Prozessoren zugewiesenen Datenleitungen aufgedrückt und die den nicht sendebereiten Sendeprozessoren zugewiesenen Datenleitungen weggenommen werden. Diese Sendemaske wird auf dem Datenbus für die Taktzyklen 2 bis 4 aufgedrückt, wie dies auf der Kurve 202 von Fig. 8A dargestellt ist. Die Sendemaske ist in Fig. 8B beschrieben. Diese Sendemaske wird auf dem Bus- Controller empfangen. Der Bus-Controller wechselt während der Taktzyklen 4 bis 6 von dem POLL-PROC-Zustand in den Null-Zustand über. Während des Null-Zustands liest die Bus- Steuerung-Zustandsmaschine die Sendemaske und ermittelt, welche Prozessoren zum Senden von Daten bereit sind. Der Bus-Controller wechselt dann in den SEND-Zustand über und generiert das SEND COMMAND-Signal auf dem E-Bus.
  • Zusätzlich wählt der Bus-Controller einen der bereiten Prozessoren als Sendeprozessor, indem er die Adresse des gewählten Sendeprozessors auf dem D-Bus während der Taktzyklen 6 und 7 aufdrückt, wie dies in Leitung 202 von Fig. 8 beschrieben ist. Die Sendeprozessor- Zustandsmaschine, identifiziert durch die auf dem D-Bus aufgedrückte Adresse, führt Übergänge in den BUS_DELAY-Zustand durch, so daß der Bus einen Taktzyklus lang ausregeln kann, und geht dann in den POLL_RECEIVER-Zustand über.
  • Im POLL_RECEIVER-Zustand überträgt der Sendeprozessor das erste Wort in dem AUS-Warteschlangenpuffer 160 auf den D-Bus, wie dies auf Leitung 202 in Fig. 8 beschrieben ist. Das Format des Wortes 00 des Paketes ist in Fig. 8C dargestellt. Gleichzeitig wechselt die BC-Zustandsmaschine vom SEND-Zustand in den DATA_XFER-Zustand über und drückt das Datenübertragungssignal auf den E-Bus auf, wie in Fig. 200 dargestellt. Somit hat BC 37 den Sendeprozessor Zugang zu dem Bus gewährt. Wenn der Sendeprozessor nicht sendebereit ist, dann drückt er ein NAK-Signal auf die NAK-Leitung 64 auf, um dem BC 37 anzuzeigen, daß er nicht bereit ist. Der BC 37 bleibt automatisch einen kompletten DATA-XFER-Zyklus lang im DATA_XFER-Zustand, es sei denn, es geht ein NAK-Signal ein. In diesem Fall wird die Übertragung von dem Sendeprozessor abgebrochen. Der BC 37 drückt den SEND-Status auf und wählt einen anderen bereiten Prozessor als Sendeprozessor. Wenn kein NAK-Signal eingeht, dann steuert der Sendeprozessor die Empfangsbefehlszeile 62 während dieses Taktzyklus an und setzt die Übertragung auf den DBUS 57 mit dem ersten Wort des Datenpakets fort. Die Empfangszustandsmaschine 96 wechselt dann von dem WAIT_FOR_CMD-Zustand in den LOAD_IQ-Zustand über.
  • Bei Taktzyklus 9 beginnen der EiN-Warteschlangenzähler 110, der AUS-Warteschlangenzähler 184 und ein Zähler in der Bus-Controller-Zustandsmaschine 70 mit dem Zählen von sechzehn Zyklen (COUNT 00 bis COUNT 15). Der EIN-Warteschlangenzähler und der AUS-Warteschlangenzähler füllen den Adreßraum der EIN-Warteschlangen- und der AUS-Warteschlangenpuffer 90 bzw. 160 aus. Die Wörter in dem Paket von dem AUS-Warteschlangenpuffer 160 werden auf den Bus übertragen und die Wörter nach einem nachfolgend ausführlich beschriebenen SCLK/RCLK-Synchronisierungsplan in den EIN-Warteschlangenpuffer 90 getaktet. Am Ende der sechzehn Zyklen bewirkt das Count 15 Ausgangssignal von den Zählern, daß die Bus-Controller-Zustandsmaschine von dem DATA_XFER-Zustand in den NULL-Zustand, die Sendepuffer- Zustandsmaschine vom SEND-Zustand in den CLR_TIMER-Zustand und die Empfangspuffer-Zustandsmaschine vom LOAD_IQ-Zustand in den CNT_DELAY-Zustand übergeht. Diese Verzögerungs- und Nullzustände ermöglichen es, daß der Bus vor der Übertragung eines anderen Paketes ausregeln kann.
  • Danach kehrt die Bus-Controller-Zustandsmaschine 70 in den SEND-Zustand zurück und macht die Adresse des nächsten Prozessors für die Sendung auf dem E-Bus bereit. Die oben beschriebenen Zyklen werden für jeden sendebereiten Prozessor so lange fortgesetzt, bis alle Prozessoren ihre Pakete übermittelt haben. Die Bus-Controller- Zustandsmaschine geht dann vom SEND-Zustand in den POLL_PROC-Zustand über und wiederholt den oben beschriebenen Vorgang.
  • Somit besteht eine Datenübertragung darin, daß ein erster Prozessor ein sechzehn Worte langes Datenpaket an einen zweiten Prozessor sendet. Die Übertragung wird eingeleitet, wenn der Bus-Controller einen ersten Prozessor zum Senden auswählt, nachdem dieser Prozessor auf die allgemeine Abfrage reagiert hat. Der Bus-Controller wählt dann einen Prozessor zum Senden aus, indem er den Code für SEND auf dem E-Bus und die Adresse des ersten Prozessors auf den Datenleitungen. 04 bis 07 und zwölf bis fünfzehn aufdrückt. Ist der erste Prozessor nicht sendebereit, dann drückt er NAK für zwei Zyklen auf und ignoriert die Wahl. Nach dem Empfang des NAK-Signals bricht der Bus-Controller die Senderauswahl ab und fährt mit der Wahl des nächsten Senders in der Folge fort. Ist der erste Prozessor sendebereit, dann steuert er die RECEIVE COMMAND-Leitung an und sendet das erste Wort des Pakets in seiner EIN- Warteschlange auf den D-Bus. Das erste Wort in dem Paket enthält die Adresse des zweiten Empfangsprozessors und die Kombination von RECEIVE COMMAND und dem ersten Wort in dem Paket wählt eindeutig einen Prozessor zum Empfangen aus. Wenn der zweite Prozessor nicht zum Empfangen des Pakets bereit ist, dann drückt er zwei Zyklen lang NAK auf. Wenn der erste Prozessor NAK erhält, dann bricht er seine aktuelle Datenübertragung ab und wartet im WAIT_FOR_CMD-Zustand auf die nächste allgemeine Abfrage von dem Bus- Controller. Der Bus-Controller nimmt nach Empfang des NAK an, daß die Übertragung erfolglos war und bricht die aktuelle Übertragung ab. Der Bus-Controller wählt dann den nächsten Sender in der Folge. Man beachte, daß sowohl der erste Prozessor als auch der Bus-Controller NAK überwachen müssen.
  • Wenn der zweite Prozessor jedoch in der Lage ist, das Paket zu empfangen, dann wird er mit der aktiven Flanke des RCLK wie nachfolgend beschrieben, die Daten in seine EIN-Warteschlange takten. Nach dem Lesen des Paketes wird der zweite Prozessor für den Empfang unverfügbar, bis sein EIN-Warteschlangenpuffer von der Host-Zentraleinheit geleert wird.
  • Diese Datenübertragungen laufen in einem geöffneten Schleifenverfahren ab, da er, wenn der erste Prozessor kein NAK-Signal empfängt, davon ausgeht, daß die Übertragung erfolgreich war. Dieser geöffnete Schleifenvorgang ermöglicht es, daß das Busprotokoll effizienter arbeitet als dies möglich wäre, wenn eine positive Bestätigung erforderlich wäre.
  • Jede Empfangszustandsmaschine besteht tatsächlich aus zwei verschachtelten Zustandsmaschinen. Jede der Maschinen wird durch den Prozessortakt getaktet und reagiert auf die Mikrooperationsbefehle. Die andere Maschine wird durch RCLK getaktet und reagiert auf Befehle von dem Bus wie auf Befehle von der von dem Prozessor getakteten Maschine. Befehle zwischen den beiden Maschinen werden zweifach synchronisiert. Fig. 6 zeigt das Zustandsübergangsdiagramm für die Empfangszustandsmaschine.
  • Die von dem Bus getaktete Maschine entscheidet über die Eigentümerschaft der EIN-Warteschlange zwischen dem Prozessor und dem Bus. Wenn sich diese Maschine in den Zuständen MUX_DELAY1, WAIT_FOR_IQ, NAK1 oder NAK2 befindet, dann gehört die Warteschlange zu dem Prozessor. Befindet sich diese Maschine in einem anderen Zustand, dann gehört sie dem Bus.
  • Angenommen, die von dem Bus getaktete Zustandsmaschine befindet sich im WAIT_FOR_IQ-Zustand. Wenn ein anderer Prozessor versucht, diesen Prozessor als Empfangsprozessor zu wählen, während er sich in diesem Zustand befindet, dann drückt die Maschine zwei Zyklen lang das NAK-Signal auf. Das Aufdrücken des NAK-Signals bewirkt, daß der sendende Prozessor seine Übertragung abbricht.
  • Wenn der Prozessor die EIN-Warteschlange geleert hat und bereit ist, ein anderes Paket zu empfangen, dann führt er die GIVE_IQ-Mikrooperation durch. Dieser Vorgang bewirkt, daß die von dem Prozessor getaktete Maschine von dem IDLE-Zustand in den RECEIVE-Zustand übergeht. Dieser Übergang bewirkt dann, daß die von dem Bus getaktete Maschine vom WAIT_FOR_IQ-Zustand in den MUX_DELAY2-Zustand übergeht. Der MUX_DELAY2-Zustand bewirkt dann, daß die von dem Prozessor getaktete Maschine zurück in den IDLE-Zustand geht und auf den nächsten Mikrooperationsbefehl wartet. Von dem MUX_DELAY2-Zustand geht die Busmaschine über den CLEAR_CNT-Zustand in den WAIT_FOR_CMD-Zustand. Die Empfangsmaschine drückt das NAK-Signal auf, wenn der Prozessor zum Empfangen ausgewählt wurde, während sich die Maschine in dem Zustand MUX_DELAY1 oder CLEAR_CNT befindet.
  • Während sich die von dem Bus getaktete Maschine in dem WAIT_FOR_CMD-Zustand befindet, gehört die EIN-Warteschlange dem Bus. Die Eigentümerschaft der Warteschlange kehrt durch Ausführen der Mikrooperation CPU_REQIQ wieder an den Prozessor zurück. Dieser Befehl bewirkt, daß die von dem Prozessor getaktete Maschine in ihren WAIT_FOR_IQ-Zustand übergeht. Dieser Zustand bewirkt dann, daß die von dem Bus getaktete Maschine in ihren WAIT_FOR_IQ-Zustand übergeht, wobei jetzt der Prozessor wieder die Warteschlange besitzt. Die von dem Prozessor getaktete Maschine kehrt dann in ihren IDLE-Zustand zurück.
  • Von dem WAIT_FOR_CMD-Zustand geht die von dem Bus getaktete Maschine wieder in den LQAD_IQ-Zustand zurück, wenn sie zum Empfangen von einem anderen Prozessor auf dem Bus gewählt wurde. Sie bleibt so lange im LOAD_IQ-Zustand, bis sie sechzehn Worte in die EIN-Warteschlange geladen hat. Sie geht dann über den CNT_DELAY-Zustand wieder in ihren WAIT_FOR_IQ-Zustand zurück, wodurch die Eigentümerschaft der Warteschlange zum Prozessor zurückkehrt. Der CNT_DELAY-Zustand gewährleistet, daß die Aktivierungseingänge in den EIN-Warteschlangen-Adreßzähler vor dem Schalten des Takteinganges weggenommen werden.
  • Die Sendezustandsmaschine besteht tatsächlich aus zwei verschachtelten Zustandsmaschinen. Eine Maschine wird von dem Prozessortakt getaktet und reagiert auf die Mikrooperationsbefehle. Die andere Maschine wird von dem SCLK getaktet und steuert die eigentlichen Signale auf dem Bus. Signale zwischen den beiden Maschinen werden mit dem entsprechenden Takt doppelt synchronisiert.
  • Die Eigentümerschaft der AUS-Warteschlange wird durch die von dem Bus getaktete Zustandsmaschine gesteuert. Eigentümer der Warteschlange ist der Prozessor, wenn sich die von dem Bus getaktete Maschine in den Zuständen WAIT_FOR_OQ, NAK1 oder NAK2 befindet. Befindet sie sich in einem anderen Zustand, dann gehört die AUS-Warteschlange dem Bus. Pakete können nur dann gesendet werden, wenn die Warteschlange dem Bus gehört und der Prozessor kann die Warteschlange nur dann manipulieren, wenn er Eigentümer der Warteschlange ist.
  • Angenommen, daß sich die von dem Bus getaktete Zustandsmaschine im WAIT_FOR_CMD-Zustand befindet. Wenn sie einen Abfragebefehl von dem Bus-Controller erhält, die Warteschlange nicht leer und die Zeit nicht abgelaufen ist, dann geht sie in den RESPOND_TO_POLL-Zustand über. In diesem Zustand bringt sie ihre Abfragemaske so lange auf den Bus, bis der Abfragebefehl von dem Bus-Controller weggenommen wird. Sie kehrt dann in den WAIT_FOR_CMD-Zustand zurück, um auf einen anderen Befehl zu warten.
  • Von dem WAIT_FOR_CMD-Zustand geht die Busmaschine nur dann in die Zustände zum Senden eines Pakets über, wenn sie vom Bus-Controller zum Senden gewählt wurde, wenn die Warteschlange nicht leer und die Zeit nicht abgelaufen ist. Der BUS_DELAY-Zustand läßt einen Buszyklus für Laufzeitverzögerungen auf dem Bus zu, wenn ein neuer Prozessor (d. h. dieser) beginnt, den Bus anzusteuern. Der empfangende Prozessor wird im POLL_RCVR-Zustand ausgewählt.
  • Angenommen, der Empfänger ist bereit, dann beginnt die Sendemaschine damit, den Rest des Pakets zu senden. Wird zu einem beliebigen Zeitpunkt während des Sendevorganges NAK aufgedrückt, dann bricht der Prozessor die Paketsendung ab, indem er in den WAIT_FOR_CMD-Zustand zurückkehrt. Werden jedoch alle Worte gesendet, ohne daß NAK aufgedrückt wird, so nimmt der Prozessor an, daß die Sendung erfolgreich war. Von dem CLR_TIMER-Zustand löscht er dann den Sendezeitschalter und schaltet BUS_PACKPNT weiter, um auf das nächste Paket in der Warteschlange zu zeigen.
  • Die Bus-Zustandsmaschine reagiert nur dann auf eine Eigentümerschaftsanforderung von dem Prozessor, wenn sie sich im WAIT_FOR_CMD-Zustand befindet. Sie geht dann in den WAIT_FOR_OQ-Zustand über und übergibt die Eigentümerschaft der Warteschlange an den Prozessor. Wenn sie zum Senden gewählt wurde, während sie sich in diesem Zustand befindet, dann drückt die Buszustandsmaschine das NAK-Signal zwei Zyklen lang auf. Dieses NAK-Signal bewirkt, daß der Bus- Controller seine Auswahl für diesen Sender abbricht. Wenn der Prozessor mit der AUS-Warteschlange fertig ist, dann übergibt er die Warteschlange an die Busmaschine, indem er deren Übergang in den WAIT_FOR_CMD-Zustand bewirkt. In diesem Zustand kann die Busmaschine mit dem Senden von Paketen beginnen. Wenn die AUS-Warteschlange leer wird, dann geht die Busmaschine in den WAIT_FOR_OQ-Zustand über. Somit geht die Eigentümerschaft der AUS-Warteschlange an den Prozessor über, wenn die AUS-Warteschlange leer ist.
  • Der Bus-Rückstellungsbefehl von dem Bus-Controller hat eine etwas andere Auswirkung auf die Sendezustandsmaschine, und zwar abhängig von der Eigentümerschaft der AUS-Warteschlange. Wenn der Prozessor Eigentümer der AUS-Warteschlange ist, dann bringt ein Bus-Rückstellungsbefehl die Sendemaschine in den WAIT_FOR_OQ-Zustand. Wenn jedoch der Bus die AUS-Warteschlange besitzt, dann bringt ein Bus- Rückstellungsbefehl die Sendemaschine in den WAIT_FOR_CMD-Zustand.
  • Das oben beschriebene Protokoll erfordert keine positive Bestätigung von einem gewählten Prozessor, bevor eine Datenübertragung bzw. ein Sendezyklus eingeleitet wird. Statt dessen leitet dieses Protokoll diese Zyklen automatisch ein, es sei denn, daß eine negative Bestätigung anzeigt, daß ein gewählter Prozessor nicht zur Durchführung einer gewünschten Funktion bereit ist. Die Verwendung dieses negativen Bestätigungssystems verringert die Gesamt zeit in Verbindung mit dem Protokoll und erhöht die Datenübertragungsrate des Systems.
  • Der Aspekt des Systemprotokolls in bezug auf die Herstellung einer Synchronisierungsreferenz für die Übertragung der Wörter in einem ersten Prozessor (Sender) auf den Bus und die Übertragung von Wörtern auf dem Bus zu einem zweiten Prozessor (Empfänger) wird nachfolgend beschrieben.
  • Fig. 9 zeigt ein Synchronisierungsdiagramm, das die verschiedenen Taktsignale und die Datenübergänge veranschaulicht. In Fig. 9 ist REFCLK 300 der Ausgang des Bus-Controller-Oszillators 72. Sowohl SCLK 302 als auch RCLK 304 sind von REFCLK 300 abgeleitet, somit haben beide dieselbe Frequenz, jedoch unterschiedliche relative Phasen.
  • Die Vorderflanke jedes SCLK-Impulses ist in bezug auf die Vorderflanke des entsprechenden RCLK-Impulses um eine Zeitverzögerung DS und die von anderen Schaltungskomponenten induzierten Verzögerungen verzögert. Die Zeitverzögerung DS wird durch das Bus-Controller- Verzögerungselement 76 erzeugt (Fig. 2) Ebenso ist die Vorderflanke von RCLK relativ zur Vorderflanke von SCLK um die Menge DR verzögert, die durch das Verzögerungselement 190 und die durch andere Schaltungselemente induzierten Verzögerungen verzögert.
  • Wie in Fig. 4 dargestellt, benutzt SCLK ein Strobesignal zum Takten von Daten von dem AUS-Warteschlangen-Vektorregister 162 des Senders auf den D-Bus. Das RCLK-Signal wird am Sender durch Übertragen von SCLK durch das Verzögerungselement 190 auf die RCLK-Leitung 68 generiert.
  • Wiederum in Fig. 3 dargestellt ist, daß RCLK als Strobesignal zum Takten von Daten von dem D-Bus in das EIN-Warteschlangen-Vektorregister 192 des Empfängers benutzt wird.
  • Aus Fig. 9 wiederum ist ersichtlich, daß aufeinanderfolgende Worte in dem Paket von dem OQ-Vektorregister 162 des Senders nach Empfang der Vorderflanke des SCLK-Impulses übertragen werden. Somit ist jede Datenwort-Zykluszeit gleich der Periode der Zyklen. Die Vorderflanke jedes Datenwortzyklus stimmt mit der Vorderflanke des SCLK-Impulses überein.
  • Jedes auf dem Bus übertragene Wort besteht aus einem Satz von Signalen mit hohem oder niedrigem Spannungspegel, die auf die einzelnen Leitungen des D-Bus 57 aufgedrückt werden. Jede Komponente in dem Übertragungspfad verzögert den Lauf dieser Signale. Insbesondere die von dem D-Bus 57 selbst induzierte Zeitverzögerung (Tbus) ist abhängig von der Länge des Busses zwischen dem Sender und dem Empfänger.
  • Bei dem vorliegenden System kann eine Übertragung zwischen beliebigen zwei Prozessoren 33 stattfinden. Somit hängt die Menge Tbus möglicherweise von Tbus max (Sender und Empfänger an entgegengesetzten Enden des Busses) zu Tbus min (Sender und Empfänger befinden sich nebeneinander auf dem Bus) ab.
  • Das Signal RCLK wird relativ zu dem Datenwortzyklus am Sender generiert und gephast. Die Menge DR wird so gewählt, daß die Vorderflanke des RCLK-Impulses in der Mitte der Zeit ankommt, in der ein Datenwort am Empfänger gültig ist. Da das Datenwort und der RCLK-Impuls am Sender generiert werden und zusammen auf dem Bus zu dem Empfänger laufen, ist die Bus-Laufzeitverzögerung (Tbus) etwa die gleiche für beide Signale. Somit gleicht das System eine eventuelle Abhängigkeit von den Variationen der Laufzeitverzögerung auf dem Bus aufgrund der relativen Positionen des Senders und des Empfängers auf dem Bus aus und eliminiert sie.
  • In jedem Bussystem sind die Laufzeitverzögerungen zwischen zwei Punkten auf verschiedenen Leitungen des Busses nicht genau gleich, sondern hängen von Imperfektionen bei der Herstellung und von anderen physikalischen Effekten ab. Die maximalen Variationen zwischen Laufzeitverzögerungen auf zwei beliebigen Signalen ist der Zeitabstand des Busses. Somit bleibt die zwischen dem Datenwort und dem RCLK-Impuls am Sender hergestellte Phasenbeziehung nicht erhalten, wenn diese Signale über den Bus laufen.
  • Fig. 10 veranschaulicht die relative Synchronisierung des Datenwortes und des RCLK-Signals am IQ-Vektorregister des Empfängers für eine Datenübertragung von Prozessor zu Prozessor. Aufgrund des Abstandes variiert möglicherweise die Vorderflanke des RCLK-Signals über das Zeitintervall TRmax - TRmin.
  • Wie in Fig. 10 angedeutet, erfordern die elektrischen Eigenschaften des EIN-Warteschlangen-Vektorregisters 92, daß ein Datenwort für eine Mindesteinrichtungszeit TSU an den Eingängen des EIN-Warteschlangen-Vektorregisters 92 vor der Ankunft der Vorderflanke des RCLK gültig ist. Außerdem muß das Datenwort für eine minimale Haltezeit TH nach der Ankunft von RCLK möglich sein. Die Summe von TSU und TH ist die Zeittoleranz, die für das EIN-Warteschlangen- Vektorregister 92 erforderlich ist. Die Periode von SCLK muß wenigstens gleich der Summe der Zeittoleranz und des maximalen Zeitabstands des Busses sein. Somit ist die Datenübertragungsrate durch den maximalen Zeitabstand zwischen RCLK und das Datenwort am Empfänger begrenzt. Und weil der maximale Zeitabstand für Datenübertragungen zwischen Prozessoren an entgegengesetzten Enden des Busses generiert wird, ist die maximale Datenübertragungsrate von der Länge des Busses abhängig.
  • Das in der vorliegende Erfindung benutzte Datenübertragungssystem ist asynchron. Die relative Synchronisierung zwischen den Datenwörtern und RCLK wird durch den Sendeprozessor hergestellt. Das Datenwort braucht zu einem bestimmten Zeitpunkt nicht auf dem gesamten Bus gültig zu sein, sondern nur in bezug auf RCLK, wenn die Signale über den Bus laufen. Demgemäß können mehrere Datenwörter zu einem bestimmten Zeitpunkt über den Bus laufen. Der Bus kann als ein Vektorregister fungieren, der mehrere Wörter gleichzeitig speichert.
  • In einem synchronen Busprotokoll steuert ein einziges Taktsignal alle Datenübertragungen. Da sich der Empfänger an jedem beliebigen Punkt auf dem Bus befinden kann, muß ein Datenwort auf dem gesamten Bus gültig sein, bevor es in den EIN-Warteschlangenabschnitt eines Empfängers getaktet wird. Die Dauer des synchronen Systemtaktes muß so groß sein, daß Datensignale über die gesamte Länge des D-Bus 57 für eine Zeitdauer ausregeln können, die wenigstens gleich der Zeittoleranzanforderung ist. Demgemäß hängt die maximale Frequenz des Taktes von der Laufzeitverzögerung eines Signals von einem Ende des Busses zum anderen ab.
  • Der Vorteil des vorliegenden Systems gegenüber einem synchronen Bussystem ist hiermit offensichtlich. Die maximale Datenübertragungsrate jedes Systems ist abhängig von der Länge des Busses. Bei dem vorliegenden System ist die maximale Übertragungsrate jedoch abhängig von den Zeittoleranzen an einem bestimmten Prozessor und von dem maximalen Zeitabstand von der Länge des Busses, wobei in einem synchronen System die Übertragungsrate von der Laufzeitverzögerung zwischen den Enden des Busses abhängig ist. Der Zeitabstand ist im allgemeinen niedriger als die Laufzeitverzögerung und somit ist die maximale Übertragungsrate des vorliegenden Systems höher als die Übertragungsrate von existierenden Bussystemen.
  • Die Erfindung wurde in bezug auf spezifische Ausgestaltung beschrieben. Für den Fachmann in dem jeweiligen Bereich sind jedoch verschiedene Modifikationen und Substitutionen offensichtlich. So kann z. B. die Anzahl der Wörter in einem Datenpaket willkürlich gewählt werden. Die jeweiligen Zustandsübergangstabellen und Zustandsmaschinen sind für die Erfindung nicht kritisch. Die Erfindung soll somit ausschließlich durch die beiliegenden Ansprüche begrenzt sein.

Claims (6)

1. Mehrprozessor-Computersystem der Art mit einem Bus und zwei oder mehr Prozessoren, die mit dem genannten Bus verbunden sind, wobei ein erster und ein zweiter Prozessor während eines Paketübertragungszyklus ein Paket mit Datenwörtern austauschen können, und mit einem Busprotokollsystem zum Steuern des Zugriffes auf den Bus durch die Prozessoren und zum Ermitteln eines Sende/Empfangs - Prozessorpaares, wobei das Busprotokollsystem gekennzeichnet ist durch:
Mittel (37) zum gleichzeitigen Abrufen aller Prozessoren zur Ermittlung, welche Prozessoren zur Übertragung eines Pakets von Wörtern zu einem anderen Prozessor über den genannten Bus bereit sind;
Mittel (70) zum aufeinanderfolgenden Auswählen jedes der genannten bereiten Prozessoren als Sendeprozessor;
Mittel (164) an einem gewählten Sendeprozessor zur Anzeige, daß der genannte gewählte Sendeprozessor nicht sendebereit ist;
Mittel (37) zur Einleitung eines kompletten Datenübertragungszyklus für jeden gewählten sendebereiten Prozessor, um den genannten gewählten Prozessor zum Senden von Daten zu aktivieren, wenn der genannte gewählte Sendeprozessor nicht anzeigt, daß er nicht sendebereit ist; und
Mittel (37) zum Steuern der genannten Auswahlmittel zum Wählen eines anderen bereiten Prozessors als Sendeprozessor, wenn der Datenübertragungszyklus für den gewählten Prozessor abgeschlossen ist oder wenn der gewählte Prozessor anzeigt, daß er nicht sendebereit ist.
2. System nach Anspruch 1, weiterhin umfassend:
Mittel (37) zum Auswählen eines bestimmten Prozessors zum Empfangen des genannten Paketes während des genannten Datenübertragungszyklus;
Mittel (96) zum Anzeigen, daß der genannte Empfangszyklus nicht bereit zum Empfangen des genannten Pakets ist; und
Mittel (98) zum automatischen Einleiten der Übertragung von Daten zwischen dem gewählten Sende- und dem gewählten Empfangsprozessor, wenn der genannte Empfangsprozessor nicht anzeigt, daß er nicht empfangsbereit ist.
3. System nach Anspruch 1, weiterhin umfassend:
Mittel (37) zur Erzeugung eines Sendetaktsignals (SCLK), umfassend eine Mehrzahl von Sendetaktimpulse;
Mittel (66) zur Übertragung des genannten Sendetaktsignals von dem genannten Sendetaktgenerator zu dem genannten Sendeprozessor;
Mittel (184) an dem genannten Sendeprozessor (67) zum Übergeben eines Wortes in dem genannten Paket an den genannten Bus nach Empfang eines gewählten Sendetaktimpulses;
Mittel (190) an dem genannten Sendeprozessor zur Erzeugung eines Empfangstaktimpulses (RCLK), wobei der genannte Empfangstaktimpuls der genannte gewählte, um eine feste Verzögerung DR verzögerte Sendetaktimpuls ist;
Mittel zur Übertragung des genannten Empfangstaktimpulses von dem genannten Sendeprozessor zu dem genannten Empfangsprozessor; und
Mittel (110) an dem genannten Empfangsprozessor zum Laden eines Wortes von dem genannten Bus nach Empfang des genannten Empfangstaktimpulses.
4. System nach Anspruch 3, weiterhin umfassend erste und zweite Busleitungen, wobei
das genannte Mittel (66) zur Übertragung des genannten Sendetaktsignals die genannte erste Busleitung ist, wobei
die genannte erste Busleitung den genannten Sendesignalgenerator an jedem der genannten Prozessoren mit dem genannten Wortübergabemittel verbindet; und wobei
das genannte Empfangsimpuls-Übertragungsmittel die genannte zweite Busleitung ist, wobei die genannte zweite Busleitung an jedem der genannten Prozessoren mit dem genannten Empfangsimpulsgenerator und dem genannten Wortlademittel verbunden ist.
5. System nach Anspruch 4, wobei der genannte Bus dadurch gekennzeichnet ist, daß ein maximaler Zeitabstand die maximale Differenz zwischen den Laufzeiten von Signalen auf verschiedenen Busleitungen ist, die von einem Ende des Busses zum anderen laufen, und wobei das genannte Empfangsübertragungsmittel dadurch gekennzeichnet ist, daß eine Zeittoleranz die Summe einer Einrichtungszeit und einer Haltezeit ist, und wobei die Periode des Sendetaktsignals etwa gleich der Summe des Zeitabstandes und der genannten Zeittoleranz ist.
6. System nach Anspruch 5, wobei die Größe von DR etwa gleich der Hälfte der Periode des genannten Sendetaktsignals ist.
DE3750680T 1986-03-28 1987-03-13 Multiprozessor-Busprotokoll. Expired - Fee Related DE3750680T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/845,906 US4888684A (en) 1986-03-28 1986-03-28 Multiprocessor bus protocol

Publications (2)

Publication Number Publication Date
DE3750680D1 DE3750680D1 (de) 1994-12-01
DE3750680T2 true DE3750680T2 (de) 1995-03-09

Family

ID=25296386

Family Applications (2)

Application Number Title Priority Date Filing Date
DE3752205T Expired - Lifetime DE3752205T2 (de) 1986-03-28 1987-03-13 Multiprozessor-Busprotokoll
DE3750680T Expired - Fee Related DE3750680T2 (de) 1986-03-28 1987-03-13 Multiprozessor-Busprotokoll.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE3752205T Expired - Lifetime DE3752205T2 (de) 1986-03-28 1987-03-13 Multiprozessor-Busprotokoll

Country Status (5)

Country Link
US (1) US4888684A (de)
EP (2) EP0596871B1 (de)
JP (1) JPH0766367B2 (de)
AU (2) AU583714B2 (de)
DE (2) DE3752205T2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754396A (en) * 1986-03-28 1988-06-28 Tandem Computers Incorporated Overlapped control store
US5640585A (en) * 1988-02-09 1997-06-17 Ast Research, Inc. State machine bus controller
US5006982A (en) * 1988-10-21 1991-04-09 Siemens Ak. Method of increasing the bandwidth of a packet bus by reordering reply packets
US5101347A (en) * 1988-11-16 1992-03-31 National Semiconductor Corporation System for reducing skew in the parallel transmission of multi-bit data slices
US5253347A (en) * 1988-11-18 1993-10-12 Bull Hn Information Systems Italia S.P.A. Centralized arbitration system using the status of target resources to selectively mask requests from master units
EP0378398B1 (de) * 1989-01-13 1996-07-24 International Business Machines Corporation Datenverarbeitungssystem mit Mitteln zur Zustandserkennung der Befehle empfangenden Datenverarbeitungseinrichtung
US5559962A (en) * 1989-10-09 1996-09-24 Yamaha Corporation Data transmission system selecting both source and destination using addressing mechanism
JPH03142504A (ja) * 1989-10-30 1991-06-18 Toshiba Corp プログラマブルコントローラ
CA2023998A1 (en) * 1989-11-13 1991-05-14 Thomas F. Lewis Apparatus and method for guaranteeing strobe separation timing
US5278974A (en) * 1989-12-04 1994-01-11 Digital Equipment Corporation Method and apparatus for the dynamic adjustment of data transfer timing to equalize the bandwidths of two buses in a computer system having different bandwidths
JPH03235152A (ja) * 1990-02-13 1991-10-21 Fujitsu Ltd バス制御方式
JPH03241448A (ja) * 1990-02-20 1991-10-28 Fujitsu Ltd Ipl方式
JPH03270431A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd プロセッサ間通信方式
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
JPH04119445A (ja) * 1990-09-11 1992-04-20 Canon Inc 計算機システム
JPH0823859B2 (ja) * 1990-09-28 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム
US6453406B1 (en) 1990-10-17 2002-09-17 Compaq Computer Corporation Multiprocessor system with fiber optic bus interconnect for interprocessor communications
JPH0689269A (ja) * 1991-02-13 1994-03-29 Hewlett Packard Co <Hp> プロセッサの制御装置、プロセッサの休止装置およびそれらの方法
US5319785A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Polling of I/O device status comparison performed in the polled I/O device
WO1993003439A1 (en) * 1991-07-26 1993-02-18 Tandem Computers Incorporated Apparatus and method for frame switching
US5202966A (en) * 1991-09-06 1993-04-13 Rockwell International Corporation Centralized bus arbitration circuit
AU4454993A (en) * 1992-08-10 1994-02-17 Lucent Technologies Inc. A radio communication system and a radio base station for use in such a system
US5631935A (en) * 1993-05-06 1997-05-20 Run-Rad Unlimited Networking, Ltd. Method and apparatus for governing information transfer using an efficient transport protocol
US5455914A (en) * 1993-07-23 1995-10-03 Unisys Corporation Tie-breaking control circuit for bus modules which share command execution
US5590289A (en) * 1993-11-12 1996-12-31 Intel Corporation Method and apparatus for initializing a computer system having central and distributed address decode memory bus resources
KR0140571B1 (ko) * 1995-01-19 1998-07-01 김광호 버스제어수단을 구비한 다중프로세서시스템
US5694614A (en) * 1995-02-15 1997-12-02 Ast Research, Inc. Minimum latency bus interface circuit with reduced I/O pin count through multi-mode operation
JPH08256155A (ja) * 1995-03-17 1996-10-01 Fujitsu Ltd ディジタル処理装置のポーリング方法及びその装置
US5768529A (en) * 1995-05-05 1998-06-16 Silicon Graphics, Inc. System and method for the synchronous transmission of data in a communication network utilizing a source clock signal to latch serial data into first registers and a handshake signal to latch parallel data into second registers
US6175883B1 (en) * 1995-11-21 2001-01-16 Quantum Corporation System for increasing data transfer rate using sychronous DMA transfer protocol by reducing a timing delay at both sending and receiving devices
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US7076716B1 (en) * 1998-04-13 2006-07-11 Intel Corporation Early acknowledgement of primary packets
US6640325B1 (en) * 1999-06-04 2003-10-28 Advanced Micro Devices, Inc. Immediate negative acknowledgement for a communication network
US9699102B2 (en) * 2004-08-09 2017-07-04 Arris Enterprises Llc Very high speed cable modem for increasing bandwidth
US9722850B2 (en) * 2004-08-09 2017-08-01 Arris Enterprises Llc Method and system for transforming video streams using a multi-channel flow-bonded traffic stream

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3668649A (en) * 1970-06-26 1972-06-06 Burroughs Corp Multiple terminal computer control system for group polling
FR2425018A1 (fr) * 1978-05-05 1979-11-30 Bourcier Carbon Christian Perfectionnement aux pistons pour amortisseurs
JPS5857770B2 (ja) * 1979-06-22 1983-12-21 パナファコム株式会社 情報転送制御方式
JPS56109057A (en) * 1980-02-04 1981-08-29 Hitachi Ltd Data communication system
JPS56140459A (en) * 1980-04-04 1981-11-02 Hitachi Ltd Data processing system
US4481572A (en) * 1981-10-13 1984-11-06 Teledyne Industries, Inc. Multiconfigural computers utilizing a time-shared bus
US4636939A (en) * 1982-07-16 1987-01-13 At&T Bell Laboratories Parallel bus protocol
EP0165600B1 (de) * 1984-06-20 1991-11-21 Convex Computer Corporation Ein-/Ausgabebus für Rechner
JPH0670787B2 (ja) * 1984-06-29 1994-09-07 富士通株式会社 処理装置間指令転送制御システム

Also Published As

Publication number Publication date
DE3752205T2 (de) 1999-04-22
EP0239300A3 (en) 1990-04-18
EP0596871B1 (de) 1998-07-29
EP0596871A2 (de) 1994-05-11
AU2991889A (en) 1989-05-25
DE3752205D1 (de) 1998-09-03
AU605961B2 (en) 1991-01-24
JPH0766367B2 (ja) 1995-07-19
JPS62236065A (ja) 1987-10-16
EP0596871A3 (en) 1994-08-10
AU583714B2 (en) 1989-05-04
AU7012787A (en) 1987-10-01
EP0239300B1 (de) 1994-10-26
US4888684A (en) 1989-12-19
DE3750680D1 (de) 1994-12-01
EP0239300A2 (de) 1987-09-30

Similar Documents

Publication Publication Date Title
DE3750680T2 (de) Multiprozessor-Busprotokoll.
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE69832410T2 (de) Pipeline-kommunikationssystem mit fester latenz-zeit unter verwendung von dynamischer echtzeit-bandbreitenzuweisung
DE3850585T2 (de) Datenverarbeitungssystem mit Überlappung von Buszyklusoperationen.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE2854485C2 (de) Datenverarbeitungsanlage
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE2831280C2 (de) Buszugriffs-Steuereinheit in einem Datenübertragungs-Steuersystem
DE3909948C2 (de)
DE3300261C2 (de)
DE2448212C2 (de) Asynchrone Sammelleitung zur Kommunikation mit selbstbestimmter Priorität zwischen Mutterrechnergeräten und Tochterrechnergeräten
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE3878908T2 (de) Hochgeschwindigkeitsbusschnittstelle mit einer niedrigen pinanzahl.
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3110196A1 (de) Datenverarbeitungssystem
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem &#34;pended bus&#34;.
DE2162806A1 (de) Digitales Eingabe-Ausgabe-Steuersystem mit Kanalpufferung
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee
8328 Change in the person/name/address of the agent

Free format text: DERZEIT KEIN VERTRETER BESTELLT