DE69735740T2 - Asynchrone paketvermittlung - Google Patents

Asynchrone paketvermittlung Download PDF

Info

Publication number
DE69735740T2
DE69735740T2 DE69735740T DE69735740T DE69735740T2 DE 69735740 T2 DE69735740 T2 DE 69735740T2 DE 69735740 T DE69735740 T DE 69735740T DE 69735740 T DE69735740 T DE 69735740T DE 69735740 T2 DE69735740 T2 DE 69735740T2
Authority
DE
Germany
Prior art keywords
frame
packet
shifter
node
selected route
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
DE69735740T
Other languages
English (en)
Other versions
DE69735740D1 (de
Inventor
Martin Thomas Palo Alto WICKI
J. Patrick Redmond HELLAND
Takeshi San Jose SHIMIZU
Wolf-Dietrich La Honda WEBER
W. Winfried San Jose WILCKE
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69735740D1 publication Critical patent/DE69735740D1/de
Application granted granted Critical
Publication of DE69735740T2 publication Critical patent/DE69735740T2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing

Description

  • Querverweise auf verwandte Anmeldungen
  • Der Gegenstand dieser Anmeldung ist verwandt mit dem Gegenstand der folgenden Anmeldungen:
    Anmeldungsaktenzeichen 08/605,676, US 5,740,346 , mit dem Titel "SYSTEM AND METHOD FOR DYNAMIC NETWORK TOPOLOGY EXPLORATION", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Patrick J. Helland, Wolf-Dietrich Weber und Winfried W. Wilcke;
    Anmeldungsaktenzeichen 08/603,926, US 5,838,648 , mit dem Titel "LOW LATENCY, HIGH CLOCK FREQUENCY PLESIOASYNCHRONOUS PACKET-BASED CROSSBAR SWITCHING CHIP SYSTEM AND METHOD", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Jeffrey D. Larson, Albert Mu und Raghu Sastry;
    Anmeldungsaktenzeichen 08/603,880, US 5,892,766 , mit dem Titel "METHOD AND APPARATUS FOR COORDINATING ACCESS TO AN OUTPUT OF A ROUTING DEVICE IN A PACKET SWITCHING NETWORK", eingereicht am 22. Februar 1996 durch Jeffrey D. Larson, Albert Mu und Thomas M. Wicki;
    Anmeldungsaktenzeichen 08/604,920, US 5,991,296 , mit dem Titel "CROSSBAR SWITCH AND METHOD WITH REDUCED VOLTAGE SWING AND NO INTERNAL BLOCKING DATA PATH", eingereicht am 22. Februar 1996 durch Albert Mu und Jeffrey D. Larson;
    Anmeldungsaktenzeichen 08/603,913, US 6,003,064 , mit dem Titel "A FLOW CONTROL PROTOCOL SYSTEM AND METHOD", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Patrick J. Helland, Jeffrey D. Larson, Albert Mu, Raghu Sastry und Richard L. Schober, Jr.;
    Anmeldungsaktenzeichen 08/603,911, US 5,768,300 , mit dem Titel "INTERCONNECT FAULT DETECTION AND LOCALIZATION METHOD AND APPARATUS", eingereicht am 22. Februar 1996 durch Raghu Sastry, Jeffrey D. Larson, Albert Mu, John R. Slice, Richard L. Schober, Jr. und Thomas M. Wicki;
    Anmeldungsaktenzeichen 08/603,923, US 5,931,967 , mit dem Titel "METHOD AND APPARATUS FOR DETECTION OF ERRORS IN MULTIPLE-WORD COMMUNICATIONS", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Patrick J. Helland und Takeshi Shimizu;
    Anmeldungsaktenzeichen 08/603,882, US 5,615,161 , mit dem Titel "CLOCKED SENSE AMPLIFIER WITH POSITIVE SOURCE FEEDBACK", eingereicht am 22. Februar 1996 durch Albert Mu.
  • Gebiet der Erfindung
  • Die Erfindung betrifft die Datenübertragung auf einem Netz und, im besonderen, die Datenübertragung durch asynchrone Paketvermittlung in einer Multiprozessorumgebung.
  • Hintergrund der Erfindung
  • Ein Multiprozessorsystem enthält mehrere Prozessoren, die mit einem oder mehreren Speichern verbunden sind. Die Zwischenverbindung kann in einer von mehreren Formen erfolgen, wie beispielsweise durch einen Gemeinschaftsbus, eine Kreuzschiene oder dergleichen. Die Zwischenverbindung muß den schnellen Zugriff (niedrige Latenz) und die hohe Bandbreite unterstützen. Existierende Zwischenverbindungen leiden entweder unter einer begrenzten Bandbreite (wie bei Gemeinschaftsbus-Zwischenverbindungen), Skalierbarkeitsproblemen (wie bei Kreuzschienen-Zwischenverbindungen) oder unter einer übermäßigen Latenz (wie in allgemeinen Netzen).
  • Es ist wünschenswert, ein Multiprozessorsystem zu haben, das einen Zugriff mit niedriger Latenz und hoher Bandbreite auf alle Speicher gestattet. Zusätzlich sollte die verfügbare Bandbreite zunehmen (skaliert werden), wenn zusätzliche Prozessoren/Speicher hinzugefügt werden.
  • EP 0 282 198 offenbart ein Kommunikationssystem mit einer Vielzahl von Netzknoten, die durch Übertragungsglieder verbunden sind. Zwischen den Eintrittsknoten und den Austrittsknoten des bekannten Systems werden Signale transportiert, die einen Kopfabschnitt und einen Meldungsabschnitt umfassen. Der Kopfabschnitt umfaßt eine Ablauffolge von Knotenausgangsadressen, die in der Reihenfolge auftreten, in der das Signal den Knoten begegnet, wenn es das Netz durchläuft. In jedem Knoten bestimmt die führende Knotenausgangsadresse den Ausgang, durch den das Signal von jenem Knoten heraustreten wird, um den nächsten Knoten in der Ablauffolge zu erreichen. Falls das Signal sein Ziel erreicht hat, wird ein Quittungstransaktionssignal erzeugt und an den Eintrittsknoten gesendet.
  • Eine Aufgabe der vorliegenden Erfindung ist das Vorsehen eines verbesserten Multiprozessorsystems, wodurch die Sicherheit der Datenübertragung erhöht wird.
  • Zusammenfassung der Erfindung
  • Bei der vorliegenden Erfindung umfaßt ein Multiknotensystem eine Vielzahl von Knoten, die miteinander gekoppelt sind. Die Knoten kommunizieren miteinander durch Punkt-zu-Punkt-Pakete. Jeder Knoten enthält einen Paketverschieber und einen Rahmenverschieber. Der Paketverschieber liefert ein Paket an den Rahmenverschieber, liefert eine Quittung als Antwort auf den Empfang eines Paketes von einem der anderen Paketverschieber und sendet das Paket erneut an den Rahmenverschieber, falls von einem der anderen Paketverschieber in einem vorbestimmten Zeitraum keine Quittung empfangen wird. Jedes Paket gibt einen Zielknoten an. Der Rahmenverschieber konvertiert das Paket in einen Rahmen und erzeugt eine Route bis zum Zielknoten. Falls der Rahmen defekt ist, wird es ausgesondert, und der Paketverschieber sendet das Paket schließlich erneut. Der Rahmenverschieber sieht eine quellengesteuerte Verkehrslenkung (Routing) und vielfältige Routen zu Knoten vor. Die Zwischenverbindung kann eine flexible Topologie haben. Pakete haben eine begrenzte, endliche Lebensdauer.
  • Der Rahmenverschieber selektiert eine vorselektierte Route zu einem Zielknoten, erzeugt einen Rahmen, der die vorselektierte Route enthält, und liefert den Rahmen an die Vielzahl von Routern zur Kommunikation mit dem Zielknoten. Die Route enthält eine Ablauffolge von Routenschritten durch einige von der Vielzahl von Routern, um den Rahmen zwischen ihnen zu übertragen. Der Rahmenverschieber enthält eine Routing-Tabelle zum Speichern einer Vielzahl von vorselektierten Routen bis zum Zielknoten und enthält einen Controller zum Selektieren von einer von der Vielzahl der vorselektierten Routen zur Einbeziehung in den Rahmen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, das ein Multiprozessorsystem gemäß der vorliegenden Erfindung zeigt.
  • 2 ist ein Blockdiagramm, das Protokollschichten des Multiprozessorsystems von 1 zeigt.
  • 3 ist eine Abbildung, die einen Rahmen und ein Paket zeigt.
  • 4 ist ein Blockdiagramm, das den schnellen Rahmenverschieber zeigt.
  • 5 ist ein Blockdiagramm, das die Selektion einer Route eines Rahmens zeigt.
  • 6 ist ein Blockdiagramm, das die Abwandlung von Routing-Informationen in dem Rahmenkopf zeigt, während der Rahmen durch die Zwischenverbindung übertragen wird.
  • 7 ist ein Diagramm, das ein halbes Maschenglied zeigt.
  • 8 ist ein Blockdiagramm, das verschiedene Taktdomänen für ein Paar von Empfängern und Sendern eines Maschengliedes zeigt.
  • 9 ist ein Blockdiagramm, das eine fehlertolerante Zwischenverbindung in einer zweiten Ausführungsform der vorliegenden Erfindung zeigt.
  • 10 ist ein Blockdiagramm, das ein virtuelles Durchschalte-Routing zeigt.
  • 11 ist ein Blockdiagramm, das einen zuverlässigen Paketverschieber des Multiprozessorsystems von 1 zeigt.
  • 12a ist ein Flußdiagramm, das die Operation des Sendens von Paketen durch den zuverlässigen Paketverschieber zeigt.
  • 12b ist ein Flußdiagramm, das die Operation des Verarbeitens von Quittungen und des erneuten Sendens von Paketen durch den zuverlässigen Paketverschieber zeigt.
  • 13 ist ein Flußdiagramm, das die Operation zum Empfangen von Paketen durch den zuverlässigen Paketverschieber zeigt.
  • 14 ist ein Flußdiagramm, das die Operation zum Überprüfen des Puffers von unerledigten Paketen zeigt.
  • Eingehende Beschreibung der bevorzugten Ausführungsformen
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun unter Bezugnahme auf die Figuren beschrieben, in denen gleiche Bezugszeichen identische oder funktionell ähnliche Elemente bezeichnen. Ferner entsprechen Zahlenstellen, die nicht die zwei niedrigstwertigen Stellen von jeder Bezugszahl sind, der Figur, in der die Bezugszahl zuerst verwendet wird.
  • Unter Bezugnahme auf 1 ist ein Blockdiagramm gezeigt, das ein Multiprozessorsystem 100 gemäß der vorlie genden Erfindung darstellt. Das Multiprozessorsystem 100 enthält eine Vielzahl von Prozessorknoten 102, die jeweils durch ein Maschenglied 120 mit einer Zwischenverbindung 104 gekoppelt sind. Jeder Prozessorknoten 102 enthält einen Prozessor 106, eine Kohärenzsteuereinheit 110 und einen lokalen Speicher 112. Die Kohärenzsteuereinheit 110 enthält einen zuverlässigen Paketverschieber (RPM) 114 und einen schnellen Rahmenverschieber (FFM) 116.
  • Der zuverlässige Paketverschieber 114 sieht eine zuverlässige End-zu-End-Datenkommunikation zwischen Prozessorknoten 102 vor. Der schnelle Rahmenverschieber 116 lenkt Daten von einem Quellenprozessorknoten 102 zu einem Zielprozessorknoten 102. Für jeden einzelnen Prozessorknoten 102 ist wenigstens eine Route zu jedem Zielprozessorknoten 102 in dem schnellen Rahmenverschieber 116 gespeichert. Ein Verfahren zum Bestimmen der Topologie der Zwischenverbindung 104 und von Fehlerbereichen darin ist beschrieben in US 5,740,346 mit dem Titel "SYSTEM AND METHOD FOR DYNAMIC NETWORK TOPOLOGY EXPLORATION", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Patrick J. Helland, Wolf-Dietrich Weber und Winfried W. Wilcke.
  • Auch andere Architekturen des Prozessorknotens 102 können verwendet werden. Zum Beispiel kann die Kohärenzsteuereinheit 110 mit einem Cache-Speicher gekoppelt sein, der mit dem Prozessor 106 gekoppelt ist.
  • Die Zwischenverbindung 104 enthält eine Vielzahl von Routern 118, die durch Maschenglieder 120 verbunden sind. Die Vielzahl von Prozessorknoten 102 ist mit den Routern 118 durch Maschenglieder 120 gekoppelt. Mit ein und demselben Router 118 können mehrere als ein Prozessorknoten 102 gekoppelt sein. Die Router 118 sind vorzugsweise Kreuzschienenschalter. Bei der hierin zu Erläuterungszwecken beschriebenen spezifischen Implementierung haben die Router 118 6 Ports. Natürlich braucht in einem System mit wenigen Prozessorknoten 102 die Zwischenverbindung 104 nur einen Router 118 zu enthalten und braucht in einem System mit zwei Prozessorknoten 102 kein Router 118 enthalten zu sein. Ein Beispiel für einen Router ist beschrieben in US 5,838,648 mit dem Titel "LOW LATENCY, HIGH CLOCK FREQUENCY PLESIOSYNCHRONOUS PACKET-BASED CROSSBAR SWITCHING CHIP SYSTEM AND METHOD", eingereicht am 22. Februar 1996 durch Thomas M. Wicki, Jeffrey D. Larson, Albert Mu und Raghu Sastry.
  • Die Zwischenverbindung 104 verwendet ein Protokoll auf Paketbasis, worin die gesamte Kommunikation direkt von Prozessorknoten 102 zu Prozessorknoten 102 enthalten ist. Die Zwischenverbindung 104 braucht keine Sammelsendung oder Rundsendung vorzusehen. Alle Daten, die übertragen werden, werden in Pakete parzelliert, die unten in Verbindung mit 3 beschrieben sind.
  • Das Multiprozessorsystem 100 ist ein Gemeinschaftsspeichersystem, das uneinheitliche Speicherzugriffszeiten vorsieht. Der Prozessor 106 kann auf einen anderen lokalen Speicher 112 zugreifen. Die Zugriffszeit auf den lokalen Speicher 112 eines ersten Prozessorknotens 102 ist kleiner als die Zugriffszeit auf den Speicher eines anderen Prozessorknotens 102. Durch das Schreiben von Software, die es gestattet, daß ein Prozessor 106 mehr Gebrauch von dem lokalen Speicher 112 macht, wird die Latenz verringert. Die Latenz des Netzes ist ein Maß für die Zeit, die benötigt wird, um einen anfragenden Prozessorknoten 102 mit den angeforderten Daten zu beliefern, gemessen ab der Zeit, zu der die Speicheranfrage gesendet wird. Mit anderen Worten, die Latenz gibt an, wie lange es dauert, bis Daten erhalten werden, nachdem sie angefordert worden sind.
  • Die Bandbreite der Verbindung zwischen der Kohärenzsteuereinheit 110 und dem lokalen Speicher 112 ist vorzugsweise der Bandbreite der Verbindung zwischen der Kohärenzsteuereinheit 110 und der Zwischenverbindung 104 im wesentlichen gleich. Die Bandbreite hängt sowohl von der Geschwindigkeit ab, mit der Daten empfangen oder geliefert werden können, als auch von der Breite des Weges.
  • Das Multiprozessorsystem 100 ist vorzugsweise ein verteiltes Speichersystem. Genauer gesagt: das System 100 hat eine Speicherarchitektur, die physikalisch verteilt ist, aber die lokalen Speicher 112 werden logisch gemeinsam genutzt. Zum Beispiel kann ein Prozessorknoten 102, z. B. der Knoten A, Zugriff auf einen Speicherort verlangen, den dieser Knoten 102 als lokal verarbeitet, aber genaugenommen ist er physikalisch tatsächlich in einem verschiedenen lokalen Speicher 112 angeordnet, der mit einem verschiedenen Prozessorknoten 102 wie z. B. dem Knoten B gekoppelt ist. Die Kohärenzsteuereinheit 110 des anfragenden Knotens oder Quellenknotens (Knoten A) identifiziert den Ort des Speichers, und die an jenem Ort gespeicherten Daten werden schnell herausgesucht.
  • Das Multiprozessorsystem 100 kann auch Eingangs-/Ausgangs-(E/A)-Knoten 103 enthalten, die kein Verarbeitungsvermögen haben. Der Klarheit halber ist nur ein E/A-Knoten 103 gezeigt. Solch ein Knoten 103 kann ein Buskonverter als Schnittstelle zu einem Bus sein, wie beispielsweise zu einem PCI-Bus oder einem S-Bus. Solche E/A-Knoten 103 können als Quellen- oder Zielknoten 102 fungieren, wie es hierin beschrieben ist. Daher kann hier in der Beschreibung des Übertragens und Verarbeitens von Daten, wenn ein Prozessorknoten 102 beschrieben wird, auch ein E/A-Knoten 103 verwendet werden.
  • Unter Bezugnahme auf 2 ist ein Blockdiagramm gezeigt, das die Protokollschichten der Prozessorknoten 102 und der Zwischenverbindung 104 darstellt. Die Protokollschichten enthalten eine Zwischenverbindungsdienstverwalter(interconnect service manager: ISM)-Schicht 202, eine Schicht des zuverlässigen Paketverschiebers (reliable packet mover: RPM) 204, eine Schicht des schnellen Rahmenverschiebers (fast frame mover: FFM) 206 und eine physikalische Schicht 208. Die Kohärenzsteuereinheit 110 bietet die Funktionen der Zwischenverbindungsdienstverwalterschicht 202, die durch Software steuerbar sind, die durch den Prozessor 106 ausgeführt wird, der Schicht des zuverlässigen Paketverschiebers 204, der Schicht des schnellen Rahmenverschiebers 206 und eines Abschnittes der physikalischen Schicht 208. Die Schichten gestatten eine effektivere Aufteilung der Funktionen des Systems 100 und eine unabhängige Entwicklung und Überprüfung von Abschnitten des Systems. Die Zwischenverbindungsdienstverwalterschicht 202 kommuniziert mit Punkt-zu-Punkt-Meldungen, um die Kohärenz zu sichern. Wenn die Zwischenverbindungsdienstverwalterschicht 202 eines ersten Prozessorknotens 202 Daten zu einem anderen Prozessorknoten 102 sendet oder Daten von diesem anfordert, sendet die Zwischenverbindungsdienstverwalterschicht 202 des ersten Prozessorknotens 102 Befehle zu dem zuverlässigen Paketverschieber 114, worin der zuverlässige Paketverschieber 114 über die Daten, die zu senden oder anzufordern sind, und über die Quelle oder das Ziel der Daten informiert wird.
  • In der Schicht des zuverlässigen Paketverschiebers 204 sendet der Quellenprozessorknoten 102 Daten an einen Zielprozessorknoten 102, wobei er nicht den Weg durch die Zwischenverbindung 104 bestimmt oder irgendwelche Informationen hinsichtlich des Weges verwendet. Die Schicht des zuverlässigen Paketverschiebers 204 sorgt für die zuverlässige Lieferung von Paketen 302 (siehe 3) zwischen den Prozessorknoten 102 unter Verwendung der Schicht des schnellen Rahmenverschiebers 206, um Pakete 302 zu übertragen. Die Schicht des zuverlässigen Paketverschiebers 204 bietet eine End-zu-End-Datenintegrität. In der Schicht des zuverlässigen Paketverschiebers 204 sendet der zuverlässige Paketverschieber 114 Daten, und er überwacht ein Quittungssignal, das angibt, daß die Daten empfangen wurden. Falls sie innerhalb einer Zeitablaufperiode nicht quittiert werden, sendet der zuverlässige Paketverschieber 114 die Daten erneut. Dies wird vorzugsweise durch Hardware und nicht durch Software implementiert. Daher sendet die Schicht des zuverlässigen Paketverschiebers 204 die Daten erneut, die während der Übertragung verlorengingen oder verdorben wurden. Die Schicht des zuverlässigen Paketverschiebers 204 unterdrückt duplizierte Pakete und ordnet Datenpakete um, die außer der Reihe empfangen werden. Die Schicht des zuverlässigen Paketverschiebers 204 sieht eine Flußsteuerung von Knoten zu Knoten vor, um ein Überlaufen eines Sendepaketpuffers 1106 (11) des Zielprozessorknotens 102 zu vermeiden. In der Schicht des zuverlässigen Paketverschiebers 204 erfolgt eine Kommunikation von Prozessorknoten 102 zu Prozessorknoten 102 und keine Gruppensendung oder Rundsendung. Falls ein Paket 302 an mehrere als einen Prozessorknoten 102 gesendet wird, sendet die Zwischenverbindungsdienstverwalterschicht 202 separate Kopien des Paketes 302 an jeden Zielprozessorknoten 102.
  • In der Schicht des schnellen Rahmenverschiebers 206 ist die Kommunikation eine Punkt-zu-Punkt-Kommunikation zwischen direkt verbundenen Elementen (z. B. Prozessorknoten 102 und Routern 118). Die Rahmen 300 (siehe 3) werden von einem Quellenprozessorknoten 102 über einen Router 118 in der Zwischenverbindung 104 zu anderen Routern 118 und dann zu einem Zielprozessorknoten 102 gesendet. Die Schicht des schnellen Rahmenverschiebers 206 sieht eine Flußsteuerung bei jedem Schritt zwischen Nachbarelementen (Router 118 und Prozessorknoten 102) vor. Die Schicht des schnellen Rahmenverschiebers 206 liefert auch die Route, um diese Schritte miteinander zu verbinden, wodurch Rahmen von einem Knoten zu einem anderen übertragen werden. Die Schicht des schnellen Rahmenverschiebers 206 führt eine einfache Integritätsprüfung nur an dem Abschnitt des Rahmens 300 aus, den sie verwendet, jedoch keine Fehlerkorrektur. Wenn ein Fehler auftritt, sondert die Schicht des schnellen Rahmenverschiebers 206 den Rahmen 300 aus, und zu einem späteren Zeitpunkt sendet der Absender die Daten erneut. Die Schicht des schnellen Rahmenverschiebers 206 sieht eine Maschengliedflußsteuerung vor, um ein Überlaufen der direkten Nachbarn zu vermeiden, die mit dem anderen Ende des Maschengliedes 120 verbunden sind. Die Schicht des schnellen Rahmenverschiebers 206 ist zugunsten einer niedrigen Latenz vereinfacht gestaltet, indem sie keine Fehlerdetektion bei jedem Rahmen 300 ausführt und schlechte Rahmen 300 fallen läßt.
  • Die physikalische Schicht 208 enthält die Verkabelung, die Verbinder und dergleichen der Zwischenverbindung 104 und die Schnittstelle zu den Prozessorknoten 102.
  • Unter Bezugnahme auf 3 ist ein Diagramm gezeigt, das einen Rahmen 300 und ein Paket 302 darstellt. Ein Rahmen 300 ist eine Einheit der Datenübertragung, die durch den schnellen Rahmenverschieber 116 verwendet wird. Der Rahmen 300 enthält einen Rahmenkopf 304 und ein Paket 302, welches ein Rahmenkörper ist. Der Rahmenkopf 304 enthält Routing-Informationen 318, Flußsteuerungsinformationen 320 und Prioritätsinformationen 322. Die Routing-Informationen 318 enthalten eine Ablauffolge der Router 118, die den Rahmen zu verarbeiten und das Routing desselben zu steuern haben. Die Flußsteuerungsinformationen 320 enthalten Informationen hinsichtlich der Kapazität der nächsten stromabwärtigen Router 118 oder Prozessorknoten 102 und ermöglichen das Steuern oder das Anhalten des Datenflusses. Die Prioritätsinformationen 322 enthalten eine Prioritätsstufe des Rahmens 300. Der Rahmenkopf 304 ist größenmäßig vorzugsweise ein 68-Bit-Wort (8½ Bytes). Der Rahmenkörper (Paket 302) umfaßt größenmäßig vorzugsweise 2 bis 18 (68-Bit-)Wörter.
  • Das Paket 302 enthält einen Paketkopf 306 und Paketdaten 308. Der Paketkopf 306 enthält Paketkopfdeskriptoren 310, eine Prioritätsquittungsanforderung 324 und einen Fehlerdetektionscode (EDC) 312. Der Paketkopf 306 umfaßt vorzugsweise zwei 68-Bit-Wörter, wobei jedes Wort 64 Bits (8 Bytes) von Daten und 4 Bits eines EDC enthält. Ein Paket 302 braucht keine Paketdaten 308 zu haben. Die Paketdaten 308 haben eine variable Länge, und zwar vorzugsweise 0 bis 128 Bytes von Daten (0 bis 16 Wörter). Ein Quittungspaket (unten beschrieben) braucht zum Beispiel nur einen Paketkopf 306 und den EDC 312 zu enthalten. Die Paketdaten 308 können Daten sein. Die Paketkopfdeskriptoren 310 enthalten Informationen, die den Zielprozessorknoten 102 angeben. Wie unten in Verbindung mit 12 beschrieben, fügt der zuverlässige Paketverschieber 114 den EDC 312 zu dem Paket 302 hinzu, wenn der zuverlässige Paketverschieber 114 das Paket 302 verarbeitet. Der EDC 312 umfaßt vorzugsweise ein Byte (8 Bits) für jeweils 16 Bytes der Paketdaten 308. Der EDC 312 wird als 4 Bits für jeweils 8 Bytes der Paketdaten 308 gespeichert, und geprüft wird mit 8 Bits pro 16 Bytes oder 2 Wörter. Die Prioritätsquittungsanforderung 324 ist eine Aufforderung an den Zielprozessorknoten 102, um eine sofortige Quittung zu senden, daß das Paket 302 empfangen worden ist.
  • Der zuverlässige Paketverschieber 114 erzeugt den Paketkopf 306, der die Laufnummer des Paketes 302 enthält. Die Laufnummer ist ein Identifikator und ein Indikator der Ordnung der Pakete 302, die von einem Quellenprozessorknoten 102 an einen Zielprozessorknoten 102 gesendet werden. Laufnummern werden für jedes Paar aus Quellen- und Zielknoten erzeugt. Der schnelle Rahmenverschieber 116 prüft oder modifiziert den Rahmenkörper (Paket 302) nicht. Der schnelle Rahmenverschieber 116 erstellt den Rahmenkopf 304 bei Empfang des Paketes 302. Die Router 118, die Teil der Schicht des schnellen Rahmenverschiebers 206 sind, modifizieren den Rahmenkopf 304, wenn der Rahmen 302 über die Zwischenverbindung 104 übertragen wird, wie es unten in Verbindung mit den 56 beschrieben ist. Der schnelle Rahmenverschieber 116 in dem Zielprozessorknoten 102 sondert den Rahmenkopf 304 aus, wenn das Paket 302 zu dem zuverlässigen Paketverschieber 114 des Zielprozessorknotens 102 übertragen wird.
  • Unter Bezugnahme auf 4 ist ein Blockdiagramm gezeigt, das den schnellen Rahmenverschieber 116 darstellt, der eine Sendeschaltung 402 und eine Empfangsschaltung 404 enthält. Obwohl jeder schnelle Rahmenverschieber 116 sowohl eine Sendeschaltung 402 als auch eine Empfangsschaltung 404 enthält, sind der Klarheit halber nur eine Sendeschaltung 402 und eine Empfangsschaltung 404 gezeigt. Die Sendeschaltung 402 enthält eine Routing-Tabelle 406, einen Zufallszahlengenerator 407 und einen FFM-Sendecontroller 408. Die Empfangsschaltung 404 enthält einen Pufferverwalter 410, einen Puffer 412 und einen FFM-Empfangscontroller 414. Die Routing-Tabelle 406 speichert wenigstens eine Route über die Zwischenverbindung 104 zu jedem Zielprozessorknoten 102. Wenn der Rahmen 300 auf der Route übertragen wird, modifiziert jeder Router 118 auf der Route den Rahmenkopf 304, indem er einen Routing-Schritt aus der Route entfernt.
  • Der schnelle Rahmenverschieber 116 und die Router 118 behalten die Flußsteuerung über die Maschenglieder 120 bei. Der Pufferverwalter 410 der Empfangsschaltung 404 überwacht den Status des Puffers 412 und sendet Statusinformationen über das Maschenglied 120 zu dem nächsten stromaufwärtigen Nachbarn, der entweder ein Router 118 oder ein Prozessorknoten 102 sein kann. Gleichfalls überwacht jeder Router 118 den Status von Puffern (nicht gezeigt) darin und sendet Statusinformationen über das Maschenglied 120 zu dem nächsten stromaufwärtigen Nachbarn, der, wie oben, entweder ein Router 118 oder ein Prozessorknoten 102 sein kann. Der schnelle Rahmenverschieber 116 des Quellenprozessorknotens 102 oder der Router kann dann das Senden von Rahmen 300 an den nächsten stromabwärtigen Nachbarn (entweder einen Prozessorknoten 102 oder einen Router 118) verlangsamen oder stoppen, bis in dem Puffer 412 Raum zur Verfügung steht. Eine derartige Implementierung der Flußsteuerung ist beschrieben in US 6,003,064 mit dem Titel "A FLOW CONTROL PROTOCOL SYSTEM AND METHOD", eingereicht am 22. Februar 1996.
  • Die Router 118 führen eine Fehlerdetektion in dem Maße aus, das dem Router 118 das Arbeiten gestattet. Zum Beispiel bestimmt der Router 118, ob das nächste Glied in dem Router 118 existiert. Falls der Router 118 zum Beispiel sechs Ports hat und der Rahmenkopf 304 angibt, das der Rahmen 300 einem nichtexistierenden Port wie beispielsweise dem Port 0 zuzuführen ist, sondert der Router 118 den Rahmen 300 aus.
  • Unter Bezugnahme auf 5 ist ein Blockdiagramm gezeigt, daß die Selektion einer Route eines Rahmens 300 darstellt. Unter Bezugnahme auf 6 ist ein Blockdiagramm gezeigt, das die Modifizierung der Routing-Informationen 318 in dem Rahmenkopf 304 zeigt, während der Rahmen 300 über die Zwischenverbindung 104 übertragen wird. Die Wahl der Route hängt nur von dem Quellenprozessorknoten 102 und dem Zielprozessorknoten 102 und einer Zufallszahl zum Heraussuchen einer von einer Vielzahl von Routen ab. Die Route basiert vorzugsweise nicht auf der Größe oder dem Typ des Rahmens 300.
  • Die Route über die Zwischenverbindung 104 ist deterministisch. Die Route wird aus der Routing-Tabelle 406 ausgewählt, die eine Tabelle mit vorbestimmten Routen speichert. Sobald die Route ausgewählt ist und der Rahmen 300 an die Zwischenverbindung 104 geliefert ist, ist der Weg vorbestimmt. Der Rahmen 300 folgt dieser Route bis zum Zielprozessorknoten 102 oder wird auf der Route im Falle eines Fehlers ausgesondert. Das deterministische Routing bietet verschiedene Vorteile. Erstens können die Router 118 den Rahmen 300 schnell verarbeiten, weil der Rahmen 300 das unmittelbare Ziel des Rahmens 300 definiert, ohne jegliche Bestimmung durch den Router 118. Zweitens ist die Lebensdauer des Rahmens 300 innerhalb der Zwischenverbindung 104 begrenzt. Der Rahmen 300 wird über die im voraus selektierte Route übertragen, die eine endliche Länge hat. Dadurch kann der zuverlässige Paketverschieber 114 Laufnummern mit begrenzter Länge verwenden, wodurch die Größe des Paketkopfes 306 verringert wird. In den meisten Fällen werden dadurch auch alte Pakete 302 aus der Zwischenverbindung 104 eliminiert. Drittens kann die im voraus selektierte Route einem beliebigen Weg durch die Zwischenverbindung 104 folgen. Die Ladung der Zwischenverbindung 104 kann angemessen verteilt werden.
  • Die Route enthält eine Ablauffolge von direkt gekoppelten Routern 118 zwischen dem Quellenprozessorknoten 102 und dem Zielprozessorknoten 102. Die Route erfordert keine besondere Topologie. Tatsächlich kann eine beliebige Topologie verwendet werden, bei der das Glied zwischen zwei direkt gekoppelten Routern 118 in einzigartiger Weise definiert ist.
  • Unter Bezugnahme speziell auf die 56 empfängt der schnelle Rahmenverschieber 116 ein Paket 302 von dem zuverlässigen Paketverschieber 114, das an einen zuvor spezifizierten Zielknoten wie zum Beispiel an den Prozessorknoten B zu senden ist, der in dem Paket 302 angegeben ist. Der schnelle Rahmenverschieber 116 sucht eine Zufallszahl von dem Zufallszahlengenerator 407 heraus. Der schnelle Rahmenverschieber 116 verwendet diese Zufallszahl, um einen von einer Vielzahl von Speicherorten 504 in einer Wahrscheinlichkeitsverteilungstabelle 502 zu selektieren. Jeder Speicherort 504 speichert eine von einer Vielzahl von zuvor spezifizierten Routen von dem Quellenprozessorknoten 102 (z. B. dem Knoten A) zu dem Zielprozessorknoten 102 (z. B. dem Knoten B). Der schnelle Rahmenverschieber 116 extrahiert dann von dem selektierten Speicherort 504 die zuvor spezifizierte Route, die darin gespeichert ist. Die Wahrscheinlichkeitsverteilungstabelle 502 wird vorzugsweise gemäß einer zuvor spezifizierten Wahrscheinlichkeitsverteilung aufgestellt, welche die Routenselektion beeinflußt. Zum Beispiel kann der schnelle Rahmenverschieber 116 die Wahrscheinlichkeitsverteilung erzeugen, indem in jedem von einer vorbestimmten Anzahl von Speicherorten 504 eine der Routen gespeichert wird, die in der Routing-Tabelle 406 gespeichert sind. Die Wahrscheinlichkeitsverteilung 502 wird durch die Häufigkeit bestimmt, mit der jede der Routen an den Speicherorten 504 gespeichert ist. Der schnelle Rahmenverschieber 116 erstellt einen Rahmenkopf 304, der solch eine selektierte, zuvor spezifizierte Route enthält, und stellt diesen Rahmenkopf 304 dem Paket 302 voran, um einen Rahmen 300 zu erzeugen.
  • Nun wird speziell Bezug auf 6 genommen. Der Rahmenkopf 304 enthält, wie oben beschrieben, die Routing-Informationen 318, die den vorbestimmten Weg von dem Quellenprozessorknoten 102 durch die Zwischenverbindung 104 zu dem Zielprozessorknoten 102 spezifizieren. Eine Route enthält eine Reihe von Routenschritten, wie oben angegeben. Jeder Routenschritt definiert den Port eines Routers 118, von dem der Router 118 den Rahmen 300 sendet. Jeder Routenschritt kann in der Größe variabel sein. Zum Beispiel definieren bei einem Router 118 mit sechs Ports drei Bits den Port. In einem Router 118 mit 12 Ports definieren vier Bits den Port. Daher kann eine Route Router 118 verschiedener Größen enthalten. Natürlich können die Routen verschiedene Anzahlen von Routenschritten enthalten. In diesem Fall enthält die Route Routenschritte verschiedener Größen. In 6 lautet am Glied 1 der Routenweg Glied 3, Glied 5, Glied 2 und Zielprozessorknoten 102. Jedes Glied auf dem Routenweg entfernt den Code für das nächste Glied aus dem Rahmenkopf 304, verschiebt den Routenweg in dem Rahmenkopf 304 und füllt den Rahmenkopf 304 hinten mit einer Nummer eines nichtexistierenden Prozessorknotens, sprich 0. Das Glied führt den Rahmen 300, der einen modifizierten Rahmenkopf 304 hat, dann dem nächsten Glied zu. Zum Beispiel liefert das Glied #3 den Rahmen 300 durch den Port 5 aus und entfernt das Glied 5 aus dem Rahmenkopf 304. Natürlich liefert das letzte Glied auf der Route den Rahmen 300 an den Zielprozessorknoten 102 aus.
  • Unter Bezugnahme auf 7 ist ein Diagramm gezeigt, das die Hälfte eines Maschengliedes 120 darstellt. Ein Maschenglied 120 enthält ein Paar von unidirektionalen Datenwegen. Dieses Paar bietet eine größere Bandbreite als Gemeinschaftsmedien, die von Senden auf Empfangen geschaltet werden, und eliminiert die Abhängigkeit von einer Ausbrei tungsverzögerung, die bei solchen Gemeinschaftsmedien auftritt. Bei Hochgeschwindigkeitssystemen können viele Bits von Informationen gleichzeitig auf dem Maschenglied 120 sein. Das Paar bietet einem Router 118 die Möglichkeit, gleichzeitig in beiden Richtungen zu kommunizieren. Das Maschenglied 120 sieht eine elektrische Punkt-zu-Punkt-Verbindung vor. Das Maschenglied 120 ist vorzugsweise kein Bus. Jeder unidirektionale Datenweg ist ein halbes Maschenglied, das Datenleitungen 702 und Steuerleitungen enthält, nämlich insbesondere eine Taktleitung 704, eine Daten-/Statusangabeleitung 706, eine Rahmenhüllenleitung 708 und Spannungsreferenzleitungen 710. Die Datenleitungen 702 sehen einen Weg zum Übertragen von Rahmen 300 vor. Pufferstatusinformationen werden auf denselben Datenleitungen 702 multiplexiert, wenn kein Rahmen 300 gesendet wird. Die Bandbreite der Zwischenverbindung 104 hängt von der Anzahl von Datenleitungen 702 ab. Die Datenleitungen 702 umfassen vorzugsweise 34 Leitungen zum Übertragen von einer Hälfte eines Wortes des Rahmens 300 pro Taktflanke. Die Taktleitung 704 sieht einen Kommunikationsweg für den Takt des Prozessorknotens 102 vor, der den Rahmen 300 durch die Zwischenverbindung 104 führt. Die Taktleitung 704 ist vorzugsweise ein voller Differenzeinzeltakt auf zwei Leitungen. Die Daten-/Statusangabeleitung 706 liefert ein Signal, das angibt, ob das Signal auf den Datenleitungen 702 die Daten oder den Status darstellt. Bei der Flußsteuerung des Maschengliedes 120, wie oben in Verbindung mit 4 beschrieben, gibt die Daten-/Statusangabeleitung 706 zum Beispiel an, daß Statusinformationen des Puffers 412 gerade über die Datenleitungen 702 übertragen werden. Die Daten-/Statusangabeleitung 706 ist vorzugsweise eine einzelne Leitung. Die Rahmenhüllenleitung 708 liefert ein Rahmenhüllensignal, das den Beginn des Rahmens angibt. Im besonderen gibt das Rah menhüllensignal den Beginn des Rahmenkopfes 304 an, und es bleibt während der Übertragung des Rahmens aktiv. Das Rahmenhüllensignal wird am Ende des Rahmens oder lange genug vor dem Ende inaktiv, damit Rahmen Rücken an Rücken übertragen werden können. Die Rahmenhüllenleitung 708 ist vorzugsweise eine einzelne Leitung. Die Spannungsreferenzleitungen 710 liefern eine Spannungsreferenz für den Router 118 oder einen Prozessorknoten 102, um kleine Signalschwingungen auf allen Daten- und Steuerleitungen 702, 706, 708 zuzulassen, die eindrähtig differentiell sein können. Die Spannungsreferenzleitung 710 hat vorzugsweise 5 Leitungen. Jedes Maschenglied 120 hat vorzugsweise 43 Leitungen in jeder Richtung, oder insgesamt 86 Leitungen. Dies gestattet die parallele Übertragung von 34 Bits über das Maschenglied 120. Ein Wort wird somit in zwei Übertragungszyklen übertragen, die einem Taktzyklus gleich sind, der bei beiden Flanken verriegelt wird.
  • Unter Bezugnahme auf 8 ist ein Blockdiagramm gezeigt, das verschiedene Taktdomänen für ein Paar von Empfängern und Sendern eines Maschengliedes 102 darstellt. Jeder Prozessorknoten 102 und jeder Router 118 hat einen internen Taktgenerator 802 zum Vorsehen eines Taktsignals. Die Taktgeneratoren 802 liefern vorzugsweise Taktsignale, die im wesentlichen gleich sind. Der Takt wird auf dem Maschenglied 120 an den nächsten Nachbarn (entweder den Zielprozessorknoten 102 oder einen Router 118) geliefert, der diesen Takt verwendet, um die Daten zu akzeptieren. Genauer gesagt: dieser Takt wird verwendet, um die Daten in einem First-In-First-Out-(FIFO)-Puffer 804 in dem Zielprozessorknoten 102 oder in dem Router 118 zu verriegeln. Der Zielprozessorknoten 102 oder der Router 118 verwendet seinen eigenen internen Taktgenerator 802, um die Daten aus dem FIFO-Puffer 804 zu lesen. Dadurch kann der Zielprozessorknoten 102 oder der Router 118 Daten akzeptieren, die auf einem Takt basieren, der eine Frequenzdrift und eine Phasenverschiebung gegenüber dem Takt des Zielprozessorknotens 102 oder des Routers 118 aufweist. Dieses Takten macht die globale Synchronisation aller Takte unnötig. Die Taktdomäne ist eine plesiochrone Taktdomäne. Der Takt wird auf dem Maschenglied 120 mit den Daten auf der Datenleitung 702 vorgesehen. Ein Beispiel für das Takten ist enthalten in US 5,509,038 mit dem Titel "MULTI-PATH DATA SYNCHRONIZER SYSTEM AND METHOD".
  • Unter Bezugnahme auf 9 ist ein Blockdiagramm gezeigt, das eine fehlertolerante Zwischenverbindung in einer zweiten Ausführungsform der vorliegenden Erfindung darstellt. Die Zwischenverbindung 104 enthält wenigstens zwei Teilmaschen 902, die redundante Wege zwischen Prozessorknoten 102 zum Vorsehen einer Fehlertoleranz bieten. Die schnellen Rahmenverschieber 116 leiten entweder dynamisch um Router 118 oder Maschenglieder 120 herum, die nicht funktionieren oder entfernt worden sind, oder verwenden eine andere Teilmasche 902.
  • Jede einzelne Teilmasche 902 ist durch ein Maschenglied 120 mit jedem Prozessorknoten 102 gekoppelt. Jede Teilmasche 902 ist vorzugsweise einer nichtfehlertoleranten Masche ähnlich. Jeder Prozessorknoten 102 ist durch ein Maschenglied 120 mit einem Router 118 gekoppelt, der durch separate Maschenglieder 120 mit jeder der Teilmaschen 902 gekoppelt ist.
  • Jeder Router 118 enthält einen Zähler (nicht gezeigt), der immer dann inkrementiert wird, wenn der Router 118 einen Rahmen 300 aussondert. Das Multiprozessorsystem 100 liest periodisch den Zähler, um zu bestimmen, ob der Router 118 oder Maschenglieder 120, die mit ihm verbunden sind, möglicherweise defekt sind. Falls solch eine Bestimmung erfolgt, kann das Multiprozessorsystem 100 den Router 118 oder die Teilmasche 902 in einem fehlerredundanten System von den vorbestimmten Routen eliminieren. Zum Beispiel kann der Verarbeitungsknoten 102 diese Route aus der Wahrscheinlichkeitsverteilungstabelle 502 zum Selektieren von Routen von der Routing-Tabelle 406 löschen. Ein Prozessorknoten 102 kann die Male des erneuten Sendens eines Paketes 302 zählen, die bei jedem Zielprozessorknoten 102 erforderlich sind, und bestimmen, falls die Zahl über einer vorbestimmten Schwelle liegt, ob ein Router 118 auf dem Weg eine hohe Anzahl von Defekten aufweist.
  • Unter Bezugnahme auf 10 ist ein Blockdiagramm gezeigt, das ein virtuelles Durchschalte-Routing darstellt, wobei der Beginn eines Rahmens 300 an den nächsten Router 118 oder Prozessorknoten 102 auf der Route gesendet werden kann, auch wenn das Ende des Rahmens 300 noch nicht empfangen worden ist. Genauer gesagt: ein Paket 302 wird in eine Vielzahl von Segmenten 1002 partitioniert, wie beispielsweise in 7. Die Segmente 1002 haben vorzugsweise eine verschiedene Größe. Der Quellenprozessorknoten 102 selektiert, wie oben beschrieben, die Route zum Senden des Paketes an den Zielprozessorknoten 102. Der Quellenprozessorknoten 102 liefert den Rahmen 300 an den ersten Router 118 auf der Route. Bei Empfang des Rahmenkopfes 306 bestimmt der erste Router 118 auf der Route das nächste Maschenglied 120, an das der Rahmen 300 zu senden ist, und startet das Senden des Rahmens 300, falls der Empfänger über Pufferressourcen verfügt und der Ausgabeport zur Verfügung steht. Der Rahmen 300 kann sich über viele Router 118 und Maschenglieder 120 erstrecken, einschließlich des Zielprozessorknotens 102. Das erste Segment 1002 des Rahmens 300 ist am Zielprozessorknoten 102 empfangen worden, wie in 10 gezeigt, und die zweiten bis sechsten Segmente 1002 befinden sich in verschiedenen Routern 118 und Maschengliedern 120 auf der Route. Der Quellenprozessorknoten 102 hat noch nicht das siebte Segment 1002 gesendet. Die Latenz des virtuellen Durchschalte-Routings enthält typischerweise nicht das Puffern in den dazwischenliegenden Routern 118. Im Gegensatz dazu wird beim Speicher- und Weiterleitungs-Routing die gesamte Meldung vor dem Weiterleiten gespeichert. Bei solch einem Routing enthält die Latenz das Puffern.
  • Unter Bezugnahme auf 11 ist ein Blockdiagramm gezeigt, das einen zuverlässigen Paketverschieber 114 darstellt, der eine Sendeschaltung 1102 und eine Empfangsschaltung 1104 enthält. Obwohl jeder zuverlässige Paketverschieber 114 sowohl eine Sendeschaltung 1102 als auch eine Empfangsschaltung 1104 enthält, sind der Klarheit halber nur eine Sendeschaltung 1102 und eine Empfangsschaltung 1104 gezeigt. Die Sendeschaltung 1102 enthält einen Sendepaketpuffer 1106, einen RPM-Sendecontroller 1108, eine Partnerinformationstabelle 1110 und eine Zeitablaufschaltung 1112 zum Steuern des erneuten Sendens von verlorengegangenen oder verdorbenen Daten. Der Sendepaketpuffer 1106 speichert die Pakete 302, die gesendet, aber nicht quittiert worden sind. Der Sendepaketpuffer 1106 ist größenmäßig kleiner als in Systemen, die durch Software implementiert werden, weil durch die kleinere Latenz in dem System 100 in Kombination mit dem virtuellen Durchschalte-Routing der Empfang von Paketen 302 außer der Reihe nicht so häufig vorkommt und weil die Zwischenverbindungsdienstverwalterschicht 202 Pakete 302 hält, falls der Sendepaketpuffer 1106 voll ist. Die Partnerinformationstabelle 1110 speichert für jeden Zielprozessorknoten 102 die Laufnummer des nächsten Paketes 302, das zu senden ist und das von jenem Zielprozessorknoten 102 quittiert werden muß. Der RPM-Sendecontroller 1108 steuert die Operation der Sendeschaltung 1102. Die Zeitablaufschaltung 1112 sieht eine Zeitzählung zum Steuern des erneuten Sendens von verlorengegangenen oder verdorbenen Daten vor.
  • Die Empfangsschaltung 1104 enthält einen Puffer für unerledigte Pakete 1114, einen RPM-Empfangscontroller 1116 und eine Partnerinformationstabelle 1118. Der Puffer für unerledigte Pakete 1114 speichert Pakete 302, die außerhalb der Ablauffolge empfangen worden sind. Der Puffer für unerledigte Pakete 1114 ist größenmäßig kleiner als in Systemen, die durch Software implementiert werden, weil durch die kleinere Latenz in dem System 100 der Empfang von Paketen 302 außer der Reihe nicht so häufig vorkommt. Der RPM-Empfangscontroller 1116 steuert die Operation der Empfangsschaltung 1104. Die Partnerinformationstabelle 1118 speichert für jeden Quellenprozessorknoten 102 die Laufnummer des nächsten erwarteten Paketes 302 von jenem Quellenprozessorknoten 102.
  • Der zuverlässige Paketverschieber 114 erzeugt den Paketkopf 306, der die Laufnummer des Paketes 302 enthält. Laufnummern werden verwendet, um den Zielprozessorknoten 102 über die Ablauffolge der Pakete 302 zu informieren. Der Zielknoten verarbeitet nur die Pakete 302 in der Ablauffolge. Bei Empfang eines Paketes 302 innerhalb der Reihenfolge sendet der Zielprozessorknoten eine Quittung zurück zu dem Quellenprozessorknoten 102, die denselben über den Empfang des Paketes 302 informiert. Falls der Quellenprozessorknoten 102 keine Quittung innerhalb einer vorbestimmten Zeit bekommt, sendet der Quellenprozessorknoten 102 das Paket 302 unter Verwendung derselben Laufnummer erneut.
  • Unter Bezugnahme auf 12a ist ein Flußdiagramm gezeigt, das die Operation der Sendeschaltung 1102 des zuverlässigen Paketverschiebers 114 darstellt. Um Daten zu senden, liefert die Kohärenzsteuereinheit 110 die Daten und eine Identifizierung des Zielprozessorknotens 102 an den zuverlässigen Paketverschieber 114, der die Daten in Pakete 302 konvertiert und jedem Paket 302 eine Laufnummer zuordnet. Jedes gesendete Paket 302 wird in dem Sendepaketpuffer 1106 in dem Quellenprozessorknoten 102 gespeichert. Falls er bei 1201 Kapazität hat, akzeptiert der Sendepaketpuffer 1106 die Daten und sendet der zuverlässige Paketverschieber 114 das Paket 302. Falls nicht, stoppt die Zwischenverbindungsdienstverwalterschicht 202 das Senden von Paketen 302 und wartet.
  • Wenn der zuverlässige Paketverschieber 114 ein Paket 302 zu senden hat, sucht die Sendeschaltung 1102 bei 1202 eine Laufnummer aus der Partnerinformationstabelle 1110 entsprechend dem Zielprozessorknoten 102 heraus. Die Sendeschaltung 1102 fügt bei 1206 die herausgesuchte Laufnummer zu dem Paketkopf 306 des Paketes 302 hinzu und führt bei 1207 eine Fehlerdetektion aus. Die Sendeschaltung 1102 sendet bei 1208 das Paket 302 an den schnellen Rahmenverschieber 116 zum Senden, wie oben beschrieben. Die Sendeschaltung 1102 speichert bei 1210 das Paket 302 in dem Sendepaketpuffer 1106 auch mit einem Markierungsbit für jenes Paket 302, das erst gesetzt wird, wenn eine Quittung empfangen wird, daß das Paket empfangen wurde. Die Laufnummer in der Partnerinformationstabelle 1110 wird bei 1204 für das Senden des nächsten Paketes 302 inkrementiert. Da die Laufnummern begrenzt sind, werden sie schließlich umlaufend sein. Daher ist der Laufnummerabstand groß genug, so daß keine Pakete 302 mit derselben Laufnummer gleichzeitig in dem System 100 sind.
  • Unter Bezugnahme auf 12b ist ein Flußdiagramm gezeigt, das die Operation des Verarbeitens von Quittungspaketen und des erneuten Sendens von Paketen durch den zuverlässige Paketverschieber darstellt, falls Pakete gesendet worden sind. Das Quittungspaket ist ein Steuerpaket von der Empfangsschaltung 1104 an den Quellenprozessorknoten 102, das angibt, daß das Paket 302 empfangen wurde und die Fehlerdetektion durchlaufen hat. Das Quittungspaket enthält eine Zielknotennummer, die Laufnummer des empfangenen Paketes 302 und den EDC, und zwar vorzugsweise 16 Bytes. Das Quittungspaket kann an ein anderes Paket 302 angehängt werden, das gerade zu dem Quellenzielknoten 102 gesendet wird. Dadurch wird der Verkehr in der Zwischenverbindung 104 reduziert. Das Quittungspaket selbst wird nicht quittiert und enthält keine eigene Laufnummer. Die Laufnummer in einem Quittungspaket quittiert implizit auch alle vorherigen Pakete, d. h., alle Pakete mit Laufnummern, die kleiner als die Laufnummer in der Quittung sind oder auf Grund des obenerwähnten Umlaufs der Nummern entsprechend zutreffend sind. Dadurch kann die Empfangsschaltung 1104 die Quittung von Paketen 302 verzögern und den Verkehr von Quittungspaketen unter Verwendung eines einzelnen Quittungspaketes zum Quittieren von mehr als einem Paket 302 reduzieren.
  • Die Sendeschaltung 1102 bestimmt bei 1212, ob ein Quittungspaket empfangen ist. Falls dies der Fall ist, löscht die Sendeschaltung 1102 bei 1214 die Pakete 302 entsprechend der empfangenen Quittung aus dem Sendepaketpuffer 1106. Dieses Löschen schließt alle vorherigen Pakete 302 in dem Sendepaketpuffer 1106 für das Paar aus Quellen- und Zielprozessorknoten 102 ein. Diese Pakete 302 haben eine Laufnummer, die kleiner gleich der Laufnummer in dem Quittungspaket ist, oder Laufnummern, die unter Berücksichtigung des Umlaufs entsprechend zutreffen.
  • Das Paket 302 wird erneut gesendet, falls nach einer spezifizierten Zeitablaufperiode kein Quittungspaket empfangen wird. Speziell bestimmt die Sendeschaltung 1102 bei 1216, falls bei 1212 kein Quittungspaket empfangen wird, ob die Zeitablaufschaltung 1112 abgelaufen ist. Falls nicht, bestimmt die Sendeschaltung 1102 bei 1212 weiter, ob eine Quittung empfangen ist.
  • Falls andererseits die Zeitablaufschaltung 1112 abgelaufen ist, prüft die Sendeschaltung 1102 bei 1218 jedes Paket 302, das in dem Sendepaketpuffer 1106 gespeichert ist, um zu bestimmen, ob ein Markierungsbit für jenes Paket 302 gesetzt ist. Falls das Bit nicht gesetzt ist, setzt die Sendeschaltung 1102 bei 1220 das Markierungsbit für jenes Paket 302. Dies gewährt einem Paket 302 eine oder zwei Zeitablaufperioden, bevor es erneut gesendet wird. Bei Paketen 302 mit gesetztem Markierungsbit bei 1218 sucht die Sendeschaltung 1102 bei 1222 das Paket 302 aus dem Sendepaketpuffer 1106 heraus und sendet bei 1224 das Paket 302 erneut. Um zu bestimmen, daß die Zwischenverbindung 104 defekt ist, erfolgt das erneute Senden in einer begrenzten oder maximalen Anzahl. Im besonderen bestimmt die Sendeschaltung 1102 bei 1225, ob das Paket 302 eine vorbestimmte Anzahl von Malen erneut gesendet worden ist. Falls dies der Fall gewesen ist, informiert die Sendeschaltung 1102 bei 1227 die Zwischenverbindungsdienstverwalterschicht 202 über solch eine Anzahl des erneuten Sendens, und die Schicht 202 kann dann Pakete 302 zwischen jenem Paar aus Quellen- und Zielknoten umleiten. Falls die Anzahl des erneuten Sendens nicht das Maximum erreicht hat, bestimmt dann beim Erreichen des letzten Paketes 302 bei 1226 die Sendeschaltung 1102 bei 1212 weiterhin, ob ein Quittungspaket empfangen ist, wie oben beschrieben.
  • Unter Bezugnahme auf 13 ist ein Flußdiagramm gezeigt, das die Operation der Empfangsschaltung 1104 des zuverlässigen Paketverschiebers 114 darstellt. Die Empfangsschaltung 1104 des zuverlässigen Paketverschiebers 114 liefert das Paket 302 an die Zwischenverbindungsdienstverwalterschicht 202 in der Ordnung der Laufnummer. Die Empfangs schaltung 1104 empfängt bei 1302 ein Paket 302 von der Zwischenverbindung 104. Falls der Paketpuffer 1114 von unerledigten Paketen voll ist, sondert die Empfangsschaltung 1104 das Paket 302 aus. Alternativ dazu kann die Empfangsschaltung 1104 das letzte Paket 302 aussondern, das in dem Puffer 1114 der unerledigten Pakete gespeichert ist. Natürlich können auch andere Pakete 302 von dem Puffer 1114 der unerledigten Pakete ausgesondert werden, da dieser auf Leistung und nicht auf Korrektheit ausgerichtet ist. Die Empfangsschaltung 1104 führt bei 1316 eine Fehlerdetektion an dem Paket 302 aus. Falls das Paket 302 bei 1318 die Fehlerdetektion nicht übersteht, wird das Paket 302 bei 1310 ausgesondert und empfängt die Empfangsschaltung 1104 bei 1302 weiterhin Pakete 302. Falls das Paket 302 andererseits die Fehlerdetektion bei 1318 übersteht, extrahiert dann die Empfangsschaltung 1104 bei 1304 die Laufnummer und die Quellenknotennummer von dem Paketkopf 306. Die Empfangsschaltung 1104 liest bei 1306 die nächste erwartete Laufnummer für den Quellenprozessorknoten aus der Partnerinformationstabelle 1118 und vergleicht bei 1308 die nächste erwartete Laufnummer mit der extrahierten Laufnummer. Falls die extrahierte Laufnummer kleiner als die erwartete Laufnummer ist, ist das Paket 302 durch die Empfangsschaltung 1104 bereits verarbeitet worden und stellt ein Duplikat dar. Wieder wird der Umlauf der Laufnummern angemessen berücksichtigt. Das Paket 302 wird bei 1310 ausgesondert, und die Empfangsschaltung 1104 fährt bei 1302 mit dem Empfang von Paketen 302 fort.
  • Falls die extrahierte Laufnummer nicht kleiner als die erwartete Laufnummer ist, bestimmt die Empfangsschaltung 1310 bei 1312, ob die extrahierte Laufnummer der erwarteten Laufnummer gleich ist. Falls keine Übereinstimmung vorliegt, handelt es sich um ein außerhalb der Ablauffolge empfangenes Paket 302. Die Empfangsschaltung 1104 speichert bei 1314 das Paket 302 in dem Puffer der unerledigten Pakete 1114, und die Empfangsschaltung 1104 fährt mit dem Empfang von Paketen 302 bei 1302 fort.
  • Falls andererseits die nächste erwartete Laufnummer bei 1312 mit der extrahierten Laufnummer übereinstimmt, liefert die Empfangsschaltung 1104 bei 1320 eine Quittung an die Zwischenverbindung 104. Da das empfangene Paket 302 das erwartete Paket 302 ist, inkrementiert die Empfangsschaltung 1104 bei 1322 die Partnerinformationstabelle 1118 für den entsprechenden Quellenprozessorknoten. Die Empfangsschaltung 1104 liefert bei 1324 das Paket 302 an die Zwischenverbindungsdienstverwalterschicht 202 zur Verarbeitung und überprüft bei 1326 den Puffer der unerledigten Pakete 1114 hinsichtlich des in der Ablauffolge nächsten Paketes 302.
  • Unter Bezugnahme auf 14 ist ein Flußdiagramm gezeigt, das die Operation zum Überprüfen des Puffers der unerledigten Pakete 1114 bei 1326 darstellt. Die Empfangsschaltung 1104 überprüft bei 1402 den Puffer der unerledigten Pakete 1114 hinsichtlich des in der Ablauffolge nächsten Paketes 302. Falls das nächste erwartete Paket 302 in dem Puffer der unerledigten Pakete 1114 ist, sendet die Empfangsschaltung 1104 bei 1404 auch eine Quittung und inkrementiert bei 1406 die Laufnummer. Die Empfangsschaltung 1104 liefert bei 1408 jenes Paket 302 an die Zwischenverbindungsdienstverwalterschicht 202. Die Empfangsschaltung 1104 fährt mit dem Überprüfen des Puffers der unerledigten Pakete 1114 hinsichtlich des nächsten erwarteten Paketes 302 fort, bis solch ein Paket 302 nicht gefunden wird. Die Empfangsschaltung 1104 setzt die Überwachung bei 1302 (13) hinsichtlich empfangener Pakete 302 fort.
  • Die obige Beschreibung wurde aufgenommen, um die Operation der bevorzugten Ausführungsformen darzustellen, und sie soll den Umfang der Erfindung nicht begrenzen. Der Umfang der Erfindung soll nur durch die folgenden Ansprüche begrenzt werden. Nach der obigen Diskussion wird ein Fachmann auf viele Veränderungen kommen, die dennoch im Umfang der Erfindung liegen.

Claims (12)

  1. System zum Übertragen von Daten in Paketen, wobei jedes Paket in einem Rahmen enthalten ist, welches System umfaßt: eine Vielzahl von Routern (118), die angeordnet sind, um Rahmen untereinander zu senden und zu empfangen; und eine Vielzahl von Knoten (102), wobei jeder Knoten einen Rahmenverschieber (116) enthält, der angeordnet ist, um Rahmen an die Router zu senden und Rahmen von ihnen zu empfangen, und einen Paketverschieber (114) enthält, der angeordnet ist, um die Pakete dem Rahmenverschieber zuzuführen und die Pakete von ihm zu empfangen; wobei die Vielzahl von Routern und Knoten in einem Netz untereinander verbunden ist; der Paketverschieber eines Quellenknotens von der Vielzahl von Knoten ein Paket (302) seinem Rahmenverschieber zuführt, welches Paket einen Zielknoten von der Vielzahl von Knoten angibt; eine Routing-Tabelle (406), die eine Vielzahl von vorbestimmten Routen von dem Quellenknoten bis zu dem Zielknoten hat; wobei der Rahmenverschieber des Quellenknotens eine von der Vielzahl von vorbestimmten Routen als selektierte Route zu dem Zielknoten selektiert und den Rahmen (300) erzeugt, der die selektierte Route und das Paket enthält; der Quellenknoten den Rahmen auf der selektierten Route von dem Quellenknoten zu dem Zielknoten sendet, welche selektierte Route eine Ablauffolge von einem oder mehreren Routern enthält, die den Rahmen als Antwort auf die in dem Rahmen enthaltene selektierte Route senden; der Rahmenverschieber des Zielknotens den Rahmen empfängt und das darin enthaltene Paket dem Paketverschieber des Zielknotens zuführt, welcher Paketverschieber des Zielknotens das Paket auf Fehler überprüft, das Paket als Antwort auf das Detektieren eines Fehlers aussondert und eine Quittung für das Paket als Antwort darauf, daß keine Fehler detektiert werden, an den Quellenknoten sendet; und der Paketverschieber des Quellenknotens das Paket als Antwort darauf, daß für das Paket keine Quittung innerhalb einer vorbestimmten Zeitperiode empfangen wurde, erneut an den Zielknoten sendet, wobei der Rahmenverschieber von wenigstens einem von der Vielzahl von Knoten die eine von der Vielzahl von vorbestimmten Routen als selektierte Route gemäß einer Wahrscheinlichkeitsverteilung der Vielzahl von vorbestimmten Routen selektiert.
  2. System nach Anspruch 1, bei dem die Vielzahl von Routern und Knoten in dem Netz durch Maschenglieder (120) untereinander verbunden ist.
  3. System nach Anspruch 1 oder 2, bei dem der Controller ferner einen Zufallszahlengenerator (407) zum Erzeugen einer Zufallszahl umfaßt, die verwendet wird, um die eine von der Vielzahl von vorbestimmten Routen als selektierte Route zu selektieren.
  4. System nach Anspruch 1, bei dem: der Rahmenverschieber des Quellenknotens die selektierte Route in einem Anfangsabschnitt des Rahmens aufnimmt; und wenigstens einer der Router in der Ablauffolge der ein oder mehreren Router den Anfangsabschnitt des Rahmens empfängt und, vor dem Empfang eines Endabschnittes des Rahmens, den Anfangsabschnitt als Antwort auf die in dem Anfangsabschnitt des Rahmens aufgenommene selektierte Route sendet.
  5. System nach Anspruch 1, bei dem der Paketverschieber von wenigstens einem von der Vielzahl von Knoten umfaßt: eine Tabelle zum Speichern einer Laufnummer des nächsten Paketes, das erwartet wird, von jedem anderen Paketverschieber seines jeweiligen Knotens unter der Vielzahl; einen Puffer (1114) zum Speichern von einem oder mehreren Paketen, die von einem anderen der Paketverschieber empfangen werden; und eine Empfangsschaltung (1104) zum Vergleichen der Laufnummer von einem der ein oder mehreren Pakete, die von dem anderen der Paketverschieber empfangen werden, mit der gespeicherten Laufnummer in der Tabelle, die dem jeweiligen Paketverschieber entspricht, Speichern des einen der ein oder mehreren Pakete in dem Puffer als Antwort auf die Laufnummer des einen der ein oder mehreren Pakete im Anschluß an die gespeicherte Laufnummer, Verarbeiten des einen der oder mehreren Pakete und Inkrementieren der gespeicherten Laufnummer als Antwort auf die Laufnummer des einen der ein oder mehreren Pakete, die mit der gespeicherten Laufnummer übereinstimmt, und Entfernen und Verarbeiten eines anderen in dem Puffer gespeicherten Paketes als Antwort auf die inkrementierte gespeicherte Laufnummer, die mit der Laufnummer des anderen gespeicherten Paketes übereinstimmt, und dann wieder Inkrementieren der inkrementierten gespeicherten Laufnummer.
  6. System nach Anspruch 1, bei dem der Quellenknoten, der den Rahmen auf der selektierten Route von dem Quellenknoten zu dem Zielknoten sendet, enthält: einen Empfangsknoten oder -router, der einen Abschnitt des Rahmens in einem Puffer unter Verwendung eines ersten Taktsignals eines Sendeknotens oder -routers akzeptiert; und welcher Empfangsknoten oder -router den Abschnitt des Rahmens von dem Puffer unter Verwendung eines zweiten Taktsignals des Empfangsknotens oder -routers liest.
  7. Verfahren zum Übertragen von Daten in Paketen in einem System, das eine Vielzahl von Routern (118) umfaßt, die angeordnet sind, um Rahmen, die Pakete enthalten, untereinander zu senden und zu empfangen, und eine Vielzahl von Knoten (102), wobei die Vielzahl von Routern und Knoten in einem Netz untereinander verbunden ist, welches Verfahren umfaßt: Selektieren einer von einer Vielzahl von vorbestimmten Routen als selektierte Route zum Übertragen eines Paketes (302) von einem Quellenknoten zu einem Zielknoten; Erzeugen eines Rahmens (300), der die selektierte Route und das Paket enthält; und Senden des Rahmens auf der selektierten Route von dem Quellenknoten zu dem Zielknoten, wobei die selektierte Route eine Ablauffolge von einem oder mehreren Routern enthält, die den Rahmen als Antwort auf die in dem Rahmen enthaltene selektierte Route senden, bei dem jeder Knoten einen Rahmenverschieber (116) enthält, der angeordnet ist, um die Rahmen zu senden und von den Routern zu empfangen, und einen Paketverschieber (114), der angeordnet ist, um die Pakete dem Rahmenverschieber zuzuführen und die Pakete von ihm zu empfangen, und bei dem der Rahmenverschieber die eine von der Vielzahl von vorbestimmten Routen als selektierte Route zum Übertragen des Paketes gemäß einer Wahrscheinlichkeitsverteilung der Vielzahl von vorbestimmten Routen selektiert.
  8. Verfahren nach Anspruch 7, ferner mit: Empfangen des Rahmens; Überprüfen des Paketes auf Fehler; Aussondern des Paketes als Antwort auf die Detektion eines Fehlers; Senden einer Quittung für das Paket an einen der Knoten als Antwort darauf, daß keine Fehler detektiert wurden; und erneutes Senden des Paketes an den Zielknoten als Antwort darauf, daß keine Quittung für das Paket innerhalb einer vorbestimmten Zeitperiode empfangen wurde.
  9. Verfahren nach Anspruch 7, bei dem das Selektieren der einen von der Vielzahl von vorbestimmten Routen als selektierte Route gemäß der Wahrscheinlichkeitsverteilung der Vielzahl von vorbestimmten Routen ferner das Erzeugen einer Zufallszahl umfaßt, die verwendet wird, um die eine von der Vielzahl von vorbestimmten Routen als selektierte Route zu selektieren.
  10. Verfahren nach Anspruch 9, ferner mit: Aufnehmen der selektierten Route in einen Anfangsabschnitt des Rahmens; und Empfangen des Anfangsabschnittes des Rahmens durch wenigstens einen der Router in der Ablauffolge der ein oder mehreren Router und, vor dem Empfangen eines Endabschnittes des Rahmens, Senden des Anfangsabschnittes als Antwort auf die in den Anfangsabschnitt des Rahmens aufgenommene selektierte Route.
  11. Verfahren nach Anspruch 7, ferner mit: Speichern einer Laufnummer des nächsten Paketes, das erwartet wird, von jedem der ein oder mehreren anderen Paketverschieber seines jeweiligen Knotens unter der Vielzahl; Vergleichen der Laufnummer von ein oder mehreren Paketen, die von einem der ein oder mehreren anderen Paketverschieber empfangen werden, mit der gespeicherten Laufnummer, die dem jeweiligen Paketverschieber entspricht; Speichern eines der ein oder mehreren Pakete als Antwort auf die Laufnummer des einen der ein oder mehreren Pakete im Anschluß an die gespeicherte Laufnummer; Verarbeiten des einen der ein oder mehreren Pakete und Inkrementieren der gespeicherten Laufnummer als Antwort auf die Laufnummer des einen der ein oder mehreren Pakete, die mit der gespeicherten Laufnummer übereinstimmt; und Entfernen und Verarbeiten eines anderen gespeicherten Paketes als Antwort auf die gespeicherte inkrementierte Laufnummer, die mit der Laufnummer des anderen gespeicherten Paketes übereinstimmt, und dann wieder Inkrementieren der inkrementierten gespeicherten Laufnummer.
  12. Verfahren nach Anspruch 7, bei dem das Senden des Rahmens auf der selektierten Route von dem Quellenknoten zu dem Zielknoten enthält: einen Empfangsknoten oder -router, der einen Abschnitt des Rahmens in einem Puffer unter Verwendung eines ersten Taktsignals eines Sendeknotens oder -routers akzeptiert; und welcher Empfangsknoten oder -router den Abschnitt des Rahmens von dem Puffer unter Verwendung eines zweiten Taktes des Empfangsknotens oder -routers liest.
DE69735740T 1996-02-22 1997-02-20 Asynchrone paketvermittlung Expired - Lifetime DE69735740T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/605,677 US5959995A (en) 1996-02-22 1996-02-22 Asynchronous packet switching
US605677 1996-02-22
PCT/US1997/002943 WO1997031464A1 (en) 1996-02-22 1997-02-20 Asynchronous packet switching

Publications (2)

Publication Number Publication Date
DE69735740D1 DE69735740D1 (de) 2006-06-01
DE69735740T2 true DE69735740T2 (de) 2006-09-14

Family

ID=24424724

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69735740T Expired - Lifetime DE69735740T2 (de) 1996-02-22 1997-02-20 Asynchrone paketvermittlung

Country Status (5)

Country Link
US (1) US5959995A (de)
EP (1) EP0823165B1 (de)
JP (1) JP3816531B2 (de)
DE (1) DE69735740T2 (de)
WO (1) WO1997031464A1 (de)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683876B1 (en) * 1996-09-23 2004-01-27 Silicon Graphics, Inc. Packet switched router architecture for providing multiple simultaneous communications
US6282195B1 (en) * 1997-01-09 2001-08-28 Silicon Graphics, Inc. Packetized data transmissions in a switched router architecture
EP0868103A3 (de) * 1997-03-27 2002-10-16 Siemens Aktiengesellschaft Annahme von Verbindungen niedriger Priorität, insbesondere non-real-time (NRT)-Verkehr, von nur einem redundanter Übertragungswege
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
US6181704B1 (en) * 1997-08-29 2001-01-30 Intel Corporation Method and apparatus for input/output link retry, failure and recovery in a computer network
US6683850B1 (en) * 1997-08-29 2004-01-27 Intel Corporation Method and apparatus for controlling the flow of data between servers
US6651670B2 (en) 1998-02-13 2003-11-25 Ventrica, Inc. Delivering a conduit into a heart wall to place a coronary vessel in communication with a heart chamber and removing tissue from the vessel or heart wall to facilitate such communication
US20020144696A1 (en) 1998-02-13 2002-10-10 A. Adam Sharkawy Conduits for use in placing a target vessel in fluid communication with a source of blood
US6205498B1 (en) * 1998-04-01 2001-03-20 Microsoft Corporation Method and system for message transfer session management
US6529932B1 (en) 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6393023B1 (en) * 1998-05-08 2002-05-21 Fujitsu Limited System and method for acknowledging receipt of messages within a packet based communication network
US7075937B1 (en) * 1998-05-19 2006-07-11 Canon Kabushiki Kaisha Method and device for sending data, method and device for receiving data
FR2779019B1 (fr) * 1998-05-19 2003-01-24 Canon Kk Procede et dispositif d'emission de donnees, procede et dispositif de reception de donnees
US6185631B1 (en) 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6415312B1 (en) * 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
US7285235B2 (en) * 1999-05-19 2007-10-23 Medtronic, Inc. Manufacturing conduits for use in placing a target vessel in fluid communication with a source of blood
US6609165B1 (en) 1999-09-27 2003-08-19 International Business Machines Corporation Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US6499066B1 (en) 1999-09-27 2002-12-24 International Business Machines Corporation Method and apparatus for using fibre channel test extended link service commands for interprocess communication
US6771659B1 (en) * 2000-01-21 2004-08-03 Nokia Mobile Phones Ltd. Method and apparatus for a selective acknowledgement scheme in a modified unacknowledge mode for use over a communications link
US6810031B1 (en) 2000-02-29 2004-10-26 Celox Networks, Inc. Method and device for distributing bandwidth
US6967950B2 (en) * 2000-08-11 2005-11-22 Texas Instruments Incorporated Pull transfers and transfer receipt confirmation in a datapipe routing bridge
US7095753B1 (en) * 2000-09-19 2006-08-22 Bbn Technologies Corp. Digital network processor-based multi-protocol flow control
US6907490B2 (en) * 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
US6826645B2 (en) 2000-12-13 2004-11-30 Intel Corporation Apparatus and a method to provide higher bandwidth or processing power on a bus
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US20020118692A1 (en) * 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
WO2002062021A1 (en) * 2001-01-31 2002-08-08 International Business Machines Corporation Providing control information to a management processor of a communications switch
US7184401B2 (en) * 2001-02-05 2007-02-27 Interdigital Technology Corporation Link-aware transmission control protocol
US7921188B2 (en) * 2001-08-16 2011-04-05 Newisys, Inc. Computer system partitioning using data transfer routing mechanism
US6763418B1 (en) 2001-09-07 2004-07-13 Agilent Technologies, Inc. Request bus arbitration
US7237016B1 (en) 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US6950394B1 (en) 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
US6920106B1 (en) 2001-09-07 2005-07-19 Agilent Technologies, Inc. Speculative loading of buffers within a port of a network device
US7054330B1 (en) 2001-09-07 2006-05-30 Chou Norman C Mask-based round robin arbitration
US7209476B1 (en) 2001-10-12 2007-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for input/output port mirroring for networking system bring-up and debug
US6839794B1 (en) 2001-10-12 2005-01-04 Agilent Technologies, Inc. Method and system to map a service level associated with a packet to one of a number of data streams at an interconnect device
US6922749B1 (en) 2001-10-12 2005-07-26 Agilent Technologies, Inc. Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US7574597B1 (en) 2001-10-19 2009-08-11 Bbn Technologies Corp. Encoding of signals to facilitate traffic analysis
US7290277B1 (en) * 2002-01-24 2007-10-30 Avago Technologies General Ip Pte Ltd Control of authentication data residing in a network device
US6907028B2 (en) * 2002-02-14 2005-06-14 Nokia Corporation Clock-based time slicing
US7016996B1 (en) 2002-04-15 2006-03-21 Schober Richard L Method and apparatus to detect a timeout condition for a data item within a process
EP1367499A1 (de) * 2002-05-28 2003-12-03 Fujitsu Siemens Computers, LLC Rechnerknoten zur Maschenschnittstelle für hoch skalierbares paralleles Verarbeitungsystem
US7058034B2 (en) * 2002-09-09 2006-06-06 Nokia Corporation Phase shifted time slice transmission to improve handover
GB2398650B (en) * 2003-02-21 2006-09-20 Picochip Designs Ltd Communications in a processor array
JP4038147B2 (ja) * 2003-04-17 2008-01-23 株式会社日立製作所 情報処理システム
US7814222B2 (en) * 2003-12-19 2010-10-12 Nortel Networks Limited Queue state mirroring
US7660583B2 (en) * 2004-03-19 2010-02-09 Nokia Corporation Advanced handover in phased-shifted and time-sliced networks
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
EP1861277A1 (de) * 2005-03-14 2007-12-05 Auto Meter Products, Inc. System und verfahren für ein modulares fahrzeugmessungssystem und beleuchtung
US7366132B2 (en) * 2005-03-30 2008-04-29 At&T Corp. Loss tolerant transmission control protocol
US7889654B2 (en) * 2005-03-30 2011-02-15 At&T Intellectual Property Ii, L.P. Loss tolerant transmission control protocol
KR101224591B1 (ko) * 2006-02-23 2013-01-22 삼성전자주식회사 네트워크 중계 장치 및 그 방법
US7835284B2 (en) * 2006-10-06 2010-11-16 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by routing through transporter nodes
US8031614B2 (en) * 2006-10-06 2011-10-04 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamic global mapping of contended links
US7839786B2 (en) * 2006-10-06 2010-11-23 International Business Machines Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by semi-randomly varying routing policies for different packets
US8423987B2 (en) * 2007-01-30 2013-04-16 International Business Machines Corporation Routing performance analysis and optimization within a massively parallel computer
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8055879B2 (en) * 2007-12-13 2011-11-08 International Business Machines Corporation Tracking network contention
JP4901777B2 (ja) * 2008-02-05 2012-03-21 アラクサラネットワークス株式会社 ネットワーク中継装置およびネットワーク中継方法
US8015313B2 (en) * 2008-03-04 2011-09-06 Sony Corporation Method and apparatus for managing transmission of TCP data segments
US9225545B2 (en) 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
JP5204603B2 (ja) * 2008-09-29 2013-06-05 株式会社日立製作所 4重化コンピュータシステムおよび2重化リングネットワーク
JP4592800B2 (ja) * 2009-03-12 2010-12-08 パナソニック株式会社 経路選択装置、経路選択方法、およびプログラム
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
WO2011004566A1 (ja) 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
WO2011089899A1 (ja) 2010-01-25 2011-07-28 パナソニック株式会社 半導体システム、中継器およびチップ回路
US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
RU2012144031A (ru) * 2010-03-17 2014-04-27 Нек Корпорейшн Система связи, узел, сервер управления, способ осуществления связи и программа
CN102893268B (zh) 2010-05-27 2015-11-25 松下电器产业株式会社 总线控制装置以及向总线控制装置输出指示的控制装置
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
JP5895202B2 (ja) 2011-10-14 2016-03-30 パナソニックIpマネジメント株式会社 中継器、中継器の制御方法、およびコンピュータプログラム
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US8990662B2 (en) * 2012-09-29 2015-03-24 Intel Corporation Techniques for resilient communication
US10789115B2 (en) * 2014-10-09 2020-09-29 Hewlett Packard Enterprise Development Lp Transmitter that does not resend a packet despite receipt of a message to resend the packet
WO2017053957A1 (en) 2015-09-25 2017-03-30 Fsa Technologies, Inc. High-speed communications platform
US11741050B2 (en) 2021-01-29 2023-08-29 Salesforce, Inc. Cloud storage class-based variable cache availability

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058838A (en) * 1976-11-10 1977-11-15 International Telephone And Telegraph Corporation Packet-switched facsimile communications system
AU1199888A (en) * 1987-03-13 1988-09-15 Northern Telecom Limited Communications system and components and methods for use therein
US5115433A (en) * 1989-07-18 1992-05-19 Metricom, Inc. Method and system for routing packets in a packet communication network
US5524116A (en) * 1992-02-14 1996-06-04 At&T Corp. Packet framer
JP2826416B2 (ja) * 1992-06-05 1998-11-18 日本電気株式会社 ローカルエリアネットワーク間の接続ルータ
EP0602693B1 (de) * 1992-12-18 2001-11-21 Alcatel ATM-Vermittlungsstelle und ATM-Vermittlungselement mit Leitweglenkungslogik
US5444718A (en) * 1993-11-30 1995-08-22 At&T Corp. Retransmission protocol for wireless communications
US5590122A (en) * 1994-12-22 1996-12-31 Emc Corporation Method and apparatus for reordering frames
US5544161A (en) * 1995-03-28 1996-08-06 Bell Atlantic Network Services, Inc. ATM packet demultiplexer for use in full service network having distributed architecture

Also Published As

Publication number Publication date
JP3816531B2 (ja) 2006-08-30
DE69735740D1 (de) 2006-06-01
US5959995A (en) 1999-09-28
EP0823165A1 (de) 1998-02-11
EP0823165B1 (de) 2006-04-26
JPH11511634A (ja) 1999-10-05
WO1997031464A1 (en) 1997-08-28

Similar Documents

Publication Publication Date Title
DE69735740T2 (de) Asynchrone paketvermittlung
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE60303026T2 (de) System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
EP1941674B1 (de) Teilnehmer und kommunikationscontroller eines kommunikationssystems und verfahren zur realisierung einer gateway-funktionalität in einem teilnehmer eines kommunikationssystems
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE69533951T2 (de) Protokoll für asynchrone Zeitvielfachvermittlung
DE69532262T2 (de) Verfahren zum Mehrfachsenden
DE69637275T2 (de) Verfahren zur auf Quittung basierten Flusssteuerung
DE60126934T2 (de) Vermittlungssystem
DE60118143T2 (de) Verfahren und Vorrichtung zur Re-Synchronisierung einer Netzwerkstruktur-Datenbank in einem Kommunikationsnetz mit Topologie-Zustand Leitweglenkung-Protokollen
DE69837272T2 (de) Mechanismus zum ersetzen eines paketfelds in einem mehrschicht-vermittlungsnetzelement
DE60309527T2 (de) System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten
DE60316587T2 (de) Integrierter schaltkreis und verfahren zum erstellen von transaktionen
DE69934124T2 (de) Verfahren und vorrichtung für wiederversuch, versagen und wiederanlauf einer eingang/ausgangsverbindung in einem computernetz
DE19924922A1 (de) System und Verfahren für Nachrichtenübermittlung zwisfchen Netzwerkknoten, die durch parallele Verbindungen verbunden sind
DE10360190A1 (de) Vorrichtung für die Erfassung von Verbindungsfehlern auf der Backplane des hochverfügbaren Ethernet
EP0561381A2 (de) An Mehrfachübertragung und Betriebsmittelverriegelung angepasste Netzwerkarchitektur
EP0762694A1 (de) Lokales, nach dem asynchronen Transfermodus (ATM) arbeitendes Netzwerk mit wenigstens zwei Ringsystemen
DE19526962C2 (de) Flußsteuerungsmechanismus für eine Paket-geschaltete Computerverbindung
EP2127329B1 (de) Filterung von redundanten frames in einem netzwerkknoten
DE102019104942A1 (de) Kommunikation einer Nachricht unter Verwendung einer Netzwerkschnittstellensteuerung in einem Subnetz
DE60117554T2 (de) Verfahren und vorrichtung zur effizienten hashing in netze
DE69632786T2 (de) Pfadsuche in Kommunikationsnetzwerken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE