DE69029766T2 - Adaptive Leitweglenkung in Netzwerken - Google Patents
Adaptive Leitweglenkung in NetzwerkenInfo
- Publication number
- DE69029766T2 DE69029766T2 DE69029766T DE69029766T DE69029766T2 DE 69029766 T2 DE69029766 T2 DE 69029766T2 DE 69029766 T DE69029766 T DE 69029766T DE 69029766 T DE69029766 T DE 69029766T DE 69029766 T2 DE69029766 T2 DE 69029766T2
- Authority
- DE
- Germany
- Prior art keywords
- node
- header
- output link
- network
- link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000003044 adaptive effect Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 9
- 230000006854 communication Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/32—Flooding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
- Die vorliegende Erfindung betrifft im allgemeinen eine adaptive Leitweglenkung in Netzwerken und die effektive Datenlenkung zwischen parallelen Rechnerelementen durch ein zusammenhängendes Netzwerk mit multiplen Verbindungspfaden (z.B. ein mehrdimensionales Torus-Netzwerk).
- Die hier diskutierte Anordnung spricht das Problem der Verarbeitung von Meldungen geringer Latenz an, das in den heutigen Parallelcomputern auftritt. Ein solches Computersystem besteht aus einer großen Anzahl "Knoten", die über ein Hochgeschwindigkeits-Kommunikationsnetz untereinander verbunden sind. Jeder Knoten besteht in der Regel aus einem Prozessor und einem Speicher. Die Knoten arbeiten unabhängig und verkehren miteinander durch Senden von Meldungen und Datenblöcken über das Kommunikationsnetz.
- Das Kommunikationsnetz verbindet die Knoten miteinander, weil aber die Anzahl der Knoten potentiell sehr hoch ist (sie geht z.B. in die Tausende), ist es unpraktisch, wenn jeder Knoten eine festgelegte Standleitung zu jedem anderen Knoten des Systems hat. Daher wird im allgemeinen eine Art Topologie der Verbindungsglieder angewandt, wobei jeder Knoten Direktverbindungen nur zu eine paar Nachbarn hat. In einem solchen Netzwerk muß zum Versenden von Informationen zwischen Knoten, die nicht direkt miteinander verbunden sind, ein Pfad gefunden werden durch Benutzen zwischenliegender Knoten und der Verbindungsbrücken, die sie bilden.
- Wenn in einer solchen Umgebung ein Knoten eine Meldung zu einem nichtanliegenden Knoten schicken will, muß es einen Mechanismus zum Festlegen der zu benutzenden Zwischenglieder und -knoten und zum Schicken der Meldung über diese Zwischenglieder in kürzester Zeit geben. In einem regulären Netzwerk kann es zwischen zwei gegebenen Knoten eine Vielzahl möglicher Pfade geben. Der Meldungsübertragungsmechanismus ist in der Lage, einen Pfad aus den vielen Pfaden auszuwählen, und dabei besetzte oder unterbrochene Zwischenverbindungen und Knoten zu umgehen. Auch kann der Meldungsübertragungsmechanismus unabhängig vom Prozessor jedes Zwischenknotens arbeiten.
- Im allgemeinen ist die betreffende Netzwerk-Topologie anwendbar auf Netzwerk-Muster mit Mehrfachknoten, wobei jeder Knoten Verbindungsglieder zu seinen Nachbarn nach allen Seiten aufweist. Ein Beispiel für ein solches Topologieschema ist das mehrdimensionale Torus-Netzwerk.
- Beschreibungen für Parallelcomputersysteme sind zu finden in den US-Patenten 4,636,948, erteilt an IBM; 4,514,807 erteilt an Tatsuo; 4,814,980 und 4,730,322 erteilt an das California Jnstitute of Technology; 4,811,412 erteilt an die Princeton University; 4,814,979, 4,445,171 und 4,543,630 erteilt an Teradata; 4,748,660 erteilt an Jeumont-Schneider; und 4,598,400 erteilt an Thinking Machines Corp. Diese Patente beschreiben verschiedene Architekturen für Parallelverarbeitung, die frühere Entwicklungen für Leitwegsysteme ähnlich dem der vorliegenden Erfindung darstellen.
- Die nachstehend geoffenbarte Anordnung wurde entwickelt, um die folgenden Forderungen zu erfüllen, die bisher in einer Parellelverarbeitungsumgebung noch nie möglich waren. Eine Schlüsselforderung ist die Fähigkeit zum dynamischen Ausfindigmachen des kürzesten verfügbaren Pfades und zum Senden einer Meldung über diesen Pfad, von jedem beliebigen Knoten zu jedem beliebigen anderen Knoten in einem mehrdimensionalen Netzwerk, auch wenn diese nicht direkt verbunden sind. Diese Fähigkeit ist kombiniert mit einer Gesamtübertragungsgeschwindigkeit, die nur um einen Bruchteil langsamer ist als die Verbindungsglied-Grundgeschwindigkeit. Das Verbindungsglied muß auch in der Lage sein, sich dynamisch an sich verändernde Netzwerkzustände, einschließlich Überlastung und nichtbetriebsbereite Verbindungen anzupassen, ggf. durch Verwendung alternativer Leitwege. Das Senden über einen Leitweg wird erreicht ohne Puffern in den Zwischenknoten. Das nindert die Kosten und eliminiert sequentielles Suchen, wenn eine Netzwerkbetriebsmittelblockierung angetroffen wird. Schließlich muß jedes Netzwerkelement freigeschaltet werden können, wenn die Weiterleitung der Meldung zeitweilig blockiert ist.
- Beispiele für Systeme auf dem Stand der Technik, die die obigen Vorgaben nicht erfüllen, sind in Artikeln wie z.B. "The torus routing chipy", Distributed Computing, Springer- Verlag New York, 1986, und Chow et al., "Hyperswitch Network For the Hypercube Computer", Computer Architecture News, Bd. 16, Nr. 2, Mai 1988 zu finden.
- Der Torus-Artikel beschreibt einen parallel rechnenden Netzwerk-Leitwegchip, der spezifisch dafür konstruiert wurde, eine Leitwegsuche geringer Latenz in einem mehrdimensionalen Torus-Netzwerk zu ermöglichen. Der Chip setzt eine Reihenfolge fest, in der die Meldungen über Zwischenknoten zu ihrem Bestimmungsort geschickt werden. Angewandt wird hier eine Technik, die als "Cut through" (Durchbruch)-Leitwegsuche bekannt ist. Diese Technik schickt jedes Byte sofort wieder auf seinen Weg sobald es an einem Zwischenknoten ankommt. Somit nähert sich die Gesamtübertragungszeit der Verbindungsglied- Grundgeschwindigkeit und Puffern an den Zwischenknoten ist nicht erforderlich. Eine etwas genauere Beschreibung der Durchbruch-Leitwegsuche ist enthalten in "A Framework for Adaptive Routing in Multicomputer Networks", ACM Symposium on Parallel Algorithms and Architectures, 1989.
- Das Problem mit dem Torus-Chip und insbesondere mit der "Durchbruch"-Leitwegsuche ist, daß die vorgegebenen Leitwege statisch sind und sich nur auf die relativen Stellungen des Quellknotens und des Zielknotens gründen. Wenn eine Verbindung auf dem Weg unterbrochen wird, kann die Meldung nicht durch das Netz geschickt werden, auch wenn ein alternativer Leitweg hätte benutzt werden können. Auch wenn es eine Überlappung zwischen einigen der Verbindungsglieder im Netzwerk gibt, wird die Weiterleitung für eine oder mehrere Meldungen zeitweilig blockiert. Das könnte seinerseits den Durchgang einer oder mehrerer anderer Meldungen blockieren. Das Blockieren dieser Meldungen seinerseits hat Auswirkungen auf andere Meldungen, weil blockierte Meldungen den Weg, den sie benutzen, nicht freigeben. Somit gibt es keine Möglichkeit, Netzwerkbetriebsmittel freizumachen, wenn der Fortgang einer Meldung zeitweilig blockiert wird.
- Im Hyperswitch-Artikel wird beschrieben, wie Meldungen in einem Hypercube-Rechner geleitet schicken. Der Hypercube ist ein Sonderfall des mehrdimensionalen Torus, in dem die Anzahl Knoten in jeder Dimension immer zwei ist. Das Hyperswitch- Netzwerk führt eine anpassungsfähige Leitwegsuche durch. Dabei wird vor Absenden einer Meldung das Durchsuchen aller möglichen Pfade durchgeführt, um Leitwege zu identifizieren, überlastungen und um unterbrochene Verbindungswege umgehen. Das gibt der Hyperswitch-Leitwegsuche die Möglichkeit, sich dynamisch an sich laufend verändernde Netzwerkzustände und nicht betriebsbereite Verbindungen anzupassen. Auch hier erfordert die Leitwegsuche kein Puffern und es besteht zusätzlich die Möglichkeit, Netzwerkbetriebsmittel freizuschalten, wenn bei der anfänglichen Durchsuchung des Netzwerks Blockierungen gefunden werden.
- Wie oben gesagt, ist die im Hyperswitch-Artikel beschriebene Eähigkeit nur bei einem Hypercube-Rechner von Nutzen. Das ist eine extreme Einschränkung angesichts der heutigen mehrdimensionalen Netzwerkimplementierungen. Ferner bedeutet die anfängliche sequentielle Hyperswitchsuche einen unerwünschten Aufwand.
- In der Europäischen Patentanmeldung EP-A-234191 wird ein paketvermittelndes Kommunikationsnetz mit mehrfachen virtuellen Schaltkreisen zum Umleiten von Meldungsblockpaketen geoffenbart. Zwischen Quell- und Zielterminal werden mehrfache logische Kanäle parallel aufgebaut und die Meldungsblockpakete werden über einen der aufgebauten logischen Kanäle übertragen. Bei Störungen oder Verkehrsüberlauf im logischen Kanal werden die Nachrichtenblockpakete auf einen anderen der festgelegten Kanäle umgeschaltet.
- EP-A-221360 beschreibt ein Übertragungsnetzwerk, in dem jeder Knoten Topologie-Datenbanken führt, die die möglichen verfügbaren Leitwege durch das Netzwerk aufzeichnen, wobei die Leitwegfindung den sich verändernden Netzwerkzustände durch den Einsatz geeigneter Rückmeldungen, die von anliegenden Knoten her eingehen, dynamisch angepaßt wird.
- Wie man sieht, weist die vorliegende Erfindung keine der obigen Probleme oder Einschränkungen auf.
- Die vorliegende Erfindung sieht vor ein Gerät zum Führen eines Nachrichtenblocks zwischen einem Quellknoten und einem Zielknoten eines Knotennetzwerks regulärer Topologle, wobei der Quellknoten eine Datentransaktion aufbaut, die einen Nachrichtenblock und eine Kopfzeile enthält, wobei die Kopfzeile Bitgruppen beinhaltet, die Pfade durch das Knotennetzwerk definieren, wobei mindestens ein Knoten in einem der Pfade beinhaltet: Schaltermittel; eine Vielzahl von Ausgabeverbindungssendern, wobei jeder der Ausgabeverbindungssender mit einem nachfolgenden Knoten verbunden ist; eine Vielzahl von Eingabeverbindungsempfängern, wobei jeder der Eingabeverbindungsempfänger mit einem vorangehenden Knoten verbunden ist und auf eine empfangene Bitgruppe einer Kopfzeile anspricht, um mehrfache nebenläufige Verbindungen über die Schaltermittel zu Ausgabeverbindungssendern innerhalb des einen Knotens herzustellen und zum Kopieren der Kopfzeile in jedem der angeschlossenen Ausgabeverbindungssender; und Mittel zum Modifizieren jeder kopierten Kopfzeile zum Definieren der Knotennetzwerkpfade zum Zielknoten von nachfolgenden Knoten aus, die mit einem der Ausgabeverbindungssender verbunden sind, in die die Kopfzeile kopiert wurde, wobei jeder der Ausgabeverbindungssender seine veränderte Kopfzeile und den Nachrichtenblock an den nachfolgenden Knoten sendet, mit dem einer der Ausgabeverbindungssender verbunden ist.
- Wie nachstehend geoffenbart, sind in einer solchen Anordnung, die identische Leitwegverfahren anwendet, in jedem Systemknoten Mechanismen angeordnet, um effektiv Informationen von Knoten zu Knoten weiterzugeben. Jeder Leitweumechanismus enthält ein Sender/Empfänger-Paar, das über einen herkömmlichen Kreuzschienenschalter (Raummultiplexdurchschalter) gekoppelt ist. Eingebaut in jedes Sender/Empfänger-Paar sind bidirektionale Kommunikationsverbindungen mit anderen benachbarten Knoten. Jedes Sender/Empfänger-Paar beinhaltet Standleitungsverbindungen zum Prozessor und Speicher des residen ten Knoten.
- Die Informationen werden von Knoten zu Knoten weitergegeben unter Verwendung einer Kopfzeile, die aus Leitwegbeschreibungsbits besteht. Das Empfänger/Sender-Paar jedes Knotens verändert den Zustand bei der Weiterleitung der Information zum Zielknoten. Die Meldung wird über mehrere Knoten gleichzeitig geführt, um die Knoten schnell zu druchqueren und den Zielknoten zu erreichen. Wenn die Endknotenverbindung hergestellt ist, werden alle nachfolgenden Kommunikationsverbindungen über einen Befehl, der über das Netzwerk zurückgeschickt wird, freigeschaltet.
- Daraus ergibt sich die Fähigkeit, Meldungen in einem mehrdimensionalen Netzwerk von einem beliebigen Knoten zu einem beliebigen anderen Knoten zu schicken, auch wenn diese nicht direkt miteinander verbunden sind. Das Leitweg-Senden erfolgt mit einer Gesamtübertragungszeit, die der Punkt-zu-Punkt-Verbindungszeit nahekommt.
- Das Leitweg-Senden weist eine solche Architektur auf, daß es sich dynamisch an sich verändernde Netzwerkzustände anpaßt, einschließlich Überlastungen und nichtbetriebsbereite Verbindungen, indem es nötigenfalls einen alternativen Leitweg sucht, und Meldungen werden nicht gepuffert. Die Architektur ist genügend flexibel, daß sie blockierte Meldungen entdeckt und dynamisch Netzwerkbetriebsmittel freischaltet, um Zwänge im Netzwerk zu erleichtern.
- Die vorliegende Erfindung soll jetzt beispielhaft noch eingehender beschrieben werden anhand einer in den begleitenden Zeichnungen dargestellten Ausführungsform, wobei
- Fig. 1 die Netzwerktopologie eines zweidimensionalen Torus- Netzwerks zeigt;
- Fig. 2 ist eine Illustration der Beziehungen zwischen dem Leitwegmechanismus und seinen Knoten;
- Fig. 3 ist eine Illustration der Innenstruktur des Leitwegmechanismus;
- Fig. 4 ist eine Illustration eines Musternetzwerks;
- Fig. 5 ist eine Illustration einer Musternetzwerksuche;
- Fig. 6 ist eine Illustration einer anderen Musternetzwerksuche;
- Fig. 7 ist eine Illustration einer anderen Musternetzwerksuche;
- Fig. 8 ist eine Illustration einer anderen Musternetzwerksuche;
- Fig. 9 ist ein Flußdiagramm, das die Zustandsänderungen für die Empfänger- und Injektormodule zeigt;
- Fig. 10 ist ein Flußdiagramm, das den Leerlaufzustand für die Sender- und Extraktormodule zeigt;
- Fig. 11 ist eine Flußdiagramm, das den Suchzustand für die Sender- und Extraktormodule zeigt;
- Fig. 12 ist ein Flußdiagramm, das die Verarbeitung im Aktivzustand für die Sender- und Extraktormodule zeigt; und
- Fig. 13 ist ein Flußdiagramm, das den Wartezustand für die Sender- und Extraktormodule zeigt.
- Fig. 1 illustriert die Topologie eines zweidimensionalen Torus. Jeder Kasten 10 stellt einen Knoten dar und jede Linie 20 stellt ein Verbindungsglied dar. In Fig. 1 sind zwanzig Knoten in einem Fünf-mal-Vier-Torus verschaltet. Ein dreidimensionaler Torus würde eine Vielzahl von zweidimensionalen Netzwerken aufweisen, die logisch in der dritten Dimension gestapelt sind. Jeder Knoten hätte dann noch zwei zusätzliche Verbindungen, eine zum Gegenstück im darüberliegenden zweidimensionalen Torus und eine zum Gegenstück im darunterliegenden zweidimensionalen Torus. Auch noch höherdimensionale Torus-Netzwerke sind möglich.
- Die geoffenbarte Ausführungsform benutzt mehrfache, identische Leitwegmechanismen, die jeweils eins zu eins jedem Knoten im System zugeordnet sind. Nehmen wir Bezug auf Fig. 2; die Verbindungsglieder zwischen den Knoten 10, 11, 12 und 13 sind direkt verbunden mit den Leitweumechanismen 200, 210, 220 und 230.
- Bei den Verbindungsgliedern kann es sich um lokale Netze oder beliebige, unterschiedliche, sonstige Standard-Kommunikationsmedien handeln, die heute zur Kommunikation zwischen Knoten üblicherweise eingesetzt werden. Leitweumechanismus, Prozessor und Speicher können aus einer Reihe allgemein benutzter Prozessoren und Speicher ausgewählt werden, wie z.B. ein 80386er Prozessor und ein kompatibler Speicher.
- Jeder Leitwegmechanismus sieht seinerseits eine Verbindung zu dem Prozessor oder Speicher 100, 110, 120 und 130 des entsprechenden Knotens vor. Beim Knoten 10 ist jede seiner Kommunikationsverbindungen 21, 22, 23 und 24 gesondert bezeichnet, damit sie mit der detaillierten Beschreibung der Fig. 3 übereinstimmen.
- Die Anzahl der vom Leitwegmechanismus unterstützten Verbindungen ist variabel und hängt von der Anzahl der Dimensionen des Netzwerks ab. Zwecks Vereinfachung der Erklärung nehmen wir ein zweidimensionales Netzwerk an, wie es in Fig. 1 gezeigt wird. In Fig. 1 ist jeder Knoten 10 jeweils über ein Verbindungsglied 20 mit seinen vier benachbarten Knoten verbunden. Eine spätere Erklärung zeigt die zusätzlichen Verbindungen, die zur Unterstützung weiterer Dimensionen erforderlich sind.
- Fig. 3 zeigt die interne Architektur des Leitwegnechanismus für einen zweidimensionalen Torus. Für einen zweidimensionalen Torus unterstützt jeder Leitwegmechanismus vier bidirektonale Verbindungen, die ankommenden Verbindungen 300 und die ausgehenden Verbindungen 320 zu anderen Leitwegmechanismen (in anderen Knoten) und eine gesonderte ankommende Verbindung 310 und ausgehende Verbindung 330 zum Prozessor bzw. zum Speicher seines eigenen Knotens. Da die Verbindungen bidirektional sind, sind fünf Empfänger 301, 302, 303, 304 und 311, und fünf Sender 321, 322, 323, 324 und 331 erforderlich. Ein Kreuzschienenschalter 350 wird als Beispiel für die benutzte Hardware gezeigt, der benutzt wird, um die Informationen zwischen den verschiedenen Gliedern zu schalten. Statt des Kreuzschienenschalters kann auch ein Raummultiplexdurchschalter benutzt werden.
- Jede Verbindung ist geeignet bezeichnet gemäß der Richtung, in der die Datenübertragungsverbindung Daten sendet. So entsprechen der Empfänger für W+ 301 und der Sender für W+ 321 der Datenübertragungsverbindung 21 in Fig. 2, der Empfänger für W- 302 und der Sender für W- 322 entsprechen der Datenübertragungsverbindung 22, der Empfänger für X+ 303 und der Sender für X+ 323 entsprechen der Datenübertragungsverbindung 23 und der Empfänger für X- 304 und der Sender für X- 324 entsprechen der Datenübertragungsverbindung 24. Der "Injektor" 310 ist ein besonderer Empfänger, der Daten aus dem Prozessor oder Speicher des Knotens anstatt von einem anderen Knoten erhält. Der "Extraktor" 330 ist ein besonderer Sender, der Daten an den Prozessor oder Speicher des Knotens anstatt an einen anderen Knoten sendet.
- Der Kreuzschienenschalter 350 ist ein Vielpol-Umschalter von den Verbindungsempfängern 301-310 zu den Verbindungssendern 321-330. Zum Herstellen der Verbindungen legt jeder Empfänger 301-310 eine Wahlmaske auf den Kreuzschienenschalter 350, die den Sender 321-330 anzeigt, durch den er senden will. Verbindungen über den Kreuzschienenschalter 350 werden nur dann hergestellt, wenn der betreffende Sender frei ist. Nachdem ein Pfad geöffnet ist, fordert ein Sender den Kreuzschienenschalter auf, die Datenverbindung freizugeben, die vorher zusammengeschaltet war.
- Die Wahlmaske besteht aus einem Vier-Bit-Befehlswort, das von jedem Empfänger an den Kreuzschienenschalter gegeben wird. Wenn die Wahlmaske nur aus Nullen besteht, öffnet der Kreuzschienenschalter einen Pfad von diesem Empfänger zum Extraktor. Wenn die Wahlmaske nicht Null ist, wird jedes Bit verwendet, um anzuzeigen ob ein Pfad zum entsprechenden Sender geöffnet werden soll. Zum Beispiel bestimmt eine Wahlmaske 0001, daß der Kreuzschienenschalter 350 versucht, einen Pfad vom Empfänger, der die Maske eingebracht hat, sagen wir Empfänger 301, an den W+ Sender 321 zu schicken. Eine Wahlmaske 1010 fordert zwei Pfade an, einen vom Empfänger 301 zum W- Sender 322, und einen vom Empfänger 301 zum X- Sender 324. Wenn durch den Kreuzschienenschalter 350 mehr als ein Pfad geöffnet wird, wird jedes vom Empfänger generierte Byte an alle angeschlossenen Sender geschickt.
- Nehmen wir jetzt Bezug auf Fig. 9; dort wird ein Flußdiagramm gezeigt, das die Zustandsänderungen der Empfänger- und Jnjektormodule zeigt. Jeder Empfänger hat zwei Primärzustände -- IDLE und ACTIVE. Wenn IDLE (im Leerlauf), markiert das erste über eine Verbindung eingehende Byte den Anfang einer Meldung und bewirkt, daß der Empfänger in den ACTIVE Zustand übergeht. Der Entscheidungsblock 900 sucht nach einem Byte von der Datenverbindung oder vom Speicher. Wenn ein Byte gefunden wird, geht der Empfänger in den ACTIVE Zustand über. Wenn nicht, kehrt der Empfänger in den IDLE Zustand zurück. Im Funktionsblock 910 benutzt der Empfänger das niedrigstwertige Halbbyte (vier Bits) des "ersteingehenden" Byte als Wahlmaske (siehe oben) für den Kreuzschienenschalter. Die Wahlmaske repräsentiert, wenn sie dem Kreuzschienenschalter aufgelegt wird, einen Satz gewünschter Pfade zu einem oder mehreren Sendern.
- Der Entscheidungsblock 920 sucht nach besetzten oder nicht betriebsbereiten Sendern. Wenn kein Sender verfügbar ist, wird die Verarbeitung im Funktionsblock 960 fortgesetzt, wo ein LINK-CLOSE Befehl über das Verbindungsglied zurückgeschickt wird. Wenn wenigstens ein Pfad durch den Kreuzschienenschalter verfügbar ist, sucht der Entscheidungsblock 940 nach einem zusätzlichen Datenbyte. Wenn die Daten existieren, werden sie, wie in Funktionsblock 950 gezeigt, durch den Kreuzschienenschalter geschickt. Wenn kein zusätzliches Byte existiert, geht die Steuerung auf Funktionsblock 960 über.
- Beziehen wir uns jetzt auf Fig. 10; jeder Sender hat vier Zustände -- IDLE, SEARCHING, ACTIVE und DELAYED. Ein Sender beginnt im IDLE Zustand und bleibt in diesem Zustand, solange er nicht über den Kreuzschienenschalter an einen Empfänger angeschlossen ist, wie im Entscheidungsblock 8000 gezeigt wird. Weder empfängt er noch sendet er Daten in diesem Zustand. Wenn der Kreuzschienenschalter 350 einen Sender mit einem Empfänger verbindet, ist das erste beim Sender eingehende Byte das "Wahlmasken"-Byte.
- Der Funktionsblock 8010 führt eine bitweise UND-Verknüpfung zwischen der "Wahlmaske" als ein Operand und einer auf Identität gegründeten Bit-Maske als der andere Operand durch. Diese Operation wählt einen Pfad durch den Kreuzschienenschalter 350. Die möglichen Werte und ihre zugeordneten Funktionsblöcke werden nachstehend gezeigt.
- 1110 für den W+ Sender (8020)
- 1101 für den W- Sender (8030)
- 1011 für den X+ Sender (8040)
- 0111 für den X- Sender (8050)
- 0000 für den Extraktor (8055)
- Im Funktionsblock 8060 wird dann das Ergebnis in einem Register gespeichert, das WORK bezeichnet ist. Nach Speichern im WORK Register bestimmt der Entscheidungsblock 8070, ob der Wert Nicht-Null ist. Wenn der Wert Nicht-Null ist, wird die Verarbeitung fortgesetzt mit Funktionsblock 8090, wo das "Masken-Byte" abgelegt wird. Nach dem Ablegen des "Masken- Byte" tritt der Sender in den SEARCHING Zustand ein. Wenn der Wert Null ist, fährt der Prozeß mit dem Ablegen des "Masken- Byte" und mit dem Eintreten in den ACTIVE Zustand als Extraktor fort.
- Im SEARCHING Zustand modifiziert der Sender jedes nachfolgende, von ihm aufgenommene Byte und sendet das Ergebnis an sein Verbindungsglied. Fig. 11 stellt ein Flußdiagramm dar, das die SEARCHING Zustandslogik umreißt, die vom Sender und vom Extraktor benutzt wird.
- Entscheidungsblock 9100 führt einen Test durch, in dem bestimmt wird, ob das aufgenommene Byte ein LINK-CLOSE (Verbindungsschluß) Zustand ist.
- Wenn das eingegangene Byte ein LINK-CLOSE Befehl ist, geht die Verarbeitung zum Funktionsblock 9190 über, wo der Pfad durch den Kreuzschienenschalter geschlossen und der IDLE Zustand wird.
- Wenn das eingegangene Byte nicht der LINK-CLOSE Befehl ist, bestimmt der Entscheidungsblock 9110, ob ein zusätzliches Byte vom Kreuzschienenschalter verfügbar ist. Wenn nicht, kehrt die Verarbeitung zum Funktionsblock 9100 zurück, oder sonst wird ein bitweises ODER zwischen dem WORK Register und dem aufgenommenen Byte durchgeführt. Das geschieht im Funktionsblock 9120.
- Dann werden im Entscheidungsblock 9130 die Ergebnisse der Operation mit 0000, 0011, 1100 und 1111 verglichen. Wenn der Test mit im Entscheidungsblock 9130 nein zeigt (das heißt, keine Übereinstimmung gefunden wird) geht der Prozeß weiter mit Funktionsblock 9140, wo das Ergebnis der Operation an den nächsten Knoten geschickt wird. Wenn eine Übereinstimmung gefunden wird, führt der Funktionsblock 9150 ein bitweises UND zwischen dem eingegangenen Byte und dem WORK Register durch. Das Ergebnis wird der neue Wert des WORK Registers, wie im Funktionsblock 9160 ersichtlich ist.
- Im Entscheidungsblock 9170 wird das eingegangene Byte mit 0000 verglichen. Wenn das eingegangene Byte gleich 0000 ist, tritt der Sender in den DELAYED Zustand (Wartezustand) ein. Wenn nicht, werden die neuen Inhalte des WORK Registers im Entscheidungsblock 9180 mit 0000 verglichen. Wenn der Inhalt gleich 0000 ist, verwirft der Sender das eingegangene Byte im Funktionbsblock 9200 und tritt in den ACTIVE Zustand ein.
- Wenn nicht, wiederholt sich der ganze Prozeß durch Rücksprung zu Block 9100.
- In den Zuständen ACTIVE und DELAYED wird jedes eingehende Byte unverändert über die Verbindungen des Senders weitergesendet. Wenn die Information für den Extraktor bestimmt ist, heißt das, daß das Byte dem Knotenprozessor oder -speicher direkt zur Verfügung gestellt wird. Der Unterschied zwischen diesen beiden Zuständen ist, daß im DELAYED Zustand ein Extrabyte mitgesendet werden muß, so daß sich die eingehenden Bytes im WORK Register um einen Zyklus verzögern.
- Das Flußdiagramm in Fig. 12 umreißt die Zustände ACTIVE und DELAYED für die Sender- und Extraktormodule. Im ACTIVE Zustand bestimmt der Funktionsblock 1200, ob das eingegangene Byte ein LINK-CLOSE Befehl ist. Wenn das eingegangene Byte ein LINK-CLOSE Befehl ist, fährt der Prozeß mit dem Funktionsblock 1270 fort und schließt den Pfad durch den Kreuzschienenschalter zu diesem Modul. Wenn das eingegangene Byte kein LINK-CLOSE Befehl ist, bestimmt der Entscheidungsblock 1210, ob ein zusätzliches Byte existiert. Wenn nicht, fährt der Prozeß mit Entscheidungsblock 1200 fort, sonst sendet der Funktionsblock 1220 das letzte Byte zum nächsten Knoten.
- Das Flußdiagramm in Fig. 13 illustriert die Verarbeitung des Zustands DELAYED. Die Verarbeitung beginnt mit einem Test im Entscheidungsblock 1230, um festzustellen, ob das eingegangene Byte ein LINK-CLOSE Befehl ist. Wenn das eingegangene Byte ein LINK-CLOSE Befehl ist, fährt der Prozeß mit dem Funktionsblock 1280 fort und schließt den Pfad durch den Kreuzschienenschalter zu diesem Modul. Wenn das eingegangene Byte kein LINK-CLOSE Befehl ist, bestimmt der Entscheidungsblock 1240, ob ein zusätzliches Byte existiert. Wenn nicht, fährt der Prozeß mit Entscheidungsblock 1230 fort, sonst sendet der Funktionsblock 1250 das letzte Byte zum nächsten Knoten. Der Funktionsblock 1260 speichert dann das eingegangene Byte im WORK Register ab. Schließlich wird, wie in Funktionsblock 1290 gezeigt wird, das eingegangene Byte verworfen.
- Wenn in einem der Zustände SEARCHING, ACTIVE oder DELAYED, der Empfänger, an den der Sender gerade Daten sendet (d.h. der am anderen Ende der Verbindung) einen LINK-CLOSE Befehl zurücksendet, beendet der Sender seine Teilnahme an der Übertragung dieser Meldung, instruiert den Kreuzschienenschalter, ihn vom Empfänger, an den er augenblicklich Daten sendet, abzuschalten und in den IDLE Zustand zurückzukehren. Wenn alle mit einem Empfänger verbundenen Sender in den IDLE Zustand zurückgekehrt sind, wird dieser Empfänger informiert, daß er nicht mehr mit einem Sender verbunden ist, und kehrt in den IDLE Zustand zurück. Wenn eine Verbindung nicht mehr betriebsbereit ist, geht der diese Verbindung treibende Sender nicht aus dem IDLE Zustand heraus. Wenn ein Byte durch den Kreuzschienenschalter für eine nicht betriebene Verbindung ankommt, instruiert der Sender unverzüglich den Kreuzschienenschalter, die Verbindung abzubrechen, so als ob er einen LINK-CLOSE Befehl erhalten hätte. Wenn schließlich eine Verbindung mitten in einer Übertragung nicht betriebsbereit wird, bricht der Sender die Verbindung auf gleiche Weise ab.
- Zusätzlich zu den Daten können ein paar Befehle über jede Verbindung und durch den Kreuzschienenschalter rückwärts und vorwärts gesendet werden. Diese Befehle werden als gesonderte Steuerleitungen oder als besondere Inband-Umschaltzeichen in den Daten implementiert. Die Implementierung ist unterschiedlich, je nach der Verbindungskonstruktion.
- Der LINK-CLOSE Befehl wird über eine Verbindung rückwärts (gegen den Datenfluß) von einem Empfänger in einem Knoten zu einem Sender in einem anderen Knoten zurückgesendet. Wie bereits beschrieben, bewirkt LINK-CLOSE, daß der Sender in den IDLE Zustand geht und seine Verbindung durch den Kreuzschienenschalter schließt. Wenn es nur einen offenen Pfad durch den Kreuzschienenschalter gibt, bewirkt er auch, daß ein weiterer LINK-CLOSE Befehl gesendet wird, dieses Mal über eine Verbindung, die einen Sprung näher am Quellknoten liegt.
- Der END-OF-MESSAGE Befehl wird über Verbindungsglieder und durch die Kreuzschienenschalter vom Quellknoten zum Zielknoten geschickt. Die Zwischenempfänger und -sender senden den END-OF-MESSAGE Befehl durch das System, so als ob er ein Datenbyte wäre. Sobald der END-OF-MESSAGE Befehl beim Zielknoten eingeht, führt dieser die zyklische Redundanzprüfung CRC durch. Wenn die CRC richtig ist, sendet er einen ACKNOWLEDGE Befehl gefolgt von einem LINK-CLOSE Befehl. Wenn die CRC falsch ist, wird nur ein LINK-CLOSE Befehl gesendet.
- Der ACKNOWLEDGE Befehl wird über jedes Verbindungsglied rückwärts vom Empfänger zum Sender und über jeden Kreuzschienenschalter vom Sender wieder zurück zum Empfänger geschickt. Er wird vom Zielknoten nur nach erfolgreichem Eingang der Meldung generiert. Jeder Zwischenleitwegmechanismus sendet den ACKNOWLEDGE Befehl zurück zum Quellknoten ohne etwas zu unternehmen. Am Quellknoten wird der ACKNOWLEDGE Befehl benutzt, um anzuzeigen, daß eine Meldung erfolgreich eingegangen ist.
- Zur Übertragung einer Meldung generiert der Quellknoten einen Datenstrom, der aus den nachstehenden Abschnitten besteht (aufgeführt in der Reihenfolge der Übertragung). Die Daten müssen mit der gleichen Geschwindigkeit, wie bei jedem Verbindungsglied im Netzwerk, an den Injektor des Leitwegmechanismus des Quellknotens geschickt werden.
- 1. Eine Leitweg-Kopfzeile (Null, oder mehr Bytes)
- 2. Ein Null-Byte (als Abschluß der Kopfzeile)
- 3. Die zu sendende Meldung (Null, oder mehr Bytes)
- 4. Die CRC der Meldung (nicht einschließlich der Kopfzeile)
- 5. Ein END-OF-MESSAGE Befehl
- Wenn die Meldung korrekt eingegangen ist, muß der Quellknoten einen ACKNOWLEDGE Befehl von seinem Injektor erhalten, gefolgt von einem LINK-CLOSE Befehl.
- Wenn der LINK-CLOSE Befehl ohne einen ACKNOWLEDGE Befehl auftritt, weiß der Quellknoten, daß die Meldung nicht eingegangen ist und noch einmal gesendet werden muß.
- Wenn eine Meldung am Zielknoten ankommt, erscheinen die gesendeten Bytes, in der gesendeten Reihenfolge, vom Extraktor des Zielknotenleitwegmechanismus her mit der gleichen Geschwindigkeit wie die der Verbindungsglieder im Netzwerk. Die Kopfzeile (einschließlich des Null-Byte, das ihr Ende kennzeichnet) kommt nicht am Ziel an, nur die Meldung, CRC und der END-OF-MESSAGE Befehl verlassen den Extraktor.
- Die Kontrolle der CRC und die Generierung der Befehle END-OF-MESSAGE, ACKNOWLEDGE und LINK-CLOSE wird von der Hardware zwischen dem Leitwegmechanismus und dem Knotenprozessor oder -speicher gehandhabt. Die Verzögerung zwischen END-OF- MESSAGE, ACKNOWLEDGE und LINK-CLOSE muß möglichst kurz sein, weil der Leitwegmechanismus einen Weg zurück zum Quellknoten offen hält, bis das End-LINK-CLOSE erscheint.
- Die Kopfzeile, die vom Quellknoten generiert und am Anfang der Meldung gesendet wird, legt fest, welchen Pfad oder welche Pfade die Meldung einschlagen soll. In einem zweidimensionaler Torus wird nur das niedrigstwertige Halbbyte jedes Kopfzeilenbyte benutzt. Die einzelnen Bytes der Kopfzeile werden wie folgt interpretiert. (Bit 0 ist das niedrigstwertige)
- Bit 0 wird 1 gesetzt um eine Verbindung in W+ Richtung zu bewegen
- Bit 1 wird 1 gesetzt um eine Verbindung in W- Richtung zu bewegen
- Bit 2 wird 1 gesetzt um eine Verbindung in X+ Richtung zu bewegen
- Bit 3 wird 1 gesetzt um eine Verbindung in X- Richtung zu bewegen
- Bits 4-7 werden in einem zweidimensionalen Netzwerk gesetzt.
- Um den einfachsten Kopfzeilentyp aufzubauen, bestimmt der Quellknoten den relativen Abstand zwischen sich und dem Zielknoten in jeder Richtung. Die Länge der Kopfzeile (in Bytes) ist gleich der in der längsten Richtung zu durchlaufenden Entfernung plus ein Byte nur aus Nullen.
- Wenn man die Kopfzeilenbytes als Tabelle ansieht, wobei jedes Byte eine Zeile und jede Spalte eine Richtung darstellt (wie oben gezeigt), muß jede Spalte mit so vielen Einsen gefüllt sein wie Bewegungen in dieser Richtung zum Zielknoten vorhanden sind. In jeder Spalte müssen alle Einsen vor den Nullen kommen. So hat das erste Byte der Kopfzeile die meisten Bits gesetzt und das letzte Byte besteht nur aus Nullen.
- Als Beispiel, das Senden einer Meldung vom Knoten 0,0 zum Knoten 3,2 erfordert drei Bewegungen in W+ Richtung und zwei Bewegungen in X+ Richtung. Die Grundkopfzeile, die diese Bewegung darstellt, ist vier Bytes lang, wie nachstehend gezeigt wird.
- 0000 0101 - erstes gesendetes Byte
- 0000 0101
- 0000 0001
- 0000 - Kopfzeile Ende
- Wenn die Kopfzeile eingeht, sucht der Leitwegmechanismus nach allen möglichen direkten Pfaden zwischen Quellknoten und Zielknoten. Jeder Pfad wird gleichzeitig versucht. Der erste Bytestrom, der den Zielknoten erreicht, wird benutzt (wird offengehalten bis zum Ende der Meldung). Alle anderen Pfade werden abgebrochen (unter Verwendung eines LINK-CLOSE), sobald sie das Ziel nicht erreichen.
- Im obigen Beispiel werden alle folgenden Pfade parallel durchsucht:
- 0,0 nach 0,1 nach 0,2 nach 1,2 nach 2,2 nach 3,2
- 0,0 nach 0,1 nach 1,1 nach 1,2 nach 3,1 nach 3,2
- 0,0 nach 0,1 nach 1,1 nach 2,1 nach 2,2 nach 3,2
- 0,0 nach 0,1 nach 2,0 nach 2,1 nach 3,1 nach 3,2
- 0,0 nach 1,0 nach 1,1 nach 1,2 nach 2,2 nach 3,2
- 0,0 nach 1,0 nach 1,1 nach 2,1 nach 2,2 nach 3,2
- 0,0 nach 1,0 nach 1,1 nach 2,1 nach 3,1 nach 3,2
- 0,0 nach 1,0 nach 2,0 nach 2,1 nach 2,2 nach 3,2
- 0,0 nach 1,0 nach 2,0 nach 2,1 nach 3,1 nach 3,2
- 0,0 nach 1,0 nach 2,0 nach 3,0 nach 3,1 nach 3,2
- Das läßt sich grafisch darstellen durch Zeigen der durchsuchten Teilmenge des Netzwerks, wenn diese Kopfzeile benutzt wird. In Fig. 4 ist der Quellknoten mit einen "S" 400 bezeichnet und der Zielknoten ist mit einem "D" 401 bezeichnet. Alle anderen gezeigten Knoten 402 werden während der Suche angesteuert (falls keine nichtbetriebsbereiten Verbindungsglieder vorkommen).
- Falls eines oder mehrere der Verbindungsglieder im Netz besetzt oder nicht betriebsbereit sind, erreichen die Daten, die diese Verbindungsglieder enthaltende Pfade entlang laufen, ihre Ziel nicht. Ein großes Suchmuster wird benutzt, um die Wahrscheinlichkeit zu erhöhen, daß wenigstens ein durchsuchter Pfad zu seinem Ziel durchkommt. Wenn keiner der Pfade das Ziel erreicht, wird ein LINK-CLOSE Befehl ohne einen ACKNOWLEDGE Befehl an den Quellknoten zurückgegeben. In diesem Fall muß der Quellknoten versuchen, die Meldung noch einmal durchzugeben.
- Während einer Suche laufen mehrere Datenströme, die der gleichen Meldung entsprechen, gleichzeitig an Zwischenknoten und am Zielknoten zusammen. Wenn zwei Ströme am gleichen Knoten ankommen, schicken zwei Empfänger Anwahlmasken an den Kreuzschienenschalter und verlangen den gleichen Sendersatz. Jetzt ist der Kreuzschienenschalter gehalten, unter seinen verschiedenen Eingängen zu wählen, damit garantiert ist, daß jeder Sender nur mit einem einzigen Ausgang verbunden wird. Empfänger, die nicht angeschlossen werden, werden unterrichtet, daß sie mit keinem Sender verbunden sind, und senden daher LINK-CLOSE Befehle zurück.
- Der Leitwegmechanismus durchsucht das Netzwerk unter Verwendung des in der Kopfzeile spezifizierten Musters. Keine Kopfzeile ist ungültig. Beim oben beschriebenen Wechseln des Kopfzeilen-Grundmusters kann die Anzahl der zu durchsuchenden Pfade wunschgemäß erhöht oder vermindert werden.
- Zum Beispiel kann durch Verwenden so vieler Bytes als es insgesamt Bewegungen zum Ziel gibt (plus eins) und durch Setzen nur eines Bits in der Kopfzeile ein einziger Pfad spezifiziert werden. Siehe in Fig. 5 die Kopfzeile 500 zwecks Leitwegbestimmung von (0,0) 501 nach (1,2) 502 und das sich ergebende Suchmuster.
- Das Suchmuster kann verengt werden für Meldungen, die durch viele Knoten geschickt werden, durch Einfügen von extra Null- Bits mitten in den Spalten der Kopfzeile 600. Ein Beispiel dafür wird in Fig. 6 gezeigt. Hier beachte man, daß jede Zeile außer der letzten Nicht-Null sein muß.
- Durch Einschließen redundanter Bewegungen (positiv und negativ in der gleichen Bewegung) ist es möglich, das Suchmuster zu erweitern, so daß es alternative Leitwege einschließt, wie in Fig. 7 bei 700, und Fig. 8 bei 800 gezeigt wird.
- Die beiden nachfolgenden Beispiele erweitern einen eindimensionalen Pfad zu einer zweidimensionalen Suche. In beiden Fällen benutzt der Suchmechanismus den direkten Pfad, falls dieser zur Verfügung steht, weil dieser als erster gefunden wird. Die Verknüpfungsfähigkeit kann auf unterschiedliche Weise erweitert werden. Der einfachste Weg zur Erweiterung der Verknüpfungsfähigkeit ist die Anwendung der vorliegenden Erfindung in einem Netzwerk mit mehr als zwei Dimensionen. Zwecks Erhöhung der Anzahl der Dimensionen wird der Leitwegmechanismus in jedem Knoten erweitert durch Hinzufügen zusätzlicher Empfänger und Sender. Das Folgende ist z.B. eine Zusammenstellung der Veränderungen, die zur Erweiterung der obigen Muster auf ein vierdimensionales Torus-Netzwerk erforderlich sind:
- 1. Je Knoten werden vier Verbindungsglieder hinzugefügt (Y+, Y-, Z+ und Z-);
- 2. die Anzahl der Empfänger wird auf acht erhöht;
- 3. die Anzahl der Sender wird auf acht erhöht;
- 4. der Kreuzschienenschalter wird auf neun Ports vergrößert;
- 5. alle acht Bits jedes Kopfzeilen-Byte werden jetzt benutzt; und
- 6. die Liste der unterdrückten Kopfzeilenwerte (siehe SEARCHING Zustand) wird auf sechzehn erhöht.
- Eine weitere Möglichkeit zur Erweiterung der Verknüpfungsfähigkeit ist das Vergrößern der Anzahl der Injektoren und Extraktoren in jedem Knoten. Das Vergrößern der Anzahl Injektoren erfordert nur, daß die Breite des Kreuzschienenschalters vergrößert wird. Multiple Injektoren bedeuten, daß die Knoten gleichzeitig mehrfache Meldungen senden können.
- Das Vergrößerung der Anzahl der Extraktoren läßt es zu, daß jeder Knoten eine Anzahl gesondert adressierbarer Ports aufweist. Zum Vergrößern der Anzahl Extraktoren wird die Breite des Kreuzschienenschalters erweitert. Zum Adressieren der zusätzlichen Extraktoren wird einer der normalerweise unterdrückten Kopfzeilenwerte benutzt (z.B. 0011). Die folgende Liste ist ein Beispiel der erforderlichen Anderungen zum Hinzufügen eines zweiten Injektor/Extraktor-Paars zu einem zweidimensionalen Netzwerk.
- 1. Ein zusätzlicher Injektor wird hinzugefügt.
- 2. Ein zusätzlicher Extraktor wird hinzugefügt.
- 3. Die Breite des Kreuzschienenschalters wird um Eins vergrößert.
- 4. Der Kopfzeilenwert 0011 wird benutzt, um den zweiten Extraktor anzuwählen. Wenn der Kreuzschienenschalter eine Anwahlmaske 0011 vorgelegt erhält, verbindet er nicht den Empfänger mit den Sendern W+ und W-, sondern der Empfänger wird nur mit dem zweiten Extraktor verbunden.
- 5. Wenn ein Sender im SEARCHING Zustand ist und das eben bei ihm eingegangenen Byte 0011 ist, muß er die folgenden Schritte durchführen anstatt der sonst üblichen:
- a. Wenn das WORK Register NICHT 0000, 0011, 1100 oder 1111 ist, dann sende diesen Wert über das Verbindungsglied zum nächsten Knoten;
- b. speichere das eben erhaltene Byte (0011) im WORK Register;
- c. schalte zum DELAYED Zustand um; und
- d. verwerfe das eben erhaltene Byte.
- Externe Verbindungen zum Leitwegsystem können hergestellt werden durch Benutzen eines zusätzlichen Injektor/Extraktor- Paars. Zu diesem Zweck werden ein zusätzlicher Injektor und Extraktor als Empfänger und Sender für ein zusätzliches bidirektionales Verbindungsglied eingesetzt. Dieses "Externe Verbindungsglied" wird dann mit einem externen System, wie z.B. ein Terminal oder ein Durchgang zu einem Weitbereichsnetz, verbunden. Nach Herstellung der Verbindung mit dem Netzwerk, das ein externes Verbindungsglied benutzt, kann das externe System Meldungen zu jedem Knoten im System senden und empfangen, unabhängig davon, mit welchem Knoten-Leitwegsystem es direkt verbunden ist.
- Ein weiterer Einsatz eines externen Verbindungsglieds ist der Zusammenschluß zweier obiger Systeme. Durch Verbinden des Injektor/Extraktor-Paars eines Knotens in einem System mit dem Injektor/Extraktor-Paars eines Knotens in einem anderen System können Meldungen von einem beliebigen Knoten des einen Systems zu einem beliebigen Knoten des anderen Systems geschickt werden. Die Kopfzeilen zum Leiten der Meldungen zwischen den Systemen bestehen aus den folgenden Teilen:
- 1. Eine Kopfzeile, die zum Knoten mit dem externen Verbindungsglied leitet;
- 2. ein Byte 0011 zum Durchqueren des externen Verbindungsglieds;
- 3. eine Kopfzeile, die zum Zielknoten leitet, ausgehend vom Knoten mit dem externen Verbindungsglied im zweiten System; und
- 4. ein Byte 0000 zum Leiten in den Zielknoten.
- Die Technologie zum Implementieren der Zwischenknoten-Verbindungsglieder kann unterschiedlich sein. Die Erfindung setzt nur voraus, daß die Verbindungsglieder eine bidirektionale Kommunikation ermöglichen und in etwa mit der gleichen Geschwindigkeit laufen. Zum Beispiel könnten die Verbindungsglieder aus einem ein Byte breiten Parallelbus mit Steuergliedern zwischen den Knoten bestehen. Eine andere mögliche Implementierung ist ein Paar serieller Verbindungen, jeweils eine in jeder Richtung. Die Verbindungsglieder können eine ganze Reihe verschiedenartiger Protokolle benutzen und eine Vielzahl von Fehlerberichtigungseinrichtungen aufweisen.
Claims (15)
1. Gerät zum Führen eines Nachrichtenblocks zwischen einem
Quellknoten und einem Zielknoten eines Knotennetzwerks
regulärer Topologie, wobei der Quellknoten eine
Datentransaktion aufbaut, die einen Nachrichtenblock und eine
Kopfzeile enthält, wobei die Kopfzeile Bitgruppen
beinhaltet, die Pfade durch das Knotennetzwerk definieren,
wobei mindestens ein Knoten in einem der Pfade
beinhaltet:
Schaltermittel (350);
eine Vielzahl von Ausgabeverbindungssendern (320), wobei
jeder der Ausgabeverbindungssender mit einem
nachfolgenden Knoten verbunden ist;
eine Vielzahl von Eingabeverbindungsempfängern (300),
wobei jeder der Eingabeverbindungsempfänger mit einem
vorangehenden Knoten verbunden ist und auf eine
empfangene Bitgruppe einer Kopfzeile anspricht, um mehrfache
nebenläufige Verbindungen über die Schaltermittel zu
Ausgabeverbindungssendern innerhalb des einen Knotens
herzustellen und zum Kopieren der Kopfzeile in jedem der
angeschlossenen Ausgabeverbindungssender; und
Mittel und Modifizieren jeder kopierten Kopfzeile zum
Definieren der Knotennetzwerkpfade zum Zielknoten von
nachfolgenden Knoten aus, die mit einem der
Ausgabeverbindungssender verbunden sind, in die die Kopfzeile
kopiert wurde, wobei jeder der Ausgabeverbindungssender
seine veränderte Kopfzeile und den nzchrichtenblock an
den nachfolgenden Knoten sendet, mit dem einer der
Ausgabeverbindungssender verbunden ist.
2. Gerät gemäß Anspruch 1, in dem die Kopfzeile mindestens
eine Bitposition aufweist, die jedem
Ausgabeverbindungssender in dem einen Knoten entspricht, wobei das
Schaltermittel auf einen von einem der
Eingabeverbindungsempfänger übermittelten Binärwert der Bitposition in der
Kopfzeile anspricht, um die Verbindung zwischen dem
entsprechenden Ausgabeverbindungssender und dem Empfänger
herzustellen.
3. Gerät gemäß Anspruch 1 oder Anspruch 2, in dem einer der
Eingabeverbindungsempfänger eine der Verbindungen zu
einem entsprechenden Ausgabeverbindungssender herstellt,
falls nicht der entsprechende Ausgabeverbindungssender
Besetzt- oder Nichtbetriebsbereit-Signale sendet, um
einen Nichtbereitzustand anzuzeigen, und falls so, als
Reaktion auf das Besetzt- oder Nichtbetriebsbereit-Signal
an den vorhangenden Knoten ein Verbindungs-Ende-Signal
sendet.
4. Gerät gemäß einem beliebigen vorstehenden Anspruch, in
dem die Kopfzeile eine Vielzahl von Bitgruppen enthält,
wobei jeder Bitposition in einer Bitgruppe ein
Netzwerkpfad entlang einer vorgegebenen Dimension im Netzwerk
entspricht und wobei identische Bitpositionen in jeder
Bitgruppe Netzwerkpfadrichtungen entlang einer
identischen vordefinierten Dimension entsprechen.
5. Gerät gemäß einem beliebigen vorstehenden Anspruch, in
dem das Mittel zum Modifizieren in jedem der
Ausgabeverbindungssender resident ist.
6. Gerät gemäß Anspruch 5, in dem jedes Mittel zum
Modifizieren eine erste Bitgruppe der Kopfzeile verändert, um
Netzwerkpfade von einen der nachfolgenden Knoten aus
anzuzeigen, der mit dem Zielknoten kommuniziert, und dann
zusätzliche Bitgruppen in der Kopfzeile verändert, um
Netzwerkpfade von zusätzlichen nachfolgenden Knoten aus
anzuzeigen, die mit dem Zielknoten kommunizieren, wobei
jeder der Ausgabeverbindungssender zuerst die ersten
geänderten Bitgruppen der Kopfzeile an einen verbundenen
nachfolgenden Knoten sendet.
7. Gerät gemäß einem beliebigen vorstehenden Anspruch, in
dem der Nachrichtenblock von einem Nachrichtenblock-Ende-
Befehl begleitet ist, der den Nachrichtenblock beendet,
wobei der Nachrichtenblock eine variable Länge von Null
oder mehr Bytes aufweist.
8. Gerät gemäß einem beliebigen vorstehenden Anspruch, in
dem der Eingabeverbindungsempfänger in dem einen Knoten
bei Eingang eines Nachrichtenblock-Ende-Befehls einen
Bestätigungsbefehl an den vorangehenden Knoten sendet,
der von einem Verbindungs-Ende-Befehl gefolgt wird.
9. Ein Verfahren zum Leiten eines Nachrichtenblocks zwischen
einem Quellknoten und einem Zielknoten eines
Knotennetzwerks regulärer Topologie, wobei der Quellknoten eine
Datentransaktion aufbaut, die einen Nachrichtenblock und
eine Kopfzeile enthält, wobei die Kopfzeile Bitgruppen
beinhaltet, die Pfade durch das Knotennetzwerk
definieren,
wobei mindestens ein Knoten in einem der Pfade die
folgenden Schritte ausführt:
(a) Benutzen einer der Bitgruppen der Kopfzeile, um
multiple Verbindungen von einem
Eingabeverbindungsempfänger zu Ausgabeverbindungssendern innerhalb dieses einen
Knotens herzustellen, wobei jeder der
Ausgabeverbindungssender mit einem nachfolgenden Knoten verbunden wird und
der Eingabeverbindungsempfänger mit einem vorangehenden
Knoten verbunden ist;
(b) Kopieren der Kopfzeile aus dem
Eingabeverbindungsempfänger in jeden der Ausgabeverbindungssender;
(c) Modifizieren jeder kopierten Kopfzeile, so daß die
kopierte Kopfzeile Netzwerkpfade zum Zielknoten von
nachfolgenden Knoten aus definiert, die mit einem der
angeschlossenen Ausgabeverbindungssender verbunden sind, in
den die Kopfzeile kopiert wurde; und
(d) Senden der modifizierten Kopfzeilen und des
Nachrichtenblocks an die nachfolgenden Knoten.
10. Das Verfahren gemäß Anspruch 9, wobei in Schritt (a) der
Kopfzeilenteil wenigstens eine Bitposition beinhaltet,
die jedem Ausgabeverbindungssender in diesem einen Knoten
entspricht, wobei das Verfahren die folgenden weiteren
Schritte beinhaltet:
Ansprechen auf einen Bitgruppenzustand zum Herstellen der
Verbindung mit einem entsprechenden
Ausgabeverbindungssender, abgesehen davon, wenn dieser entsprechende
Ausgabeverbindungssender Besetzt- oder Nichtbetriebsbereit-
Signale sendet, um anzuzeigen, daß er sich in einem
Nichtbetriebsbereit-Zustand befindet; und
Senden eines Verbindungs-Ende-Signals an den
vorangehenden Knoten als Reaktion auf das Senden eines
Besetztoder Nichtbetriebsbereit-Signals.
11. Das Verfahren gemäß Anspruch 10, in dem die Kopfzeile
eine Vielzahl von Bitgruppen aufweist, wobei jede
Bitposition in einer Bitgruppe einem Netzwerkpfad entlang
einer vordefinierten Dimension im Netzwerk entspricht und
identische Bitpositionen in jeder Bitgruppe jeweils
Netzwerkpfadrichtungen entlang einer identischen
vordefinierten Dimension entsprechen.
12. Das Verfahren gemäß einem beliebigen der Ansprüche 9
- 11, in dem der Nachrichtenblock von einem
Nachrichtenblock-Ende-Befehl begleitet wird, der diesen
Nachrichtenblock beendet, wobei der Nachrichtenblock eine variable
Länge von Null oder mehr Bytes aufweist.
13. Das Verfahren gemäß Anspruch 12, in dem der eine Knoten
bei Eingang eines Nachrichtenblock-Ende-Befehls die
folgenden Schritte durchführt:
Senden eines Bestätigungsbefehls an den vorangehenden
Knoten, gefolgt von einem Verbindungs-Ende-Befehl.
14. Das Verfahren gemäß einem beliebigen der Ansprüche 9
- 13, das ferner folgende Schritte beinhaltet:
anstatt gemäß Schritt (a) eine Verbindung zu einem der
Ausgabeverbindungssender herzustellen, Senden eines
Verbindungs-Ende-Signals zum vorangehenden Knoten, wenn der
eine Ausgabeverbindungssender besetzt oder nicht
betriebsbereit signalisiert.
15. Das Verfahren gemäß Anspruch 14, enthaltend zwischen den
Schritten (c) und (d) die folgenden zusätzlichen
Schritte: Modifizieren einer ersten Bitgruppe der
Kopfzeile, um Netzwerkpfade von einem der nachfolgenden
Knoten aus, die mit dem Zielknoten kommunizieren,
anzuzeigen und dann Modifizieren zusätzlicher Bitgruppen in
der Kopfzeile, um Netzwerkpfade von zusätzlichen
nachgeschalteten Knoten aus anzuzeigen, die mit dem
Zielknoten kommunizieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/386,521 US5181017A (en) | 1989-07-27 | 1989-07-27 | Adaptive routing in a parallel computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69029766D1 DE69029766D1 (de) | 1997-03-06 |
DE69029766T2 true DE69029766T2 (de) | 1997-07-17 |
Family
ID=23525932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69029766T Expired - Fee Related DE69029766T2 (de) | 1989-07-27 | 1990-06-14 | Adaptive Leitweglenkung in Netzwerken |
Country Status (11)
Country | Link |
---|---|
US (1) | US5181017A (de) |
EP (1) | EP0410568B1 (de) |
JP (1) | JP2505060B2 (de) |
KR (1) | KR930004910B1 (de) |
CN (1) | CN1020533C (de) |
AR (1) | AR245303A1 (de) |
AU (1) | AU622815B2 (de) |
BR (1) | BR9003630A (de) |
CA (1) | CA2015968C (de) |
DE (1) | DE69029766T2 (de) |
PE (1) | PE10891A1 (de) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0509058A4 (en) * | 1990-01-05 | 1993-11-18 | Maspar Computer Corporation | Router chip with quad-crossbar and hyperbar personalities |
AU630299B2 (en) * | 1990-07-10 | 1992-10-22 | Fujitsu Limited | A data gathering/scattering system in a parallel computer |
US5708836A (en) * | 1990-11-13 | 1998-01-13 | International Business Machines Corporation | SIMD/MIMD inter-processor communication |
US5630162A (en) | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5734921A (en) | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5963745A (en) | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
US5765012A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library |
US5765011A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5815723A (en) | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5966528A (en) | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
EP0485690B1 (de) | 1990-11-13 | 1999-05-26 | International Business Machines Corporation | Paralleles Assoziativprozessor-System |
US5828894A (en) | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5588152A (en) | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5794059A (en) | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5765015A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5617577A (en) | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
US5809292A (en) | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5963746A (en) | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
IE920032A1 (en) * | 1991-01-11 | 1992-07-15 | Marconi Gec Ltd | Parallel processing apparatus |
US5471623A (en) * | 1991-02-26 | 1995-11-28 | Napolitano, Jr.; Leonard M. | Lambda network having 2m-1 nodes in each of m stages with each node coupled to four other nodes for bidirectional routing of data packets between nodes |
US5825773A (en) * | 1991-03-20 | 1998-10-20 | Hitachi, Ltd. | Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port |
US5408646A (en) * | 1991-03-29 | 1995-04-18 | International Business Machines Corp. | Multipath torus switching apparatus |
US5426427A (en) * | 1991-04-04 | 1995-06-20 | Compuserve Incorporated | Data transmission routing system |
US5594918A (en) | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
US5689719A (en) * | 1991-06-28 | 1997-11-18 | Sanyo Electric O., Ltd. | Parallel computer system including processing elements |
JP3679813B2 (ja) * | 1991-07-22 | 2005-08-03 | 株式会社日立製作所 | 並列計算機 |
JPH0752437B2 (ja) * | 1991-08-07 | 1995-06-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メッセージの進行を追跡する複数ノード・ネットワーク |
US5715391A (en) * | 1991-11-15 | 1998-02-03 | International Business Machines Corporation | Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing |
JP2642039B2 (ja) | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US5758053A (en) * | 1992-07-22 | 1998-05-26 | Hitachi, Ltd. | Fault handling and recovery for system having plural processors |
JP3287901B2 (ja) * | 1993-03-12 | 2002-06-04 | シャープ株式会社 | データ駆動型情報処理システムにおける識別データ確認方法 |
US5598568A (en) * | 1993-05-06 | 1997-01-28 | Mercury Computer Systems, Inc. | Multicomputer memory access architecture |
US5463486A (en) * | 1993-08-23 | 1995-10-31 | Unisys Corporation | Self-routing multi-stage photonic interconnect |
US5371621A (en) * | 1993-08-23 | 1994-12-06 | Unisys Corporation | Self-routing multi-stage photonic interconnect |
JP3237736B2 (ja) * | 1993-09-07 | 2001-12-10 | ヒュンダイ エレクトロニクス アメリカ | データ記憶装置のマトリックス構造 |
US5471589A (en) * | 1993-09-08 | 1995-11-28 | Unisys Corporation | Multiprocessor data processing system having nonsymmetrical channel(x) to channel(y) interconnections |
JPH07143140A (ja) * | 1993-11-15 | 1995-06-02 | Fujitsu Ltd | ユニバーサル・リンク・コンフィギュレータ |
US5528762A (en) * | 1993-12-27 | 1996-06-18 | Intel Corporation | Self-timed data streaming receiver and transmitter having reduced latency and increased data streaming capability |
JP3389315B2 (ja) * | 1994-03-18 | 2003-03-24 | 富士通株式会社 | コネクションレス通信におけるメッセージ転送方法及び装置 |
US5768539A (en) * | 1994-05-27 | 1998-06-16 | Bell Atlantic Network Services, Inc. | Downloading applications software through a broadcast channel |
JP3172387B2 (ja) * | 1994-06-01 | 2001-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 入出力通信サブシステム及び方法 |
US5793964A (en) * | 1995-06-07 | 1998-08-11 | International Business Machines Corporation | Web browser system |
US5774067A (en) * | 1995-06-07 | 1998-06-30 | International Business Machines Corporation | Flash-flooding multi-stage interconnection network with parallel path seeking switching elements |
US5721908A (en) * | 1995-06-07 | 1998-02-24 | International Business Machines Corporation | Computer network for WWW server data access over internet |
US5745754A (en) * | 1995-06-07 | 1998-04-28 | International Business Machines Corporation | Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5701451A (en) * | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5835024A (en) * | 1995-06-07 | 1998-11-10 | International Business Machines Corporation | Multi-stage interconnection network with selectable function switching apparatus |
US5752246A (en) * | 1995-06-07 | 1998-05-12 | International Business Machines Corporation | Service agent for fulfilling requests of a web browser |
US5996020A (en) | 1995-07-21 | 1999-11-30 | National Security Agency | Multiple level minimum logic network |
AU768042B2 (en) * | 1995-07-21 | 2003-11-27 | Coke S. Reed | Multiple level minimum logic network |
JPH0962741A (ja) * | 1995-08-25 | 1997-03-07 | Casio Comput Co Ltd | データ通信システムにおけるデータ処理方法 |
KR0170493B1 (ko) * | 1995-12-08 | 1999-03-30 | 양승택 | 다중 프로세서 시스템을 위한 논블록킹 결함허용 감마 연결망 |
US6289021B1 (en) | 1997-01-24 | 2001-09-11 | Interactic Holdings, Llc | Scaleable low-latency switch for usage in an interconnect structure |
US6122277A (en) * | 1997-08-19 | 2000-09-19 | International Business Machines Corporation | Parallel computer network broadcasting and acknowledgement |
KR100250437B1 (ko) | 1997-12-26 | 2000-04-01 | 정선종 | 라운드로빈 중재 및 적응 경로 제어를 수행하는경로제어 장치 |
US6717942B1 (en) * | 1998-06-25 | 2004-04-06 | Avici Systems, Inc. | Space-efficient source routing |
US6687754B1 (en) * | 1998-08-27 | 2004-02-03 | Intel Corporation | Method of detecting a device in a network |
DE10001874A1 (de) * | 2000-01-18 | 2001-07-19 | Infineon Technologies Ag | Multi-Master-Bus-System |
US20020029287A1 (en) * | 2000-02-02 | 2002-03-07 | Yechiam Yemini | Method and apparatus for dynamically addressing a circuits based network |
US7047196B2 (en) * | 2000-06-08 | 2006-05-16 | Agiletv Corporation | System and method of voice recognition near a wireline node of a network supporting cable television and/or video delivery |
US7246111B1 (en) * | 2000-06-30 | 2007-07-17 | Ncr Corporation | Capturing database system information |
AU2001296628A1 (en) | 2000-09-27 | 2002-04-08 | Hrl Laboratories, Llc | Method and apparatus for providing directed communications through a networked array of nodes |
US20020040391A1 (en) * | 2000-10-04 | 2002-04-04 | David Chaiken | Server farm formed of systems on a chip |
US20040158663A1 (en) * | 2000-12-21 | 2004-08-12 | Nir Peleg | Interconnect topology for a scalable distributed computer system |
US7072976B2 (en) * | 2001-01-04 | 2006-07-04 | Sun Microsystems, Inc. | Scalable routing scheme for a multi-path interconnection fabric |
KR100620835B1 (ko) * | 2001-02-24 | 2006-09-13 | 인터내셔널 비지네스 머신즈 코포레이션 | 최적화된 가변 네트워크 스위치 |
JP3508857B2 (ja) * | 2001-07-31 | 2004-03-22 | 日本電気株式会社 | ノード間データ転送方法およびデータ転送装置 |
AU2003244925A1 (en) * | 2002-07-25 | 2004-02-16 | Koninklijke Philips Electronics N.V. | System and method for data routing |
US7461166B2 (en) * | 2003-02-21 | 2008-12-02 | International Business Machines Corporation | Autonomic service routing using observed resource requirement for self-optimization |
US7376859B2 (en) * | 2003-10-20 | 2008-05-20 | International Business Machines Corporation | Method, system, and article of manufacture for data replication |
US20060227774A1 (en) * | 2005-04-06 | 2006-10-12 | International Business Machines Corporation | Collective network routing |
US8526463B2 (en) | 2005-06-01 | 2013-09-03 | Qualcomm Incorporated | System and method to support data applications in a multi-homing, multi-mode communication device |
GB0524126D0 (en) * | 2005-11-26 | 2006-01-04 | Cogniscience Ltd | Data transmission method |
US9244793B1 (en) | 2008-11-04 | 2016-01-26 | Teradata Us, Inc. | Using target database system statistics in emulation |
US20110093540A1 (en) * | 2009-09-30 | 2011-04-21 | Bae Systems Information And Electronic Systems Integration Inc. | Method and system for communications using cooperative helper nodes |
US9426067B2 (en) | 2012-06-12 | 2016-08-23 | International Business Machines Corporation | Integrated switch for dynamic orchestration of traffic |
JP2016038649A (ja) * | 2014-08-06 | 2016-03-22 | 富士通株式会社 | 並列計算機システム及び並列計算機システムの制御方法 |
JPWO2020166378A1 (ja) * | 2019-02-15 | 2021-12-09 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置および通信方法、並びにプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56111931A (en) * | 1980-02-07 | 1981-09-04 | Nippon Telegr & Teleph Corp <Ntt> | Data transfer device |
US4399531A (en) * | 1980-09-29 | 1983-08-16 | Rockwell International Corporation | Distributed digital data communications network |
EP0221360B1 (de) * | 1985-11-04 | 1992-12-30 | International Business Machines Corporation | Digitale Nachrichtenübertragungsnetzwerke und Aufbau von Übertragungswegen in diesen Netzwerken |
US4679189A (en) * | 1985-11-27 | 1987-07-07 | American Telephone And Telegraph Company | Alternate routing arrangement |
EP0234191B1 (de) * | 1986-01-09 | 1993-12-29 | Nec Corporation | Paketvermitteltes Fernmeldenetz mit parallelen virtuellen Verbindungen zur Umweglenkung von Nachrichtenpaketen |
US4872197A (en) * | 1986-10-02 | 1989-10-03 | Dti Peripherals, Inc. | Dynamically configurable communications network |
US4942517A (en) * | 1987-10-08 | 1990-07-17 | Eastman Kodak Company | Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers |
JP3072646B2 (ja) * | 1989-03-20 | 2000-07-31 | 富士通株式会社 | 並列計算機間通信制御方式 |
-
1989
- 1989-07-27 US US07/386,521 patent/US5181017A/en not_active Expired - Lifetime
-
1990
- 1990-05-02 CA CA002015968A patent/CA2015968C/en not_active Expired - Fee Related
- 1990-06-14 EP EP90306503A patent/EP0410568B1/de not_active Expired - Lifetime
- 1990-06-14 DE DE69029766T patent/DE69029766T2/de not_active Expired - Fee Related
- 1990-06-27 CN CN90103316A patent/CN1020533C/zh not_active Expired - Lifetime
- 1990-06-27 AU AU57863/90A patent/AU622815B2/en not_active Ceased
- 1990-06-27 KR KR1019900009532A patent/KR930004910B1/ko not_active IP Right Cessation
- 1990-07-18 PE PE1990172393A patent/PE10891A1/es unknown
- 1990-07-20 JP JP2190891A patent/JP2505060B2/ja not_active Expired - Fee Related
- 1990-07-23 AR AR90317443A patent/AR245303A1/es active
- 1990-07-26 BR BR909003630A patent/BR9003630A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
EP0410568A3 (en) | 1993-03-03 |
KR910003969A (ko) | 1991-02-28 |
DE69029766D1 (de) | 1997-03-06 |
EP0410568B1 (de) | 1997-01-22 |
CA2015968C (en) | 1995-12-19 |
KR930004910B1 (ko) | 1993-06-10 |
AU5786390A (en) | 1991-01-31 |
CN1049066A (zh) | 1991-02-06 |
AR245303A1 (es) | 1993-12-30 |
JPH0365750A (ja) | 1991-03-20 |
US5181017A (en) | 1993-01-19 |
JP2505060B2 (ja) | 1996-06-05 |
AU622815B2 (en) | 1992-04-16 |
CN1020533C (zh) | 1993-05-05 |
PE10891A1 (es) | 1991-03-30 |
BR9003630A (pt) | 1991-08-27 |
EP0410568A2 (de) | 1991-01-30 |
CA2015968A1 (en) | 1991-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69029766T2 (de) | Adaptive Leitweglenkung in Netzwerken | |
DE69433126T2 (de) | Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen | |
DE3787492T2 (de) | Verteilte Sprach-Datenvermittlung in Mehrstufenverbindungsnetzen. | |
DE69832884T2 (de) | Wegesucheinheit mit zuteilung von virtuellen kanälen | |
DE3687525T2 (de) | Paketvermittlungsnetzwerk mit rundsendefaehigkeit. | |
DE3686254T2 (de) | Verbindung von rundsendenetzwerken. | |
DE68926650T2 (de) | Hochgeschwindigkeitspaketvermittlungsknotenentwurf | |
DE69031368T2 (de) | Weglenkung von Nachrichtenpaketen | |
DE69207822T2 (de) | Weglenkung in Kommunikationsnetzwerken | |
DE3533845C2 (de) | Weglenkende Paket-Vermittlungsanlage mit Mehrfachwegen | |
DE69733107T2 (de) | System und verfahren zur dynamischen netzwerk-topologie erforschung | |
DE69022300T2 (de) | Verfahren und Vorrichtung zur Wiederanordnung eines maschenverknüpften lokalen Netzes hoher Geschwindigkeit. | |
DE3685599T2 (de) | Vermittlungssystem fuer datenuebertragung. | |
DE102005032479B4 (de) | Fernsteuerung eines Vermittlungsknotens in einem Stapel von Vermittlungsknoten | |
DE3838945C2 (de) | ||
DE3786298T2 (de) | Verfahren und Schalter zum Vermitteln von Informationen. | |
DE60030737T2 (de) | Hochleistungs-Vermittlungselement und -Vermittlungssystem | |
DE3850258T2 (de) | Nichtblockierendes kopiernetz für mehradresspaketvermittlung. | |
DE69026494T2 (de) | Selbstleitweglenkendes Mehrwege-Vermittlungsnetzwerk zum Vermittlen von Zellen mit asynchroner Zeitvielfachübermittlung | |
DE69217437T2 (de) | WIEDERHOLER FüR DIGITALE DATENNETZWERKE | |
DE69917555T2 (de) | Vermittlungseinrichtung mit mehrstufiger Warteschlangeschema | |
DE68923619T2 (de) | Vermittlungskomponenten und ihre verwendung in einem blockierungsfreien vermittlungsnetzwerk mit mehrfachen datenraten. | |
DE69021790T2 (de) | Mehrstufiges Netz mit verteilter Steuerung. | |
DE3787600T2 (de) | Koppelpunktschaltung für Datenpaketraumvermittlung. | |
DE69014992T2 (de) | Gleichlaufende Mehrstufennetzwerk-Kontrollmethode. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |