DE3686208T2 - Verfahren und anordnung zur leitweglenkung von paketen in einem vielfachknotenrechnerverbindungsnetzwerk. - Google Patents

Verfahren und anordnung zur leitweglenkung von paketen in einem vielfachknotenrechnerverbindungsnetzwerk.

Info

Publication number
DE3686208T2
DE3686208T2 DE8686303777T DE3686208T DE3686208T2 DE 3686208 T2 DE3686208 T2 DE 3686208T2 DE 8686303777 T DE8686303777 T DE 8686303777T DE 3686208 T DE3686208 T DE 3686208T DE 3686208 T2 DE3686208 T2 DE 3686208T2
Authority
DE
Germany
Prior art keywords
packet
node
packets
link
output lines
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 - Lifetime
Application number
DE8686303777T
Other languages
English (en)
Other versions
DE3686208D1 (de
Inventor
Douglas A Johnson
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE3686208D1 publication Critical patent/DE3686208D1/de
Publication of DE3686208T2 publication Critical patent/DE3686208T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4637Interconnected ring systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

    TECHNISCHES GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Mehrknotenpunkt- Verbindungsnetzwerke in Computern und im besonderen ein Verfahren und eine Vorrichtung zum Leiten von Paketen in solchen Netzwerken, um eine hohe Leitwirksamkeit und eine Minimierung der mit einer Netzblockierung verbundenen Probleme zu erreichen.
  • HINTERGRUND DER ERFINDUNG
  • Ein Computersystem umfaßt eine Anzahl von getrennten Komponenten wie einen Speicher, Prozessoren (CPUs) und Eingabe-/Ausgabegeräte. All diese Komponenten müssen in der Lage sein, miteinander in Verbindung zu treten. Die Kommunikation innerhalb des Systems wird herkömmlicherweise bevorzugt mittels Sammel- und Kreuzschienen (Busse und Crossbars) aufrechterhalten.
  • Die in jüngster Zeit erzielten Fortschritte in der Elektronikindustrie lassen die Bus- und Crossbarverbindungstechniken als unzureichend erscheinen. Die Größtintegration (VLSI) ermöglicht es, auf einem einzigen Chip einen kleinen Prozessor mit niedriger Geschwindigkeit auszubilden. Deshalb ist es kostengünstig, einen großen Hochgeschwindigkeitsprozessor dadurch zu konstruieren, daß viele Einzelchipprozessoren zusammengefaßt werden. Allerdings wird dann die Verbindung zwischen den Prozessoren zu einem bedeutenden Engpaß bei dem Versuch, die Gesamtleistung des Prozessors zu erhöhen.
  • Im Idealfall muß die Verbindung in der Lage sein, eine ausreichende Bandbreite zur Verfügung zu stellen und eine große Zahl von Prozessoren bei vernünftigen Kosten miteinander zu verbinden. Ebenso ist es höchst wünschenswert, daß die Verbindung erweitert werden kann, z.B. durch das Hinzufügen von Prozessoren, um die Leistung des Systems zu erhöhen. Bei der Erweiterung des Netzwerks mit weiteren Prozessoren oder Geräten ist es erwünscht, daß die Verbindungsbandbreite gleichzeitig ohne übermäßige Kosten erweitert wird, sowie ohne daß es erforderlich wird, zur Unterstützung der zukünftigen Erweiterung Hardware anzuschaffen, die ursprünglich nicht benötigt wurde.
  • Die herkömmlichen Bus- und Crossbarverschaltungstechniken erfüllen diese Erfordernisse nicht. Ein Bus ist zwar bezüglich der Zahl der Prozessoren, die er bedienen kann, nur elektrischen Beschränkungen unterworfen, aber er hat eine feste Bandbreite. Die Bandbreite eines Crossbars wächst mit der Zahl der Prozessoren, die er miteinander verbindet, aber die Kosten dafür wachsen quadratisch mit der Zahl der Prozessoren, und er läßt sich überhaupt nicht erweitern, wenn nicht von vornherein eine Überdimensionierung erfolgt.
  • In lokalen Computernetzwerken sind die Erfordernisse an die Bandbreite gewöhnlich nicht so hoch, daß ein Bus nicht ausreichen würde. Aber Busse sind nicht fehlertolerant. Ein Ausfall des Busses bewirkt den Ausfall des gesamten Netzwerks. Ein Crossbar kommt allgemein wegen der im Verhältnis N² anwachsenden Kosten nicht für ein lokales Computernetzwerk in Betracht. Die Fehlertoleranz eines Crossbars ist nur unwesentlich höher als die eines Busses, da jedes Paar Knotenpunkte innerhalb eines Crossbars nur ein einziges Verbindungselement dazwischen aufweist. Deshalb verhindert ein Ausfall des Verbindungselements jegliche Kommunikation zwischen den zwei Knotenpunkten im Crossbar. Aus den obengenannten Gründen gestatten weder die Crossbar- noch die Busverschaltungstechniken, daß lokale Computernetzwerke leicht erweitert werden können.
  • In letzter Zeit hat man durch den Einsatz von Paketvermittlungs- statt Schaltkreisvermittlungstechniken die Erweiterungsfähigkeit und die Fehlertoleranz noch etwas unvollkommen erreicht. Bei der Paketvermittlung wird die logische Nachricht eines Benutzers aufgetrennt (auseinandergenommen) und in mehreren Benutzerpaketen übertragen. Das Paket kann Benutzerdaten und Steuerdaten enthalten, die alle als ein zusammengesetztes Ganzes vermittelt werden. Jedes Paket der Benutzerdaten weist allgemein einen Vorsatz auf, der Informationen über die Endbestimmung des Pakets aufweist.
  • Die Paketvermittlung wird oft in einem Mehrknotenpunktsystem mit einer Reihe von alternativen Pfaden zwischen dem Ursprung eines Pakets und seinem Endbestimmungsort verwendet. Die Verwendung der Paketvermittlung und von Mehrfachkommunikationspfaden ermöglicht es, ausgefallene Schalter oder Leitungen zu umgehen sowie das System zu erweitern, ohne daß von vornherein eine Überdimensionierung erforderlich ist, soweit die Paketvermittlungssteuerung an jedem Knotenpunkt verteilt ist. Die Steuersoftware solcher Knotenpunkt war jedoch allgemein nicht flexibel in der Anpassung an Fehler im Netzwerk.
  • Die Paketvermittlung in einem Mehrknotenpunkt-Verbindungssystem wirft noch andere Probleme auf. Eines davon besteht im Lastausgleich. Werden die Leitregeln so gewählt, daß ein Paket auf dem Pfad gesendet wird, der die geringste Knotenpunktlaufstrecke erfordert, damit es seine Bestimmung erreicht, dann werden oft gewisse Pfade viel häufiger als andere ausgewählt, was eine ungleichmäßige Belastung des Systems und möglicherweise eine statische Blockierung hervorrufen kann. Ein weiteres Problem, auf das man bei der Paketvermittlung stößt, ist die dynamische Blockierung. Eine dynamische Blockierung wird dann verursacht, wenn ein Knotenpunkt ein Paket aus dem Knotenpunkt "drängt", um einen Paketpufferspeicher für den Empfang eines anderen Pakets freizumachen. Das Paket kann entlang einer Ausgangsleitung herausgedrängt werden, die es von seiner Bestimmung wegführt. Bei einem Satz mangelhafter Leitregeln kann das Paket ohne Ende zirkulieren, was zur dynamischen Blockierung führt.
  • Deshalb entstand die Notwendigkeit, ein Mehrknotenpunkt-Paketvermittlungssystem zu schaffen, bei dem die logische Strecke zwischen den Knotenpunkten minimal ist und das durch einen Satz von Leitregeln betrieben wird, um eine statische und eine dynamische Blockierung zu verhindern. Außerdem besteht ein Bedarf an einem Paketvermittlungsnetzwerk, das extrem fehlertolerant ist und eine sich selbst instandsetzende, verteilte Steuerung der Paketvermittlungsfunktion bereitstellt.
  • Ein Schema zum Leiten von Paketen von einem Knotenpunkt zu anderen in einem Netzwerk verbundenen Knotenpunkten ist in einem Aufsatz mit dem Titel "A simulation study of a dynamic routing scheme" von P.H.N. Chu et al. offenbart, der vom IEEE in dem Bericht der National Telecommunications Conference, New Orleans 1981 veröffentlicht wurde; vgl. die Seiten A3.4.1 bis A3.4.11. Dort ist ein Beispiel mit zwei dedizierten Warteschlangen jeweils mit Servern beschrieben, die auch eine gemeinsame Warteschlange bedienen, und die Ergebnisse von vier verschiedenen Servicedisziplinen für den Betrieb der Server werden analysiert. Jedes Paket wird nach seinem Bestimmungsknotenpunkt einer Warteschlange vorzugeordnet. Jeder Server ist jeweils an ein Ausgangsverbindungselement angeschlossen und bedient keine andere dedizierte Warteschlange als seine eigene.
  • In der US-Anmeldung 44 66 060 ist ein Leitalgorithmus für Pakete in einem Netzwerk offenbart, bei welchem jeder Knotenpunkt von benachbarten Knotenpunkten Eingangsausschlußbäume empfängt, aus den Eingangsbäumen Ausgangsausschlußbäume herstellt, die Ausgangsbäume zu den benachbarten Knotenpunkten überträgt und aus den Informationen in dem Eingangsbaum zum Leiten der Pakete eine Leitwegtabelle erstellt.
  • Nach einem Gesichtspunkt der vorliegenden Erfindung ist ein Verfahren zum Leiten von Benutzerpaketen in einem Verbindungsnetzwerk vorgesehen, das mehrere Knotenpunkte mit jeweils mehreren Ausgangsleitungen und Paketspeichern enthält, wobei jedes Benutzerpaket einen Bestimmungsknotenpunkt aufweist, dadurch gekennzeichnet, daß jeder Knotenpunkt mehrere Paketspeicher-Verbindungselemente aufweist, von denen jedes mehrere Paketspeicherpuffer enthält, wobei das Verfahren beinhaltet: das Empfangen einer Anzahl von Paketen in einem ersten Knotenpunkt; das Speichern jedes empfangenen Pakets in einem Puffer; das Abtasten des Bestimmungsknotenpunkts wenigstens einiger der gespeicherten Pakete; das Bestimmen einer bevorzugten Ausgangsleitung für jedes von gewissen gespeicherten Paketen, wobei jede bevorzugte Ausgangsleitung der kürzesten Knotenpunktlaufstrecke zum jeweiligen Bestimmungsort eines Pakets zugeordnet ist; Auswählen eines Pakets mit der kürzesten Knotenpunktlaufstrecke aller in dem Verbindungselement gespeicherten Pakete für jedes Verbindungselement mit wenigstens einem nichtleeren Puffer; Zuordnen der ausgewählten Pakete in der Reihenfolge zunehmender Knotenpunktlaufstrecken zu ihren bevorzugten Ausgangsleitungen, wenn die bevorzugte Ausgangsleitung für ein erstes Paket nicht bereits einem weiteren ersten Paket zugeordnet worden ist; und übertragen ausgewählter Pakete der gewissen gespeicherten Pakete über ihre jeweiligen bevorzugten Ausgangsleitungen.
  • Nach einem weiteren Gesichtspunkt der vorliegenden Erfindung ist ein Verbindungsnetzwerk zum übertragen von Benutzerpaketen mit mehreren Knotenpunkten vorgesehen, die jeweils über Eingangs- und Ausgangsleitungen an mehrere weitere Knotenpunkte angeschlossen sind, wobei jedes Benutzerpaket einen Bestimmungsknotenpunkt aufweist, dadurch gekennzeichnet, daß jeder Knotenpunkt enthält: mehrere Paketspeicher-Verbindungselemente, mehrere Eingangsleitungen, die jeweils an die Verbindungselemente angeschlossen sind, wobei jedes Verbindungselement mehrere Paketspeicherpuffer aufweist; Mittel zum Speichern empfangener Pakete in den Paketspeicherpuffern, Mittel zum Abtasten des Bestimmungknotenpunkts jedes gespeicherten Pakets; Mittel zum Bestimmen einer bevorzugten Ausgangsleitung für jedes gespeicherte Paket oder gewisser gespeicherter Pakete, wobei die bevorzugte Ausgangsleitung an einen Pfad angeschlossen ist, der die kürzeste Knotenpunktlaufstrecke zu dem Bestimmungsknotenpunkt des gespeicherten Pakets aufweist; und Mittel für jedes Verbindungselement mit wenigstens einem nichtleeren Puffer zum Auswählen eines Pakets mit der kürzesten Knotenpunktlaufstrecke aller in dem Verbindungselement gespeicherten Pakete; Mittel zum Zuordnen der ausgewählten Pakete in der Reihenfolge zunehmender Knotenpunktlaufstrecken zu ihren bevorzugten Ausgangsleitungen, wenn die bevorzugte Ausgangsleitung für ein erstes Paket nicht bereits einem weiteren ersten Paket zugeordnet worden ist; und Mitttel zum Übertragen wenigstens eines ausgewählten Pakets der gewissen gespeicherten Pakete über ihre bevorzugte Ausgangsleitung.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Weitere Einzelheiten der vorliegenden Erfindung ergeben sich aus der nun folgenden Beschreibung einige Ausführungsbeispiele unter Bezugnahme auf die Zeichnung. Darin stellen
  • Fig. 1 die schematische Darstellung der Verschaltung eines eindimensionalen Hypertoroid-Mehrknotensystems dar;
  • Fig. 2 ein schematisches Diagramm der Verschaltung eines zweidimensionalen Hypertoroid-Mehrknotensystems;
  • Fig. 3 ein schematisches elektrisches Diagramm, das den inneren Aufbau eines der Knotenpunkte von Fig. 2 zeigt;
  • Fig. 4 ein schematisches Detail von Fig. 3, das den inneren Aufbau eines Verbindungselements zeigt;
  • Fig. 5 ein Flußdiagramm, das ein Ausführungsbeispiel der Nachschlagetabellen-Generierungsprozedur der Erfindung zeigt;
  • Fig. 6 das Konzept einer Nachschlagetabelle für den Knotenpunkt A in Fig. 2;
  • Fig. 7 ein Flußdiagramm eines Ausführungsbeispiels der Benutzerpaket-Vermittlungsprozedur der Erfindung;
  • Fig. 8 das Konzept für den Knotenpunkt A von Fig. 2, wobei alle Puffer gefüllt sind;
  • Fig. 9 ein Flußdiagramm der Fehlerermittlungs- und Tabellenwiederherstellungsprozedur der Erfindung;
  • Fig. 11 das Konzept der Nachschlagetabelle für den Knotenpunkt A in Fig. 2, wobei aufgrund eines Fehlers in dem D-E-Verbindungselement Einträge geändert sind; und
  • Fig. 10 das Konzept einer Leittabelle für den Knotenpunkt A in Fig. 2, wobei wegen des Ausfalls des Knotenpunkts E in der Tabelle Änderungen vorgenommen worden sind.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Obwohl das Leitsystem der Erfindung in jedem Mehrknotenpunkt- Verbindungsnetzwerk verwendet werden kann, wird bevorzugt ein Hypertoroid-Verbindungsschema angewendet. In der vorliegenden Anwendung bezeichnet "hypertoroid" eine Klasse von Netzwerkorganisationen, bei welcher jeder Knotenpunkt 2n Anschlüsse aufweist und ein Mitglied von n Ringen ist. Die Zahl der Ring-Anordnungen oder denkbaren Ringfamilien, in denen die Netzwerkringe ausgebildet sind, ist ebenfalls n.
  • Fig. 1 veranschaulicht einen Hypertoroid in einer Ein-Ring- Anordnung, d.h. n = 1. Jeder Knotenpunkt 10 hat nur zwei (= 2n) Gruppen von Eingangs-/Ausgangsleitungen 12 und ist nur Mitglied eines (= 1n) Rings. Ein eindimensionaler Hypertoroid wird nur bei einer geringen Zahl von Knotenpunkten verwendet, da er nur einen Alternativpfad für die Paketvermittlung bietet.
  • Fig. 2 zeigt ein Hypertoroid-Netzwerk aus neun Knotenpunkten in Zweifach-Ring-Anordnung. Die Erfindung läßt sich auch für Hypertoroid-Netzwerke mit Dreifach- oder Mehrring-Anordnung und einer großen Zahl von Knotenpunkten verwenden, aber die in Fig. 2 gezeigte Struktur wird zur Veranschaulichung der Erfindung verwendet. Jeder Knotenpunkt 10 wurde für die vorliegende Diskussion mit einem Großbuchstaben markiert, obwohl die Knotenpunktidentifikation in der tatsächlichen Praxis natürlich durch eine digitale Sequenz angegeben würde. Bei dem dargestellten Fall einer Zweifach-Ring-Anordnung ist jeder Knotenpunkt 10 durch vier Vollduplexleitungen 12 mit benachbarten Knotenpunkten verbunden. Jede Leitung 12 verbindet zwei Knotenpunkte miteinander und ist für Diskussionszwecke zweifach markiert. So ist für den Knotenpunkt A die den Knotenpunkt A mit dem Knotenpunkt B verbindende Leitung a3 und gleichzeitig die Leitung b1. Jeder Knotenpunkt 10 ist Mitglied von zwei Ringen, wobei jeder Ring in einer unterschiedlichen Ring-Anordnung liegt. Der Knotenpunkt A ist ein Mitglied des Rings 14 und des Rings 16. Der Ring 14 umfaßt die Knotenpunkte B und C, und der Ring 16 umfaßt die Knotenpunkte D und G.
  • Der Hypertoroid weist gegenüber anderen Netzwerken eine Anzahl von Vorteilen auf. Er sorgt für erhöhte Erweiterungsfähigkeit, während gleichzeitig kurze Strecken zwischen den Knotenpunkten aufrechterhalten werden. Die Hypertoroid-Struktur sieht Mehrfachpfade zwischen Knotenpunkten vor und ermöglicht so einen automatischen Lastausgleich und die Fähigkeit, auch beschränkt betriebsbereit zu bleiben. Eine Simulation ergab, daß der Hypertoroid das Netzwerk ist, das die höchste Bandbreite für eine gegebene Zahl von Knotenpunkten und Verbindungselementen liefert.
  • Der relativ kurze durchschnittliche (Knotenpunkt-)Abstand zwischen dem Ursprungs- und dem Bestimmungsknotenpunkt in dem Hypertoroid-Netzwerk wirkt sich stark sowohl auf die Abgabezeit als auch auf die maximal abgegebene Bandbreite aus. Bei der Erweiterung des Hypertoroid-Netzwerks wächst der durchschnittliche Abstand zwischen den Knotenpunkten langsam an. Eine Verdopplung der Zahl der Knotenpunkten in einem zweidimensionalen Netzwerk führt nur zu einer 2-Erhöhung des durchschnittlichen Abstands zwischen zwei Knoten.
  • Fig. 3 zeigt schematisch die innere Struktur des Knotenpunkts A in dem in Fig. 2 dargestellten Netzwerk. In Fig. 2 ist der Knotenpunkt A mit den umgebenden Knotenpunkten durch eine Gruppe von Vollduplexleitungen 12 verbunden, die die Leitungen a1, a2, a3 und a4 umfassen. Fig. 3 zeigt, daß die Leitungen a1, a2, a3 und a4 jeweils weiter in die Eingangsleitungen 18, 20, 22 und 24 und die Ausgangsleitungen 26, 28, 30 und 32 unterteilt sind. Zur klareren Darstellung sind die Eingangsleitungen 18-24 und die Ausgangsleitungen 26-32 hier getrennt dargestellt.
  • Die Eingangsleitung 18 ist an ein Verbindungselement 34 angeschlossen, das einen Demultiplexer 36 aufweist, sowie mehrere Paketspeicherpuffer 38-44 und einen Multiplexer 46. Eine Multiplexer/Demultiplexer-Steuerung 47 steuert den Multiplexer 46 und den Demultiplexer 36 über einen Steuerbus 49. Der Betrieb der Puffer 38 bis 44 wird durch eine Puffersteuereinheit 51 über einen Steuerbus 53 gesteuert. Eine CPU 48, die durch einen Mikroprozessor gebildet sein kann, ist durch den Adressenbus 50 an die MUX/DX-Steuereinheit 47 angeschlossen. Der Adressenbus 50 liefert auch die Anweisungen von der CPU 48 an die Puffersteuereinheit 51.
  • Fig. 4 zeigt das Verbindungselement 34 genauer. Der Steuerbus 49 teilt die Anweisungen von der MUX/DX-Steuereinheit 47 (Fig. 3) dem seriellen Eins-aus-Vier-Demultiplexer 36 mit. Der Demultiplexer 36 vermittelt nach diesen Anweisungen ein hereinkommendes Paket auf der Eingangsleitung 18 zu einer von vier Puffereingangsleitungen 62, 64, 66 und 68. Gleichzeitig weist die Puffersteuereinheit 51 (Fig. 3) einen der Puffer 38-44 an, ein Paket zu empfangen, das auf der jeweiligen Eingangsleitung 62-68 erscheint.
  • Die innere Struktur des Puffers 38 ist in Fig. 4 im Detail gezeigt. Eine Steuereinheit 70 empfängt Anweisungen von dem Steuerbus 53 und steuert selbst über die Steuerleitungen 78-82 die Elemente 72-76. Ein Signal auf der Leitung 78 aktiviert das parallel hinein/seriell heraus-Schieberegister 72 zum Empfang eines Pakets auf der Leitung 62, das zwischen den Knotenpunkten in serieller Form übertragen wird. Das Element 72 macht das Paket am Pufferbus 84 in paralleler Form verfügbar. Die Steuereinheit 70 ermöglicht es, daß ein Leitvorsatz des Pakets durch ein Signal auf der Leitung 80 in einem Puffer 74 gespeichert wird. Der Speicher 74 macht den Vorsatz mit solchen Feldern wie dem Bestimmungsknotenpunkt (in einem Benutzerpaket) oder Ursprungsknotenpunkt sowie der Knotenpunktabstandszahl (in einem Knotenpunktstreckenpaket) an einem Datenbus 118 verfügbar, so daß er durch die CPU 48 gelesen werden kann.
  • Ein Parallelein/Seriellaus-Schieberegister 76 setzt bei Aktivierung durch ein Signal auf der Steuerleitung 82 von der Steuereinheit 70 das Paket wieder in die serielle Form um und überträgt es auf einer Puffer-Seriellausgangsleitung 86. Die Steuereinheit 70 aktiviert das Register 72 zum Empfang eines hereinkommenden Pakets zu dem gleichen Zeitpunkt, zu dem das Register 76 aktiviert wird, um ein hinausgehendes Paket auf der Leitung 86 zu übertragen. Die Leitung 86 ist an einen Eins-aus-Vier-Multiplexer 46 angeschlossen, der eine der Ausgangsleitungen 86-92 nach den auf dem Steuerbus 49 empfangenen Anweisungen auf die innere Ausgangsleitung 54 schaltet.
  • Die Struktur der Puffer 40-44 reproduziert die Struktur des Puffers 38.
  • Unter erneuter Bezugnahme auf Fig. 3 überträgt der Multiplexer 46 hinausgehende Pakete auf der inneren Ausgangsleitung 54 zu einer Koordinatenschaltereinheit (Crossbar) 122. Die Eingangsleitungen 20-24 schließen an die (nicht gezeigten) Demultiplexer der Verbindungselemente 56, 58 und 60 an. Die Verbindungselemente 56-60 sind in der gleichen Weise wie das Verbindungselement 34 organisiert. Hinausgehende Pakete von den Verbindungselementen 56 bis 60 werden jeweils auf den inneren Ausgangsleitungen 110, 112 und 114 zu der Koordinatenschaltereinheit 122 übertragen.
  • Die CPU 48 steht durch den Datenbus 118 mit einem Speicher 116 mit wahlfreiem Zugriff (RAM) in Verbindung. Der Datenbus 118 ermöglicht auch die Kommunikation zwischen der CPU 48 und einer MUX/DX-Steuereinheit 47, der Hauptpuffersteuereinheit 51, CPU-Ausgangsschnittstellenelement 94 und einer lokalen CPU-Schnittstelle 96.
  • Die CPU 48 liest die Vorsatzinformationen von dem Puffer 74 und analogen Elementen, um zu bestimmen, welche der Benutzerpakete ihrer Bestimmung am nächsten sind und welche Ausgangsleitung 26-32 sich auf dem kürzesten Pfad zu dem Bestimmungsknotenpunkt befindet. Die CPU 48 trifft diesen Vergleich mit Hilfe einer weiter unten beschriebenen Nachschlagetabelle, die in dem RAM 116 gespeichert ist. Eine Schreibaktivierung zurück zum Puffer 74 et al. ist zum übertragen der erhöhten Knotenpunktabstandspakete im Zusammenhang mit einer Nachschlagetabellengenerierung zu Beginn des Netzwerkbetriebs erforderlich, was später noch beschrieben wird.
  • Die CPU 48 wählt für die Übertragung beim nächsten Systemtaktimpuls ein in dem Verbindungselement 34 gespeichertes Paket aus, ein in dem Verbindungselement 56 gespeichertes Paket, ein in dem Verbindungselement 58 gespeichertes Paket sowie ein in dem Verbindungselement 60 gespeichertes Paket. Durch den Adressenbus 50 weist die CPU 48 eine Crossbarsteuereinheit 98 an, welche innere Ausgangsleitung 54, 110, 112 oder 114 mit welcher äußeren Ausgangsleitung 26, 28, 30 oder 32 elektrisch verbunden werden sollte. Diese Anweisungen werden ihrerseits von der Steuereinheit 98 auf einem Crossbarbus 120 zu dem Crossbar 122 weitergegeben.
  • Die CPU-Ausgangsschnittstelle 94 erlaubt es der CPU 48, durch die serielle Nachrichtenleitung 100 mit anderen Knotenpunkten einen "Quittungsbetrieb" aufzunehmen. Die Schnittstelle 94 überträgt bei Empfang eines Pakets in einem der Verbindungselemente 34, 56-60 ein Bestätigungssignal oder eine Fehlernachricht auf einer geeigneten Ausgangsleitung (falls durch Fehlerüberprüfung bekannt ist, daß das empfangene Paket fehlerhaft ist). Die Unfähigkeit des sendenden Knotenpunkts, eine Bestätigung von der Schnittstelle 94 zu empfangen, setzt eine Fehlererfassungsprozedur in Gang, die später beschrieben wird.
  • An jeden Knotenpunkt A-I in dem Netzwerk können ein oder mehrere lokale Geräte 124 angeschlossen sein. Diese Geräte können Prozessoren, Speicher oder Eingabe-/Ausgabegeräte sein. Das Gerät 124 ist durch eine Schnittstelle 126 mit dem Knotenpunkt verbunden. Die Schnittstelle 126 ist ihrerseits durch eine lokale Geräteeingangsleitung 128 und eine lokale Geräteausgangsleitung 130 mit der Koordinatenschaltereinheit 122 verbunden. Erhält die CPU 48 von einer lokalen CPU- Schnittstelle 96 über den Bus 118 Kenntnis von einem lokal generierten Paketbestimmungsknotenpunkt, dann kann sie die Schaltereinheit 122 anweisen, den Inhalt der Schnittstelle 126 auf einer beliebigen Ausgangsleitung 26-32 zu übertragen. Die CPU 48 kann die Schaltereinheit 122 (über die Steuereinheit 98) auch anweisen, ein gespeichertes Paket mit einem Bestimmungsknotenpunkt gleich A (dem Heimknotenpunkt) auf der Leitung 128 zu der Schnittstelle 126 zu übertragen. Die Schnittstelle 96 empfängt auf dem Bus 102 den Bestimmungsknotenpunkt eines zu übertragenden Pakets, sowie auf den Leitungen 104, 106 ein Bereit-zum-Senden-Signal und andere Informationen von dem Gerät 124.
  • Es sei nochmals darauf hingewiesen, daß die vorliegende Erfindung zwar als eine zweidimensionale Hypertoroid-Anordnung dargestellt ist, daß die Struktur des Knotenpunkts 10 aber leicht erweitert werden kann, um zusätzliche Ring-Anordnungen unterzubringen. Jede zusätzliche Ring-Anordnung erfordert zwei zusätzliche Eingangsleitungen, zwei zusätzliche Ausgangsleitungen sowie zwei zusätzliche Verbindungselemente. Die übrigen Komponenten des Knotenpunkts 10 würden funktional gleich bleiben. Die Zahl der Puffer in jedem Verbindungselement könnte erhöht oder verringert werden; allerdings sind bevorzugt wenigstens vier Puffer pro Element vorhanden. Die Zahl der Hypertoroid-Anordnungen sowie die Zahl der Datenpaketspeicherpuffer sind nach der gewünschten Bandbreite ausgewählt, nach dem Nutzungsgrad des Netzwerks sowie nach der Gesamtübertragungsfrequenz zwischen den Knotenpunkten.
  • Fig. 5 ist ein schematisches Flußdiagramm für die in dem RAM 116 gespeicherte Tabellengenerierungs-Software. Es sei darauf hingewiesen, daß eine Nachschlagetabelle, die zum Betrieb des Systems ausreicht, zu einem PROM oder einer ähnlichen Vorrichtung festverdrahtet werden könnte; aber die Nachschlagetabelle wird bevorzugt in einem flüchtigen Speicher gespeichert, damit sie bei Ausfall eines der Verbindungselemente oder Knotenpunkte des Systems oder bei einer möglichen Erweiterung des Netzwerks geändert werden kann. Nach dem Hochfahren im Schritt 132 generiert jeder Knotenpunkt in dem System bei 134 ein Knotenpunktabstandspaket. Jedes Knotenpunktabstandspaket umfaßt eine Knotenpunktidentifikation sowie eine Knotenpunktstreckenzahl. Fig. 5 veranschaulicht die Nachschlagetabellengenerierung für den Knotenpunkt A in Fig. 2. Der Identifikationsteil eines bei A generierten Knotenpunktabstandspakets ist "A". Zum Zeitpunkt der Generierung des Knotenpunktabstandspakets ist die Knotenpunktstreckenzahl Null.
  • Nachdem das Knotenpunktabstandspaket generiert worden ist, setzt der generierende Knotenpunkt im Schritt 136 das Knotenpunktabstandspaket in einen Puffer von jedem der Verbindungselemente 34, 56, 58, 60 (Fig. 3). Im Schritt 138 überträgt der Knotenpunkt das Knotenpunktabstandspaket zu benachbarten angeschlossenen Knotenpunkten auf jeder seiner Ausgangsleitungen. Gleichzeitig mit der Übertragung der Knotenpunktabstandspakete empfängt der Knotenpunkt A bei 140 auf den Eingangsleitungen von seinen Nachbarn vier Knotenpunktabstandspakete. Dieser Schritt ist als Entscheidung gezeigt, denn der Knotenpunkt A kann im weiteren Tabellengenerierungsvorgang keine Knotenpunktabstandspakete empfangen. Die empfangenen Knotenpunktabstandspakete sind in Fig. 5 allgemein mit X(n) bezeichnet, wobei X die Identifikation des erzeugenden Knotenpunkts und n die Knotenpunktstreckenzahl des empfangenen Knotenpunktabstandspakets ist.
  • Wenn irgendwelche Knotenpunktabstandspakete empfangen werden, dann liest sie die CPU 48 (Fig. 3) bei 142 seriell, beginnend mit dem ersten Verbindungselement. Bei 144 frägt die CPU, ob das empfangene Knotenpunktabstandspaket von ihr selbst erzeugt worden ist. Falls X gleich A ist, verwirft die CPU das Knotenpunktabstandspaket bei 146. Falls X nicht gleich A ist, erhöht der Knotenpunkt bei 148 die Knotenpunktstreckenzahl des Knotenpunktabstandspakets um eine Konstante, bevorzugt Eins. Das Paket ist auch der Eingangsleitung l zugeordnet, auf der es erschienen ist.
  • Bei Entscheidung 150 sieht die CPU 48 in ihrer Nachschlagetabelle im RAM 116 (Fig. 3) bei dem Eintrag nach, der der Knotenpunktidentifikation und der Eingangsleitung l entspricht. Ein Gesamteintrag bei T(X,l) entspricht einem Abstand zwischen einem Knotenpunkt l und einem Knotenpunkt X auf einem Pfad einschließlich der Ausgangsleitung l. Ist der Eintrag null, was darauf hinweist, daß noch keine Informationen empfangen worden sind, die diesem Eintrag entsprechen, dann wird der Eintrag bei 152 auf n + 1 gesetzt. Falls der Eintrag T(X,l) nicht Null ist, dann wird die Knotenpunktabstandszahl n + 1 des Pakets (n+1,l)bei 154 mit dem entsprechenden Tabelleneintrag T(X,l) verglichen. Falls die Knotenpunktstreckenzahl kleiner ist als der existierende Tabelleneintrag, dann wird im Schritt 152 n + 1 gleich dem Eintrag gesetzt. Andernfalls wird das Knotenpunktabstandspaket X(n+x,e) im Schritt 146 verworfen.
  • Ist die Knotenpunktstreckenzahl n + 1 eines Pakets zu einem Nachschlagetabelleneintrag gesetzt worden, dann wird das Knotenpunktabstandspaket X(n + 1) von der Leitung l getrennt, aufbewahrt und im Schritt 156 in eine Übertragungswarteschlange gesetzt. Das Knotenpunktabstandspaket wird erhöht auf allen Leitungen zu benachbarten Knotenpunkten übertragen, wodurch korrekte Informationen weitergegeben werden, wie weit der Knotenpunkt X von dem Pfad entfernt ist, der von X(n + 1) genommen wurde. Hat andererseits das Knotenpunktabstandspaket X(n+l) eine Knotenpunktstreckenzahl n + 1, die kleiner ist als die schon in der Tabelle bei dem Knotenpunkt T(X,l) vorhandene, dann zeigt dies, daß der von X(n+1,l) genommene Pfad nicht der kürzeste Pfad zum Knotenpunkt X ist, der die Leitung l einschließt. Deshalb wird dieses Knotenpunktabstandspaket verworfen.
  • Bei 156 wird X(n + 1) nicht direkt in einen Puffer, sondern in eine Warteschlange gestellt, denn während des Tabellengenerierungsvorgangs übersteigt die Zahl der Knotenpunktabstandspakete, die auf den Ausgangsleitungen übertragen werden sollen, bald die Zahl der zum Speichern von Daten verfügbaren Puffer. Beispielsweise empfängt der Knotenpunkt A während des ersten Systemtaktzyklus die Knotenpunktabstandspakete D(0), G(0), D(0) und C(0) (vgl. Fig. 2). Nach der Erhöhung der Streckenzahl dieser Knotenpunktabstandspakete um Eins werden die Knotenpunktabstandspakete zu D(1), C(1), D(1) und G(1). Ein Eintrag von Eins wird in die Nachschlagetabelle bei T(D,2); T(G,4); T(D,3) und T(C,1) gesetzt. Da alle während des ersten Taktzyklus empfangenen Knotenpunktabstandspakete dazu verwendet werden, der Nachschlagetabelle Informationen zu liefern, wird keines dieser Pakete verworfen, und alle werden zurückübertragen. Nach viermaliger Reproduktion werden die während des ersten Taktzyklus empfangenen Knotenpunktabstandspakete deshalb selbst alle 16 verfügbaren Speicherpuffer besetzen, während sie auf die Rückübertragung warten. Deshalb werden nachfolgende gültige (nicht verworfene) Knotenpunktabstandspakete über Eins in einer Warteschlange bis zur Eröffnung der Puffer gespeichert.
  • Im Schritt 158 wird das empfangende Verbindungselement l um Eins erhöht, und die Leitungszahl wird bei 160 auf vier, d.h. die maximale Verbindungselementzahl geprüft. (Das Verbindungselement l und die Eingangsleitung l sind einander zugeordnete Strukturen, wie dies in Fig. 3 gezeigt ist.) Falls noch ein oder mehrere Verbindungselemente untersucht werden müssen, kehrt die Tabellengenerierungsprozedur bei 160 zum Schritt 144 zurück und wiederholt den Vorgang für die restlichen Verbindungselemente. Wenn alle Verbindungselemente abgesucht worden sind, dann geht die Prozedur weiter zum Schritt 164 (rechts in der Fig.) und frägt, ob in der Übertragungswarteschlange etwa ein erhöhtes Knotenpunktabstandspaket (X(n+1)) vorhanden ist. Die "nein"-Verzweigung von Entscheidung 140 zweigt auch zu dieser Gruppe ab. Falls ein X(n+1) in der Übertragungswarteschlange vorhanden ist, was während des größten Teils der Prozedur der Fall sein wird, dann wird im Schritt 166 ein Knotenpunktabstandspaket (X(n+1)) oben in der Warteschlange in einen Puffer an jedem Verbindungselement gesetzt, so daß das Knotenpunktabstandspaket auf jeder Ausgangsleitung zurückübertragen werden kann. X(n+1) wird also vor der Übertragung viermal reproduziert. Die Prozedur frägt dann bei Schritt 168, ob sich noch weitere Knotenpunktabstandspakete in der Übertragunswarteschlange befinden. Falls dem so ist, dann bestimmt der Schritt 170, ob noch irgendwelche Puffer (Puff, (l, a)) übrigbleiben oder nicht, um die weiteren in der Schlange stehenden Knotenpunktabstandspakete festzuhalten. Die Zahl der leeren Puffer ist ein Vielfaches von Vier, da vier Puffer auf einmal gefüllt und geleert werden; dabei ist Eins pro Verbindungselement "a" die Pufferzahl und variiert von Eins bis Vier. Falls sich keine weiteren Knotenpunktabstandspakete in der Übertragungswarteschlange befinden, oder falls keine weiteren leeren Puffer vorhanden sind, um solche Pakete aufzunehmen, wird im Schritt 172 der Inhalt von Puffer (a) in jedem Verbindungselement (l) zu allen benachbarten Knotenpunkten übertragen. Falls noch weitere leere Puffer vorhanden sind, dann werden im Schritt 174 weitere Knotenpunktabstandspakete darin aufgenommen, und die Prozedur gelangt in einer Schleife zurück zum Schritt 168.
  • Falls bei 164 keine Knotenpunktabstandspakete in der Übertragungswarteschlange gefunden werden, dann verzweigt die Prozedur zum Schritt 176, der eine Subprozedur startet, um herauszufinden, ob noch irgendwelche aktiven Knotenpunktabstandspakete innerhalb des Netzwerks übertragen werden. Der Schritt 176 frägt, ob irgendein Knotenpunktabstandspaket X(n+1) in irgendeinem Puffer in irgendeinem Verbindungselement vorhanden ist. Falls ein oder mehrere Knotenpunktabstandspakete zur Rückübertragung bereit sind, dann wird im Schritt 178 eine Zählvariable auf Null gesetzt, und die gefundenen Knotenpunktabstandspakete werden im Schritt 172 zurückübertragen. Falls in den Puffern keine Knotenpunktabstandspakete gefunden werden, wird im Schritt 180 ZÄHLERSTAND um Eins erhöht und mit einer willkürlich gesetzten Konstante S verglichen, um zu bestimmen, wieviele Zyklen verstrichen sind, ohne daß der Knotenpunkt ein Knotenpunktabstandspaket zurückübertragen hat. S wird so gesetzt, daß bei Berücksichtigung der Warteschlangensicherungen Knotenpunkte, die auf allen Leitungen von dem Knotenpunkt mit der größten logischen Trennung übertragen werden, den Subjektknotenpunkt (hier Knotenpunkt A) erreichen können. Ist ZÄHLERSTAND bei 182 geringer als S, dann kehrt die Prozedur zum Schritt 140 zurück, um den nächsten Zyklus in der Tabellengenerierungsprozedur zu beginnen. Die Prozedur kehrt auch nach der Übertragung des Inhalts einer Gruppe von vier Puffern bei 172 zu 140 zurück.
  • Falls ZÄHLERSTAND bei 182 größer als oder gleich S ist, was anzeigt, daß über eine Zahl von Zyklen keine Knotenpunktabstandspakete übertragen worden sind, dann wird ein "voll A"-Paket bei 186 übertragen, wodurch angezeigt wird, daß die Nachschlagetabelle des Knotenpunkts A abgeschlossen ist. Der Schritt 188 prüft, ob der Knotenpunkt änliche "voll B", "voll C", etc.- Pakete von jedem anderen Knotenpunkt im System empfangen hat. Falls dies nicht der Fall ist, kehrt die Prozedur zu 140 zurück, um einen weiteren Zyklus zu starten. Wurden jedoch "voll X"-Pakete für jeden Knotenpunkt in dem System empfangen, dann ist dies ein Hinweise darauf, daß alle Nachschlagetabellen im Netzwerk abgeschlossen sind und das Netzwerk bereit ist, bei 190 Benutzerpakete zu vermitteln. Dann wird die in Fig. 7 gezeigte Paketvermittlungsprozedur eingesetzt.
  • Beim Knotenpunktabstandspaket-Übertragungsschritt 172 wird der Puffer "a" bevorzugt in Folge ausgewählt, d.h., falls im ersten Zyklus die Pufferzahl Eins für jedes Verbindungselement eins bis vier gewählt wird, dann wird der Puffer zwei für die Übertragung im zweiten Zyklus gewählt, usw. Dieses Muster würde sich wiederholen, um sicherzustellen, daß keine Bestimmungsknotenpunkte außerhalb ihrer Empfangsfolge übertragen werden. Dadurch wird die Wirksamkeit der Tabellengenerierung erhöht, denn die Knotenpunktabstandspakete, die die kürzesten logischen Wege an den Tag legen, kommen zuerst am Knoten A an, wobei die Knotenpunktabstandspunkte, die einen umständlicheren Pfad genommen haben, später ankommen. Die Übertragungsmnemonik könnte auch dadurch etwas verbessert werden, daß das Knotenpunktabstandspaket nicht zu dem Knotenpunkt zurückübertragen wird, von dem es empfangen wurde, da dieses zurückübertragene Knotenpunktabstandspaket lediglich von dem Quellknotenpunkt verworfen würde. Diese logische Perfektionierung erfordert jedoch weitere Organisationsarbeiten, und in vielen Fällen kann es nicht wünschenswert sein, dies zu unternehmen.
  • Fig. 6 zeigt ein Diagramm zum Konzept einer fertiggestellten Nachschlagetabelle 192, die in dem RAM-Element 116 (Fig. 3) gespeichert ist. Die in Fig. 6 gezeigte Nachschlagetabelle entspricht dem relativ einfachen zweidimensionalen Hypertoroidnetzwerk, das in Fig. 2 gezeigt ist, und würde selbstverständlich für ein Netzwerk mit zusätzlichen Dimensionen oder Knotenpunkten erweitert werden. Die fertiggestellte Tabelle zeigt die kürzeste logische Strecke zwischen dem Bezugsknotenpunkt und der Bezugsausgangsleitung. In Entsprechung mit einem Benutzerpaket, das aus der Ausgangsleitung 28 (Teil der Vollduplexleitung a2) übertragen wird und einen Bestimmungsknotenpunkt G hat, ist der Eintrag (T(G,2)) gleich zwei Knotenpunktabständen. Der Eintrag T(G,4) zeigt, daß es ökonomischer ist, ein G-Paket aus Leitung l zu senden, da der Knoten G über diesen Weg nur einen Knotenpunktabstand entfernt ist.
  • Obwohl ein Hypertoroid-Netzwerk bevorzugt ist, weil so die logische Strecke minimal anwächst, könnte die in Fig. 6 beispielhaft dargestellte Nachschlagetabelle ebenso für jede beliebige Mehrknotenpunktsystem-Architektur generiert werden.
  • Ist eine Nachschlagetabelle 192 für jeden Knotenpunkt generiert, dann ist das Netzwerk bereit zum Vermitteln von Benutzerpaketen von den lokalen Geräten 124 (Fig. 3) auf das Netzwerk. In der vorliegenden Anwendung bedeutet "Benutzerpaket" ein Paket fester, konstanter Länge aus einem Benutzerprogrammaterial, das Daten und/oder Anweisungen enthält. Während jedes Paketvermittlungstaktzyklus der Benutzerprogrammoperation erhält jeder der Knoten 10 (Fig. 2) Benutzerpakete P(x) auf jeder Eingangsleitung eins bis vier (18, 20, 22 und 24; Fig. 3), die in den Verbindungselementen 34, 56, 58 und 60 in einem durch die CPU 48 ausgewählten leeren Puffer gespeichert werden. Die Paketvermittlungsprozedur arbeitet so, daß immer wenigstens vier Puffer in einem Leerzustand zum Empfang eines Benutzerpakets bereit sind.
  • Unter Bezugnahme auf Fig. 7 werden Benutzerpakete im Schritt 194 in vier leere Puffer, einen pro Verbindungselement l, eingegeben. Der Schritt 196 frägt dann, ob nach dem Empfang von Benutzerpaketen von anderen Knotenpunkten noch ein nichtleerer Puffer vorhanden ist. Falls es einen oder mehrere nichtleere Puffer gibt, werden die Benutzerpakete P(X) lokalen Ursprungs in einen oder mehrere leere Puffer von dem lokalen Gerät 124 (Fig. 3) gesetzt. Unter Rückbezug auf Fig. 3 wird ein lokales Benutzerpaket durch die Einschaltung des Crossbars 122 und die Steuereinheit 98 in einen der Puffer in dem Verbindungselement 34, 56, 58 oder 60 vermittelt.
  • Die Variable l wird im Schritt 200 auf Eins gesetzt, gleichgültig ob ein lokal erzeugtes Paket in einen leeren Puffer gesetzt werden kann oder nicht. Dann überprüft der Schritt 202, ob alle Puffer des überprüften Verbindungselements leer sind. Falls alle Puffer des Verbindungselements leer sind, verzweigt das Programm zu Schritt 204, wo die Verbindungselementzahl erhöht wird; im Schritt 206 wird überprüft, ob die Verbindungselementzahl das Maximum überschreitet, und bei 202 wird das nächste Verbindungselement in numerischer Folge überprüft. Wird ein nichtleeres Verbindungselement ausgemacht, dann wird bei 205 die Puffervariable "a" auf Eins gesetzt. Bei 206 wird der Bestimmungsknotenpunkt in dem Paketvorsatz aus dem Pufferzwischenspeicher 74 (Fig. 4) gelesen. Dann werden die Einträge T(x,ol), ol=1 bis 4 in der Nachschlagetabelle für den Bestimmungsknotenpunkt X des Pakets abgerufen. Für die Verwendung in Fig. 7 ist ol eine Ausgangsleitungsvariable im Bereich von eins bis vier. Der minimale logische Abstand wird dann dadurch bestimmt, daß das Minimum von T(x,ol) genommen wird und mit der Strecke (P(X,l,a)) gleichgesetzt wird, die dem Benutzerpaket im Puffer zu durchlaufen bleibt. Im Schritt 208 wird die von dem Benutzerpaket P(X,l,a) bevorzugte Ausgangsleitung ol gleich der Ausgangsleitung gesetzt, die in der Tabelle T die minimale Strecke liefert.
  • Im Schritt 210 wird der Puffer a um Eins erhöht und im Schritt 212 mit der Zahl von Puffern in jedem Verbindungselement verglichen (hier vier), um zu überprüfen, ob die mögliche Pufferzahl überschritten worden ist. Falls "a" kleiner als vier ist, wird der Vorgang des Bestimmens von (P(X,l,A)) und ol(P(X,l,A)) für jeden Puffer innerhalb des Verbindungselements wiederholt. Wenn der Schritt 212 bestimmt, daß alle Puffer in dem aktuellen Verbindungselement überprüft worden sind, wird eines der in dem Verbindungselement mit dem kleinsten "d" gespeicherten Benutzerpaketen im Schritt 214 als Mitglied einer Gruppe S ausgewählt. Die Benutzerpakete, die zur Gruppe S gehören, erhalten die erste Priorität bei der Zuordnung von Ausgangsleitungen zur Übertragung zu benachbarten Knotenpunkten. Jedes Mitglied von S(l) wird einer Ausgangsleitung ol(S(l)) zugeordnet, die der bevorzugten Ausgangsleitung des gewählten gespeicherten Benutzerpakets äquivalent ist und eine Knotenpunktstrecke d(S(l)) hat, die der Knotenpunktstrecke des gewählten Benutzerpakets äquivalent ist.
  • Ist ein Mitglied von S als aktuelles Verbindungselement l gewählt, dann wird im Schritt 204 die Verbindungselementzahl um Eins erhöht und im Schritt 206 mit der Gesamtzahl von Verbindungselementen in dem Knotenpunkt verglichen. Falls die Verbindungselementzahl kleiner ist als die Gesamtzahl der Verbindungselemente in dem Knotenpunkt, dann wiederholt sich der Vorgang, um weitere Mitglieder der Gruppe S auszuwählen.
  • Unmittelbar nach Beendigung der Auswahl von Mitgliedern der Gruppe S werden die Mitglieder im Schritt 216 (oben) vom kleinsten zum größten nach der Knotenpunktstrecke "d" zu ihren jeweiligen Bestimmungsknotenpunkten sortiert. Bei 218 wird das Mitglied von S(l) mit dem kleinsten "d" abgerufen. Der Schritt 220 bestimmt, ob die von dem abgerufenen Benutzerpaket bevorzugte Ausgangsleitung bereits zugeordnet worden ist. Falls dem nicht so ist, wird die Ausgangsleitung im Schritt 222 zugeordnet, indem S(l) an die Spitze der Übertragungswarteschlange für diese Leitung gesetzt wird. Falls das abgerufene Mitglied von S(l) eine bevorzugte Leitung hat, die bereits zugeordnet worden ist, zieht die Prozedur bei 224 das Mitglied S(l) mit dem nächst kleinsten "d" in Betracht.
  • Folglich sind durch die Schritte 216-224 eines bis alle Mitglieder von S(l) Ausgangsleitungen zugeordnet, abhängig von der Verfügbarkeit dieser Ausgangsleitungen für die Übertragung. Das Mitglied von S(l) mit der kleinsten Knotenpunktstrecke bis zu seiner Bestimmung wird mit Sicherheit einer Ausgangsleitung zugeordnet und während des aktuellen Systemtaktzyklus übertragen. Ob nachfolgende Mitglieder von S(l) Ausgangsleitungen zugeordnet werden, hängt davon ab, ob diese Ausgangsleitungen vorher Mitgliedern von S(l) zugeordnet worden sind, die vorher in Betracht gezogen worden sind.
  • Der Schritt 226 frägt, ob etwa noch übriggebliebene Mitglieder von S(l) in Betracht gezogen werden müssen. Falls noch welche vorhanden sind, kehrt die Prozedur zum Schritt 224 zurück. Falls keine vorhanden sind, geht die Prozedur bei der Entscheidung 228 zur nächsten Phase der Benutzerpaketauswahl über, die frägt, ob noch unzugeordnete Ausgangsleitungen übrigbleiben, nachdem die Mitglieder von S(l) ihnen zugeordnet worden sind. Wenn keine Ausgangsleitungen unzugeordnet bleiben, dann sind vier Benutzerpakete bereit zur Übertragung, und die Prozedur verzweigt zu dem Übertragungsschritt 230.
  • Falls unzugeordnete Ausgangsleitungen übriggeblieben sind, setzt eine zweite Phase der Benutzerpaketauswahlprozedur zunächst im Schritt 232 l auf Eins. Die Prozedur überprüft bei 234 das aktuelle Verbindungselement, um zu bestimmen, ob alle seine Puffer unzugeordnete Benutzerpakete enthalten oder nicht. Falls das aktuelle Verbindungselement "voll" ist, d.h. alle seine Puffer unzugeordnete Benutzerpakete enthalten, bestimmt der Schritt 236, ob irgendwelche der unzugeordneten Benutzerpakete eine bevorzugte Ausgangsleitung haben, die einer unzugeordneten Ausgangsleitung äquivalent ist. Falls dem so ist, wird das passende Benutzerpaket bei 238 seiner bevorzugten Ausgangsleitung zugeordnet. Dann wird die Verbindungselementzahl bei 240 mit der maximalen Zahl von Verbindungselementen verglichen. Sind noch nicht alle Verbindungselemente in Betracht gezogen worden, dann wird die Verbindungselementzahl bei 242 um Eins erhöht, und bei 234 wird das nächste Verbindungselement in Betracht gezogen.
  • Wenn alle Verbindungselemente durch diese Phase des Zuordnungsprogramms in Betracht gezogen worden sind, dann startet im Schritt 244 eine dritte Phase der Benutzerzuordnung, die frägt, ob irgendwelche unzugeordneten Ausgangsleitungen übrigbleiben. Falls dem nicht so ist, verzweigt die Prozedur zum Übertragungsschritt 230. Falls noch unzugeordnete Ausgangsleitungen übrigbleiben, überprüft der Schritt 246 jedes Verbindungselement, um zu bestimmen, ob eines von ihnen voll ist. Falls ein oder mehrere volle Verbindungselemente übrigbleiben, ordnet das Programm bei 248 jedes unzugeordnete Benutzerpaket in dem vollen Verbindungselement einer unzugeordneten Ausgangsleitung zu, ohne zu berücksichtigen, ob die bevorzugte Ausgangsleitung des Benutzerpakets gleich der unzugeordneten Ausgangsleitung ist. Diese Phase stellt sicher, daß in jedem Verbindungselement wenigstens ein leerer Puffer verfügbar ist, um hereinkommende Daten bei dem nächsten Paketvermittlungstaktzyklus zu empfangen. Falls bei 246 bestimmt wird, daß jedes Verbindungselement einen leeren Puffer oder einen Puffer hat, der ein bereits zugeordnetes Informationspaket enthält, dann verzweigt die Prozedur zum Schritt 250, wo alle übrigen Informationspakete zugeordnet werden, falls ihre bevorzugten Leitungen irgendeiner unzugeordneten Ausgangsleitung äquivalent sind. Nach dem Schritt 248 des anderen Zweigs frägt das Programm nochmals, ob irgendwelche unzugeordneten Ausgangsleitungen übrigbleiben; falls dem so ist, geht das Programm zum Schritt 250. Ansonsten verzweigt das Programm zum Übertragungsschritt 230.
  • Nach Beendigung des Schritts 250 oder falls die unzugeordneten Ausgangsleitungen vor dem Schritt 250 erschöpft worden sind, werden die zugeordneten Informationspakete im Schritt 230 auf ihren jeweils zugeordneten Ausgangsleitungen übertragen. Der Schritt 230 ist simultan zu dem Empfang von weiteren Informationspaketen auf den Eingangsleitungen a1-a4. Für die Zwecke der vorliegenden Beschreibung sind die Schritte 230 und der Schritt 194 zwar vom Konzept her durch den Rücksprung 254 getrennt; der Übertragungsschritt 230 eines vorhergehenden Paketvermittlungszyklus läuft aber gleichzeitig mit dem Empfang von Informationspaketen in einem nachfolgenden Paketvermittlungszyklus bei 194 ab. Nochmals unter Bezug auf Fig. 4 ist dies möglich, da, falls der Puffer 38 der einzige leere Puffer in dem Verbindungselement 34 ist, ein hereinkommendes Paket zur gleichen Zeit seriell in das Register 72 eingegeben wird, da ein hinausgehendes Paket auf der Leitung 86 aus dem Schieberegister 76 seriell ausgegeben wird. So kommen sich die Pakete nicht gegenseitig in die Quere.
  • Die oben beschriebene Paketvermittlungsprozedur läßt sich wie folgt zusammenfassen:
  • 1. Zunächst wird aus dem nächsten Informationspaket (bezogen auf die Strecke zu seinem Bestimmungsknotenpunkt) in jedem Verbindungselement eine Gruppe S gebildet. Die Pakete in S werden nach ihren zugeordneten Strecken "d", vom nächsten zum weitest entfernten, in eine Folge gebracht. Die Pakete in S werden dann Ausgangsleitungen zugeordnet, die in dieser Folge herangezogen werden. Falls ein Paket S eine bevorzugte Ausgangsleitung hat, die bereits zugeordnet worden ist, dann wird dieses Paket in diesem Schritt übergangen.
  • 2. Falls immer noch einige Ausgangsleitungen verfügbar sind, dann schaut das Programm auf die Puffer von jedem Verbindungselement. Jedes Verbindungselement muß wenigstens einen Puffer zum Empfang eines möglicherweise hereinkommenden Pakets verfügbar halten. Muß irgendein Verbindungselement zu diesem Zweck einen Puffer freimachen ("volle" Verbindungselemente), dann ordnet dieser Schritt eine verfügbare Ausgangsleitung einem beliebigen Paket in dem Puffer dieses Verbindungselements zu, das die Ausgangsleitung bevorzugt.
  • 3. Sind immer noch sowohl verfügbare Ausgangsleitungen als auch "volle" Verbindungselemente vorhanden, dann ordnet die Prozedur jedes Paket in einem "vollen" Verbindungselement irgendeiner verfügbaren Ausgangsleitung zu, ohne Rücksicht auf die Präferenz des zugeordneten Pakets.
  • 4. Sind immer noch Ausgangsleitungen verfügbar, dann wählt die Prozedur irgendein Paket, das irgendeine unzugeordnete Ausgangsleitung bevorzugt.
  • Fig. 8 zeigt das Diagramm zum Konzept einer vollständig gefüllten Gruppe von Verbindungselementen im Knotenpunkt A von Fig. 2. Jeder Puffer enthält ein Benutzerpaket, das einen Vorsatz mit einer Bestimmungsknotenpunktkennzeichnung umfaßt. Beispielsweise hat der Puffer (2, 4) ein Paket, das für den Knotenpunkt E bestimmt ist. Die eingekreisten Datenpakete werden auf folgende Weise für die Übertragung auf den Knotenpunktausgangsleitungen ausgewählt.
  • Während der ersten Benutzerpaketauswahlstufe (Schritte 196-228, Fig. 7) wird aus den Datenpaketen in jedem Verbindungselement mit der kleinsten Strecke "d" eine Gruppe S gebildet. Diese kann durch Bezugnahme auf die Nachschlagetabelle von Fig. 6 bestimmt werden. Bindungen gehen zu dem ersten von zwei in Betracht gezogenen Paketen.
  • Für das Verbindungselement 1 gilt S(1) = P(I,1,1) bei d(P(I,1,1) = 2, einer Strecke, die wenigstens so gering ist wie die für die Pakete E und F verfügbare. ol(Pa(I,1,1), die Ausgangsleitung, die die kleinste Strecke liefert, ist 1. Deshalb gilt d(S(1)) = 2, und ol(S(l)) = 1. Ebenso gilt S(2) = P(C,2,2), d(S(2)) = 1, ol(S(2)) = 1; S(3) = P(D,3,2), d(S(3)) = 2, ol(S(3)) = 2; und S(4) = P(D,4,2), d(S(4)) = 2; ol(S(4)) = 2.
  • Als nächstes werden die Mitglieder von S in der Reihenfolge von der kleinsten zu der größten Strecke angeordnet: S(2), S(3), S(4,), S(1).
  • Dann werden die Mitglieder von S sequentiell Ausgangsleitungen zugeordnet. S(2) wird der Ausgangsleitung 1 zugeordnet. S(3) wird der Ausgangsleitung 2 zugeordnet. S(4) wird nicht zugeordnet, da die bevorzugte Ausgangsleitung schon S(3) zugeordnet worden ist. S(1) wird übergangen, da die bevorzugte Ausgangsleitung schon S(2) zugeordnet worden ist.
  • Nach der ersten Datenpaketauswahlstufe gibt es noch zwei unzugeordnete Ausgangsleitungen (3 und 4). Deshalb wird in die zweite Datenpaketauswahlstufe eingetreten (Schritte 232-242, Fig. 7). Die Verbindungselemente 1 und 4 sind noch "voll". Im Verbindungselement 1 sind die bevorzugten Ausgangsleitungen für die gespeicherten Pakete wie folgt: ol(P(I,1,1) = 2; ol(P(E,1,2)) = 2; ol(P(E,1,3)) = 2; ol(P(F,1,4)) = 1. Bei dem grundlegenden dargestellten Algorithmus für die Auswahl der bevorzugten Ausgangsleitung gehen Bindungen zu der ersten in Betracht gezogenen Ausgangsleitung. So liefert für P(E,1,2) entweder die Leitung 2 oder 3 die minimale Strecke "d" von 2, aber die Leitung zwei wird gegenüber der Leitung 3 gewählt. Ein komplizierterer Leitungsauswahlalgorithmus könnte vorher ausgewählte Leitungen als mögliche Wahl ausscheiden. Diese Verbesserung würde bei dem letzten Beispiel zu ol(P(E,1,2)) = 3 statt 2 führen.
  • Es läßt sich jedoch in diesem Falle kein Paket in dem Verbindungselement 1 finden, dessen bevorzugte Ausgangsleitung einer unzugeordneten Ausgangsleitung gleichkommt. In dem Verbindungselement 4, dem anderen "vollen" Verbindungselement, sind die bevorzugten Ausgangsleitungen ol(P(H,4,1)) = 3; ol(P(D,4,3)) = 2; ol(P(D,4,3) = 3; ol(P(I,4,4)) = 1. Die Leitung 3 ist unzugeordnet und wird deshalb P(H,4,1) zugeordnet. Die restlichen Pakete in dem Verbindungselement 4 bevorzugen bereits zugeordnete Leitungen.
  • Am Ende der Stufe 2 gibt es immer noch ein "volles" Verbindungselement (Verbindungselement 1) und eine unzugeordnete Leitung (Ausgangsleitung 4). Die Schritte 244 und 246 (Fig. 7) zwingen deshalb die Paketauswahlprozedur in einen dritten Zustand (Schritt 248). Das Paket in dem ersten Puffer des Verbindungselements 1 (P(I,1,1)) wird genommen und der Ausgangsleitung 4 zur Übertragung zugeordnet, ohne daß die bevorzugte Leitung für ein Paket mit der Bestimmung I berücksichtigt würde. Glücklicherweise ist die Leitung 4 eine genauso gute Wahl wie die bevorzugte Leitung 1 (vgl. Fig. 6).
  • Da alle Ausgangsleitungen Paketen zugewiesen worden sind, ist der Modus bereit, beim Start des nächsten Taktzyklus beim Schritt 230 zu übertragen. Fig. 8 zeigt die zu übertragenden Pakete in Kreisen und die ihnen jeweils zugeordneten Ausgangsleitungen in der Spalte ganz rechts.
  • Fig. 9 ist ein Flußdiagramm des Fehlerpaketgenerierungs-Unterprogramms, in das eingetreten wird, wenn ein Knotenpunkt oder eine Leitung im System ausfällt. Beim Systemstart 255 wird eine inkrementierte Rücksendevariale R auf Null gesetzt, und ein Fehlerpaketflag FPFLG wird ebenfalls auf Null gesetzt. Bei 256 bemerkt ein Knotenpunkt X die Unfähigkeit, einen Bestätigungskode von einem benachbarten Knotenpunkt Y zu empfangen, nachdem X ein Paket zu Y übertragen hat. Dies veranlaßt den Knotenpunkt X, das Paket bei 257 zurückzusenden und R bei 259 zu inkrementieren. R wird bei 261 mit einer vorbestimmten Konstante K verglichen. Ist R kleiner als K, dann nimmt die Zurücksendeprozedur die Schleife zum Schritt 256. Falls R größer oder gleich K ist, wird im Schritt 258 ein Fehlerpaket FP generiert.
  • Der Knotenpunkt überprüft bei 263, ob FPFLG = φ. Beim ersten Durchlauf ist FPFLG gleich Null, und der Knotenpunkt löscht deshalb bei 260 seine Nachschlagetabelle. Das Löschen der Nachschlagetabelle ist deshalb erforderlich, weil ihre Einträge nur für den Zustand des Systems vor dem Fehler gültig sind. Der Ausfall einer Leitung oder eines Knotenpunkts wird mehrere Werte in der Tabelle verändern (vgl. Fig. 10 und 11).
  • Bei 262 wird der größte Teil der in Fig. 7 umrissenen Paketübertragungsprozedur kurzgeschlossen. Bis alle Nachschlagetabellen generiert sind, werden die Benutzerpakete P(Z) nur übertragen, um einen Puffer in einem vollen Verbindungselement zu leeren, und dann ohne Bezug zu der vom Paket bevorzugten Leitung, über den Schritt 248 in Fig. 7. Da die anderen Paketauswahlstufen (214-222), (234-242), (250) in Fig. 7 die Nachschlagetabelle verwenden, werden sie umgangen.
  • Bei 265 wird FPFLG auf 1 gesetzt. Die Fehlerpakete werden auf allen Ausgangsleitungen übertragen, wie sie bei 264 verfügbar werden. Bei 266 empfangen benachbarte Knotenpunkte jeweils ein Fehlerpaket, und sie kopieren die durchlaufene Prozedur durch den Sendeknotenpunkt, der bei 263 startet. Hierdurch können eventuell alle Nachschlagetabellen im System gelöscht werden.
  • Nachdem ein Knotenpunkt bereits seine Nachschlagetabelle gelöscht hat, wird er höchstwahrscheinlich bei Schritt 266 weitere Fehlerpakete empfangen. Da jedoch bei 265 FPFLG für solch einen Knotenpunkt auf Eins gesetzt worden ist, verzweigt die Prozedur bei 263 zum Schritt 268, statt bei 260 die Nachschlagetabelle erneut zu löschen. Das empfangene Fehlerpaket wird bei 268 verworfen und nicht zurückgesendet. Dieser Zweig wird schließlich alle Fehlerpakete in dem System entfernen.
  • Nachdem ein Knotenpunkt bei 264 Fehlerpakete übertragen hat, beginnt er bei 132, seine Nachschlagetabelle nach der in Fig. 5 gezeigten Tabellengenerierungsprozedur zu regenerieren. Bei 270 wird FPFLG auf 0 zurückgesetzt, um das Unterprogramm nach einem Systemtaktzyklus wieder aufzurüsten. Dieser Schritt wird nach einem Zyklus unternommen, damit das System alle aktuellen Fehlerpakete in der Nähe des Knotenpunkts löschen lassen kann. Nach der Regenerierung aller Nachschlagetabellen kehrt das Programm bei 190 zu der Benutzerpaketvermittlungsprozedur von Fig. 7 zurück.
  • Fig. 10 zeigt das Konzept zu einer Nachschlagetabelle, die nach der im Diagramm von Fig. 9 dargestellten Prozedur regeneriert worden ist. In diesem Fall ist die Leitung el (vgl. Fig. 2) zwischen den Knotenpunkten D und E ausgefallen, und der Knotenpunkt D ist nicht in der Lage, eine Antwort von Knotenpunkt E zu bekommen, daß ein Informationspaket empfangen worden ist. Dies bewirkt, daß die Tabellen der Knotenpunkte A-I gelöscht werden und daß die Tabelle wie in Fig. 10 gezeigt regeneriert wird; dabei zeigen die eingekreisten Einträge aufgrund des Leitungsausfalls geänderte Werte.
  • Fig. 11 zeigt im Konzept, was passiert, wenn ein ganzer Knotenpunkt, in diesem Fall der Knotenpunkt E von Fig. 2, ausfällt. Hier weist keine der regenerierten Tabllen irgendwelche Einträge bezüglich des Knotenpunkts E auf, da bei der Tabellenregenerierung von E keine Knotenpunktstreckenpakete ausgehen können. Der Knotenpunkt E ist wirksam aus dem Netzwerk genommen worden. Ein Ausführungsprogramm, das die Benutzung eines lokal an den Knotenpunkt E angeschlossenen Geräts erfordert, wird zusammenbrechen. Geht man aber davon aus, daß die von dem lokalen Gerät des Knotenpunkts E wahrgenommene Funktion anderswo im Netzwerk dupliziert wird, dann kann das Programm modifiziert und wieder geladen werden, ohne daß die Hardware des Netzwerks repariert werden müßte.
  • Es sei darauf hingewiesen, daß sich sowohl in Fig. 10 als auch in Fig. 11 bestimmte Knotenpunktstreckenwerte (a2B, a3D) ändern, obwohl sie nicht direkt mit dem Knotenpunkt E zutun haben. Deshalb ist es erforderlich, alle Nachschlagetabelleneinträge zu regenerieren.
  • Zusammenfassend sind eine Leitprozedur und eine Knotenpunktarchitektur für ein Mehrknoten-Verbindungsnetzwerk offenbart, speziell für ein Hypertoroid-Verbindungsnetzwerk, das Benutzerpakete zwischen den Knotenpunkten in dem System effizient vermittelt. Die Leitprozedur ist so konstruiert, daß sowohl die statische als auch die dynamische Blockierung vermieden werden. Bei seiner Verwendung zeigt das Netzwerk bezüglich eines Benutzerpakets und seines Bestimmungsknotenpunkts eine Wirkung, die der des Gravitationsfelds analog ist: je näher das Benutzerpaket dem Bestimmungsknotenpunkt kommt, desto bevorzugter wird es zur Übertragung gewählt, wodurch die Gesamtgeschwindigkeit zwischen den Knotenpunkten erhöht wird (Schalteranzahl/Zyklus). Es ist oben schon erwähnt worden, daß die hier offenbarte Leitprozedur und die Knotenpunktarchitektur für ein Netzwerk mit einer anderen als einer Hypertoroidarchitektur verwendet werden können. Es ist lediglich erforderlich, daß die Knotenpunkte die gleiche Zahl von Ein- und Ausgängen aufweisen und daß ihre Anschlußleitungen in einer Vollduplexkonfiguration angeordnet sind.
  • Die gezeigten grundlegenden Algorithmen können auf verschiedene Weise verbessert werden. So kann beispielsweise für jeweils eine Ausgangsleitung eine Gruppe von Übertragungsprogrammaufrufen als Teil der Benutzerpaketvermittlungsprozedur eingerichtet werden. Dann würde einem Benutzerpaket nur einmal eine Übertragungspriorität zugeordnet werden, statt bei jedem Systemzyklus. Allerdings neigt solch ein Unterprogrammaufruf zusammen mit weiteren Verbesserungen dazu, die Komplexität des Algorithmus und damit die Arbeit für die Systemorganisation zu erhöhen.
  • Die hier beschriebene Leitprozedur und die Knotenpunktarchitektur sehen auch ein "Fail-Soft"-Systemnetzwerk vor. Der Ausfall einer oder mehrerer Leitungen wird im allgemeinen die Rechenzeit nur um einen gewissen Betrag erhöhen; sogar der Ausfall eines ganzen Knotens wird es nicht erforderlich machen, daß zum weiteren Betrieb des Netzwerks Reparaturen an der Hardware durchgeführt werden.

Claims (22)

1. Verfahren zum Leiten von Benutzerpaketen in einem Verbindungsnetzwerk, das mehrere Knotenpunkte (10) mit jeweils mehreren Ausgangsleitungen (26, 28, 30, 32) und Paketspeichern (34, 40, 42, 44) enthält, wobei jedes Benutzerpaket einen Bestimmungsknotenpunkt aufweist, dadurch gekennzeichnet, daß jeder Knotenpunkt mehrere Paketspeicher-Verbindungselemente (34, 56, 58, 60) aufweist, von denen jedes mehrere Paketspeicherpuffer (38, 40, 42, 44) enthält, wobei das Verfahren beinhaltet das Empfangen einer Anzahl von Paketen in einem ersten Knotenpunkt (190); das Speichern jedes empfangenen Pakets in einem Puffer (194); das Abtasten des Bestimmungsknotenpunkts wenigstens einiger der gespeicherten Pakete (206); das Bestimmen einer bevorzugten Ausgangsleitung für jedes von gewissen gespeicherten Paketen (208), wobei jede bevorzugte Ausgangsleitung der kürzesten Knotenpunktlaufstrecke zum jeweiligen Bestimmungsknoten eines Pakets zugeordnet ist; Auswählen eines Pakets mit der kürzesten Knotenpunktlaufstrecke aller in dem Verbindungselement (214) gespeicherten Pakete für jedes Verbindungselement mit wenigstens einem nichtleeren Puffer; Zuordnen der ausgewählten Pakete (218, 220, 244) in der Reihenfolge zunehmender Knotenpunktlaufstrecken zu ihren bevorzugten Ausgangsleitungen, wenn die bevorzugte Ausgangsleitung für ein erstes Paket nicht bereits einem weiteren ersten Paket zugeordnet worden ist; und Übertragen ausgewählter Pakete (280) der gewissen gespeicherten Pakete über ihre jeweiligen bevorzugten Ausgangsleitungen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß nur eine Ausgangsleitung jedem übertragenen Paket zugeordnet wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die gewissen gespeicherten Pakete ihren jeweiligen bevorzugten Ausgangs leitungen in der Reihenfolge zunehmender Knotenpunktlaufstrecken zugeordnet sind.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß es ferner folgende Schritte enthält: nach dem Zuordnen der ausgewählten Pakete zu ihren bevorzugten Ausgangsleitungen ein Identifizieren derjenigen Verbindungselemente, die nach der Übertragung der zugeordneten ausgewählten Pakete immer noch voll sind, wenn eine der Ausgangsleitungen unzugeordnet bleibt (234), und, für jedes voraussichtlich volle Verbindungselement, ein Zuordnen eines in dem Verbindungslement gespeicherten Pakets zu einer nicht zugeordneten Leitung, falls Ausgangsleitungen unzugeordnet übrigbleiben, bis die unzugeordneten Ausgangsleitungen erschöpft sind oder bis kein voraussichtlich volles Verbindungselement übrigbleibt (256, 238, 240, 242).
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß es ferner folgende Schritte enthält: Zuordnen unzugeordneter Pakete zu ihren jeweiligen bevorzugten Ausgangsleitungen, falls verfügbar, wenn nach dem Schritt der Zuordnung von Paketen aus voraussichtlich vollen Verbindungselementen Ausgangsleitungen unzugeordnet geblieben sind, bis keine unzugeordneten bevorzugten Ausgangsleitungen übrigbleiben oder bis jedes Verbindungselement ein zugeordnetes Paket aufweist (244, 246, 248).
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß es ferner folgende Schritte enthält: Zuordnen unzugeordneter Ausgangsleitungen zu zweiten Paketen, die in den voraussichtlich vollen Verbindungselementen gespeichert sind, nach der Identifizierung der voraussichtlich vollen Verbindungselemente, wobei jedes zugeordnete zweite Paket eine unzugeordnete Leitung als bevorzugte Ausgangsleitung (236) aufweist, und Identifizieren derjenigen Verbindungselemente, die nach der Übertragung der ausgewählten und der zweiten Pakete (234) voll bleiben würden.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt des Empfangens der Pakete in einem ersten Knotenpunkt gleichzeitig mit dem Aussenden zuvor zugeordneter Pakete durchgeführt wird, und daß der Schritt des Übertragens der zugeordneten Pakete gleichzeitig mit dem Schritt des Empfangens weiterer Pakete durchgeführt wird.
8. Verbindungsnetzwerk zum Übertragen von Benutzerpaketen mit mehreren Knotenpunkten (10), die jeweils über Eingangs- und Ausgangsleitungen (12) an mehrere weitere Knotenpunkte angeschlossen sind, wobei jedes Benutzerpaket einen Bestimmungsknotenpunkt aufweist, dadurch gekennzeichnet, daß jeder Knotenpunkt enthält: mehrere Paketspeicher-Verbindungselemente (34, 56, 58, 60), mehrere Eingangsleitungen (18, 20, 22, 24), die jeweils an die Verbindungselemente angeschlossen sind, wobei jedes Verbindungselement mehrere Paketspeicherpuffer (38, 40, 42, 44) aufweist, Mittel zum Speichern empfangener Pakete in den Paketspeicherpuffern, Mittel (48) zum Abtasten des Bestimmungsknotenpunkts jedes gespeicherten Pakets, Mittel (48) zum Bestimmen einer bevorzugten Ausgangsleitung für jedes gespeicherte Paket oder gewisser gespeicherter Pakete, wobei die bevorzugte Ausgangsleitung an einen Pfad angeschlossen ist, der die kürzestes Knotenpunktlaufstrecke zu dem Bestimmungsknotenpunkt des gespeicherten Pakets aufweist, und Mittel (48) für jedes Verbindungselement mit wenigstens einem nichtleeren Puffer zum Auswählen eines Pakets mit der kürzesten Knotenpunktlaufstrecke aller in dem Verbindungselement gespeicherten Pakete, Mittel (48) zum Zuordnen der ausgewählten Pakete in der Reihenfolge zunehmender Knotenpunktlaufstrecken zu ihren bevorzugten Ausgangsleitungen, wenn die bevorzugte Ausgangsleitung für ein erstes Paket nicht bereits einem weiteren ersten Paket zugeordnet worden ist, und Mittel (122) zum Übertragen wenigstens eines ausgewählten Pakets der gewissen gespeicherten Pakete über ihre bevorzugte Ausgangsleitung.
9. Netzwerk nach Anspruch 8, ferner gekennzeichnet durch Mittel (48) zum Zuordnen gespeicherter Pakete zu ihren jeweils bevorzugten Ausgangsleitungen, wobei diese Mittel Pakete für die Zuordnung in der Reihenfolge zunehmender Knotenpunktlaufstrecken auswählen.
10. Netzwerk nach Anspruch 9, dadurch gekennzeichnet, daß die Zuordnungsmittel einer Ausgangsleitung jeweils nur ein Paket zuordnen.
11. Netzwerk nach Anspruch 9, dadurch gekennzeichnet, daß die Abtastmittel, die Bestimmungsmittel und die Zuordnungsmittel Prozessormittel (58) aufweisen, die Speichermittel (116) zum Speichern einer Gruppe von Paketleitregeln enthalten.
12. Netzwerk nach Anspruch 11, dadurch gekennzeichnet, daß die Leitregeln nach Auswahl von Benutzerpaketen für die Übertragung entsprechend ihren Knotenpunktlaufstrecken und der Verfügbarkeit bevorzugter Ausgangsleitungen dazu benutzt werden, Pakete für die Übertragung auf übriggebliebenen verfügbaren Ausgangsleitungen abhängig davon auszuwählen, ob jedes der Übertragungselemente voraussichtlich wenigstens einen leeren Paketspeicherpuffer aufweist, wobei die Leitregeln vorzugsweise ein oder mehrere Speicherpakete innerhalb voraussichtlich nichtleerer Verbindungselemente für die Übertragung auf den übriggebliebenen verfügbaren Ausgangsleitungen auswählen.
13. Netzwerk nach Anspruch 12, dadurch gekennzeichnet, daß die Speichermittel ferner eine Nachschlagetabelle enthalten, die die Knotenpunktlaufstrecke für jeden Knotenpunkt gemessen von jeder Ausgangsleitung aus angibt, daß die Leitregeln in den Puffern gespeicherte Benutzerpakete in mehreren Schritten einschließlich eines ersten Schritts und eines zweiten Schritts zuordnen, daß die Leitregeln in dem ersten Schritt für jedes Verbindungselement, in dem ein oder mehrere Benutzerpakete gespeichert sind, eines der Benutzerpakete auswählen, das die kürzeste Knotenpunktlaufstrecke aufweist, wobei diese Pakete eine erste Gruppe von Paketen (214) bilden, daß die Leitregeln ferner in dem ersten Schritt für jedes Paket in einem ersten Verbindungselement in der Reihenfolge zunehmender Knotenpunktlaufstrecken eine bevorzugte Ausgangsleitung zuordnen, wenn diese Ausgangsleitung nicht bereits einem Paket in der ersten Gruppe (220, 222) zugeordnet worden ist, und daß die Prozessormittel in dem zweiten Schritt jedes Verbindungselement untersuchen, um festzustellen, ob alle Puffer in jedem Verbindungselement voll sind (234), wobei die Leitregeln ein Paket aus einem vollen Verbindungselement einer verfügbaren Ausgangsleitung zuordnen, bis keine vollen Verbindungselemente mehr vorhanden sind oder bis alle Ausgangsleitungen Paketen (236-250) zugeordnet worden sind.
14. Netzwerk nach Anspruch 13, dadurch gekennzeichnet, daß die Nachschlagetabellen der Knotenpunkte am Anfang der Operation initialisiert werden, wobei jeder Knotenpunkt seine Nachschlagetabelle auf der Grundlage empfangener Streckenpakete generiert, die ihren Ursprung bei jedem anderen Knotenpunkt in dem Netzwerk haben, wobei jedes Streckenpaket eine den Ursprungsknotenpunkt identifizierende Knotenpunktkennung und eine Knotenpunkt-Streckenzahl enthalten, die das Streckenpaket zwischen seinem Ursprungsknotenpunkt und dem Empfangsknotenpunkt (334-360) durchlaufen hat.
15. Netzwerk nach Anspruch 14, dadurch gekennzeichnet, daß jeder Knotenpunkt während der Initialisierung der Nachschlagetabellen mehrere der Streckenpakete erzeugt, von denen jedes ursprünglich die Knotenpunkt-Streckenzahl Null hat, wobei jeder Knotenpunkt ein Streckenpaket auf jeder Ausgangsleitung zu angeschlossenen Knotenpunkten (134-138) aussendet, daß jeder Knotenpunkt Streckenpakete auf seinen Eingangsleitungen empfängt, wobei jede Eingangsleitung mit einer Ausgangsleitung gepaart ist und das Paar die gleichen Knotenpunkte (140) verbindet, daß die Streckenzahl jedes empfangenen Streckenpakets von dem empfangenden Knotenpunkt (148) um Eins erhöht wird, daß der empfangende Knotenpunkt das Streckenpaket verwirft, wenn die erhöhte Streckenzahl des Pakets nicht niedriger als der Eintrag ist, wo der Eintrag von Null verschieden ist (154, 146), und daß der empfangende Knoten dann, wenn die erhöhte Abstandszahl kleiner als der Eintrag ist oder der Eintrag Null ist, den Eintrag auf die Abstandszahl stellt, wobei der empfangende Knotenpunkt dann das Abstandspaket reproduziert und an allen Ausgangsleitungen zu benachbarten Knotenpunkten (154, 152, 164) zurücküberträgt.
16. Netzwerk nach Anspruch 15, dadurch gekennzeichnet, daß jeder Knotenpunkt die Fähigkeit hat, die Unfähigkeit eines angeschlossenen Knotenpunkts festzustellen, ein von dem feststellenden Knotenpunkt zu dem angeschlossenen Knotenpunkt übertragenes Paket zu empfangen, daß der feststellende Knotenpunkt seine Nachschlagetabelle als Reaktion auf das Feststellen dieser Unfähigkeit löscht (260), daß der feststellende Knotenpunkt auf jeder seiner Ausgangsleitungen ein Fehlerpaket zu angeschlossenen Knotenpunkten in Abhängigkeit von dieser Unfähigkeit (264) überträgt, daß angeschlossene Knotenpunkte ihre Nachschlagetabellen löschen und ebenfalls die Fehlerpakete zurückübertragen, bis alle Knotenpunkte des Netzwerks ihre Nachschlagetabellen gelöscht haben, und daß jeder Knotenpunkt seine gelöschte Nachschlagetabelle erneut in einer Weise erzeugt, die der ursprünglichen Generierung der Nachschlagetabelle ähnlich ist.
17. Netzwerk nach Anspruch 13, dadurch gekennzeichnet, daß jedes Verbindungselement an eine interne Ausgangsleitung (54, 110, 112, 114) angeschlossen ist, wobei die internen Ausgangsleitungen jeweils an eine Koordinatenschaltereinheit (122) angeschlossen sind, die mehrere externe Ausgangsleitungen (26, 28, 30, 32) abschließt, und daß die Prozessormittel (48) bis zu ein Paket, das in einem Verbindungselement gespeichert ist, für die Übertragung zu dem Koordinatenschaltermittel auf der internen Ausgangsleitung des Verbindungselements auswählen, wobei die Prozessormittel die Koordinatenschaltereinheit so steuern, daß das ausgewählte Paket zu einer externen Ausgangsleitung übertragen wird.
18. Netzwerk nach Anspruch 17, dadurch gekennzeichnet, daß die externen Ausgangsleitungen mehrere Ausgangsleitungen (26, 28, 30, 32) enthalten, die an weitere Knotenpunkte (10) und an eine lokale Ausgangsleitung (128) zu einer lokalen Geräteschnittstelle (126) angeschlossen sind, daß die Prozessormittel (48) die Koordinatenschaltereinheit (122) so steuern, daß bis zu ein Benutzerpaket, das in einem Verbindungselement gespeichert ist, auf die lokale Ausgangsleitung übertragen wird, wobei das Paket einen Bestimmungsknotenpunkt aufweist, der gleich dem derzeit vorliegenden Ort des Pakets ist, und daß die Verbindungselemente in ausgewählter Weise auch so angeschlossen werden, daß sie einen lokalen Paketeingangspfad aus der Geräteschnittstelle empfangen, wobei die Prozessormittel einen Puffer für den Empfang und die Speicherung eines lokalen Pakets auswählen.
19. Netzwerk nach Anspruch 17, dadurch gekennzeichnet, daß jedes Verbindungselement einen Demultiplexer (36) enthält, der einen der Puffer für den Empfang eines Pakets als Reaktion auf einen Befehl aus den Prozessormitteln auswählt, wobei an den Eingang des Demultiplexers eine der Eingangsleitungen angeschlossen ist, daß jedes Verbindungselement ferner einen Multiplexer (46) enthält, der einen der Puffer für die Übertragung eines in dem Puffer gespeicherten Pakets zu der Koordinatenschaltereinheit als Reaktion auf einen Befehl aus den Mikroprozessormitteln auswählt, wobei der Multiplexer einen an eine interne Ausgangsleitung angeschlossenen Ausgangsanschluß aufweist, und daß die Prozessormittel (48) mit jedem der Puffer so verbunden sind, daß sie Daten aus dem Puffer lesen und in den Puffer schreiben können.
20. Netzwerk nach einem der Ansprüche 8 bis 19, dadurch gekennzeichnet, daß das Netzwerk ein Hypertoroid-Netzwerk ist.
21. Netzwerk nach Anspruch 20, dadurch gekennzeichnet, daß das Hypertoroid-Netzwerk in einer Zweifach-Ring-Anordnung organisiert ist.
22. Netzwerk nach Anspruch 20, dadurch gekennzeichnet, daß das Hypertoroid-Netzwerk in einer Dreifach-Ring-Anordnung organisiert ist.
DE8686303777T 1985-06-13 1986-05-19 Verfahren und anordnung zur leitweglenkung von paketen in einem vielfachknotenrechnerverbindungsnetzwerk. Expired - Lifetime DE3686208T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/744,583 US4742511A (en) 1985-06-13 1985-06-13 Method and apparatus for routing packets in a multinode computer interconnect network

Publications (2)

Publication Number Publication Date
DE3686208D1 DE3686208D1 (de) 1992-09-03
DE3686208T2 true DE3686208T2 (de) 1992-12-17

Family

ID=24993246

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686303777T Expired - Lifetime DE3686208T2 (de) 1985-06-13 1986-05-19 Verfahren und anordnung zur leitweglenkung von paketen in einem vielfachknotenrechnerverbindungsnetzwerk.

Country Status (4)

Country Link
US (1) US4742511A (de)
EP (1) EP0206512B1 (de)
JP (1) JP2601456B2 (de)
DE (1) DE3686208T2 (de)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797882A (en) * 1985-10-02 1989-01-10 American Telephone And Telegraph Company, At&T Bell Laboratories Mesh-based switching network
NL8600218A (nl) * 1986-01-30 1987-08-17 Philips Nv Netwerk van dataverwerkingsstations.
DE3614062A1 (de) * 1986-04-23 1987-10-29 Siemens Ag Verfahren zur flusssteuerung von daten innerhalb eines vermaschten datennetzes
US4864558A (en) * 1986-11-29 1989-09-05 Nippon Telegraph And Telephone Corporation Self-routing switch
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US5031093A (en) * 1986-12-22 1991-07-09 Nec Corporation System for establishing route by selecting minimum of time-independent link parameters of incremental values
JPH088572B2 (ja) * 1987-03-09 1996-01-29 株式会社日立製作所 通信システムにおけるノード装置
US4835673A (en) * 1987-04-27 1989-05-30 Ncr Corporation Method and apparatus for sharing resources among multiple processing systems
JP2954220B2 (ja) * 1987-07-27 1999-09-27 株式会社日立製作所 並列計算機のためのデータ転送ネットワーク
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
GB8802533D0 (en) * 1988-02-04 1988-03-02 Plessey Co Plc Data packet switching
WO1989007298A1 (en) * 1988-02-04 1989-08-10 The City University Improvements in or relating to data handling arrays
FR2627878A1 (fr) * 1988-02-29 1989-09-01 Commissariat Energie Atomique Dispositif de traitement numerique de signaux
US5105424A (en) * 1988-06-02 1992-04-14 California Institute Of Technology Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
CA1323447C (en) * 1988-06-20 1993-10-19 United States Of America (Government Of The) United States Department Of Energy Interconnection networks
US4975909A (en) * 1988-10-14 1990-12-04 Compunetics, Inc. Broadcast network
US5115495A (en) * 1988-10-18 1992-05-19 The Mitre Corporation Communications network system using full-juncture and partial-juncture station status information for alternate-path distance-vector routing
US5455865A (en) * 1989-05-09 1995-10-03 Digital Equipment Corporation Robust packet routing over a distributed network containing malicious failures
US5175765A (en) * 1989-05-09 1992-12-29 Digital Equipment Corporation Robust data broadcast over a distributed network with malicious failures
US5086428A (en) * 1989-06-09 1992-02-04 Digital Equipment Corporation Reliable broadcast of information in a wide area network
US5095480A (en) * 1989-06-16 1992-03-10 Fenner Peter R Message routing system for shared communication media networks
US5860136A (en) 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
US5490258A (en) * 1991-07-29 1996-02-06 Fenner; Peter R. Associative memory for very large key spaces
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
CA2011399C (en) * 1989-06-22 1998-05-19 Lawrence C. Stewart Routing apparatus and method for high-speed mesh connected local area network
GB8915135D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
GB8915137D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
US5422881A (en) * 1989-06-30 1995-06-06 Inmos Limited Message encoding
DE69029239T2 (de) * 1989-09-18 1997-03-27 Fujitsu Ltd Übertragungsteuerungssystem zwischen Parallelrechnern
US5128926A (en) * 1990-03-21 1992-07-07 Digital Equipment Corporation Updating link state information in networks
DE4010146A1 (de) * 1990-03-29 1991-10-02 Siemens Ag Multiplexer fuer paketvermittlungsanlagen
DE69129856T2 (de) * 1990-08-31 1999-03-18 Bell Communications Research, Inc., Livingston, N.J. Selbstheilendes, logische ringstrukturen gebrauchendes, maschennetzwerk
CA2050559A1 (en) * 1990-10-24 1992-04-25 John D. S. Babcock Data communication network and method of operation
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5289467A (en) * 1990-11-27 1994-02-22 At&T Bell Laboratories Manhattan street network with loop architecture
GB9027186D0 (en) * 1990-12-14 1991-02-06 Int Computers Ltd Data processing network
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5151900A (en) * 1991-06-14 1992-09-29 Washington Research Foundation Chaos router system
US5303347A (en) * 1991-12-27 1994-04-12 Digital Equipment Corporation Attribute based multiple data structures in host for network received traffic
US5243596A (en) * 1992-03-18 1993-09-07 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
US5369745A (en) * 1992-03-30 1994-11-29 The United States Of America As Represented By The United States Department Of Energy Eliminating livelock by assigning the same priority state to each message that is inputted into a flushable routing system during N time intervals
US6192413B1 (en) * 1992-07-30 2001-02-20 International Business Machines Corporation Method and system for process queue communications routing
US5444701A (en) * 1992-10-29 1995-08-22 International Business Machines Corporation Method of packet routing in torus networks with two buffers per edge
US5481673A (en) * 1993-08-20 1996-01-02 Bell Communications Research Inc. Method for cluster routing in direct link using two associated routing tables at node or signaling transfer point
US5546596A (en) * 1993-08-24 1996-08-13 Intel Corporation Method and apparatus for integrated local and express routing in a multiprocessor
GB9400057D0 (en) * 1994-01-05 1994-03-02 Plessey Telecomm Telecommunications system
US5835005A (en) * 1994-07-13 1998-11-10 Omron Corporation Power-line data transmission method and system utilizing relay stations
US5602838A (en) * 1994-12-21 1997-02-11 Lucent Technologies Inc. Global multi-satellite network
US5606551A (en) * 1994-12-21 1997-02-25 Lucent Technologies Inc. Bidirectional mesh network
US5506838A (en) * 1994-12-29 1996-04-09 Emc Corporation Packet propagation and dynamic route discovery apparatus and techniques
US5801690A (en) * 1995-03-24 1998-09-01 Motorola, Inc. Method for managing termination of a multi-processing software application
JP3442192B2 (ja) * 1995-05-31 2003-09-02 シャープ株式会社 データ駆動型情報処理装置
JPH09219702A (ja) * 1996-02-14 1997-08-19 Nec Corp メッシュ構成の空き経路の検索方法
US5790524A (en) * 1996-05-13 1998-08-04 Lockheed Martin Corporation Detection of lost packets in switching networks used with scalable coherent interfaces
US5787081A (en) * 1996-05-13 1998-07-28 Lockheed Martin Corporation Allocation of node transmissions in switching networks used with scalable coherent interfaces
US5878227A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. System for performing deadlock free message transfer in cyclic multi-hop digital computer network using a number of buffers based on predetermined diameter
US6456596B2 (en) 1996-07-23 2002-09-24 Marconi Communications Limited Synchronous transmission systems
US6252856B1 (en) * 1996-12-03 2001-06-26 Nortel Networks Limited Method and apparatus for minimizing calculations required to construct multicast trees
US5928332A (en) * 1996-12-06 1999-07-27 Intel Corporation Communication network with reversible source routing that includes reduced header information being calculated in accordance with an equation
US7013354B1 (en) * 1998-10-05 2006-03-14 Canon Kabushiki Kaisha Channel protocol for IEEE 1394 data transmission
US6791939B1 (en) * 1999-06-02 2004-09-14 Sun Microsystems, Inc. Dynamic generation of deadlock-free routings
US6519697B1 (en) 1999-11-15 2003-02-11 Ncr Corporation Method and apparatus for coordinating the configuration of massively parallel systems
US6412002B1 (en) 1999-11-15 2002-06-25 Ncr Corporation Method and apparatus for selecting nodes in configuring massively parallel systems
US6418526B1 (en) 1999-11-15 2002-07-09 Ncr Corporation Method and apparatus for synchronizing nodes in massively parallel systems
US6745240B1 (en) 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
AU1934501A (en) * 1999-11-30 2001-06-12 Future Tv Technologies, Ltd. Method and apparatus for transmission of source-routed data
US6732147B1 (en) * 2000-07-31 2004-05-04 The Boeing Company Leaving a broadcast channel
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
EP1573694A2 (de) * 2002-12-10 2005-09-14 Infineon Technologies AG Flächen-verkleidungsmodul, flächen-verkleidungsmodul-anordnung und verfahren zum bestimmen eines abstands von flächen-verkleidungsmodulen der flächen-verkleidungsmodul-anordnung zu mindestens einer referenzposition, prozessor-anordnung, textilgewebestruktur und flächen-verkleidungstruktur
US7574581B2 (en) * 2003-04-28 2009-08-11 International Business Machines Corporation Cross-chip communication mechanism in distributed node topology to access free-running scan registers in clock-controlled components
US7251748B2 (en) * 2003-09-12 2007-07-31 Sun Microsystems, Inc. System and method for determining a global ordering of events using timestamps
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US20060110952A1 (en) * 2004-11-22 2006-05-25 Borkar Shekhar Y Systems for interchip communication
US8170019B2 (en) * 2004-11-30 2012-05-01 Broadcom Corporation CPU transmission of unmodified packets
US7467204B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Method for providing low-level hardware access to in-band and out-of-band firmware
US7565657B1 (en) * 2005-04-19 2009-07-21 Sandia Corporation Allocating application to group of consecutive processors in fault-tolerant deadlock-free routing path defined by routers obeying same rules for path selection
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7965725B2 (en) * 2005-05-31 2011-06-21 Stmicroelectronics, Inc. Hyper-ring-on-chip (HyRoC) architecture
US20070140244A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Optimal algorithm for large message broadcast
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) * 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US20080270751A1 (en) * 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
US8274987B2 (en) * 2010-03-22 2012-09-25 International Business Machines Corporation Contention free pipelined broadcasting within a constant bisection bandwidth network topology
US10938751B2 (en) 2018-04-18 2021-03-02 Hewlett Packard Enterprise Development Lp Hierarchical switching devices
US10757038B2 (en) 2018-07-06 2020-08-25 Hewlett Packard Enterprise Development Lp Reservation-based switching devices
US11855913B2 (en) * 2018-10-31 2023-12-26 Hewlett Packard Enterprise Development Lp Hierarchical switching device with deadlockable storage and storage partitions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1108325B (it) * 1978-04-10 1985-12-09 Cselt Centro Studi Lab Telecom Procedimento e dispositivo di in stradamento per una rete di comunicazione a commutazione di pacchetto
JPS56129456A (en) * 1980-03-14 1981-10-09 Hitachi Ltd Path control method
US4399531A (en) * 1980-09-29 1983-08-16 Rockwell International Corporation Distributed digital data communications network
US4466060A (en) * 1982-02-11 1984-08-14 At&T Bell Telephone Laboratories, Incorporated Message routing in a computer network
JPS6010941A (ja) * 1983-06-30 1985-01-21 Fujitsu Ltd ネツトワ−ク情報の矛盾検出方式
US4550397A (en) * 1983-12-16 1985-10-29 At&T Bell Laboratories Alternate paths in a self-routing packet switching network
US4672374A (en) * 1985-06-20 1987-06-09 Firecom, Inc. System for bilateral communication of a command station with remotely located sensors and actuators

Also Published As

Publication number Publication date
EP0206512A3 (en) 1988-11-09
EP0206512B1 (de) 1992-07-29
DE3686208D1 (de) 1992-09-03
JP2601456B2 (ja) 1997-04-16
US4742511A (en) 1988-05-03
EP0206512A2 (de) 1986-12-30
JPS61289746A (ja) 1986-12-19

Similar Documents

Publication Publication Date Title
DE3686208T2 (de) Verfahren und anordnung zur leitweglenkung von paketen in einem vielfachknotenrechnerverbindungsnetzwerk.
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE3788577T2 (de) Paketvermitteltes Fernmeldenetz mit parallelen virtuellen Verbindungen zur Umweglenkung von Nachrichtenpaketen.
DE69130881T2 (de) Massiv paralleler Rechner mit auf Schlangen basiertem Nachrichtenablieferungssystem
DE68921312T2 (de) Aufbau für selbstleitweglenkendes Paketvermittlungsnetz.
DE69514550T2 (de) Adaptiver leitweglenkungsmechanismus für torusverbindungsnetzwerk
DE69029766T2 (de) Adaptive Leitweglenkung in Netzwerken
DE69423101T2 (de) Virtuelle mehrfachsende-durchschaltvermittlung unter verwendung von zellenrecycling
DE3856469T2 (de) Selbstsuchendes vermittlungssystem
DE69331182T2 (de) ATM-Vermittlungsstelle und ATM-Vermittlungselement mit Leitweglenkungslogik
DE69720417T2 (de) Ringförmiges atm-netz
DE69029763T2 (de) Weglenkung von Nachrichtenpaketen
DE3880478T2 (de) Geschichtetes netz.
DE69014992T2 (de) Gleichlaufende Mehrstufennetzwerk-Kontrollmethode.
DE3685599T2 (de) Vermittlungssystem fuer datenuebertragung.
DE60030397T2 (de) Belastungsverteilung in einem Netzwerk
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE69207822T2 (de) Weglenkung in Kommunikationsnetzwerken
DE69230217T2 (de) ATM-Vermittlungsanordnung
DE60216001T2 (de) Automatischer Lastausgleich in Vermittlungsknoten
DE69124645T2 (de) Verfahren und Schaltung zur Verkehrsformung
DE69837872T2 (de) Vorrichtung und Verfahren zur Verbindungsvermittlung und -steuerung
DE69318928T2 (de) Verfahren zur Leitweglenkung von elektronischen Nachrichten
DE69023883T2 (de) Umkehrkreuzungsschalter mit verteilter Steuerung.
DE69033016T2 (de) Lokales Maschennetzwerk hoher Geschwindigkeit

Legal Events

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