DE69034133T2 - Kommunikationsgerät - Google Patents

Kommunikationsgerät Download PDF

Info

Publication number
DE69034133T2
DE69034133T2 DE69034133T DE69034133T DE69034133T2 DE 69034133 T2 DE69034133 T2 DE 69034133T2 DE 69034133 T DE69034133 T DE 69034133T DE 69034133 T DE69034133 T DE 69034133T DE 69034133 T2 DE69034133 T2 DE 69034133T2
Authority
DE
Germany
Prior art keywords
data
communication device
codes
input
output
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
DE69034133T
Other languages
English (en)
Other versions
DE69034133D1 (de
Inventor
Michael David May
Brian Jeremy Parsons
Peter William Horfield Thompson
Christopher Paul Hulme Portishead Walker
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.)
STMicroelectronics Ltd Great Britain
Original Assignee
STMicroelectronics Ltd Great Britain
SGS Thomson Microelectronics 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 STMicroelectronics Ltd Great Britain, SGS Thomson Microelectronics Ltd filed Critical STMicroelectronics Ltd Great Britain
Publication of DE69034133D1 publication Critical patent/DE69034133D1/de
Application granted granted Critical
Publication of DE69034133T2 publication Critical patent/DE69034133T2/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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • 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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/106ATM switching elements using space switching, e.g. crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Landscapes

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

Description

  • Diese Erfindung bezieht sich auf eine Kommunikationsvorrichtung für die Verwendung bei dem Weiterleiten von Nachrichten und insbesondere dem Weiterleiten von Nachrichten in einem Computernetz sowie auf eine Router/Switch-Vorrichtung für eine derartige Kommunikationsvorrichtung.
  • Es ist häufig wünschenswert, Verarbeitungsvorrichtungen wie Mikrocomputer in einem Netz zu verbinden, bei dem ein Mikrocomputer mit anderen Mikrocomputern in dem Netz kommunizieren kann. Bei solchen Netzen wäre es eine unnötige Einschränkung, wenn ein Mikrocomputer nur mit seinen unmittelbaren Nachbarn kommunizieren könnte, d. h. mit den Vorrichtungen, die mit ihm fest verdrahtet sind. Es ist gegenwärtig bekannt, dass Mikrocomputer in einem Netz Prozesse durchführen können, deren Funktion es ist, Nachrichten durch das Netz zu leiten. Das heißt, bei diesem Prozess wird eine Nachricht empfangen und ein Befehl ausgeführt, der zur Folge hat, dass die Nachricht an den entsprechenden benachbarten Mikrocomputer weitergeleitet wird, wo diese Prozedur möglicherweise wiederholt werden muss. Dies ist aufwendig sowohl bezüglich der Bearbeitungszeit für den Prozess in dem Mikrocomputer als auch in Bezug auf den Aufwand, um die Prozesse in einem Programm bei einer bestimmten Netzwerkarchitektur verschiedenen Mikrocomputern zuzuweisen.
  • Es sind Vorrichtungen für das Weiterleiten von Nachrichten verschiedener Art bekannt. Manche sind speziell für eine bestimmte Netzwerkarchitektur ausgelegt, während andere so funktionieren, dass Switch-Kanäle zwischen den verarbeitenden Vorrichtungen vorgesehen sind, die mit der Router-Vorrichtung verbunden sind. Bei vielen Netzen speisen die Router-Vorrichtungen jeweils ein Paket ein, legen seinen Zielort fest und schicken das Paket an die nächste Vorrichtung. Dies ist insofern nachteilig, als in jeder Vorrichtung Speicherplatz für die übermittelten Pakete benötigt wird und möglicherweise große Verzögerungen zwischen Ausgabe eines Pakets und seinem Empfang entstehen. Bislang gibt es keine flexible, schnelle und effiziente Router-Vorrichtung für das Weiterleiten von Nachrichten in einem Netz.
  • In diesem Zusammenhang wird auf den Artikel "Hop-by-Hop Flow Control on Unreliable Connections" in IEEE International Conference of Communications, 1987, Communications-Sound to Light, Band 3, 7.–10. Juli 1987, Seattle, Seite 1683–1687 verwiesen. Hier wird die Ablaufsteuerung in Segmenten eines virtuellen Kreises durch ein Computernetz diskutiert.
  • In US 4 740 958 wird ein Datenübertragungssystem mit mehreren Verarbeitungsknoten beschrieben. Das Ziel besteht darin sicherzustellen, dass Puffer innerhalb der Verarbeitungsknoten nicht überlaufen, und dazu wird ein System von Bestätigungssigna len eingesetzt. Die Knoten werden durch ein Bündel von sechs optischen Fasern miteinander verbunden, wobei jede Faser ein Manchester-Code-Signal überträgt. Fünf der Fasern übertragen digitale Daten, die aus vier Datenbits und einem dazugehörigen Paritätsbit bestehen. Die sechste Faser überträgt ein Bestätigungssignal in Gegenrichtung. Das Bestätigungssignal wird verwendet, um Zähler zu steuern, die die Anzahl von Nachrichten speichern, die in dem Empfangspuffer zu einem bestimmten Kanal warten.
  • Dieses System benötigt eine eigene Faser für das Bestätigungssignal.
  • In US 4 380 063 wird ein Ablaufsteuerungsmechanismus für Block-Switch-Knoten beschrieben. Hier wird ein Pufferüberlauf vermieden, indem bei jedem Knoten ein Zähler für das Speichern der Angabe der verfügbaren Pufferkapazität am anderen Ende jeder Ausgangsverbindung vorgesehen wird. Wann immer eine Nachricht aus einem Puffer ausgelesen wird, wird ein Token oder ein Bestätigungssignal über die Verbindung zurückgeschickt, und dies wird verwendet, um den Zähler zu aktualisieren und anzuzeigen, dass die verfügbare Pufferkapazität zugenommen hat.
  • Token werden über eigene Token-Leitungen übertragen, so dass hierfür eigene Verbindungen zwischen den Knoten benötigt werden.
  • Es ist ein Ziel der vorliegenden Erfindung, ein Ablaufsteuerungssystem zu schaffen, das auf den Verbindungen zwischen den Knoten beruht, die für die normale Nachrichtenübertragung zur Verfügung stehen, so dass die Konnektivität in einem Netz von Routern vereinfacht wird.
  • Die vorliegende Erfindung bezieht sich insbesondere, jedoch nicht ausschließlich auf Netze mit untereinander kommunizierenden Mikrocomputern und anderen Vorrichtungen. Sie ist insbesondere einsetzbar bei der Kommunikation zwischen Vorrichtungen, die über Paare von unidirektionalen Kommunikationsleitungen verbunden sind, über die serielle Bitpakete in einem oder mehreren Formaten übertragen werden.
  • Gemäß der vorliegenden Erfindung wird eine Kommunikationsvorrichtung zum Übertragen und Empfangen von Nachrichten mit einer Eingangsschaltung geschaffen, die eine Speichervorrichtung zum Abspeichern von Daten und einen Empfangseingang zum Empfangen von Eingangsdaten umfasst, einem Zähler für das Abzählen des Umfangs von Daten, die in der Speichervorrichtung gespeichert sind, und eine Ausgangsschaltung zum Übertragen eines Ablaufsteuerungscodes vom Ausgang aus, wenn genügend Speicherkapazität in der Speichervorrichtung für einen vorgegebenen Umfang von Daten vorhanden ist, wobei die Ausgangsschaltung mit einem Dateneingang zum Empfangen einer ersten Folge von Daten und einem Ablaufsteuerungsanforderungseingang für das Empfangen von Ablaufsteuerungsinformation ausgestattet ist, wobei die Eingangsschaltung mit der Ausgangsschaltung verbunden ist, um die Ablaufsteuerungsinformation über den Ablaufsteuerungsanforderungseingang bereit zu stellen, die dadurch gekennzeichnet ist, dass die Ausgangsschaltung dazu dient, die Daten der ersten Folge und die Ablaufsteuerungsinformation in mehrere Ausgangscodes zu wandeln, wobei jeweils eine vorgegebene Bitlänge festgelegt ist, und um die Ausgangscodes als eine Ausgangsfolge über den Ausgang zu übertragen, wobei die Codes aus einer Gruppe von Codes ausgewählt werden, wobei eine Menge von diesen als Datencodes bezeichnet wird und einer, der sich nicht in dieser Menge befindet, als Ablaufsteuerungscode bezeichnet wird, und dass die Eingangsdaten in Form einer Folge von ankommenden Codes vorliegen und die Eingangsschaltung dazu dient, die ankommenden Codes der Eingangsfolge in Dateneinheiten, die durch die Speicherschaltung abgespeichert werden, und in die Ablaufsteuerungsinformation zu wandeln, wobei die Ausgangsschaltung veranlasst wird, den Ablaufsteuerungscode in der Ausgangsfolge zu übertragen, wenn genügend Speicherkapazität in der Speichervorrichtung vorhanden ist.
  • Die Erfindung betrifft außerdem eine Kommunikationsvorrichtung mit der oben beschrieben Kombination aus Eingangs- und Ausgangsschaltung. Die Codes sind Bitsequenzen, die seriell oder parallel übertragen werden können. Hier wird hauptsächlich die serielle Übertragung erläutert.
  • Damit wird bei der vorliegenden Erfindung ein bestimmtes serielles Bitpaket (im Folgenden als Ablaufsteuerungs-Token bezeichnet) auf einer Kommunikationsleitung übertragen, um die Menge der anderen seriellen Bitpakete zu steuern, die über die andere Kommunikationsleitung übertragen werden. Dies ist insbesondere, aber nicht ausschließlich anwendbar auf die Kommunikation zwischen Vorrichtungen, bei denen Sequenzen von Bytes von Daten als Sequenzen von seriellen Bitpaketen übertragen werden, gefolgt von einem bestimmten seriellen Bitpaket, das als Ende einer Sequenzmarkierung dient. Insbesondere ist dies anwendbar auf die Kommunikation zwischen mehr als zwei Vorrichtungen, bei denen Sequenzen von Bytes von Daten als Sequenzen von seriellen Bitpaketen übertragen werden, wobei das erste oder mehrere erste Bytes jeder Sequenz den Header-Abschnitt bilden. Derartige Kommunikationssysteme werden in unserer britischen Patentanmeldung 8915136.9 (Page, White und Farrer, Aktenzeichen 64199) beschrieben.
  • Es wird auf die europäische Anmeldung 90307110.8 verwiesen, aus der diese Anmeldung als Teilanmeldung hervorgegangen ist. Bei der Anmeldung wird ein Verfahren zum Weiterleiten von Nachrichten beschrieben, bei dem das Lesen eines Header-Abschnittes ausgeführt wird, bevor das vollständige Paket empfangen wird mit, wonach die Übertragung des Nachrichtenabschnitts durch eine Router/Switch-Vorrichtung folgt Dies wird als "wormhole routing" bezeichnet. Es hat den erheblichen Vorteil gegenüber bekannten Weiterleitungstechniken, dass bei der bevorzugten Ausführungsform Pufferplatz nur für den Header-Abschnitt und nicht für das vollständige Paket benötigt wird.
  • Diese Anmeldung beschreibt außerdem die Auswahl eines Ausgangs einer Router/Switch-Vorrichtung für einen Bereich von Zielknotenidentifizierungen, hier als "interval labelling" bezeichnet.
  • Die Kommunikationsvorrichtung gemäß der vorliegenden Erfindung kann bei jeder Router/Switch-Vorrichtung in einem Netz mit Routern vorgesehen werden, das dazu dient, Nachrichten zwischen einer ersten Computervorrichtung am Ursprungsknoten und einer zweiten Computervorrichtung am Zielknoten weiterzuleiten, wobei jeder Paketausgang von dem Ursprungsknoten durch den Zielknoten bestätigt wird, wenn das Paket dort empfangen wurde. Hierzu ist die Schaltung zur Erzeugung von Paketen der Computervorrichtungen in der Lage, ein Bestätigungspaket bei Empfang eines Datenpakets zu erzeugen. In diesem Zusammenhang wird auf unsere britische Anmeldung 8915136.9 (Page, White und Farrer, Aktenzeichen 64199) verwiesen, in der Computervorrichtungen für den Aufbau von Computernetzen beschrieben werden, für die diese Erfindung besonders eingesetzt werden kann. Die Datenpakete und Bestätigungspakete bilden die Basis der synchronisierten Prozess-Prozess-Kommunikation zwischen Prozessen, die von Prozessoren entfernter Computervorrichtungen bearbeitet werden.
  • Unter synchronisierter Prozess-Prozess-Kommunikation ist zu verstehen, dass die kommunizierenden Prozesse sich auf korrespondierenden Programmstufen befinden, wenn die Nachrichtenübertragung durchgeführt wird. Eine Nachricht kann unter Umständen mehrere der oben genannten Datenpakete enthalten.
  • Erfindungsgemäß wird außerdem ein Verfahren zum Übertragen von mehreren Bitsequenzen von einer ersten Kommunikationsvorrichtung an eine zweite Kommunikationsvorrichtung angegeben, wobei die Bitsequenzen jeweils die gleiche Anzahl von Bits aufweisen und eine Gruppe bilden, wobei das Verfahren umfasst: Bezeichnen einer Bitsequenz aus der Gruppe als Ablaufsteuerungscode und anderer Bitsequenzen als Dateneinheiten und auf Seiten der zweiten Kommunikationsvorrichtung Abzählen der Anzahl von Dateneinheiten, die von der ersten Kommunikationsvorrichtung übertragen werden und in der zweiten Kommunikationsvorrichtung gespeichert werden, und für den Fall, dass die Kapazität bei der zweiten Kommunikationsvorrichtung für eine vorgegebene Anzahl von Dateneinheiten vorhanden ist, Übertragen des Ablaufsteuerungscodes von der zweiten Kommunikationsvorrichtung zu der ersten Kommunikationsvorrichtung, um die Übertragung der vorgegebenen Anzahl von Dateneinheiten an die zweite Kommunikationsvorrichtung freizugeben.
  • Bei einem bevorzugten Codierungsformat ist jede Bitsequenz sechs Bits lang, wobei jede Sequenz drei Einsen und drei Nullen enthält, von denen sechzehn Kombinationen verwendet werden, um verschiedene Werte mit vier Daten-Bits darzustellen, wobei eine Kombination verwendet wird, um das Ende der Nachrichtenpakete anzuzeigen, und eine Kombination verwendet wird, um den Ablauf der Datencodes und das Ende der Paketcodes in entgegengesetzter Richtung zu steuern.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren für das Codieren von Daten zur Übertragung von Nachrichten durch mehrere Router-Vorrichtungen als Bitsequenzen angegeben, wobei bei dem Verfahren die Bitsequenzen aus einer endlichen Menge von zwanzig Bitsequenzen ausgewählt werden, wobei jede Bitsequenz sechs Bits aus drei Einsen und drei Nullen aufweist, wobei eine erste Teilmenge der endlichen Menge, die aus sechzehn Bitsequenzen besteht, für die Verwendung als Datencodes gekennzeichnet wird, und eine zweite Teilmenge der endlichen Menge für die Verwendung als Steuercodes zum Steuern der Übertragung der Datencodes gekennzeichnet wird, wobei die zweite Teilmenge aus vier Bitsequenzen besteht, die nicht Teil der ersten Teilmenge sind, wobei ein erster der Steuercodes als Ablaufsteuerungscode zum Steuern des Umfangs von Datencodes bei der Übertragung zwischen einer Ursprungsvorrichtung und einer Zielvorrichtung gekennzeichnet wird, ein zweiter der Steuercodes als Nullcode zum Aufrechterhalten der fortlaufenden Übertragung, wenn es keinen Datencode zum Übertragen gibt, gekennzeichnet wird, und ein dritter der Steuercodes als ein Paketende-Code gekennzeichnet wird, durch den das Ende eines Paketes identifiziert wird, das zusammen mit diesem Paketende-Code wenigstens einen Code enthält.
  • Zum besseren Verständnis der vorliegenden Erfindung und zum Nachweis, wie diese umgesetzt werden kann, bezieht sich das Folgende auf das Beispiel in den beigefügten Zeichnungen.
  • 1 ist ein Blockdiagramm einer Router/Switch-Vorrichtung.
  • 2 ist ein Blockdiagramm einer Kommunikationsvorrichtung der Router/Switch-Vorrichtung.
  • 3 ist ein Blockdiagramm des Header-Abschnitt-Puffers der Router/Switch-Vorrichtung.
  • 4 ist ein Blockdiagramm der Header-Leseschaltung der Router/Switch-Vorrichtung.
  • 5 ist ein Blockdiagramm des Random-Header-Generators.
  • 6 ist ein Blockdiagramm der Header-Löschschaltung.
  • 7 zeigt einen Teil der Switch-Schaltung der Router/Switch-Vorrichtung.
  • 8 zeigt den Fluss der Daten durch einen Teil der Switch-Schaltung.
  • 9 zeigt die externen Verbindungen zu einem der Switch-Elemente der Switch-Schaltung.
  • 10 ist ein Blockdiagramm der Struktur eines Switch-Elements.
  • 11 ist ein Beispiel eines Computergitternetzes.
  • 1 zeigt die grundsätzlichen Aufbaumerkmale einer Router/Switch-Vorrichtung 1 mit einer Kommunikationsvorrichtung gemäß einer bevorzugten Ausführungsform der Erfindung. In 1 stellen dick gezeichnete Pfeile Datenpfade dar, während dünn gezeichnete Pfeile Befehlspfade sind. Die Router/Switch-Vorrichtung beinhaltet eine Switch-Schaltung in Form eines Kreuzschienenschalters 10, über den irgendeiner von mehreren Nachrichteneingängen 12a, ..., 12n mit irgendeinem von mehreren Nachrichtenausgängen 14a, ..., 14n verbunden werden kann. Bei einer bevorzugten Ausführungsform gibt es 32 Eingänge und 32 Ausgänge, die paarweise 32 Nachrichtenverbindungen bilden. Der Kreuzschienenschalter umfasst eine Switch-Schaltung 32 für das Verbinden der Ausgänge, die verhindert, dass mehr als ein Eingang mit jedem Ausgang zu irgendeiner Zeit verbunden wird. Aus Gründen der Klarheit sind nur zwei Verbindungen dargestellt, die mit La, Ln bezeichnet sind und durch eine unterbrochene Linie um die Komponenten der Verbindung herum angedeutet sind. Die folgende Beschreibung bezieht sich auf die Verbindung La, aber alle anderen Verbindungen sind genauso geeignet für die mögliche gemeinsame Nutzung einiger ihrer Komponenten, was später erläutert wird.
  • Die Verbindung La beinhaltet eine Kommunikationsvorrichtung, die hier als Verbindungsmodul 18 bezeichnet wird, das dazu dient, die Router/Switch-Vorrichtung mit einer weiteren Router/Switch-Vorrichtung oder irgendeiner anderen Vorrichtung zu verbinden, und die zum Empfangen und Senden von Nachrichtenpaketen an und von der Router/Switch-Vorrichtung ausgelegt ist. Diese Verbindung kann durch ein bidirektionales Paar von unidirektionalen Kanälen 4a, 6a hergestellt werden. Jedes Nachrichtenpaket hat ein serielles Datenformat und beinhaltet einen Header zum Identifizieren des Zielknotens des Paketes. Ein Ziel- oder Ursprungsknoten in einem Computernetz ist im Allge meinen, aber nicht immer eine Computervorrichtung, mit der Prozesse durchgeführt werden können.
  • Serielles Datenformat
  • Ein besonders geeignetes serielles Datenformat für die Verbindungsmodule ist die getaktete Daten-Codierung (clock-with-data encoding). Indem drei Null-Bits und drei Eins-Bits jeweils als Abschnitt mit sechs Bits gesendet werden, bleibt die Strombilanz ausgeglichen (DC-balance), und das Taktsignal kann unter Einsatz eines Phasenkreises (phase-locked loop) gewonnen werden. Diese Technik wird als 3-aus-6-Codierung bezeichnet. Es gibt 20 unterschiedliche 3-aus-6-Codes. Um Daten-Bytes effizient zu übertragen, werden 16 dieser Codes ausgewählt, um die verschiedenen möglichen Werte eines Halbbytes (4 Bit nibble) darzustellen. Damit kann ein Byte als zwei Codes gesendet werden. Wo die Übertragung kontinuierlich erfolgen muss (beispielsweise in einem Phasenkreissystem), ist es notwendig, einen einzelnen Nullcode vorzusehen, der übertragen wird, wenn kein anderer Code übertragen wird.
  • Wenn ein Nachrichtenpaket direkt von einer Ursprungsvorrichtung an eine Zielvorrichtung geschickt wird, ist es nicht notwendig, dass die Länge des Paketes innerhalb des Paketes angezeigt wird; es ist lediglich notwendig, sicherzustellen, dass die Ursprungsvorrichtung und die Zielvorrichtung bezüglich der Länge übereinstimmen. Wo jedoch Pakete Router/Switch-Vorrichtungen durchlaufen, muss es möglich sein, dass diese Router/Switch-Vorrichtungen die Länge des durchlaufenden Paketes bestimmen, so dass die (temporär verbundene) Route durch die Switch-Schaltung 10 abgekoppelt werden kann, wenn das Ende des Paketes ausgegeben worden ist. Außer für den Fall, dass jedes Paket die gleiche Länge hat, ist es deswegen erforderlich, dass in dem Protokoll die Anzeige der Paketlänge vorgesehen ist, entweder durch eine Abschlussmarkierung oder eine Längenangabe am Anfang. Diese Einführung einer Längenangabe am Anfang erhöht die Verzögerung des Pakets durch die Router/Switch-Vorrichtung und macht außerdem eine Logikeinrichtung erforderlich, um das Paket abzuzählen. Eine bessere Technik besteht daher darin, ein Steuerungs-Token als Paketendmarkierung zu reservieren.
  • Das vollständige Protokoll eines 3-aus-6-Codierungssystems wird daher in der folgenden Tabelle wiedergegeben. Welches Bitmuster exakt welchem Token entspricht, ist vollständig beliebig und wird daher nicht gezeigt.
  • Figure 00080001
  • Es versteht sich, dass das 3-aus-6-Codierungsschema nur eines von vielen ist, die verwendet werden können, vorausgesetzt, dass die obigen Anforderungen bezüglich Paketende und (die weiter unten erläuterten) "Ablaufsteuerungs-Token" erfüllt werden. Insbesondere versteht sich, dass keine Notwendigkeit besteht, dass die Steuercodierungen das gleiche Format oder die gleiche Länge wie die codierten Datenwerte haben, noch dass die Daten als Folge von 4-Bit-Werten übertragen werden, vorausgesetzt, dass eine Folge von Bytes effizient übertragen werden kann.
  • Das Verbindungsmodul ist mit einem Header-Puffer 20 über einen Eingangsdatenpfad 36 und einen Ausgangsbefehlspfad 34 verbunden. Das Verbindungsmodul ist außerdem mit einer Header-Abstreifvorrichtung 28 über einen Ausgangsdatenpfad 40 und einen Eingangsbefehlspfad 38 verbunden. Der Header-Puffer 20 kann mit der Header-Leseschaltung in der Form eines Intervallwahlschalters 22 über Discard- und Select-Pfade 21, 61 kommunizieren und ist permanent mit dem Intervallwahlschalter 22 über eine Header-Verbindung 23 verbunden. Der Intervallwahlschalter 22 liest den Header-Abschnitt eines ankommenden Pakets, bestimmt daraufhin den Ausgang des Switch-Schaltkreises 10, an den die Nachricht gesendet werden soll, und setzt den Switch-Schaltkreis 10 entsprechend. Hierzu ermöglicht ein Befehls-Adresspfad 26 dem Intervallwahlschalter 22, mit der Switch-Schaltung 10 zu kommunizieren. Die Switch-Schaltung kann Befehle an den Header-Puffer über den Pfad 19 schicken. Der Header-Puffer 20 kann außerdem mit einem Random-Header-Generator 24 über Request- und Header-Pfad 2, 27 kommunizieren, wobei deren Sinn und Zweck später erläutert wird. Ein Nachrichtenpaket wird von der Switch-Vorrichtung über die Header-Abstreifvorrichtung 28 ausgegeben, wobei deren Sinn und Zweck ebenfalls später erläutert wird. Die Header-Abstreifvorrichtung kann Befehle an die und von der Switch-Schaltung 10 über die Pfade 29, 31, 7 senden bzw. empfangen. Die Bezugsziffer 30 bezeichnet die Initialisierungsschaltung, die verwendet wird, um die Router/Switch-Vorrichtung für den Betrieb einzurichten. Im Folgenden wird der Betrieb jeder Komponente der Router/Switch-Vorrichtung beschrieben.
  • Es versteht sich, dass die Notwendigkeit, einen Paket-Header vor jedem Datenblock zu übertragen, die Zeit reduziert, die effektiv für die Übertragung von Daten verfügbar ist, und damit die effektive Datenbandbreite reduziert. Damit ist es wünschens wert, die Paket-Header so kurz wie möglich zu halten. Es ist jedoch auch wünschenswert, dass man irgendeine einer großen Anzahl von Anschlussverbindungen in einem Netz spezifizieren kann, wenn es sich um ein großes Netz handelt. Zu diesem Zweck ist es mit der vorliegenden Erfindung möglich, die Größe der Paket-Header zu variieren, so dass sie ausreichend groß gemacht werden können, damit alle Anschlussverbindungen in einem großen Netz spezifiziert werden können, oder dass sie im Fall eines kleinen Netzes kleiner gemacht werden können, um die Verringerung der effektiven Datenbandbreite zu reduzieren. Bei der bevorzugten Ausführungsform umfasst jede Router-Vorrichtung ein Flag, das festlegt, ob Paket-Header eine Länge von einem oder zwei Bytes haben. Ein Byte ist die kleinste Größe des Headers, bei der die Pakete noch nicht als aus einer Sequenz von Bytes bestehend angesehen werden, und zwei Bytes reichen aus, um 65.536 Anschlussverbindungen unterscheiden zu können.
  • Verbindungsmodule und ihr Ablaufsteuerungsmechanismus
  • Jedes Verbindungsmodul 18 lässt Anfragen nach Daten von dem Header-Puffer 20 über den Pfad 34 zu und gibt anschließend Daten über den Pfad 36 aus. Es werden auch Anfragen nach Daten von der Header-Abstreifvorrichtung 28 über den Pfad 38 ausgegeben, und anschließend werden Daten über den Pfad 40 empfangen. Es ist wichtig, dass die Ablaufsteuerung zwischen der Router/Switch-Vorrichtung und einer damit über das Verbindungsmodul verbundenen Vorrichtung aufrechterhalten bleibt. Um dies zu gewährleisten, multiplext das Verbindungsmodul 18 die Ablaufsteuerungsinformation in Datenfolgen zwischen der Router/Switch-Vorrichtung und einer damit verbundenen Vorrichtung. Um dies zu gewährleisten, ohne dass zu viel Bandbreite verbraucht wird, und um damit die Übertragungsrate von Daten so groß wie möglich zu lassen, fassen die Verbindungsmodule die Daten zu Gruppen (batches) zusammen, anstatt sie einzeln zu übertragen. Hierzu beinhaltet jedes Verbindungsmodul einen Puffer, der groß genug ist, um eine vollständige Gruppe von Daten (batch) aufzunehmen, und der in der Lage ist, zu zählen, wie viele Daten sowohl noch gesendet als auch noch empfangen werden müssen. Eine einfache Art, den Fluss der Gruppen von Daten (batches) zu regulieren, besteht darin, ein Ablaufsteuerungs-Token in Form eines bestimmten Codes aus der Menge von Codes zu reservieren, die durch das Verbindungsmodul 18 gesendet und empfangen werden können. Ein Ablaufsteuerungs-Token wird übertragen, wann immer das Verbindungsmodul 18 der Router/Switch-Vorrichtung ausreichend Pufferraum für eine vollständige Gruppe (batch) von Daten aufweist.
  • Die Verbindungsmodule regulieren den Datenfluss unabhängig von den Paketen, die darin enthalten sein können. Zu jedem Zeitpunkt können die Daten, die durch ein Verbindungsmodul gepuffert werden, einen Teil oder das Ganze eines oder mehrerer aufeinander folgender Pakete bilden.
  • In 2 umfasst jedes Verbindungsmodul: einen Ausgangspuffer 42, der Daten und Ablaufsteuerungsinformation in ein serielles Format für die Übertragung wandelt und dies mit einer Frequenz übermittelt, die durch ein Taktsignal 0 vorgegeben wird, und einen Eingangspuffer 44, der das serielle Format in Daten, die gespeichert werden, sowie Ablaufsteuerungsinformation, die von ihm an den Ausgangspuffer 42 übertragen werden, decodiert.
  • Die Einheit der Ablaufsteuerung ist eine Ablaufsteuerungsgruppe (batch). Jede Datengruppe besteht aus mehreren Codes, wobei jeder Code entweder Daten mit vier Bits oder einen Paketende-Code darstellt. Beispielsweise kann die Ablaufsteuerungsgruppe aus sechzehn Codes bestehen.
  • Jedes Verbindungsmodul, das mit einer separaten Vorrichtung verbunden ist, die ihr eigenes Verbindungsmodul umfasst, oder einer ähnlichen Kommunikationsvorrichtung, hält eine Ziffer für die Anzahl der Daten fest, die an das andere Verbindungsmodul geschickt werden können, ohne dass weitere Ablaufsteuerungsinformation empfangen wird. Diese Ziffer wird Kredit genannt. Jede Verbindung eines verbundenen Paars von Verbindungsmodulen hält eine Ziffer für die Anzahl von Daten fest, die durch das andere Verbindungsmodul gesendet werden können, ohne dass weitere Ablaufsteuerungsinformation gesendet wird. Diese Ziffer wird Debit genannt.
  • Jede Verbindung eines verbundenen Paars von Verbindungsmodulen zeigt an, dass sie bereit ist, eine weitere Datengruppe zu empfangen, indem ein Ablaufsteuerungs-Token gesendet wird. Wenn dies der Fall ist, erhöht sie ihren Debit um die Anzahl von Daten in der Gruppe. Wenn die andere Verbindung des Paars den Ablaufsteuerungs-Token empfängt, so erhöht sie ihren Kredit um die Zahl der Daten in der Gruppe.
  • Der Ablaufsteuerungsmechanismus der Verbindungsmodule wird im Folgenden mit Bezug auf 2 erläutert, wobei angenommen wird, dass ein serielles Datenformat ähnlich dem oben beschriebenen vorliegt. Es versteht sich jedoch, dass der Ablaufsteuerungsmechanismus im Wesentlichen auf die gleiche Art arbeitet, wenn ein anderes Datenformat verwendet wird, oder sogar wenn Daten als parallele Signale anstatt in einem seriellen Format gesendet werden.
  • Wann immer der Eingangspuffer 44 auf Kanal 4 ein Ablaufsteuerungs-Token empfängt und decodiert, signalisiert er dies dem Ausgangspuffer auf dem Pfad 41 "fct.seen". Wann immer der Ausgangspuffer ein Signal auf dem Pfad 41 "fct.seen" empfängt, erhöht er seine Ziffer für die Anzahl von Codes, die noch übertragen werden sollen (Kredit), um die Größe der Ablaufsteuerungsgruppe (batch).
  • Der Eingangpuffer 44 hält eine Ziffer für die Zahl der Codes fest, die empfangen werden sollen, bevor der Kredit des angeschlossenen Verbindungsmoduls der separaten Vorrichtung aufgebraucht ist. Diese Ziffer sollte die gleiche wie die entsprechende Kreditziffer in dem Ausgangspuffer des verbundenem Verbindungsmoduls der separaten Vorrichtung sein, die mit der Router/Switch-Vorrichtung verbunden ist, abgesehen von Abweichungen auf Grund von Codes, die zwischen den beiden Verbindungsmodulen gerade übertragen werden.
  • Der Eingangspuffer 44 enthält einen First in-First out-Puffer (FIFO), der wenigstens so viele Codes puffern kann, wie in einer Ablaufsteuerungsgruppe (batch) enthalten sind. Die Codes, außer den Nullcodes und den Ablaufsteuerungs-Token, werden in dem Puffer gespeichert, und in dem Puffer wird eine Ziffer bezüglich der Anzahl der Codes festgehalten. Wenn ein Signal auf dem Pfad 34 "request.in" empfangen wird, so beseitigt der Eingangspuffer 44 das erste Element aus dem FIFO, sendet es auf dem Pfad 36 "data.out" und reduziert die Ziffer der Anzahl von Codes, die in dem FIFO gespeichert sind, es sei denn, es gibt keine Codes in dem FIFO, wobei in diesem Fall der erste Code, der außer den Nullcodes und den Ablaufsteuerungs-Token, empfangen wird, direkt auf dem Pfad "data.out" gesendet wird.
  • Wann immer die Summe der Anzahl von Codes in dem Eingangspuffer 44 und der Anzahl von Codes, die empfangen werden sollen, bevor die aktuelle Ablaufsteuerung aufgebraucht ist (Debit), kleiner ist als die Differenz zwischen der Größe des Puffers und der Größe einer AblaufsteuerungsGruppe, signalisiert der Eingangspuffer 44 dies dem Aufgangspuffer 42 auf dem Pfad "send.fct". Der Ausgangspuffer sendet dann einen Ablaufsteuerungs-Token bei der nächsten Gelegenheit.
  • Es versteht sich, dass für den Fall, dass die Größe des Eingangspuffers FIFO exakt gleich der Größe der Ablaufsteuerungsgruppe (batch) ist, der Eingangspuffer dem Ausgangspuffer signalisieren wird, ein Ablaufsteuerungs-Token nur zu senden, wenn der Eingangspuffer FIFO vollständig leer ist und die aktuelle Ablaufsteuerungsgruppe vollständig erledigt ist. Aus diesem Grund ist es von Vorteil, den Eingangspuffer FIFO in Bezug auf die Kapazität etwas größer als die Größe der Ablaufsteuerungsgruppe zu machen, damit der Datenfluss nicht unterbrochen wird.
  • Im Folgenden werden der Eingangs- und der Ausgangspuffer in der OCCAM 2-Sprache erläutert. Diese Beschreibungscodes werden als Bytes dargestellt, und Signale werden durch Kanäle dargestellt, die nur Boolsche-Werte enthalten. Die OCCAM-Sprache wird in "The OCCAM 2 Reference Manual" beschrieben, auf das hiermit verwiesen wird.
  • In OCCAM 2 wird das Verbindungsmodul 18 durch eine parallele Zusammensetzung der Eingangs- und Ausgangspuffer 44, 42 dargestellt. Die Pfade aus dem und in das Modul seien in allgemeinerer Art und Weise definiert. Dann wird das Verbindungsmodul dargestellt durch:
  • Figure 00120001
  • Der Eingangspuffer wird in dem Teil von OCCAM beschrieben, der in Anhang 1 und 1A wiedergegeben ist. Der FIFO-Speicher wird hier als Ringpuffer mit einer Kapazität von "input.buffer.size" mit Zeigern darauf ("first" und "last") implementiert.
  • Dies entspricht der Verwendung eines kleinen Teils eines Schreib-/Lesespeichers in dem Eingangspuffer selbst. Es versteht sich, dass andere Techniken verwendet werden könnten, um den FIFO-Speicher zu implementieren, ohne dass dadurch der Ablaufsteuerungsmechanismus der Verbindungsmodule betroffen wird. Die Eingangspuffergröße muss wenigstens so groß wie die Größe der Ablaufsteuerungsgruppe (batch) sein. Wenn die Ablaufsteuerungsgruppe (batch) eine Größe von 16 hat, so müsste die Eingangspuffergröße wenigstens 16 betragen, und für einen möglichst störungsfreien Datenfluss könnte sie noch etwas größer sein, beispielsweise 20.
  • Der Ausgangspuffer enthält außerdem einen kurzen FIFO-Speicher, um den Datenfluss störungsfrei zu bewältigen. Es gibt keine Beschränkung in Bezug auf die Größe dieses FIFO-Speichers auf Grund des Ablaufsteuerungsmechanismus. Der Ausgangspuffer fordert dazu auf, Daten zu senden, indem er dies über den Pfad 38 "request.out" signalisiert, wann immer Platz zum Puffern eines Codes vorhanden ist. Zu jedem Zeitpunkt danach kann er einen Code empfangen, der auf den Pfad "data.in" übertragen wird.
  • Der Ausgangspuffer hält eine Ziffer bezüglich der Zahl von Codes fest, die noch übertragen werden müssen, bevor die gegenwärtige Ablaufsteuerungsgruppe (batch) erledigt ist. Zu jedem Zeitpunkt, zu dem ein Code außer einem Nullcode oder einem Ablaufsteuerungs-Token übertragen wird, wird diese Ziffer um eins reduziert.
  • Der Ausgangspuffer wird durch den Teil von OCCAM in Anhang 2 dargestellt. Er enthält einen FIFO-Speicher mit der Kapazität "output.buffer.size", die zum Beispiel 3 sein kann. Dieser Teil von OCCAM (Anhang 2) zeigt eine alternative Implementierung des FIFO-Speichers als lineare Matrix, deren Inhalt sukzessive reduziert wird, wann immer ein Code unten weggenommen wird. Es versteht sich, dass eine ähnliche Implementierung für den Eingangspuffer verwendet werden kann bzw. dass die Ringpufferimplementierung in dem Eingangspuffer in dem Ausgangspuffer ebenfalls hätte verwendet werden können.
  • Es versteht sich, dass ein äquivalenter Grad an Ablaufsteuerung in einem alternativen System erreicht werden kann, bei dem der Ausgangspuffer seinen "Kredit" ursprünglich auf die Größe einer Ablaufsteuerungsgruppe setzt und der Eingangspuffer seine "ausstehenden Token" anfangs auf den gleichen Wert setzt, anstatt dass beide zu Anfang auf null gesetzt werden, wie es hier gezeigt ist. In diesem Fall würde ein Ablaufsteuerungs-Token nur gesendet werden, nachdem die erste Ablaufsteuerungsgruppe übertragen wurde, anstatt vorher, wie es in der obigen Beschreibung der Fall war.
  • Es folgt aus Gründen der Vollständigkeit eine Beschreibung der weiteren Komponenten der Router/Switch-Vorrichtung nach 1.
  • Header-Puffer
  • Die Struktur des Header-Puffers 20 bei jeder Verbindung La, ..., Ln ist in 3 dargestellt. Der Header-Puffer wird durch eine Steuerlogik gesteuert, die allgemein durch Block 51 dargestellt ist. Es gibt einen Token-Puffer 50, in dem ein Token abgelegt werden kann, der entweder ein Daten-Halbbyte (nibble) oder ein Paketende-Token sein kann. Dieser Token-Puffer 50 signalisiert, wenn er einen Token über den Pfad 36 erhalten hat, der ein Paketende-Token ist, und zwar auf der Leitung "Got.EOP", und signalisiert auf der Leitung "Got.token.b", sobald er einen anderen Token erhält. Er übermittelt seinen Inhalt an eine Switch-Vorrichtung 52, wenn er ein Signal von der Steuerlogik 51 erhält, und zwar auf "Send.t." Die Switch-Vorrichtung wird durch die Steuerlogik 51 gesteuert, so dass für den Fall, dass das Signal "Set.s1" hoch ist, die Switch-Vorrichtung 52 ihr Eingangssignal an einen Multiplexer 54 sendet. Wenn das Signal "Set.s1" niedrig ist, übermittelt die Switch-Vorrichtung 52 ihr Eingangssignal an den Ausgangsmultiplexer 56. Die Multiplexer 54, 56 werden durch die Signale "Set.m2" und "Set.m1" von der Steuerlogik 51 gesteuert. Der Header-Puffer 20 beinhaltet außerdem einen First in-First out-Puffer (FIFO) 58 mit ausreichend Kapazität für einen 2-Byte-Header (4 Token). Er ist permanent mit dem Intervallwahlschalter 22 über die Header-Verbindung 23 verbunden, die in 3 nicht dargestellt ist. Wenn das Signal "Set.m1" hoch ist, sendet der Multiplexer 56 das Ausgangssignal des FIFO-Speichers an den Kanal "DataOut" 12a, wenn das Signal "Set.m1" niedrig ist, sendet der Ausgangsmultiplexer 56 das Ausgangssignal der Switch-Vorrichtung 52 an den Pfad 12a "DataOut". Wenn das Signal "Set.m2" hoch ist, sendet der Multiplexer 54 das Ausgangssignal des Random-Header-Generators 24 (1), das über den Pfad 27 empfangen wurde, an den FIFO-Speicher. Wenn das Signal "Set.m2" niedrig ist, sendet der Multiplexer 54 das Ausgangssignal der Switch-Vorrichtung 52 an den FIFO-Speicher. Sobald der FIFO-Speicher 58 ein Token empfängt, signalisiert er dies auf dem Pfad "Got.token.f", es sei denn, er wird durch den Token aufgefüllt, wobei er dies in diesem Fall auf dem Pfad "Full" signalisiert. Er gibt einen Token aus, wann immer er ein Signal auf dem Pfad "Send.h" empfängt. Wenn er leer wird, signalisiert er dies auf dem Pfad "Empty". Wenn er einen Eingang auf dem Pfad "Reset" empfängt, so lässt er seinen gesamten Inhalt unbeachtet, signalisiert dies allerdings nicht auf dem Pfad "Empty". Die effektive Größe des FIFO-Speichers wird durch ein dazugehöriges Flag 60 gesteuert, das ein Paket-Header-Längen-Flag ist. Wenn dieses Flag gesetzt ist, so sind die Paket-Header zwei Bytes lang, und der FIFO-Speicher signalisiert dies auf dem Pfad "Full" nur, wenn er vier Token enthält. Wenn diese Flag nicht gesetzt ist, sind die Paket-Header ein Byte lang, und der FIFO-Speicher signalisiert dies auf dem Pfad "Full" nur, wenn er zwei Token enthält. In diesem Fall werden die beiden oberen Token des FIFO-Speichers auf null gesetzt. Die Paket-Header-Längen-Flags 60 werden bei allen Verbindungen La bis Ln identisch gesetzt, und es versteht sich, dass sie mit einem einzigen Latch implementiert werden können, dessen Ausgang fächerförmig an alle Verbindungen ausgegeben wird. Es gibt außerdem ein Flag 62 zu der Steuerlogik 51, das das Randomisierungs-Flag für die Verbindung ist. Wenn dieses Flag gesetzt wird, erhält man einen zufalls-Header von dem Random-Header-Generator 24 für jedes Paket, das über die Verbindung ankommt. Um dieses Flag für jede Verbindung anders setzen zu können, gibt es bei jeder Verbindung einen separaten Latch.
  • Das Verhalten des Header-Puffers 20 hängt von den Vorgaben dieses Randomisierungs-Flags der Verbindung La ab:
    wenn das Flag 62 gesetzt wird, signalisiert der Header-Puffer 20 dies dem Random-Header-Generator 24 und speichert den Zufalls-Header, der zurückgeschickt wird. Sobald irgendwelche Daten von dem Verbindungsmodul 18 ankommen, signalisiert er dies auf dem Pfad 61 "Select" dem angeschlossenen Intervallwahlschalter 22;
    wenn das Flag 62 nicht gesetzt ist, wird der Header-Puffer mit den ersten ankommenden Daten gefüllt, und wenn er einen Header enthält (1 oder 2 Bytes, je nach Vorgabe der Paket-Header-Länge), so signalisiert er dies dem angeschlossenen Intervallwahlschalter 22.
  • Wenn der Wahlschalter 22 dem Puffer 20 signalisiert, dass der Header unbeachtet bleiben soll, so erfolgt dies durch Zurücksetzen des FIFO-Speichers 58, und der Header-Puffer wird durch den Datenstrom wieder aufgefüllt, und wenn er einen Header enthält (1 oder 2 Bytes, je nach Vorgabe der Paket-Header-Länge), so signalisiert er dies dem angeschlossenen Intervallwahlschalter. Der Header-Puffer überträgt seinen Inhalt als Reaktion auf Anfragen, die von dem Kreuzschienenschalter 10 empfangen wurden. Wenn das Randomisierungs-Flag oder die Verbindung gesetzt worden ist, so wird der Header-Puffer von selbst durch den Random-Header-Generator gefüllt, andernfalls wird er von selbst durch die Datenfolge gefüllt, und der Zyklus wird nach Weiterleitung eines Paketende-Tokens wiederholt.
  • Intervallwahlschalter
  • Der Betrieb des Intervallwahlschalters 22 wird im Folgenden mit Bezug auf 4 erläutert. Der Intervallwahlschalter 22 fällt die Entscheidung über die Weiterleitung bei jedem Paket mit Hilfe eines Intervallwahlalgorithmus. Der Inhalt des FIFO-Speichers 58 des Header-Puffers 20 wird kontinuierlich einer "Leiter" von 33 Basis- und Grenzwertkomparatoren 66a, ..., 66n zugeführt, von denen vier rechts in der Figur dargestellt sind. Es gibt 33 Komparatoren, da es in der beschriebenen Ausführungsform 32 Verbindungen gibt. Jeder Komparator ist mit einem Paar von Registern 68a, ..., 68n verbunden, außer dem untersten Komparator 66a, dessen Basiswert fest auf null liegt. Jedes Register 68i-1 wird mit dem Basiswert eines Komparators 68i sowie dem Grenzwert eines anderen, 68i-1, verbunden, außer dem obersten Register 68n, das nur mit dem Grenzwert des obersten Komparators 66n verbunden ist. Im Normalbetrieb werden die Register mit einer nicht abnehmenden Länge von 16-Bit-Werten bei jeder Verbindung programmiert, so dass die Spitze der "Leiter" nicht null ist. Der Ausgang jedes Komparators wird mit einem jeweiligen 5 Bit-Register 70a, ..., 70n verbunden, dessen Inhalt an ein Adress-Gate 72 geschickt wird, wenn der Paket-Header größer als oder gleich dem Basiswert und kleiner als der Grenzwert ist, die mit dem entsprechenden Komparator verbunden sind. Unten in 4 ist ein "Portal"-Komparator 74 für Einzelwerte gezeigt, dessen Ausgänge durch ein Select-Gate 73 gegatet werden, das das "Select"-Signal von dem Header-Puffer 20 erhält. Wenn das Select-Signal von dem Header-Puffer gesendet wird, so ist der Inhalt des FIFO Header-Puffers 58 der Paket-Header, der über den Header-Pfad 23 mit dem Eingang des Komparators 74 verbunden ist. Wenn der Paket-Header nicht gleich dem Inhalt eines 16-Bit-Registers 76 ist, das mit dem Komparator 74 verbunden ist, wird ein "Nein"-Signal an das Select-Gate 73 geschickt, das es dann möglich macht, dass die Adresse, die von der "Leiter" aus Basis- und Grenzwertkomparatoren 60a, ..., 66n erzeugt wird, über den Pfad 26 an den Kreuzschienenschalter 10 geschickt wird. Wenn der Paket-Header gleich dem Inhalt des 16-Bit-Registers 76 ist, das mit dem Komparator 74 verbunden ist, wird ein "Ja"-Signal an den Header-Puffer 20 gesendet, das ihm mitteilt, den Header auf dem Pfad 21 unbeachtet zu lassen. In diesem Fall wird der Ausgang der Komparatoren-Leiter nicht an den Kreuzschienenschalter 10 gesendet.
  • Random-Header-Generator
  • Der Betrieb des Random-Header-Generators wird im Folgenden mit Bezug auf 5 erläutert. Ein Zufallszahlengenerator 80, der oben in 5 gezeigt ist, erzeugt 16-Bit-Pseudozufallszahlen mit Hilfe eines Schieberegisters mit Rückkopplung oder auf eine andere Art. Wenn er ein Signal von einer Übertragseinheit 82 empfängt, die mit ihm verbunden ist, erzeugt er eine derartige Zahl. Die Übertragseinheit 82 berechnet den Übertrag dieser Zahl mit dem Wert, der in einem dazugehörigen 16-Bit-Register 83 gespeichert ist. Wenn die Übertragseinheit 82 ein Signal von einer Token-Einheit 86 erhält, sendet sie diesen 16-Bit-Rechnungsübertrag weiter und fordert eine weitere Pseudozufallszahl von dem Zufallszahlengenerator 80 an. Die Token-Einheit speichert den 16-Bit-Übertrag, bis sie eine Anfrage von dem Header-Puffer 20 über den Pfad 25 erhält. Sie sendet dann die niedrigsten vier Bits des Übertrags und verschiebt die restlichen Bits um vier Plätze nach unten. Sie wiederholt diese Aktion, bis sie die Anzahl von Halbbytes (nibbles) gesendet hat, die der Länge des Headers entsprechen (nämlich 2 oder 4, je nach Vorgabe des dazugehörigen Flags 60, wie es in 3 dargestellt ist), und wiederholt dann den Zyklus. Es versteht sich, dass der Bereich der Random-Header, die erzeugt wurden, beliebig verallgemeinert werden kann, indem ein zusätzliches 16-Bit-Register sowie ein Addierer vorgesehen wird, um seinen Inhalt zu dem Ausgang der Übertragseinheit hinzuzuzählen, bevor das Ergebnis an die Token-Einheit weitergeleitet wird.
  • Header-Abstreifvorrichtung
  • Der Betrieb der Header-Abstreifvorrichtung wird im Folgenden mit Bezug auf 6 beschrieben. Wie ersichtlich, gibt es einen einzigen Token-Puffer 85, der in der Tat identisch mit dem Token-Puffer 50 in dem Header-Puffer 20 (3) ist. Der Token-Puffer 85 signalisiert dies der Steuerlogik 84, wenn er einen Token über den Pfad 14a" DataIn" empfangen hat, der ein Paketende-Token ist, auf der Leitung "Got.EOP", und er signalisiert es der Steuerlogik 84 über die Leitung "Got.token.b", wann immer er einen anderen Token empfängt. Er überträgt den Inhalt auf dem "DataOut"-Pfad 40, wenn er von der Steuerlogik 84 ein Signal auf "Send.t" erhält.
  • Kreuzschienenschalter
  • Der Kreuzschienenschalter 10 ist eine 32-mal-32-Matrix aus Switch-Elementen 88. 7 zeigt einen Abschnitt des Kreuzschienenschalters 10 mit 20 Switch-Elementen mit dicken Pfeilen, die den Datenfluss andeuten. Anfragen bezüglich Datenfluss in entgegengesetzter Richtung sind in 7 nicht dargestellt. Ursprünglich sind alle Switch- Elemente "aus", d. h. im Zustand A in 7. Wenn der Eingang i mit dem Ausgang j verbunden werden soll, so wird das Switch-Element 88 (i, j) "ein"-geschaltet, und die Daten fließen von dem Eingang zu dem ausgewählten Ausgang, wie es in dem Zustand B in 7 gezeigt ist.
  • 8 zeigt den Datenfluss in einem 4-mal-5-Abschnitt des Kreuzschienenschalters 10, wenn zwei der Switch-Elemente Y und Z "ein"-geschaltet und alle anderen "aus"-geschaltet sind. Man beachte, dass bei dieser Konfiguration der Eingang 12b "in.2" mit dem Ausgang 14c "out.3" verbunden ist und dass der Eingang 12c "in.3" mit dem Ausgang 14b "out.2" verbunden ist. Man beachte, dass das Switch-Element U 88 (2, 2), dass sich im Zustand "aus" befindet, Daten für beide Verbindungen liefert. Man beachte außerdem, dass durch den "Ein"-Zustand der Schalter Y 88 (3, 2) und Z 88 (2, 3) der Schalter V 88 (3, 3) abgekoppelt wurde, aber dies hat keine Konsequenzen, da der Eingang "in.3" mit "out.2" über den Schalter Y verbunden ist, so dass die Switch-Vorrichtung V nicht unbedingt Daten von dem Eingang weiterleiten muss; und außerdem wurde der Ausgang "out.3" mit dem Eingang "in.2" verbunden. Die Entscheidungsschaltung 32 hat zur Folge, dass die Switch-Vorrichtung V auch keine Daten zum Ausgang "out.3" zu schicken braucht.
  • Die externen Verbindungen jedes Switch-Elements 88 (i, j) sind in 9 dargestellt. Die Leitung ADDR, die den Adresspfad 26 von dem Intervallwahlschalter 22 darstellt, ist mit all den Switch-Elementen in jeder Zeile verbunden, d. h. mit denen mit dem gleichen Wert für i. Diese Verbindungen werden im Folgenden genauer erläutert. Jedes Switch-Element 88 (i, j) des Kreuzschienenschalters ist identisch, und die Blockstruktur eines dieser Elemente ist in 10 gezeigt. Es gibt drei Hauptkomponenten: eine Switch-Vorrichtung 90, einen Komparator 92 und einen Arbiter-Server (ARB) 94, die in der europäischen Patentanmeldung 90307110.8 erläutert werden, aus der die vorliegende Anmeldung als Teilanmeldung hervorgegangen ist und auf die hiermit verwiesen wird.
  • Initialisierung von Flags und Registern
  • Die folgenden Parameter müssen vorgegeben werden, bevor die Router/Switch-Vorrichtung arbeiten kann:
    die Header-Paketlänge (1 oder 2 Bytes),
    die Komparatorvorgaben für die Intervallwahlschalter 22 und die dazugehörigen Ausgangsverbindungsnummern für jeden Bereich von Zielknotenidentifizierungen,
    der Portal-Komparatorwert für die Intervallwahlschalter 22,
    bei jeder Verbindung: es müssen die Flags "randomise on input" und "strip header on output" gesetzt werden,
    der Bereich der Zufalls-Header (wenn eines der Flags "randomise on input" gesetzt ist).
  • Diese müssen durch die Router/Switch-Vorrichtung eingegeben werden und in die entsprechenden Latch-Vorrichtungen und Register geladen werden. Dies kann auf viel-fache Art erfolgen, beispielsweise durch Senden vordefinierter Befehlscodes über eine extra vorgesehene Verbindung, die Kanäle zu allen Latch-Vorrichtungen und Registern enthält. Man beachte, dass alle Intervallwahlschalter und Random-Header-Generatoren identisch programmiert werden müssen. Diese Initialisierung ist grafisch in 1 durch die Initialisierungslogik 30 dargestellt.
  • Die Vorrichtung wurde mit einem Intervallwahlschalter und einem Random-Header-Generator pro Verbindung dargestellt und beschrieben. Es versteht sich, dass beide dieser Einheiten nur einmal oder zweimal pro Paketeingabe bei der Verbindung verwendet werden und damit im Prinzip von verschiedenen Verbindungen gemeinsam genutzt werden können, die durch einen Bus verbunden sind, wobei ein Entscheidungsschema (arbitration scheme) verwendet wird, um mehrfache gleichzeitige Anfragen nach Ressourcen aufzulösen. Beispielsweise könnte das Entscheidungsverfahren (arbitration method), das in dem Kreuzschienenschalter 10 verwendet wird, eingesetzt werden, um einen Intervallwahlschalter oder einen Header-Generator für mehrere Verbindungen zu nutzen.
  • 11 zeigt das Beispiel eines Netzes, bei dem mehrere Router/Switch-Vorrichtungen RS eingesetzt werden, um Nachrichten zwischen Ursprungsknoten und Zielknoten weiterzuleiten, die in 11 durch die Kreise N dargestellt sind. Die Router/Switch-Vorrichtungen sind durch ihre Verbindungen L miteinander verbunden, wobei jede Verbindung ein fest verdrahtetes bidirektionales Paar von unidirektionalen Kanälen aufweist, wie es mit den Bezugsziffern 4, 6 in 1 dargestellt ist. Die Ziel- und Ursprungsknoten N des Netzes können eine Computervorrichtung beliebiger Art sein, jedoch ist die Router/Switch-Vorrichtung, die hier beschrieben wurde, insbesondere anwendbar bei Netzen mit Mikrocomputern, wie es in GB 111399 und unserer ebenfalls anhängigen britischen Patentanmeldung Nr. ... (Page, White und Farrer, Aktenzeichen 64199) beschrieben wird. Verbindungen mit Ziel- und Ursprungsknoten N werden Anschlussverbindungen in 11 genannt. In 11 ist jede Router/Switch-Vorrichtung mit vier Nachrichtenverbindungen dargestellt – tatsächlich sind es in der oben beschriebenen Ausführungsform 32.

Claims (14)

  1. Kommunikationsvorrichtung zum Übertragen und Empfangen von Nachrichten mit einer Eingangsschaltung, die eine Speichervorrichtung zum Abspeichern von Daten und einen Empfangseingang (4) zum Empfangen von Eingangsdaten umfasst, einem Zähler für das Abzählen des Umfangs von Daten, die in der Speichervorrichtung gespeichert sind, und einer Ausgangsschaltung zum Übertragen eines Ablaufsteuerungscodes vom Ausgang aus, wenn genügend Speicherkapazität in der Speichervorrichtung für einen vorgegebenen Umfang von Daten vorhanden ist, wobei die Ausgangsschaltung (42) mit einem Dateneingang (40) zum Empfangen einer ersten Folge von Daten und einem Ablaufsteuerungsanforderungseingang (43) für das Empfangen von Ablaufsteuerungsinformation ausgestattet ist, wobei die Eingangsschaltung mit der Ausgangsschaltung verbunden ist, um die Ablaufsteuerungsinformation über den Ablaufsteuerungsanforderungseingang (43) bereitzustellen, dadurch gekennzeichnet, dass die Ausgangsschaltung dazu dient, die Daten der ersten Folge und die Ablaufsteuerungsinformation in mehrere Ausgangscodes (6) zu wandeln, wobei jeweils eine vorgegebene Bitlänge festgelegt ist, und um die Ausgangscodes als eine Ausgangsfolge über den Ausgang zu übertragen, wobei die Codes aus einer Gruppe von Codes ausgewählt werden, wobei eine Menge von diesen als Datencodes bezeichnet wird und einer, der sich nicht in dieser Menge befindet, als Ablaufsteuerungscode bezeichnet wird, und dass die Eingangsdaten in Form einer Folge von ankommenden Codes vorliegen und die Eingangsschaltung dazu dient, die ankommenden Codes der Eingangsfolge in Dateneinheiten, die durch die Speicherschaltung abgespeichert werden, und in die Ablaufsteuerungsinformation zu wandeln, wobei die Ausgangsschaltung veranlasst wird, den Ablaufsteuerungscode in der Ausgangsfolge zu übertragen, wenn genügend Speicherkapazität in der Speichervorrichtung vorhanden ist.
  2. Kommunikationsvorrichtung nach Anspruch 1, bei der die Speichervorrichtung eine Speicherkapazität hat, die ausreicht, um exakt die vorgegebene Anzahl von Dateneinheiten abzulegen.
  3. Kommunikationsvorrichtung nach Anspruch 1, bei der die Speichervorrichtung genügend Speicherkapazität für mehr als die vorgegebene Anzahl von Dateneinheiten hat.
  4. Eine erste Kommunikationsvorrichtung zum Übertragen von Nachrichten an und Empfangen von Nachrichten von einer zweiten Kommunikationsvorrichtung, die mit der ersten Kommunikationsvorrichtung verbunden ist, wobei die erste Kommunikationsvorrichtung eine Kommunikationsvorrichtung gemäß einem der vorangehenden Ansprüche umfasst, wobei die Ausgangscodes im Betrieb als eine Ausgangsfolge an die zweite Kommunikationsvorrichtung übertragen werden und die Eingangsfolge von ankommenden Codes im Betrieb von der zweiten Kommunikationsvorrichtung empfangen wird, wobei die Ablaufsteuerungsinformation über den Ablaufsteuerungsanforderungseingang bereitgestellt wird und die Ausgangsschaltung der ersten Kommunikationsvorrichtung veranlasst, den Ablaufsteuerungscode an die zweite Kommunikationsvorrichtung zu übertragen, wenn genügend Speicherkapazität in der Speichervorrichtung der ersten Kommunikationsvorrichtung vorhanden ist.
  5. Kommunikationsvorrichtung nach einem der vorangehenden Ansprüche, bei der die Ausgangsschaltung einen Zähler für das Abzählen der Anzahl von Dateneinheiten umfasst, die von der Ausgangsschaltung übertragen werden dürfen, wobei der Zähler in Abhängigkeit vom Empfang eines Ablaufsteuerungscodes bei der Eingangsschaltung um die vorgegebene Anzahl hochgesetzt wird und so arbeitet, dass er bei jeder Dateneinheit, die dann von der Ausgangsschaltung übertragen wird, um eins herabgesetzt wird.
  6. Kommunikationsvorrichtung nach Anspruch 5, bei der die Ausgangsschaltung keine weiteren Dateneinheiten absendet, wenn der Zähler null erreicht, bis sie in Abhängigkeit vom Empfang eines Ablaufsteuerungscodes inkrementiert wird.
  7. Verfahren zum Übertragen von mehreren Bitsequenzen von einer ersten Kommunikationsvorrichtung an eine zweite Kommunikationsvorrichtung, wobei die Bitsequenzen jeweils die gleiche Anzahl von Bits aufweisen und eine Gruppe bilden, wobei das Verfahren umfasst: Bezeichnen einer Bitsequenz aus der Gruppe als Ablaufsteuerungscode und anderer Bitsequenzen der Gruppe als Dateneinheiten und auf Seiten der zweiten Kommunikationsvorrichtung Abzählen der Anzahl von Dateneinheiten, die von der ersten Kommunikationsvorrichtung übertragen werden und in der zweiten Kommunikationsvorrichtung gespeichert werden, und für den Fall, dass die Kapazität bei der zweiten Kommunikationsvorrichtung für eine vorgegebene Anzahl von Dateneinheiten vorhanden ist, Übertragen des Ablaufsteuerungscodes von der zweiten Kommunikationsvorrichtung zu der ersten Kommunikationsvorrichtung, um die Übertragung der vorgegebenen Anzahl von Dateneinheiten an die zweite Kommunikationsvorrichtung freizugeben.
  8. Verfahren nach Anspruch 7, das außerdem umfasst: Hochsetzen eines Zählers bei der ersten Kommunikationsvorrichtung um eine vorgegebene Anzahl bei Empfang eines Ablaufsteuerungscodes und Herabsetzten des Zählers jedes Mal, wenn eine Dateneinheit übertragen worden ist, wobei der Zähler einen Zählwert bezüglich der Anzahl von Dateneinheiten beibehält, die von der ersten Kommunikationsvorrichtung übertragen werden dürfen.
  9. Verfahren nach Anspruch 8, bei dem die erste Kommunikationsvorrichtung keine weiteren Dateneinheiten absendet, wenn der Zähler null erreicht, bis er in Abhängigkeit vom Empfang eines Ablaufsteuerungscodes hochgesetzt worden ist.
  10. Router/Switch für das Weiterleiten von Nachrichten zwischen Rechnervorrichtungen in einem Netz mit mehreren Knoten, von denen wenigstens einige entsprechende Identifizierungen aufweisen, wobei jede Rechnervorrichtung eine Paketerzeugungsschaltung zum Erzeugen von Nachrichtenpaketen jeweils mit einem Vorspannabschnitt für die Anzeige einer Zielknotenidentifizierung und einem Nachrichtenabschnitt nach dem Vorspannabschnitt umfasst, wobei der Router/Switch wenigstens einen Eingang für das Empfangen von Nachrichtenpaketen von einem Ursprungsknoten in der Form einer Eingangsfolge von Codes, die jeweils eine vorgegebene Bitlänge haben, und eine Kommunikationsvorrichtung nach Anspruch 1 umfasst, wobei mehrere Ausgänge vorgesehen sind, wobei bei jedem von diesen die Ausgangsschaltung vorgesehen ist, wobei eine Vorspannleseschaltung zum Lesen des Vorspannabschnitts eines an dem Eingang empfangenen Pakets vorgesehen ist und wobei eine Switch-Schaltung zum selektiven Verbinden des Eingangs mit einem ausgewählten Ausgang in Abhängigkeit vom Einlesen des Vorspannabschnittes vorgesehen ist.
  11. Router/Switch nach Anspruch 10, bei dem der wenigstens eine Eingang mehrere Eingänge aufweist, die jeweils selektiv mit irgendeinem der mehreren Ausgänge verbunden werden können.
  12. Router/Switch nach Anspruch 10 oder 11, wobei der Router/Switch außerdem eine Vorspannlöschschaltung zum Löschen des Vorspannabschnittes eines empfangenen Paketes umfasst, so dass bei Empfang des Paketes durch einen nachfolgenden Router/Switch, der damit verbunden ist, ein nachfolgender Abschnitt des Paketes den Vorspannabschnitt bildet.
  13. Router/Switch nach Anspruch 10 oder 11, wobei der Router/Switch außerdem eine freie Vorspannerzeugungsschaltung umfasst, um freie Adressen zu erzeugen und neue Vorspannabschnitte für ankommende Pakete zu bilden.
  14. Verfahren zum Codieren von Daten für das Übertragen von Nachrichten durch mehrere Router-Vorrichtungen in Bitsequenzen, wobei bei dem Verfahren die Bitsequenzen aus einer endlichen Menge von zwanzig Bitsequenzen ausgewählt werden, wobei jede Bitsequenz sechs Bits aus drei Einsen und drei Nullen aufweist, wobei eine erste Teilmenge der endlichen Menge, die aus sechzehn Bitsequenzen besteht, für die Verwendung als Datencodes gekennzeichnet wird und eine zweite Teilmenge der endlichen Menge für die Verwendung als Steuercodes zum Steuern der Übertragung der Datencodes gekennzeichnet wird, wobei die zweite Teilmenge aus vier Bitsequenzen besteht, die nicht Teil der ersten Teilmenge sind, wobei ein erster der Steuercodes als Ablaufsteuerungscode zum Steuern des Umfangs von Datencodes bei der Übertragung zwischen einer Ursprungsvorrichtung und einer Zielvorrichtung gekennzeichnet wird, ein zweiter der Steuercodes als Null-Code zum Aufrechterhalten der fortlaufenden Übertragung, wenn es keinen Datencode zum Übertragen gibt, gekennzeichnet wird und ein dritter der Steuercodes als ein Paketende-Code gekennzeichnet wird, durch den das Ende eines Paketes identifiziert wird, das zusammen mit diesem Paketende-Code wenigstens einen Code enthält.
DE69034133T 1989-06-30 1990-06-28 Kommunikationsgerät Expired - Lifetime DE69034133T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB898915135A GB8915135D0 (en) 1989-06-30 1989-06-30 Message routing
GB8915135 1989-06-30

Publications (2)

Publication Number Publication Date
DE69034133D1 DE69034133D1 (de) 2004-04-29
DE69034133T2 true DE69034133T2 (de) 2004-09-16

Family

ID=10659381

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69034133T Expired - Lifetime DE69034133T2 (de) 1989-06-30 1990-06-28 Kommunikationsgerät
DE69031368T Expired - Lifetime DE69031368T2 (de) 1989-06-30 1990-06-28 Weglenkung von Nachrichtenpaketen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69031368T Expired - Lifetime DE69031368T2 (de) 1989-06-30 1990-06-28 Weglenkung von Nachrichtenpaketen

Country Status (5)

Country Link
US (1) US5140583A (de)
EP (2) EP0611014B1 (de)
JP (2) JP3174046B2 (de)
DE (2) DE69034133T2 (de)
GB (1) GB8915135D0 (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3546683C3 (de) * 1985-02-22 2003-10-09 Bosch Gmbh Robert Verfahren zum Betreiben einer Datenverarbeitungsanlage
GB8915137D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
US5379295A (en) * 1990-07-31 1995-01-03 Nec Corporation Cross-connect system for asynchronous transfer mode
JPH0756644B2 (ja) * 1990-08-31 1995-06-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 状態変化通知装置及び方法
US5774698A (en) * 1991-02-22 1998-06-30 International Business Machines Corporation Multi-media serial line switching adapter for parallel networks and heterogeneous and homologous computer system
US5612953A (en) * 1991-02-22 1997-03-18 International Business Machines Corporation Multi-media serial line switching adapter for parallel networks and heterogeneous and homologous computer systems
US5617547A (en) * 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
US5398245A (en) * 1991-10-04 1995-03-14 Bay Networks, Inc. Packet processing method and apparatus
JP2571655B2 (ja) * 1991-11-27 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
JP2764867B2 (ja) * 1991-12-19 1998-06-11 富士通株式会社 他プロセッサからのデータ読出し制御方式
EP0566962B1 (de) * 1992-04-24 2003-01-08 Siemens Aktiengesellschaft Verfahren zur Überwachung von virtuellen Verbindungen innerhalb eines digitalen Fernmeldenetzes
JP2876914B2 (ja) * 1992-09-07 1999-03-31 日本電気株式会社 パケット交換装置におけるバッファ制御方式
JP3003418B2 (ja) * 1992-09-25 2000-01-31 株式会社日立製作所 プロセッサ間データ通信方法
GB2295473B (en) * 1992-09-25 1996-10-30 Hitachi Ltd Method for interprocessor communication
US5355364A (en) * 1992-10-30 1994-10-11 International Business Machines Corporation Method of routing electronic messages
GB2272545A (en) * 1992-11-13 1994-05-18 White Cross Syst Ltd A database network.
JPH06324998A (ja) * 1993-05-14 1994-11-25 Fujitsu Ltd メッセージ受信方式
EP0629067B1 (de) * 1993-06-11 2003-01-22 STMicroelectronics Limited 4B6B-Kodierung
GB9312136D0 (en) * 1993-06-11 1993-07-28 Inmos Ltd Transmission of messages
GB9312071D0 (en) * 1993-06-11 1993-07-28 Inmos Ltd Encoding scheme
GB9312135D0 (en) * 1993-06-11 1993-07-28 Inmos Ltd Generation of checking data
JP3251723B2 (ja) * 1993-07-15 2002-01-28 富士通株式会社 放送通信方法
US5446726A (en) * 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5708659A (en) * 1993-10-20 1998-01-13 Lsi Logic Corporation Method for hashing in a packet network switching system
US5802287A (en) * 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5745703A (en) * 1995-07-18 1998-04-28 Nec Research Institute, Inc. Transmission of higher-order objects across a network of heterogeneous machines
JPH0981508A (ja) * 1995-08-31 1997-03-28 Internatl Business Mach Corp <Ibm> 通信方法及び装置
US5991296A (en) * 1996-02-22 1999-11-23 Fujitsu, Ltd. Crossbar switch and method with reduced voltage swing and no internal blocking data path
US5838684A (en) * 1996-02-22 1998-11-17 Fujitsu, Ltd. Low latency, high clock frequency plesioasynchronous packet-based crossbar switching chip system and method
US6535512B1 (en) 1996-03-07 2003-03-18 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5848068A (en) * 1996-03-07 1998-12-08 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5920561A (en) * 1996-03-07 1999-07-06 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6373846B1 (en) 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
US5841772A (en) * 1996-03-07 1998-11-24 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5982749A (en) * 1996-03-07 1999-11-09 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5812549A (en) * 1996-06-25 1998-09-22 International Business Machines Corporation Route restrictions for deadlock free routing with increased bandwidth in a multi-stage cross point packet switch
US5781546A (en) * 1996-06-25 1998-07-14 International Business Machines Corporation Route restrictions for deadlock free routing with increased bandwidth in a multi-stage cross point packet switch
US5959993A (en) * 1996-09-13 1999-09-28 Lsi Logic Corporation Scheduler design for ATM switches, and its implementation in a distributed shared memory architecture
US5831980A (en) * 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US6289021B1 (en) 1997-01-24 2001-09-11 Interactic Holdings, Llc Scaleable low-latency switch for usage in an interconnect structure
US6359882B1 (en) * 1997-04-01 2002-03-19 Yipes Communications, Inc. Method and apparatus for transmitting data
FR2766313B1 (fr) * 1997-07-18 1999-10-08 Canon Kk Dispositif et procede de communication et systemes les utilisant
US7162730B1 (en) 1998-01-07 2007-01-09 Honeywell International, Inc. Information communication systems
US6704316B1 (en) * 1998-07-29 2004-03-09 Lucent Technologies Inc. Push-out technique for shared memory buffer management in a network node
EP1043913A3 (de) 1999-04-08 2001-05-09 Canon Kabushiki Kaisha Vorrichtung und Verfahren zur Vermittlung von Datenpaketen
US6594261B1 (en) * 1999-12-22 2003-07-15 Aztech Partners, Inc. Adaptive fault-tolerant switching network with random initial routing and random routing around faults
US7061907B1 (en) 2000-09-26 2006-06-13 Dell Products L.P. System and method for field upgradeable switches built from routing components
US8352724B2 (en) 2003-07-23 2013-01-08 Semiconductor Energy Laboratory Co., Ltd. Microprocessor and grid computing system
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
US7957385B2 (en) * 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Method and apparatus for packet routing
US7957400B2 (en) * 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Hierarchical network topology
US20100250784A1 (en) * 2009-03-26 2010-09-30 Terascale Supercomputing Inc. Addressing Scheme and Message Routing for a Networked Device
JP2012048573A (ja) * 2010-08-27 2012-03-08 Canon Inc 半導体集積回路、データ処理装置
WO2014147483A2 (en) * 2013-03-20 2014-09-25 Marvell World Trade Ltd. Cut-through processing for slow and fast ports
US10601713B1 (en) 2013-10-15 2020-03-24 Marvell Israel (M.I.S.L) Ltd. Methods and network device for performing cut-through
WO2016000170A1 (zh) 2014-06-30 2016-01-07 华为技术有限公司 网络装置执行的数据处理方法和相关设备
CA2961221A1 (en) 2016-04-11 2017-10-11 Tti (Macao Commercial Offshore) Limited Modular garage door opener

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0042447B1 (de) * 1980-06-19 1984-06-13 International Business Machines Corporation Durchflusskontrollvorrichtung für Knotenstellen zum Schalten von Blöcken
US4475192A (en) * 1982-02-16 1984-10-02 At&T Bell Laboratories Data packet flow control scheme for switching networks
FR2538976A1 (fr) * 1982-12-29 1984-07-06 Servel Michel Systeme de commutation de paquets synchrones de longueur fixe
US4665517A (en) * 1983-12-30 1987-05-12 International Business Machines Corporation Method of coding to minimize delay at a communication node
US4661947A (en) * 1984-09-26 1987-04-28 American Telephone And Telegraph Company At&T Bell Laboratories Self-routing packet switching network with intrastage packet communication
JPH0628361B2 (ja) * 1984-11-27 1994-04-13 国際電信電話株式会社 パケツト交換方式
US4651318A (en) * 1984-11-30 1987-03-17 At&T Bell Laboratories Self-routing packets with stage address identifying fields
US4742511A (en) * 1985-06-13 1988-05-03 Texas Instruments Incorporated Method and apparatus for routing packets in a multinode computer interconnect network
GB8528891D0 (en) * 1985-11-23 1986-01-02 Int Computers Ltd Data transmission system
US4679189A (en) * 1985-11-27 1987-07-07 American Telephone And Telegraph Company Alternate routing arrangement
US4727537A (en) * 1985-12-24 1988-02-23 American Telephone And Telegraph Company Flow control arrangement for the transmission of data packets to a communication network
US4862461A (en) * 1987-01-12 1989-08-29 International Business Machines Corp. Packet switch network protocol
US4682283A (en) * 1986-02-06 1987-07-21 Rockwell International Corporation Address range comparison system using multiplexer for detection of range identifier bits stored in dedicated RAM's
US4780870A (en) * 1986-09-05 1988-10-25 American Telephone And Telegraph Company, At&T Bell Laboratories Packet switch
US4813038A (en) * 1987-06-29 1989-03-14 Bell Communications Research, Inc. Non-blocking copy network for multicast packet switching
EP0310360B1 (de) * 1987-09-30 1995-02-22 Hewlett-Packard Company Verfahren und Vorrichtung zur Datenübertragung
GB8724208D0 (en) * 1987-10-15 1987-11-18 Newman P Self-routing switching element
JP2667868B2 (ja) * 1988-04-06 1997-10-27 株式会社日立製作所 セル・スイッチング・システム
US4937817A (en) * 1988-12-29 1990-06-26 American Telephone And Telegraph Company Packet selection for packet distribution arrangements

Also Published As

Publication number Publication date
GB8915135D0 (en) 1989-08-23
JPH03132131A (ja) 1991-06-05
EP0611014A2 (de) 1994-08-17
DE69031368D1 (de) 1997-10-09
EP0611014B1 (de) 2004-03-24
DE69034133D1 (de) 2004-04-29
EP0405990A2 (de) 1991-01-02
EP0611014A3 (de) 1997-10-01
JPH11243415A (ja) 1999-09-07
JP3174046B2 (ja) 2001-06-11
EP0405990A3 (en) 1993-01-13
US5140583A (en) 1992-08-18
EP0405990B1 (de) 1997-09-03
DE69031368T2 (de) 1998-04-09

Similar Documents

Publication Publication Date Title
DE69034133T2 (de) Kommunikationsgerät
DE112006000282B4 (de) Abgleich von Datenpaketen für Mehrpunktverbindungen in einem mehrstufigen Schaltsystem
DE3752370T2 (de) Vermittlungssystem
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
EP0276776B1 (de) Digitales Koppelnetz für Leitungs- und Paketvermittlung und Koppelfeldbaustein hierzu
DE69735333T2 (de) Digitales Netzwerk mit Gruppiervorrichtung für virtuelle Nachrichten-Übertragungspfade mit ähnlicher Übertragungsgeschwindigkeit zur Erleichterung eines effizienten Übertragungsablaufs
DE69737712T2 (de) Netzwerkzentrale mit unterstützung von verteildiensten
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
EP0584398B1 (de) Verfahren und Schaltungsanordnung zum Übertragen von Nachrichtenzellen innerhalb eines ATM-Netzes
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69827053T2 (de) Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk
DE60317890T2 (de) Verfahren und anordnung zur lokalen synchronisation in verteilten master-slave-kommunikationssystemen
DE60126934T2 (de) Vermittlungssystem
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
EP0329005B1 (de) Verfahren zum Einrichten von über Koppelvielfache einer mehrstufigen Koppelanordnung verlaufenden virtuellen Verbindungen
DE19757965A1 (de) Verteiltes Puffersystem für ATM-Schalter
EP0351014B1 (de) Koppelfeld für ein Vermittlungssystem
EP0512141A1 (de) Verfahren zur Vermittlung von ATM-Nachrichtenzellenströmen hoher Bitrate über eine Vermittlungseinrichtung niedrigerer Bitrate
EP1051057A2 (de) Transport von verknüpften Containern in einem synchronen Nachrichtenübertragungsnetz
EP0618703A2 (de) Verfahren für Punkt-zu-Mehrpunkt-Verbindungen in selbstroutenden ATM-Koppelfeldern
DE60031519T2 (de) Kommunikationsnetzwerk
DE60226167T2 (de) Computersystem-e/a-knoten
EP0751693A2 (de) ATM-Kommunikationsnetz
DE60127028T2 (de) Verfahren zur wechselseitigen Übertragung von Steuerungsparametern durch ein Kommunikationsnetz
EP0322075B1 (de) Koppelfeld und Koppelfeldsteuerung für ein Vermittlungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition