DE19929516B4 - Hochgeschwindigkeits-Netzwerkschalter - Google Patents

Hochgeschwindigkeits-Netzwerkschalter Download PDF

Info

Publication number
DE19929516B4
DE19929516B4 DE19929516A DE19929516A DE19929516B4 DE 19929516 B4 DE19929516 B4 DE 19929516B4 DE 19929516 A DE19929516 A DE 19929516A DE 19929516 A DE19929516 A DE 19929516A DE 19929516 B4 DE19929516 B4 DE 19929516B4
Authority
DE
Germany
Prior art keywords
fifo
data
cells
block
decrement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19929516A
Other languages
English (en)
Other versions
DE19929516A1 (de
Inventor
Brian Gaudet
Vickie Sunnyvale Pagnon
Naveen Santa Clara Gopalakrishna
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19929516A1 publication Critical patent/DE19929516A1/de
Application granted granted Critical
Publication of DE19929516B4 publication Critical patent/DE19929516B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Abstract

Netzwerkschalter zum Verbinden von Netzwerken, mit folgenden Merkmalen:
mehrere Ports (121–133, 171–183), die so konfiguriert sind, daß sie Blöcke von einem Netzwerk empfangen und die Blöcke in Zellen aufteilen, wobei jede der Zellen ein Ursprungsportfeld aufweist;
ein Empfangs-FIFO (134, 184), das mit den mehreren Ports verbunden und so konfiguriert ist, dass die Zellen von den mehreren Ports empfangt;
eine Schaltbusschnittstelle (138, 188), die mit dem Empfangs-FIFO gekoppelt und so konfiguriert ist, dass sie die Zellen von dem Empfangs-FIFO empfangt und die Zellen über einen Schaltbus (150) sendet, wobei die Schaltbusschnittstelle (138, 188) folgende Merkmale aufweist:
– einen Bandbreitenzähler (930, 932), der so konfiguriert ist, dass er nach der Erfassung einer Blockanfang-Zelle inkrementiert und nach der Erfassung einer Blockende-Zelle dekrementiert;
– einen Blockende-Zeitgeber, der so konfiguriert ist, dass er die Zeit seit der letzten Blockende-Zelle misst;
– einen Dekrement-Zeitgeber, der zurückgesetzt wird, wenn der...

Description

  • Die Erfindung betrifft im allgemeinen den Austausch von Daten über ein Netzwerk und spezieller die Zuweisung von Bandbreiten auf einem Hochgeschwindigkeits-Netzschaltbus.
  • Netzwerke werden im allgemeinen dazu verwendet, Computer oder andere Einrichtungen miteinander zu verbinden. Wenn die Anzahl der Netzrechner zunimmt, steigt auch der Bedarf an Netzwerkbandbreite. Netzwerkschalter dienen dazu, Netzwerke in Unternetzwerke aufzu teilen. Da mit einem Unternetzwerk weniger Rechner verbunden sind, kann die Bandbreite des Unternetzwerkes unter weniger Rechnern aufgeteilt werden. Gleichwohl kann es sein, daß ein Rechner in einem Unternetzwerk mit einem Rechner in einem anderen Unternetzwerk Daten austauschen (kommunizieren) muß. Ein Netzwerkschalter ist verantwortlich dafür, die Übertragungsverbindung zwischen den zwei Unternetzen vorzusehen. Ein Netzwerkschalter kann auch dazu dienen, eine Übertragungsverbindung zwischen zwei einzelnen Rechnern oder zwischen einem einzelnen Rechner und einem Unternetzwerk vorzusehen.
  • Ein solcher Netzwerkschalter, bei dem die eingehenden Blockdaten in Zellen aufgeteilt und diese Zellen mit Ursprungsidentifikationsfeldern versehen und über eine Schaltbus geleitet werden, ist in der WO 97/31455 offenbart.
  • Wie bei den Unternetzwerken hat der Netzwerkschalter nur eine begrenzte Kapazität in der Bandbreite. Wenn viele Computer mit einem Netzwerkschalter verbunden werden, kann die Summe der Computerbandbreiten die Bandbreitenkapazität des Netzwerkschalters stark überschreiten.
  • Während des normalen Betriebs können Dialoge zwischen Rechnern innerhalb eines Unternetzes aufgebaut werden. Diese Dialoge nutzen nicht die Bandbreite des Netzwerkschalters. Während des Spitzenbetriebs kann die Anforderung an die Bandbreite des Schalters jedoch dessen Kapazität überschreiten. Während solcher Perioden muß der Netzwerkschalter bestimmen, wie die verfügbare Bandbreite zugewiesen werden soll. Da die zu übertragenden Daten ein Prioritätsfeld enthalten, werden können, sollten Daten mit höherer Priorität vor Daten mit niedrigerer Priorität übertragen werden.
  • Um diese Zuweisung effektiv zu gestalten, muß ein Netzwerkschalter die Anzahl der aktiven Dialoge überwachen. Anderenfalls könnte der Netzwerkschalter die verfügbare Bandbreite überbuchen und Daten verlieren. Um einen solchen Datenverlust zu vermeiden, muß ein Netzwerkschalter ermitteln, ob die verfügbare Bandbreite vollständig ausgelastet ist. Wenn ja, muß der Netzwerkschalter zusätzliche Dialoge verzögern, bis einige der momentanen Dialoge abgeschlossen sind.
  • Ein Netzwerkschalter mit mehreren Eingangs- und Ausgangsports und ein Verfahren, um mittels einer zentralen Vermittlereinrichtung und einer Direktverbindung unter Optimierung der zur Verfügung stehenden Bandbreite Datenpakete zwischen diesen Eingangs – und Ausgangsports zu leiten, ist in der WO 97/04564 offenbart.
  • Die effektive Überwachung der Nutzung der Bandbreite stellt ein komplexes Problem dar, insbesondere wenn ein Netzwerkschalter Unternetze verbindet, die mit verschiedenen Protokollen arbeiten. Der Anfangsabschnitt eines Dialogpakets umfasst ein Langenfeld. Unter Ver wendung des Längenfeldes und der Übertragungsgeschwindigkeit kann ein Netzwerkschalter die Übertragungsanforderungen des Dialogs sowohl in bezug auf die Zeit als auch in bezug auf die Bandbreite bestimmen. Wenn der Dialog begonnen hat, kann der Netzwerkschalter diese Information nutzen, um die Belastung seiner Bandbreitenresourcen zu überwachen.
  • Ein Netzwerkschalter kann z. B. jeden Dialog zeitlich überwachen, um zu ermitteln, wann er beendet ist. Wenn der Dialog endet, kann der Netzwerkschalter seine Bandbreitenresourcen anderen Dialogen neu zuweisen. Einzelne Zeitgeber erfordern jedoch eine teure Firmware.
  • Die maximale Dauer, welche ein Dialog vor der Zuweisung der Bandbreite warten muß, wird Buslatenz genannt. Um die Buslatenz zu minimieren, kann ein Netzwerkschalter einen Dialog in Unterpakete oder Zellen aufteilen. Der Netzwerkschalter überträgt nur eines der Unterpakete auf einmal, anstatt des längeren Dialogs. Dies reduziert die Buslatenz, weil nach der Beendigung eines Unterpakets, anstatt nach Beendigung des gesamten Dialogs andere Dialoge Zugriff auf den Bus erhalten. Während dies dazu dient, die Buslatenz zu reduzieren, erfordert die Aufteilung in kleinere Pakete einen zusätzlichen Verwaltungsaufwand. Der Netzwerkschalter kann z. B. jedem Unterpaket eine Zieladresse hinzufügen, um sicherzustellen, daß sie richtig geleitet werden. Der Netzwerkschalter kann auch ein Quittungsprotokoll (Handshake) erfordern, um sicherzustellen, daß die Unterpakete richtig empfangen wurden. Diese Operationen belegen einen Teil der Bandbreite des Schalters, der anderenfalls für zusätzliche Dialoge zugewiesen werden kann.
  • Es wird daher ein Verfahren zum Übertragen von Daten über einen Netzwerkschalter benötigt, das die Buslatenz minimieren und die den Dialogdaten zugewiesene Bandbreite maximieren kann. Gleichzeitig muß der Netzwerkschalter sicherstellen, dass Dialoge nur begonnen werden, wenn momentan Bandbreite verfügbar ist. Zu diesem Zweck sollte das Verfahren die momentane Nutzung der Bandbreite präzise überwachen. Das Verfahren sollte verfügbare Bandbreite gestützt auf die Priorität zuweisen. Diese Überwachung und Zuweisung sollte mit einer minimalen Firmware realisiert werden.
  • Zur Lösung dieser Aufgabe sieht die Erfindung einen Netzwerkschalter mit den Merkmalen von Anspruch 1 bzw. 8 sowie ein Verfahren zum Austauschen von Daten über einen Netzwerkschalter mit den Verfahrensschritten von Anspruch 17 vor.
  • Gemäß eines Aspekts der Erfindung umfaßt ein Netzwerkschalter, der sich zum Verbinden von Netzwerken eignet, mehrere Ports (Anschlüsse), einen Empfangs-FIFO und einen Schaltbus. Die mehreren Ports sind so konfiguriert, dass sie von einem Netzwerk Blöcke empfangen und die Blöcke in Zellen aufteilen, wobei jede Zelle ein Ursprungsportfeld aufweist. Das Empfangs-FIFO ist mit den mehreren Ports gekoppelt und so konfiguriert, dass es die Zellen von den mehreren Ports empfängt. Die Schaltbusschnittschnitte ist mit dem Empfangs-FIFO gekoppelt und so konfiguriert, dass sie die Zellen von dem Empfangs-FIFO empfängt und die Zellen über einen Schaltbus überträgt.
  • Gemäß eines weiteren Aspekts der Erfindung umfasst ein Netzwerkschalter, der sich zum Verbinden von Netzwerkeinrichtungen eignet, mehrere Ports, einen Empfangs-FIFO und ein Sende-FIFO. Die mehreren Ports sind so konfiguriert, dass sie Daten zu mehreren Netzwerkeinrichtungen senden und von diesen empfangen. Das Empfangs-FIFO ist so konfiguriert, dass es Daten von den mehreren Ports empfängt. Das Sende-FIFO ist so konfiguriert, dass es Daten zu den mehreren Ports sendet. Die Busschnittstelle ist mit Empfangs-FIFO und dem Sende-FIFO gekoppelt und so konfiguriert, dass sie einen Schalt überwacht und Daten über den Schaltbus sendet und empfängt. Die Busschnittstelle umfasst einen Bandbreitenzähler und ein Dekrement-FIFO. Der Bandbreitenzähler ist so konfiguriert, dass er nach der Erfassung eines Blockanfang-Feldes inkrementiert und nach der Erfassung eines Blockende-Feldes dekrementiert. Das Dekrement-FIFO ist mit dem Bandbreitenzähler gekoppelt. Die Busschnittstelle ist so konfiguriert, dass sie Blockendedaten in dem Dekrement-FIFO speichert und den Bandbreitenzähler dekrementiert, nachdem die Blockendedaten während einer Latenzperiode in dem Dekrement-FIFO gespeichert waren.
  • Gemäß eines weiteren Aspekts der Erfindung werden Blockdaten von einem ersten Port empfangen. Die Blockdaten werden in Zellen aufgeteilt, wobei jede der Zellen ein Ursprungsportfeld aufweist. Die Zellen werden über einen Schaltbus übertragen. Die Zellen werden von dem Schaltbus empfangen. Die Datenzellen werden gestützt auf das Ursprungsportfeld zu einem zweiten Port weitergeleitet (geroutet).
  • Die Erfindung ist im folgenden anhand bevorzugter Ausführungsformen mit Bezug auf die Zeichnung näher erläutert. In den Figuren zeigt:
  • 1 ein Blockdiagramm einer bevorzugten Ausführungsform eines geschalteten Netzwerks mit zwei Datenaustauscheinrichtungen, die über einen Schaltbus verbunden sind;
  • 2 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform der Teilung eines Blocks in Zellen;
  • 3 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform einer Datenzelle;
  • 4 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform einer Leittabelle (Routing-Tabelle);
  • 5 zeigt ein Flußdiagramm einer bevorzugten Betriebsart einer der Datenaustauscheinrichtungen der 1, während sie ein Paket von einem Netzwerk empfängt;
  • 6 zeigt ein Flußdiagramm einer bevorzugten Betriebsart einer der Datenaustauscheinrichtungen der 1, während sie Zellen über einen Schaltbus empfangt;
  • 7 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform einer der Datenaustauscheinrichtungen der 1, eines Empfangs-FIFO und mehrerer Ports;
  • 8 zeigt einen Graphen einer bevorzugten Zuweisung der Schaltbusbandbreite;
  • 9 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform einer Busschnittstelle;
  • 10 zeigt ein Flußdiagramm einer bevorzugten Betriebsart einer der Datenaustauscheinrichtungen der 1, während sie Zellen in ein Bus-FIFO lädt;
  • 11 zeigt ein Flußdiagramm einer bevorzugten Betriebsart der Busschnittstelle der 9, während sie Bandbreitenzähler inkrementiert;
  • 12 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform eines Dekrement-FIFO;
  • 13 zeigt ein Flußdiagramm einer bevorzugten Betriebsart der Busschnittstelle der 9, während sie Bandbreitenzähler dekrementiert;
  • 14a zeigt ein Blockdiagramm einer bevorzugten Ausführungsform eines Bus-FIFO, während es eine erste Vielzahl Zellen speichert; und
  • 14b zeigt ein Blockdiagramm des Bus-FIFO der 14a, während es eine zweite Vielzahl Zellen speichert.
  • 1 zeigt eine bevorzugte Ausführungsform eines geschalteten Netzwerks 100 mit einer ersten Datenaustauscheinrichtung 110 und einer zweiten Datenaustauscheinrichtung 160. Wie gezeigt umfassen die Datenaustauscheinrichtungen 110 und 160 jeweils mehrere Funktionsblöcke, die eine Hochgeschwindigkeitslenkung (Routing) von Paketdaten ermöglichen. Diese Funktionsblöcke könne mit im Handel erhältlichen Komponenten realisiert werden, wie Controllern oder Prozessoren, oder sie können speziell entworfen werden, um die hier beschriebenen Funktionen auszuführen.
  • Die Datenaustauscheinrichtung 110 und die Datenaustauscheinrichtung 160 weisen jeweils mehreren Ports (Anschlüsse) auf, um externe Netzwerkeinrichtungen anzuschließen. Spezieller sieht die Datenaustauscheinrichtung 110 die Ports 121133 vor (die Ports 123131 sind nicht gezeigt), und die Datenaustauscheinrichtung 160 sieht Ports 171183 vor (die Ports 173181 sind nicht gezeigt). Die Ports 121133 sind jeweils mit einer externen physischen Schicht 112 verbunden. Wie gezeigt, kann die externe physische Schicht 112 aus einer einzelnen Einrichtung bestehen, welche jeden Port mit einem physischen Netzwerk, oder Netz, verbinden kann. Die physische Schicht 112 kann auch aus mehreren getrennten Einrichtungen bestehen, welche einen einzelnen Port mit einem Netzwerk verbinden können. Die physische Schicht 112 sieht die physische Verbindung zu einem Netzwerk vor und bildet eine medienunabhängige Schnittstelle zu den Ports 121133. Jeder der Ports 171183 ist mit einer externen physischen Schicht 162 verbunden. Die externe physische Schicht 162 hat dieselbe Funktion wie die physische Schicht 112. Jeder der Ports 121133 und 171183 hat eine Medienzugriff-Steuerfunktion zum Übertragen und Empfangen von Daten über ein Netzwerk.
  • Die Datenaustauscheinrichtung 110 ist mit der Datenaustauscheinrichtung 160 über einen Schaltbus 150 und ein Schaltvermittlungs-Bindeglied 152 verbunden. Wie unten noch näher erläutert wird, können Paketdaten, die von der Datenaustauscheinrichtung 110 über einen Port empfangen werden, zu der Datenaustauscheinrichtung 160 über den Schaltbus 150 übertragen werden. Die Datenaustauscheinrichtung 160 kann ihrerseits die Paketdaten über einen ihrer Ports übertragen. Auf diese Art kann eine Netzeinrichtung, die mit einem der Ports 121133 verbunden ist, Daten zu einer Einrichtung übertragen, welche mit einem der Ports 171183 verbunden ist. Ähnlich kann eine Netzeinrichtung, die mit einem der Ports 171183 verbunden ist, Daten zu einer Einrichtung übertragen, die mit einem der Ports 121133 verbunden ist. Obwohl nur zwei Datenaustauscheinrichtungen gezeigt sind, können zusätzlich Datenaustauscheinrichtungen über einen Schaltbus 150 und ein Schaltvermittlungs-Bindeglied 152 angeschlossen werden.
  • Die Datenaustauscheinrichtung 110 umfasst ein Empfangs-FIFO (FIFO = first-in-first-out-Speicher) 134, ein Sende-FIFO 142 und einen Broadcast-Puffer 144. Das Empfangs-FIFO 134 ist mit jedem der Ports 121133 verbunden, um Datenpakete zu empfangen. Das Empfangs-FIFO 134 sieht einen temporären Speicher für Blockdaten vor, bevor die Daten über den Schaltbus 150 gesendet werden.
  • Das Sende-FIFO 142 ist mit jedem der Ports 121133 verbunden, um einfach gesendete (unicast) Blockdaten zu senden. Das Sende-FIFO 142 weist für jeden Port ein getrenntes FIFO auf. Das Sende-FIFO 142 bewegt Daten von einem externen Speicher 146 über das richtige FIFO zu dem richtigen Port, indem es die Zieladresse der einfach gesendeten Blockdaten verwendet.
  • Der Broadcast-Puffer 144 ist mit jedem der Ports 121133 verbunden, um rund gesendete (broadcast) und mehrfach gesendete (multicast) Blockdaten zu senden. Der Broadcast-Puffer 144 umfaßt ein FIFO, das mit 10 Mb/s arbeitet, und ein FIFO, das mit 100 Mb/s arbeitet. Diese FIFOs bwegen auch Daten von dem externen Speicher 146 zu den richtigen Ports.
  • Eine Busschnittstelle 138 überträgt Daten vom Empfangs-FIFO 134 zum Schaltbus 150. Die Busschnittstelle 138 umfaßt Niederspannungstreiber hoher Bandbreite zum Senden von Daten über den Schaltbus 150. Die Busschnittstelle 138 liest auch Daten vom Schaltbus 150. Die Busschnittstelle 138 sieht Kopfdaten für die Nachschlageeinrichtung 136 und Blockdaten für den Sendepuffer 142 und den Broadcast-Puffer 144 vor.
  • Wie unten noch mit weiteren Einzelheiten beschrieben ist, greift die Busschnittstelle 138 auf die Nachschlageeinrichtung 136 zu, um zu ermitteln, ob die Daten von dem Schaltbus angenommen werden sollen, und um eine Lenktabelle (Routing-Tabelle) aufrechtzuerhalten. Wenn die Daten angenommen werden, verwendet die Busschnittstelle 138 die Kopfdaten, um dem Puffermanager 140 Lenkbefehle zu geben.
  • Gestützt auf die Lenkbefehle speichert der Puffermanager 140 Daten im externen Speicher 146. Der Puffermanager 140 verfolgt auch die Verwendung des Speichers und steuert Warteschlangen in dem externen Speicher 146. Die Warteschlangen werden dazu verwendet, Daten für verstopfte Ports zu speichern.
  • Die Datenaustauscheinrichtung 160 umfaßt Funktionsblöcke, die genauso arbeiten wie die der Datenaustauscheinrichtung 110. Insbesondere umfaßt die Datenaustauscheinrichtung 160 ein Empfangs-FIFO 184, eine Nachschlageeinrichtung 186, eine Busschnittstelle 188, einen Puffermanager 190, ein Sende-FIFO 192, einen Broadcastpuffer 194 und einen externen Speicher 196. Diese Blöcke arbeiten auf dieselbe Weise wie das Empfangs-FIFO 134, die Nachschlageeinrichtung 136, die Busschnittstelle 138, der Puffermanager 140, das Sende-FIFO 142, der Broadcastpuffer 144 bzw. der externe Speicher 146.
  • Im folgenden wird der Weg eines einzelnen einfach gesendeten (unicast) Pakets beschrieben, während es sich von der Datenaustauscheinrichtung 110 zur Datenaustauscheinrichtung 160 bewegt. Am Anfang wird ein Paket 102a von der externen physischen Schicht 112 empfangen. Wenn sie richtig arbeitet, wird ein erstes Paket vollständig empfangen, bevor von dem selben Port ein weiteres Paket empfangen wird. Die externe physische Schicht 112 übersetzt die Pakete 102a in Blockdaten, die über eine medienunabhängige Schnittstelle an den Port 121 gegeben werden. Die Übersetzung konvertiert die medienabhängigen Paketdaten in ein Halbbyte breites NRZ-Format.
  • Der Port 121 überwacht die eingehenden Daten nach einem Blockanfang-Begrenzer (SOF; start of frame). Bei Empfang des SOF teilt der Port 121 die Blockdaten in 48-Bit-Zellen. Die Zellen werden dann an das Empfangs-FIFO 134 weitergegeben. Wenn die Anzahl der Zellen in dem Empfangs-FIFO 134 einen Filterschwellwert (Drain-Schwellwert) überschreitet, werden die Zellen in ein Bus-FIFO geladen. Wenn das Bus-FIFO einen Filterschwellwert überschreitet, wird die Datenaustauscheinrichtung 110 über das Schaltvermittlungs-Bindeglied 152 eine Schaltbusanforderung machen. Wenn sie die Vermittlung gewinnt, sendet sie die erste Zelle 104a, die in dem Bus-FIFO gespeichert ist, auf den Schaltbus 150. Das Bus-FIFO überträgt weiter Zellen, bis alle Zellen gesendet wurden.
  • Die Datenaustauscheinrichtung 160 überwacht den Schaltbus 150. Die Nachschlageeinrichtung 186 analysiert (parse) die erste Zelle 104b, um zu ermitteln, ob das Zieladressfeld mit dem eines der Geräte übereinstimmt, die mit den Ports 171183 verbunden sind. In diesem Beispiel ermittelt die Nachschlageeinrichtung 186, daß das Zieladreßfeld mit dem einer Einrichtung übereinstimmt, die mit dem Port 182 verbunden ist. Als Reaktion schickt die Nachschlageeinrichtung 186 ein Treffersignal zur Datenaustauscheinrichtung 110 und weist den Puffermanager 190 an, im Speicher 196 einen Puffer zu reservieren. Der Puffer im Speicher 196 ist groß genug, um den gesamten Block in zusammenhängenden Speicherstellen zu speichern. Während nachfolgende Zellen aus demselben Block empfangen werden, speichert der Puffermanager 190 die Zellen nacheinander in den zusammenhängenden Speicherstellen.
  • Wenn die Anzahl der in den Puffer gespeicherten Zellen einen Filterschwellwert überschreitet, werden die Daten zum Sende-FIFO 192 weitergegeben. Wiederum weist das Sende-FIFO 192 ein eigenes FIFO für jeden der Ports 171183 auf. Die Daten werden an das Sende-FIFO geschickt, das zu dem Port 182 gehört. Das zu dem Port 182 gehörende Sende-FIFO konvertiert die 48 Bit breiten Daten in Halbbyte (nibble) breite Daten. Diese Daten werden über eine medienunabhängige Schnittstelle an die physische Schicht 162 übergeben. Die physische Schicht 162 übersetzt die Daten in ein Paket 102b, das über eine Netzwerkverbindung übertragen wird.
  • Rund gesendete (broadcast) oder mehrfach gesendete (multicast) Pakete haben einen ähnlichen Datenfluß. Der Puffermanager 190 speichert die Zellendaten in aufeinanderfolgenden Speicherstellen in dem Speicher 196. Wenn die Anzahl der in dem Speicher 196 gespeicherten Zellen einen Filterschwellwert überschreitet, werden die Daten zu dem Broadcastpuffer 194 anstelle des Sende-FIFOs 192 weitergegeben. Wiederum umfaßt der Broadcastpuffer 194 einen Puffer, der mit 10 Mb/s arbeitet, und einen Puffer, der mit 100 Mb/s arbeitet. Beide Puffer schicken die Daten an die Ports 171183. Abhängig von der externen physischen Schicht 162 schicken die jeweiligen Ports entweder die 10 Mb/s- oder die 100 Mb/s-Daten über eine medienunabhängige Schnittstelle an die physische Schicht 162. Die physische Schicht 162 übersetzt die Daten in Pakete, die über die jeweilige Netzwerkverbindung gesendet werden.
  • Bei einer anderen bevorzugten Ausführungsform ist eine Datenaustauscheinrichtung so konfiguriert, daß alle über einen Schaltbus empfangenen Paketdaten durch die Nachschlageeinrichtung gehen. Die Nachschlageeinrichtung sieht dann die Paketdaten und Steuersignale für andere Module vor.
  • Mit Bezug auf 2 ist nun ein bevorzugtes Verfahren beschrieben, mit dem die Ports 121133 Blockdaten in Zellen aufteilen. Ein Datenblock 210 beginnt mit einem Präambelfeld 221, einem SOF-Feld 214, einem Zieladreßfeld 216 und einem Ursprungsadreßfeld 218. Der Datenblock 210 umfaßt auch Felder 220, die Prioritäts-, Typ-, Längen- oder andere Daten enthalten können. Der Datenblock 210 umfaßt ferner ein Datenfeld 222 variabler Länge und ein Blockendebegrenzer-Feld (EOF) 223.
  • Wenn ein Block über ein Port empfangen wird, wird der Block in 48 Bit breite Zellen aufgeteilt. Der Datenblock 210 wird zum Beispiel in Zellen C1, C2, ... CN aufgeteilt. Die erste Zelle C1 umfaßt das Zieladreßfeld 216, die nachfolgenden Zellen (d. h. C2, ... CN) jedoch nicht. Dieses Zieladreßfeld ermöglicht es normalerweise einem Netzwerk, die Daten zum richtigen Ziel zu lenken. Da die nachfolgenden Zellen das Zieladreßfeld jedoch nicht enthalten, können sie nicht gestützt auf das Zieladreßfeld gelenkt werden. Wie weiter unten erläutert wird, wird an die Zellen ein Ursprungsportidentifikator angehängt. Die Zellen werden dann gestützt auf den Ursprungsportidentifikator gelenkt.
  • In 3 ist eine Zelle 310 gezeigt. Die Zelle 310 umfaßt ein Ursprungsinformationsfeld 312 und ein Datenfeld 314. Bei einer bevorzugten Ausführungsform hat jede Datenaustauscheinrichtung maximal 13 Ports, und maximal 13 Datenaustauscheinrichtungen können über einen Schaltbus hintereinandergeschaltet werden. Die maximale Anzahl der Ports ist somit 156, und 8 Bit des Ursprungsinformationsfeldes 312 sind ausreichend, um jeden Ursprungsport eindeutig zu identifizieren. Das Ursprungsinformationsfeld 312 umfaßt auch Geschwindigkeits- und Typinformationen in Bezug auf den Ursprungsport. Die Geschwindigkeits-Information identifiziert, ob der Ursprungsport mit 10 Mb/s, 100 Mb/s oder einer anderen Geschwindigkeit arbeitet. Die Typinformation gibt an, ob die Zellendaten Teil eines ATM OC3-Blocks, eines ATM OC12-Blocks, eines Reserveblocks oder eines Blocks eines anderen Typs sind. Das Datenfeld 314 enthält 48-Bit-Abschnitte eines Blocks, z. B. für eine der Zellen C1, ... CN aus 1.
  • Wie oben erläutert, wird der eingehende Datenblock in Zellen aufgeteilt und in ein Empfangs-FIFO gelegt. Die Zellen werden dann über einen Schaltbus übertragen und von einer anderen Datenaustauscheinrichtung empfangen. Während sie Zellen empfängt, hält eine Datenaustauscheinrichtung eine Leitweg- oder Lenktabelle (Routing-Tabelle) aufrecht, die dem Ursprungsidentifikationsfeld das Ziel des Blocks zuordnet. Da nur die erste Zelle das Zieladreßfeld enthält, ermöglicht es die Lenktabelle der Datenaustauscheinrichtung, die nachfolgenden Zellen, welche kein Zieladreßfeld enthalten, richtig zu lenken.
  • In 4 ist eine bevorzugte Ausführungsform einer Lenktabelle 410 gezeigt. Die Tabelle umfaßt mehrere Einträge, die als Zeilen 430 (E1-EN) dargestellt sind. Jede der Zeilen 430 ist in ein Ursprungsfeld 420, ein Zielfeld 422 und ein Gültigfeld 424 aufgeteilt. Bei der Initialisierung wird das Gültigfeld 424 aller Zeilen 430 auf Null gesetzt, wodurch angezeigt wird, daß der Eintrag ungültig ist. Während der Überwachung des Schaltbusses kann die Datenaus tauscheinrichtung eine erste Zelle erfassen, die ein Zieladreßfeld aufweist, das zu der Adresse einer Einrichtung paßt, die mit einer ihrer Ports verbunden ist. Wenn dies der Fall ist, empfängt die Datenaustauscheinrichtung die Zelle und aktualisiert ihre Tabelle 410. Im einzelnen wählt die Datenaustauscheinrichtung eine ungültige Zeile. Die Datenaustauscheinrichtung lädt dann die Ursprungsport-ID und die Zielport-ID der Zelle in das Ursprungsfeld 420 bzw. Zielfeld 422. Alternativ kann die Datenaustauscheinrichtung das Zieladreßfeld der Zelle in das Zielfeld 422 laden, dies erfordert jedoch mehr Speicher als die Zielport-ID. Die Datenaustauscheinrichtung setzt dann das Gültigfeld 424.
  • Obwohl nachfolgende Zellen kein Zieladreßfeld enthalten, kann die Datenaustauscheinrichtung die Zellen richtig lenken, indem sie das Ursprungsinformationsfeld 312 überwacht. Wenn die Datenaustauscheinrichtung eine Zelle mit einer Ursprungs-ID erfasst, welche mit dem Ursprungsfeld 420 eines gültigen Tabelleneintrags übereinstimmt, wird die Zelle akzeptiert und nach Maßgabe des Zielfeldes 422 gelenkt. Wenn die Datenaustauscheinrichtung erfaßt, daß die Zelle ein EOF enthält, macht die Datenaustauscheinrichtung den Tabelleneintrag ungültig.
  • Im folgenden ist der Betrieb einer Datenaustauscheinrichtung, welche Zellen über einen Schaltbus sendet und Zellen über einen Schaltbus empfängt, mit Bezug auf die 5 bzw. 6 näher erläutert. Mit Bezug auf 5 ist der bevorzugte Ablauf einer Datenaustauscheinrichtung beschrieben, welche einen Block von einem Port empfängt und Zellen über einen Schaltbus überträgt. Die Datenaustauscheinrichtung beginnt bei Kästchen 510, bei dem einer ihrer Ports einen Block empfängt. Bei Kästchen 512 teilt die Datenaustauscheinrichtung den Block in Zellen und hängt das Ursprungsinformationsfeld an. Bei Kästchen 514 lädt die Datenaustauscheinrichtung die Zellen in ein Empfangs-FIFO. Bei Kästchen 516 sendet die Datenaustauscheinrichtung die erste Zelle über einen Schaltbus. Bei Block 518 prüft die Datenaustauscheinrichtung, ob es zusätzliche Zellen in dem Empfangs-FIFO gibt. Wenn es zusätzliche Zellen in dem Empfangs-FIFO gibt, kehrt die Datenaustauscheinrichtung zum Block 516 zurück, um die nächste Zelle zu senden. Wenn keine zusätzlichen Zellen vorhanden sind, endet der Prozeß beim Kästchen 520. Wenn ein weiteres Paket empfangen wird, beginnt der Ablauf wieder beim Kästchen 510.
  • Obwohl der Prozeß des Empfangens von Blockdaten in Bezug auf einen einzelnen Port beschrieben wurde, kann die Datenaustauscheinrichtung gleichzeitig Zellen von verschiedenen Ports in das Empfangs-FIFO laden. Dieser Prozeß ist unten mit Bezug auf 7 mit weiteren Einzelheiten beschrieben; während des normalen Betriebs wird jedoch ein Port nur einen Block auf einmal empfangen. Mit anderen Worten empfangt ein Port keinen zweiten Block, bis nicht ein ersten Block vollständig empfangen wurde.
  • Mit Bezug auf 6 ist nun der bevorzugte Betrieb einer Datenaustauscheinrichtung beschrieben, welche Zellen über einen Schaltbus empfängt und einen Block über einen Port sendet. Die Datenaustauscheinrichtung beginnt beim Kästchen 610, wo die Datenaustauscheinrichtung den Schaltbus nach einer ersten Zelle überwacht. Eine erste Zelle wird sowohl ein Zieladreßfeld als auch eine Ursprungsport-ID enthalten. Wenn die Datenaustauscheinrichtung keine erste Zelle erfasst, fährt die Datenaustauscheinrichtung mit der Überwachung des Schaltbus fort.
  • Anderenfalls ermittelt die Datenaustauscheinrichtung beim Kästchen 612, ob das Zieladreßfeld mit der Adresse einer der Einrichtungen übereinstimmt, die mit einem ihrer Ports verbunden ist. Wenn nein, geht die Datenaustauscheinrichtung zum Kästchen 610 zurück, um auf weitere erste Zellen zu warten. Wenn je, aktualisiert die Datenaustauscheinrichtung beim Kästchen 614 ihre Lenktabelle. Im einzelnen lädt die Datenaustauscheinrichtung die Ursprungs-ID in ein ungültiges Ursprungsfeld, sie lädt die Ziel-ID in das zugehörige Zielfeld, und sie setzt das zugehörige Gültigfeld auf Eins.
  • Beim Kästchen 616 weist die Datenaustauscheinrichtung einen Puffer zu, der ausreicht, um alle Zellen aufzunehmen, die zu dem eingehenden Block gehören, und sie lädt die erste Zelle in die erste Speicherstelle des Puffers. Beim Kästchen 618 überwacht die Datenaustauscheinrichtung weiter den Schaltbus auf Zellen, welche eine Ursprungs-ID enthalten, die zu dem Ursprungs-Feld eines gültigen Lenktabelleneintrags passen. Wenn die Datenaustauscheinrichtung eine solche Zelle erfaßt, lädt die Datenaustauscheinrichtung beim Kästchen 620 die Zelle in die nächste Speicherstelle des zugehörigen Puffers. Auf diese Weise werden aufein anderfolgende Zellen, die zu einem einzelnen Block gehören, in zusammenhängenden Speicherstellen des zugehörigen Puffers gespeichert.
  • Beim Kästchen 622 prüft die Datenaustauscheinrichtung, ob die Zelle, die gerade in den Puffer geladen wurde, ein EOF enthält. Das EOF zeigt an, daß die letzte Zelle des Blocks empfangen wurde. Wenn die Zelle kein EOF enthält, geht die Datenaustauscheinrichtung zum Kästchen 618 wieder, um weitere, passende Ursprungs-Port-IDs abzupassen. Wenn die Zelle ein EOF enthält, geht die Datenaustauscheinrichtung zum Kästchen 624 weiter. Hier bewegt die Datenaustauscheinrichtung die Zellen von dem Puffer in das richtige Sende-FIFO. Die Blockdaten werden dann bei dem Port ausgesendet, der mit der Einrichtung verbunden ist, die eine passende Zieladresse hat.
  • Da dieser Block vollständig empfangen wurde, können nachfolgende Zellen von demselben Ursprungsport an eine andere Zieladresse gerichtet sein. Die Lenktabelle muß daher aktualisiert werden, damit solche nachfolgenden Zellen nicht zu dem selben Port gelenkt werden. Beim Kästchen 624 versieht daher die Datenaustauscheinrichtung die Ursprungs-ID in der Pakettabelle mit einem Index und setzt das zugehörige Gültigbit auf Null.
  • Der oben beschriebene Prozeß des Empfangens von Blockdaten von einem Port und Sendens von Zellendaten über einen Schaltbus begrenzt die Latenz auf die Zeit, die zum Senden von Zellen notwendig ist, anstatt auf die Zeit, die zum Senden von Blöcken notwendig ist. Zusätzlich erzeugt die Verwendung der Ursprungsport-ID zum Lenken der Zellen nur eine geringe Erhöhung der benötigten Schaltbusbandbreite. Diese Erhöhung ist deutlich niedriger als notwendig wäre, wenn die vollständige 48-Bit-Zieladresse an jede Zelle angehängt würde.
  • Wie oben erwähnt, umfasst jede Datenaustauscheinrichtung mehrere Ports, wobei ein Port zu einer gegebenen Zeit nur einen Block empfangen kann. Eine Datenaustauscheinrichtung kann somit gleichzeitig mehrere Ports empfangen. Wenn die Pakete gleichzeitig empfangen werden können, werden sie gleichzeitig in Zellen aufgeteilt und in das Empfangs-FIFO gelegt. Somit können sich Zellen aus unterschiedlichen Paketen in dem Empfangs-FIFO mischen. Der Pro zeß, mit dem diese Zellen in dem FIFO geordnet und nachfolgend über den Schaltbus übertragen werden, ist im folgenden mit weiteren Einzelheiten beschrieben.
  • Mit Bezug auf 7 ist eine bevorzugte Ausführungsform der Datenaustauscheinrichtung 110 mit einem Empfangs-FIFO 134 beschrieben. Wie gezeigt umfaßt das Empfangs-FIFO 134 einen FIFO-Manager 410, der mit einem Bus-FIFO 712 verbunden ist. Jeder der Ports 121133 (die Ports 123131 sind nicht gezeigt) umfaßt ein Port-FIFO 701713 (die FIFOs 701711 sind nicht gezeigt). Der FIFO-Manager 710 ist auch mit den Port-FIFOs 721733 verbunden. Wenn von einem Port ein Block empfangen wird, teilt der Port den Block in Zellen und speichert die Zellen in seinem Port-FIFO. Der FIFO-Manager 710 fragt die Ports 121133 ab, um zu ermitteln, welche Ports momentan Zellen enthalten, die in das Bus-FIFO 712 gelegt werden können. Der FIFO-Manager 710 bestimmt auch die Art der Zellen, die momentan auf die Übertragung warten. Das Empfangs-FIFO 134 setzt die Prioritäten der wartenden Zellen gemäß der folgenden Liste:
    • 1. Zellen mit reservierter Bandbreite oder Zellen in Bearbeitung (d. h. Zellen, die kein SOF enthalten);
    • 2. 10 Mb-Zellen hoher Priorität, die ein SOF enthalten;
    • 3. 100 Mb-Zellen hoher Priorität, die ein SOF enthalten;
    • 4. 10 Mb-Zellen niedriger Priorität, die ein SOF enthalten; und
    • 5. 100 Mb-Zellen niedriger Priorität, die ein SOF enthalten.
  • Nach dem Abfragen der Ports lädt der Puffermanager die verfügbaren Zellen in das Bus-FIFO 712 gestützt auf ihre Priorität. Zellen mit reservierter Bandbreite werden somit zuerst geladen, und 100 Mb-Zellen mit niedriger Priorität, die ein SOF enthalten, werden als letztes geladen.
  • Wie oben erwähnt, können bis zu 156 Ports über einen Schaltbus angeschlossen werden, und jeder Port kann so konfiguriert sein, daß er Daten mit 100 Mb/s überträgt. Bei einer bevorzugten Ausführungsform hat der Schaltbus einen maximalen Durchsatz von 2,4 Gb/s. Die Summe der Datendurchsatzkapazität der Ports kann somit die des Schaltbusses weit überschreiten. Wenn im Abschneidemodus (cut-through mode) gearbeitet wird, erzeugt ein Schaltbus, der mehr Verkehr überträgt, als die Kapazität seiner Bandbreite erlaubt, einen Unterlauf der Sende-FIFOs. Mit anderen Worten können Zellen, die im Sende-FIFO gespeichert sind, überschrieben werden, bevor sie über den richtigen Port gesendet werden. Der Puffermanager muß somit die Belastung des Bus-FIFOs steuern, um sicherzustellen, daß Dialoge zwischen Ports nur gestartet werden, wenn der Schaltbus den Dialog unterbringen kann.
  • Ferner kann eine Netzwerkeinrichtung Netzwerkbandbreite reservieren. Reservierte Bandbreite muß zu jeder Zeit für die Netzwerkeinrichtung verfügbar bleiben. Die Belastungssteuerung muß daher sicherstellen, daß die Reservebrandbreite nicht von anderen Dialogen verbraucht wird.
  • Im folgenden ist eine bevorzugte Ausführungsform der Belastungssteuerung beschrieben. In 8 ist ein Graph gezeigt, der ein Beispiel einer Bandbreitenzuweisung darstellt. Die gesamte verfügbare Bandbreite des Schaltbusses beträgt 2,4 Gb/s. Der Abschnitt 810 zeigt den Teil der Gesamtheit, der für einen ganz bestimmten Portverkehr reserviert wurde. Wie gezeigt, wurden 0,4 Gb/s reserviert, und 2,0 Gb/s verbleiben für den Busverkehr mit hoher und niedriger Priorität. Der Abschnitt 820 entspricht dem Teil der Bandbreite, der für Busverkehr mit hoher Priorität verwendet werden kann. Dieser Teil umfaßt die gesamten 2,0 Gb/s, die nicht reserviert wurden. Dialoge hoher Priorität können somit niemals die Obergrenze von 2,0 Gb/s überschreiten. Ebenso kann die Kombination aus Dialogen hoher und niedriger Priorität niemals die hohe Grenze von 2,0 Gb/s überschreiten. Der Abschnitt 830 zeigt den Teil der Bandbreite, der von Busverkehr mit niedriger Priorität genutzt werden darf. Dieser Teil umfaßt 1,5 Gb/s. Dialoge niedriger Priorität dürfen somit niemals die niedrige Grenze von 1,5 Gb/s überschreiten.
  • Die Belastungssteuerung muß also sicherstellen, daß Dialoge nur beginnen, wenn der Schaltbus den Dialog unterbringen kann. Die Belastungssteuerung muß auch sicherstellen, daß die Reservebandbreite für den richtigen Port reserviert wird und daß Dialoge nicht die zugehörige Grenze überschreiten. Jede Datenaustauscheinrichtung überwacht somit die Belastung des Schaltbusses. Die Datenaustauscheinrichtungen realisieren eine Belastungssteuerung derart, daß Dialoge nur begonnen werden, wenn der Dialog nicht dazu führt, daß der Schaltbus eine Bandbreitengrenze überschreitet.
  • Mit Bezug auf 9 ist im folgenden ein Blockdiagramm einer bevorzugten Ausführungsform einer Busschnittstelle 138 beschrieben, welche eine Bandbreitenüberwachungsschaltung umfaßt. Die Busschnittstelle 138 umfaßt vier primäre Aufwärts-Abwärtszähler 910, 912, 914 und 916. Bei Erfassung einer 10 Mb/s-Zelle hoher Priorität, die ein SOF-Feld enthält, inkrementiert die Busschnittstelle 138 den Zähler 910. Bei Erfassung einer 10 Mb/s-Zelle hoher Priorität, die ein EOF-Feld enthält, dekrementiert die Busschnittstelle 138 den Zähler 910. Ähnlich wird der Zähler 912 bei Erfassung einer 100 Mb/s-Zelle hoher Priorität, die ein SOF-Feld enthält, inkrementiert und bei Erfassung einer 100 Mb/s-Zelle hoher Priorität, die ein EOF-Feld enthält, dekrementiert. Die Zähler 914 und 916 arbeiten genauso wie die Zähler 910 bzw. 912, abgesehen davon, daß die Zähler 914 und 916 gestützt auf die Zellen niedriger Priorität anstatt auf die Zellen hoher Priorität inkrementiert und dekrementiert werden.
  • Ein Dialog mit 100 Mb/s benötigt mehr Bandbreite als ein Dialog mit 10 Mb/s. Die 100 Mb/s-Zähler 912 und 916 werden daher bei der Erfassung eines SOF-Feldes um einen proportional größeren Wert inkrementiert. Ähnlich werden diese Zähler bei Erfassung eines EOF-Feldes um einen proportional größeren Wert dekrementiert.
  • Durch das Kästchen 922 wird der Wert des Zählers 914 zu dem des Zählers 916 addiert, um einen Bandbreitenzählerwert niedriger Priorität (LOPRI-BW-CNT) 932 vorzusehen. Im Kästchen 920 wird das Ergebnis des Kästchens 922 zu den Werten der Zähler 910 und 912 addiert, um einen Gesamtbandbreitenzählerwert (TOTAL-BN-CNT) 930 vorzusehen.
  • Zusätzlich zu den normalen 10 Mb/s und 100 Mb/s-Zellen kann eine Datenaustauscheinrichtung auch Reservezellen übertragen. Die Bandbreite für die Reservezellen wird keiner anderen Dialogart zugewiesen. Die Reservebandbreite steht daher für die Reservezellen immer zur Verfügung. Die Reservezellen inkrementieren oder dekrementieren daher keinen der Zähler.
  • Die Datenaustauscheinrichtung kann auch ATM-Zellen, 1000 Mb/s-Zellen, Sofort-Bezahlen-Zellen (pay-as-you-go cells) und andere Arten von Zellen übertragen. Die Datenaustauschein richtung 138 betreibt für jede dieser anderen Zellenarten einen Zähler hoher Priorität und einen Zähler niedriger Priorität. Die Zählerwerte niedriger Priorität werden zu LOPRI-BW-CNT 932 addiert, und die Zählerwerte hoher Priorität werden zu TOTAL-BW-CNT 930 addiert. Durch Überwachung der Bandbreitenauslastung des Schaltbusses kann die Datenaustauscheinrichtung 138 ermitteln, ob sie zusätzliche Dialoge starten darf. Wenn einer der Ports 121133 gerade einen Block empfangen hat, bestimmt die Schnittstelle, ob auf dem Schaltbus momentan genügend Bandbreite zur Verfügung steht, um diesen Block zu übertragen. Wenn ja, wird der Block in das Empfangs-FIFO 134 für die Übertragung über den Schaltbus 150 gelegt. Anderenfalls wird der Block in einem Port-FIFO gespeichert, bis die Bandbreite verfügbar ist.
  • Mit Bezug auf 10 ist im folgenden die bevorzugte Betriebsart eines Empfangs-FIFO (wie das FIFO 134 der 7) beschrieben. Das Empfangs-FIFO verwendet LOPRI-BW-CNT 932 und TOTAL-BW-CNT 930 (aus 9), um eine Entscheidung über die Belastung durch eingehende Zellen zu treffen. Das Empfangs-FIFO beginnt beim Kästchen 1010, wo es ermittelt, welche Ports Reservezellen oder Zellen aus Blöcken, die gerade verarbeitet werden, aufweisen, die in einen Bus-FIFO gelegt werden können. Beim Kästchen 1012 lädt das Empfangs-FIFO solche Reservezellen und in Bearbeitung befindliche Zellen in das Bus-FIFO.
  • Beim Kästchen 1014 ermittelt das Empfangs-FIFO, welche Ports 10 Mb/s-SOF-Zellen hoher Priorität aufweisen, die in das Bus-FIFO gelegt werden können. Beim Kästchen 1016 berechnet das Empfangs-FIFO einen Zählwert, welcher der Bandbreite der verfügbaren 10 Mb/s-SOF-Zellen hoher Priorität enspricht (im folgenden HP-10-CNT). Das Empfangs-FIFO addiert diesen Zählwert zu dem momentanen Wert von TOTAL-BW-CNT. Wenn diese Summe kleiner oder gleich die hohe Grenze ist, geht das Empfangs-FIFO zum Kästchen 1018 weiter. Hier lädt das Empfangs-FIFO die verfügbaren 10 Mb/s-SOF-Zellen hoher Priorität in das Bus-FIFO.
  • Beim Kästchen 1020 ermittelt das Empfangs-FIFO, welche Ports 100 Mb/s-SOF-Zellen mit hoher Priorität aufweisen, die in das Bus-FIFO gelegt werden können. Beim Kästchen 1022 berechnet das Empfangs-FIFO einen Zählwert, der die Bandbreite der verfügbaren 100 Mb/s- SOF-Zellen hoher Priorität darstellt (im folgenden HP-100-CNT). Das Empfangs-FIFO addiert diesen Zählwert zu dem momentanen Wert von TOTAL-BW-CNT und HP-10-CNT. Wenn diese Summe kleiner oder gleich die hohe Grenze ist, geht das Empfangs-FIFO zum Kästchen 1018 weiter. Hier lädt das Empfangs-FIFO die verfügbaren 10 Mb/s-SOF-Zellen hoher Priorität in das Bus-FIFO.
  • Beim Kästchen 1026 ermittelt das Empfangs-FIFO, welche Ports 10 Mb/s-SOF-Zellen niedriger Priorität aufweisen, die in das Bus-FIFO gelegt werden können. Beim Kästchen 1028 berechnet das Empfangs-FIFO einen Zählwert, welcher der Bandbreite der verfügbaren 10 Mb/s-SOF-Zellen niedriger Priorität entspricht (im folgenden LP-10-CNT). Das Empfangs-FIFO addiert diesen Wert zum momentanen Wert von LOWPRI-BW-CNT, um einen Gesamtwert für die niedrige Priorität vorzusehen. Das Empfangs-FIFO addiert ferner LP-10-CNT zu dem momentanen Wert von TOTAL-BW-CNT, HP-10-CNT und HP-100-CNT, um einen Gesamtwert für die Bandbreite zu bilden. Wenn der Gesamtwert für die niedrige Priorität geringer als oder gleich die niedrige Grenze ist und der Gesamtwert für die Bandbreite geringer oder gleich die hohe Grenze ist, geht das Empfangs-FIFO zum Kästchen 1030 weiter. Hier lädt das Empfangs-FIFO die verfügbaren 10 Mb/s-SOF-Zellen niedriger Priorität in das Bus-FIFO.
  • Beim Kästchen 1032 ermittelt das Empfangs-FIFO, welche Ports 100 Mb/s-SOF-Zellen niedriger Priorität haben, die in das Bus-FIFO gelegt werden können. Beim Kästchen 1034 berechnet das Empfangs-FIFO einen Zählwert, welcher die Bandbreite der verfügbaren 100 Mb/s-SOF-Zellen niedriger Priorität darstellt (im folgenden LP-100-CNT). Das Empfangs-FIFO addiert diesen Wert zu dem momentanen Wert von LOWPRI-BW-CNT und LP-10-CNT, um einen Gesamtwert für die niedrige Priorität vorzusehen. Das Empfangs-FIFO addiert auch LP-100-CNT zu dem momentanen Wert von TOTAL-BW-CNT, HP-10-CNT, HP-100-CNT und LP-10-CNT, um einen Gesamtwert für die Bandbreite zu bilden. Wenn der Gesamtwert für die niedrige Priorität kleiner oder gleich die niedrige Grenze ist und der Gesamtwert für die Bandbreite kleiner oder gleich die hohe Grenze ist, geht das Empfangs-FIFO zum Kästchen 1036 weiter. Hier lädt das Empfangs-FIFO die vorhandenen 100 Mb/s-SOF-Zellen niedriger Priorität in das Bus-FIFO.
  • Wenn in einem der Kästchen 1016, 1022, 1028 und 1032 das Empfangs-FIFO ermittelt, daß die von den vorhandenen Zellen geforderte Bandbreite die verfügbare Bandbreite überschreitet, geht das Empfangs-FIFO zum Kästchen 1040 weiter. Hier ermittelt das Empfangs-FIFO, ob eine der vorhandenen Zellen übertragen werden kann, ohne die zugehörigen Grenzen der Bandbreite zu überschreiten. Wenn ja, werden diese Zellen in das Bus-FIFO gelegt, und das Empfangs-FIFO geht zum Block 1010 zurück.
  • Bei einer anderen bevorzugten Ausführungsform werden die vorhandenen Zellen in das Bus-FIFO geladen, und die Bandbreiten-Grenzwerte werden geprüft, nachdem die Busschnittstelle den Zugriff erhalten hat. Wenn die Bandbreitenüberprüfung für eine der Zellen negativ ausfällt, während die Datenaustauscheinrichtung den Schaltbus kontrolliert (Master), wird diese Zelle fallengelassen. Nachdem die Busschnittstelle die Übertragung beendet hat und den Bus nicht mehr beherrscht, werden die Zeiger des Empfangs-FIFO zurückgesetzt, so daß alle fallengelassenen Zellen für die nächste Übertragung neu geladen werden.
  • Mit Bezug auf 11 ist im folgenden eine bevorzugte Betriebsweise einer Busschnittstelle (wie die Busschnittstelle 138 in 9) beschrieben, welche Bandbreitenzähler inkrementiert. Die Busschnittstelle beginnt beim Kästchen 1110, wo sie den Schaltbus auf Zellen überwacht, welche ein SOF-Feld enthalten. Bei Erfassung einer solchen Zelle geht die Busschnittstelle zum Kästchen 1112 weiter. Hier ermittelt die Busschnittstelle die Priorität der Zelle. Wenn die Busschnittstelle eine Reservezelle erfaßt, geht sie zum Kästchen 110 zurück. Wenn sie eine Zelle mit niedriger Priorität erfaßt, geht sie zum Kästchen 1116 weiter. Wenn sie eine Zelle hoher Priorität erfaßt, geht sie zum Kästchen 1114 weiter. Beim Kästchen 1116 ermittelt die Busschnittstelle 138 die Größe des Inkrements. Wie oben erläutert, inkrementieren 100 Mb/s-Zellen den Zähler um eine proportional größere Größe als 10 Mb/s-Zellen. Die Busschnittstelle ermittelt somit den Betrag des Inkrements gestützt auf die erwartete Nutzung der Bandbreite. Nach der Ermittlung des Inkrementbetrags inkrementiert die Busschnittstelle den Zähler mit niedriger Priorität und geht zum Kästchen 1114 weiter.
  • Beim Kästchen 1114 inkrementiert die Busschnittstelle den Zähler für die hohe Priorität. Die Inkrementgröße wird wie in bezug auf das Kästchen 1116 beschrieben ermittelt. Die Bus schnittstelle geht dann zum Kästchen 1110 zurück, um die Überwachung nach der nächsten Zelle, welche ein SOF-Feld enthält, fortzusetzen.
  • Während der Überwachung von Zellen, die SOF-Felder enthalten, überwacht die Busschnittstelle gleichzeitig Zellen, die EOF-Felder enthalten. Diese werden dazu verwendet, die Bandbreitenzähler zu dekrementieren.
  • Wie gerade beschrieben, werden die Bandbreitenzähler beim Empfang einer SOF-Zelle sofort inkrementiert. Dadurch erhält man ein präzises Maß der Bandbreite, weil die SOF-Zellen bereits begonnen haben, die Bandbreiten zu nutzen. Bei Erfassung einer EOF-Zelle können die Zähler jedoch nicht sofort dekrementiert werden, weil die EOF-Zellen die Busbandbreite momentan noch nutzen. Um einen präzisen Zählwert zu erhalten, muß die Datenaustauscheinrichtung auf das Ende der EOF-Zellen warten, bevor der Zählwert der Bandbreite dekrementiert wird. Zu diesem Zweck betreibt eine Datenaustauscheinrichtung ein Dekrement-FIFO. Bei Erfassung einer EOF-Zelle wird dem Dekrement-FIFO ein Eintrag hinzugefügt. Die Datenaustauscheinrichtung überwacht das Dekrement-FIFO, und nach einer Buslatenzperiode entfernt die Datenaustauscheinrichtung den Eintrag aus dem FIFO und dekrementiert den richtigen Zähler.
  • In 12 ist eine bevorzugte Ausführungsform eines Dekrement-FIFO gezeigt. Das Dekrement-FIFO 1210 weist mehrere Einträge 1230 (E1-EN) auf. Bei Empfang einer Zelle, welche ein EOF-Feld enthält, wird dem Dekrement-FIFO ein neuer Eintrag hinzugefügt. Jeder dieser Einträge 1230 umfaßt ein Prioritätsfeld 1220, einen Größenfeld 1222, einen Typenfeld 1224 und ein Zeitfeld 1226. Das Prioritätsfeld 1220 gibt die Priorität der EOF-Zelle an. Das Größenfeld 1222 gibt an, ob der Block kleiner ist als ein Block voller Größe (z. B. ein Viertel Block, einer halber Block oder ein dreiviertel Block). Das Verkehr-Typenfeld 118 wird dazu verwendet, den Typ des Blocks anzugeben. Wie oben beschrieben, werden die Zähler für unterschiedliche Zellen, wie 10 Mb/s, 100 Mb/s, ATM OC3, ATM OC12, oder andere Typen, um unterschiedliche Größen inkrementiert. Das Zeitfeld speichert die Zeit seit der letzten EOF-Zelle. Wenn die Blöcke aus dem FIFO geladen werden, wird dieses Feld dazu verwendet zu ermitteln, wann der richtige Bandbreitenzähler dekrementiert werden kann. Bei Erfas sung einer EOF-Zelle legt eine Datenaustauscheinrichtung einen neuen Eintrag in das Dekrement-FIFO.
  • Mit Bezug auf 13 ist im folgenden die bevorzugte Betriebsweise einer Datenaustauscheinrichtung beschrieben, welche die Bandbreitenzähler dekrementiert. Beim Kästchen 1310 war der Schaltbus frei, und die Datenaustauscheinrichtung wartet auf eine EOF-Zelle. Bei Erfassung einer EOF-Zelle geht die Datenaustauscheinrichtung zum Kästchen 1314 weiter und startet einen Dekrement-Zeitgeber und einen EOF-zu-EOF-Zeitgeber. Der Dekrement-Zeitgeber wird zum ersten mal gestartet, wenn der erste Eintrag in das Dekrement-FIFO gelegt wird, und er wird später zurückgesetzt, wenn ein Bandbreitenzähler dekrementiert wird. Der EOF-zu-EOF-Zeitgeber wird zurückgesetzt, wenn ein neuer Eintrag auf den Dekrementstapel gelegt wird. Der EOF-zu-EOF-Zeitgeber überwacht die Zeitdauer seit der letzten EOF-Zelle.
  • Beim Kästchen 1316 lädt die Datenaustauscheinrichtung einen neuen Eintrag in das Dekrement-FIFO. Wie oben erörtert, enthält der Eintrag Informationen in bezug auf die EOF-Zelle, die im Kästchen 1310 empfangen wurde. Das Zeitfeld wird mit der maximalen Buslatenz geladen. Beim Kästchen 1318 setzt die Datenaustauscheinrichtung die Überwachung auf zusätzliche EOF-Zellen fort. Wenn eine erfasst wird, geht die Datenaustauscheinrichtung zum Kästchen 1326 weiter, anderenfalls geht die Datenaustauscheinrichtung zum Kästchen 1320 weiter. Beim Kästchen 1326 lädt die Datenaustauscheinrichtung einen weiteren Eintrag in das Dekrement-FIFO. Der Eintrag enthält Informationen in bezug auf die EOF-Zelle, die gerade empfangen wurde, und in das Zeitfeld wird der aktuelle Wert des EOF-zu-EOF-Zeitgebers geladen. Beim Kästchen 1328 wird der EOF-zu-EOF-Zeitgeber zurückgesetzt, und die Datenaustauscheinrichtung geht zum Kästchen 1320 weiter.
  • Beim Kästchen 1320 vergleicht die Datenaustauscheinrichtung das Zeitfeld des ältesten Eintrags in dem Dekrement-FIFO mit dem aktuellen Wert des Dekrement-Zeitgebers. Wenn das Zeitfeld geringer ist als der Dekrement-Zeitgeber, geht die Datenaustauscheinrichtung zum Kästchen 1318 zurück. Anderenfalls, beim Kästchen 1322, setzt die Datenaustauscheinrichtung den Dekrement-Zeitgeber zurück. Beim Kästchen 1324 entfernt die Datenaustauschein richtung den ältesten Eintrag aus dem EOF-FIFO. Gestützt auf diesen Eintrag dekrementiert die Datenaustauscheinrichtung entweder den Zähler für die hohe Priorität oder den für die niedrige Priorität. Beim Kästchen 1325 ermittelt die Datenaustauscheinrichtung, ob das Dekrement-FIFO leer ist. Wenn ja, geht die Datenaustauscheinrichtung zum Kästchen 1310 zurück, anderenfalls geht die Datenaustauscheinrichtung zum Kästchen 1318 zurück. In jedem Fall läuft der Betrieb wie oben beschrieben weiter.
  • Bei dem oben beschriebenen Ablauf der Datenaustauscheinrichtung wird sichergestellt, daß der Bandbreitenzähler nicht dekrementiert wird, bis nicht die Übertragung der EOF-Zelle beendet ist. Ferner erfordert diese Betriebsweise nur zwei Zeitgeber für jede Datenaustauscheinrichtung.
  • Wie oben beschrieben, verwendet das Empfangs-FIFO den Bandbreitenzähler, um zu ermitteln, ob auf dem Schaltbus ausreichend Bandbreite zur Verfügung steht, um zusätzliche Dialoge zu beginnen. Gestützt auf die Verfügbarkeit der Bandbreite und auf die Blockpriorität werden Zellen für die Übertragung über den Schaltbus in das Bus-FIFO geladen.
  • Zusätzlich zur Ordnung der eingehenden Zellen gestützt auf die Priorität ordnet das Empfangs-FIFO die Zellen auch abhängig von ihrem Ursprungsport. Das erste Laden erfolgt in der Reihenfolge vom Port 1 zum Port 13. Nach einer erfolgreichen Übertragung erfolgt das nächste Laden in einer Reihenfolge, die bei einem Port nach dem ersten Port beginnt, welcher eine erfolgreiche Übertragung beendet hat.
  • Diese Ladereihenfolge ist beispielhaft in den 14a und 14b dargestellt. Bei der Initialisierung wird die Priorität zum Laden der Ports wie folgt verteilt:
    Port Priorität
    1 1
    2 2
    3 3
    11 11
    12 12
    13 13
  • Wenn somit die Ports 4, 8 und 9 jeweils anzeigen, daß sie eine Zelle für die Übertragung enthalten, wird die Zelle in das Bus-FIFO 712a geladen, wie in 14a gezeigt. Zuerst wird die Zelle 1410 des Ports 4 geladen. Dann wird die Zelle 1412 des Ports 8 geladen. Und die Zelle 1414 des Ports 9 wird zuletzt geladen. Die Zellen werden über den Schaltbus in der Reihenfolge übertragen, in der sie in das Bus-FIFO 712a geladen wurden. Nach einer erfolgreichen Übertragung wird die Ladepriorität an den Port 4 übergeben. Die Ladeprioritäten der Ports sind wie folgt:
    Port Priorität
    5 1
    6 2
    : :
    12 8
    13 9
    1 10
    2 11
    3 12
    4 13
  • Wenn somit die Ports 3, 10 und 12 anzeigen, daß sie eine Zelle für die Übertragung haben, werden diese Zellen in das Bus-FIFO 712b geladen, wie in 14b gezeigt. Die Zelle 1420 des Ports 10 wird zuerst geladen. Dann wird die Zelle 1422 des Ports 12 geladen, und die Zelle 1424 des Ports 3 wird zuletzt geladen. Nach einer erfolgreichen Übertragung wird die Ladepriorität an den Port 6 übergeben. Die Ladepriorität wird für nachfolgende Übertragungen ähnlich realisiert.
  • Während der Perioden, während derer der Schaltbus stark belastet ist, kann es sein, daß eine Datenaustauscheinrichtung nicht alle vorhandenen Zellen übertragen kann. Wenn die Lade-Priorität fest wäre, könnten während diesen Zeiten nur die Ports mit der höchsten Priorität irgendwelche Zellendaten übertragen. Durch Rotieren der Priorität wird der Zugriff auf den Schaltbus gleichmäßig zwischen den Ports verteilt. Obwohl sich das in den 14a und 14b gezeigte Beispiel auf 10 Mb/s-SOF-Zellen hoher Priorität bezog, wird derselbe Ausgleichsvorgang auch auf die anderen Zellentypen angewendet.

Claims (21)

  1. Netzwerkschalter zum Verbinden von Netzwerken, mit folgenden Merkmalen: mehrere Ports (121133, 171183), die so konfiguriert sind, daß sie Blöcke von einem Netzwerk empfangen und die Blöcke in Zellen aufteilen, wobei jede der Zellen ein Ursprungsportfeld aufweist; ein Empfangs-FIFO (134, 184), das mit den mehreren Ports verbunden und so konfiguriert ist, dass die Zellen von den mehreren Ports empfangt; eine Schaltbusschnittstelle (138, 188), die mit dem Empfangs-FIFO gekoppelt und so konfiguriert ist, dass sie die Zellen von dem Empfangs-FIFO empfangt und die Zellen über einen Schaltbus (150) sendet, wobei die Schaltbusschnittstelle (138, 188) folgende Merkmale aufweist: – einen Bandbreitenzähler (930, 932), der so konfiguriert ist, dass er nach der Erfassung einer Blockanfang-Zelle inkrementiert und nach der Erfassung einer Blockende-Zelle dekrementiert; – einen Blockende-Zeitgeber, der so konfiguriert ist, dass er die Zeit seit der letzten Blockende-Zelle misst; – einen Dekrement-Zeitgeber, der zurückgesetzt wird, wenn der Bandbreitenzähler dekrementiert wird; und – ein Dekrement-FIFO, das so konfiguriert ist, dass es die Zeit seit der letzten Blockende-Zelle speichert, wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie den Bandbreitenzähler (930, 932) dekrementiert, wenn der Dekrement-Zeitgeber die Zeit seit der letzten Blockende-Zelle überschreitet.
  2. Netzwerkschalter nach Anspruch 1, bei dem jeder der mehreren Ports (121133, 171183), eine Medienzugriffssteuereinrichtung aufweist.
  3. Netzwerkschalter nach Anspruch 1 oder 2, bei dem das Empfangs-FIFO (134, 184) einen Empfangsmanager (710) und ein Bus-FIFO (712) aufweist, wobei der Empfangsmanager (710) so konfiguriert ist, dass er die Übertragung von Zellen von den mehreren Ports (121133, 171183) zu dem Bus-FIFO gestützt auf Zellenprioritäten koordiniert.
  4. Netzwerkschalter nach einem der vorangehenden Ansprüche, bei dem der Bandbreitenzähler (930, 932) so konfiguriert ist, dass er eine Latenzperiode nach der Erfassung einer Blockende-Zelle dekrementiert.
  5. Netzwerkschalter nach einem der vorangehenden Ansprüche, bei dem die Schaltbusschnittstelle (138, 188) so konfiguriert ist, dass sie Zellen von einem anderen Netzwerkschalter über den Schaltbus (150) empfängt und die Zellen gestützt auf das Ursprungsportfeld weiterleitet.
  6. Netzwerkschalter nach Anspruch 5, bei dem die Schaltbusschnittstelle (138, 188) eine Lenktabelle (136, 186) aufweist, wobei die Schaltbusschnittstelle so konfiguriert ist, dass sie Lenkinformation durch Indexieren der Lenktabelle mit Hilfe des Ursprungsportfeldes ermittelt.
  7. Netzwerkschalter nach Anspruch 6, bei dem die Lenktabelle mehrere Einträge aufweist, wobei jeder Eintrag ein Ursprungsportfeld (420) und ein Zielfeld (422) aufweist.
  8. Netzwerkschalter zum Verbinden von Netzwerkeinrichtungen, mit folgenden Merkmalen: mehrere Ports (121133, 171183), die so konfiguriert sind, dass sie Daten zu mehreren Netzwerkeinrichtungen senden und von diesen empfangen; ein Empfangs-FIFO (134, 184), das so konfiguriert ist, dass es Daten von den mehreren Ports empfängt; ein Sende-FIFO (142, 192), das so konfiguriert ist, dass Daten zu den mehreren Ports sendet; und eine Busschnittstelle (138, 188), die mit dem Empfangs-FIFO (134, 184) und dem Sende-FIFO (142, 192) verbunden und so konfiguriert ist, dass sie einen Schaltbus (150) überwacht und Daten über den Schaltbus sendet und empfängt, wobei die Busschnittstelle (138) folgende Merkmale aufweist: ein Bandbreitenzähler (930, 932), der so konfiguriert ist, dass er nach der Erfassung eines Blockanfang-Feldes inkrementiert und nach der Erfassung eines Blockende-Feldes dekrementiert wird, und ein Dekrement-FIFO, das mit dem Bandbreitenzähler (930, 932) verbunden ist, wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie Blockende-Daten in dem Dekrement-FIFO speichert und den Bandbreitenzähler dekrementiert, nachdem die Blockende-Daten während einer Latenzperiode in dem Dekrement-FIFO gespeichert waren.
  9. Netzwerkschalter nach Anspruch 8, bei dem der Bandbreitenzähler (930, 932) folgende Merkmale aufweist: ein Bandbreitenzähler (932) für die niedrige Priorität, der so konfiguriert ist, dass er nach der Erfassung eines Blockanfang-Feldes niedriger Priorität inkrementiert und nach der Erfassung eines Blockende-Feldes niedriger Priorität dekrementiert; und ein Gesamtbreitenzähler (930), der so konfiguriert ist, dass er nach der Erfassung eines Blockanfang-Feldes niedriger Priorität oder hoher Priorität inkrementiert und nach der Erfassung eines Blockende-Feldes niedriger Priorität oder hoher Priorität dekrementiert.
  10. Netzwerkschalter nach Anspruch 8 oder 9, bei dem das Dekrement-FIFO so konfiguriert ist, dass mehrere Einträge enthält, wobei jeder Eintrag ein Typfeld und ein Zeitfeld umfasst und wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie eine Dekrementgröße gestützt auf das Typfeld und die Latenzperiode gestützt auf das Zeitfeld ermittelt.
  11. Netzwerkschalter nach Anspruch 10, bei dem die Busschnittstelle (138, 188) so konfiguriert ist, dass sie eine Zeit seit einem letzten Blockende-Feld in dem Zeitfeld speichert.
  12. Netzwerkschalter nach Anspruch 11, bei dem die Busschnittstelle (138, 188) einen Dekrement-Zeitgeber aufweist, der so konfiguriert ist, dass nach dem Dekrementieren des Bandbreitenzählers zurückgesetzt wird, wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie den Bandbreitenzähler (930, 932) dekrementiert, wenn der Dekrement-Zeitgeber einen Wert anzeigt, der die Zeit seit dem letzten Blockende-Feld überschreitet.
  13. Netzwerkschalter nach einem der Ansprüche 8 bis 12, bei dem die von der Busschnittstelle (138, 188) empfangenen Daten eine Ursprungsport- Identifikationskomponente umfassen, wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie einen Eintrag aus einer Lenktabelle (136, 186) gestützt auf die Ursprungsport-Identifikation auswählt.
  14. Netzwerkschalter nach einem der Ansprüche 8 bis 13, bei dem die Busschnittstelle (138, 188) eine Lenktabelle (136, 186) mit einem Ursprungsfeldeintrag und einem Zielfeldeintrag umfasst, wobei die Busschnittstelle (138, 188) so konfiguriert ist, dass sie über den Schaltbus (150) empfangene Daten gestützt auf die Lenktabelle (136, 186) weiterleitet.
  15. Netzwerkschalter nach Anspruch 14, bei dem die Busschnittstelle (138, 188) so konfiguriert ist, dass sie nach dem Empfang von Blockanfang-Daten selektiv einen Eintrag zu der Lenktabelle (136, 186) hinzufügt.
  16. Netzwerkschalter nach Anspruch 14 oder 15, bei dem die Busschnittstelle (138, 188) so konfiguriert ist, dass bei Empfang von Blockende-Daten selektiv einen Eintrag der Lenktabelle (136, 186) ungültig macht.
  17. Verfahren zum Austauschen von Daten über einen Netzwerkschalter (150) mit folgenden Verfahrensschritten: Empfangen von Blockanfang-Daten über einen Schaltbus (150); Inkrementieren eines Bandbreitenzählers (930, 932) nach dem Empfang der Blockanfang-Daten; Empfangen von Blockende-Daten über den Schaltbus (150); Hinzufügen eines Eintrags in ein Dekrement-FIFO nach dem Empfang der Blockende-Daten, wobei der Eintrag ein Zeitfeld umfasst; und Dekrementieren des Bandbreiten-Zählers (930, 932) eine Latenzperiode nach dem Hinzufügen des Eintrags in das Dekrement-FIFO.
  18. Verfahren nach Anspruch 17, bei dem der Schritt des Empfangens von Blockanfang-Daten das Empfangen von Blockanfang-Daten hoher Bandbreite und niedriger Bandbreite umfasst, und bei dem der Schritt des Inkrementierens des Bandbreiten-Zählers (930, 932) das Inkrementieren des Bandbreiten-Zählers um einen ersten Betrag nach dem Empfang von Blockanfang-Daten hoher Bandbreite und das Inkrementieren des Bandbreiten-Zählers um einen zweiten Betrag nach dem Empfang von Blockanfang-Daten niedriger Bandbreite umfasst, wobei der erste Betrag größer ist als der zweite Betrag.
  19. Verfahren nach Anspruch 17 oder 18, bei dem bei dem Schritt des Hinzufügens eines Eintrags in das Dekrement-FIFO das Zeitfeld einen Wert enthält, der eine Zeit seit dem Empfang der letzten Blockende-Daten angibt.
  20. Verfahren nach Anspruch 19, bei dem ein Dekrementzeitgeber gleichzeitig mit dem Dekrementieren des Bandbreiten-Zählers (930, 932) zurückgesetzt wird.
  21. Verfahren nach einem der Ansprüche 17 bis 20, bei dem ein ältester Eintrag aus dem Dekrement-FIFO entfernt wird, wenn ein Wert des Dekrement-Zeitgebers größer ist als der Wert des Zeitfeldes des ältesten Eintrags.
DE19929516A 1998-07-01 1999-06-28 Hochgeschwindigkeits-Netzwerkschalter Expired - Fee Related DE19929516B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/108,846 US6421348B1 (en) 1998-07-01 1998-07-01 High-speed network switch bus
US09/108,846 1998-07-01

Publications (2)

Publication Number Publication Date
DE19929516A1 DE19929516A1 (de) 2000-01-05
DE19929516B4 true DE19929516B4 (de) 2008-07-17

Family

ID=22324395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19929516A Expired - Fee Related DE19929516B4 (de) 1998-07-01 1999-06-28 Hochgeschwindigkeits-Netzwerkschalter

Country Status (3)

Country Link
US (1) US6421348B1 (de)
KR (1) KR100335808B1 (de)
DE (1) DE19929516B4 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2797964B1 (fr) * 1999-08-23 2002-03-29 Thomson Csf Sextant Dispositif de controle securise de commutation de donnees
US7161945B1 (en) * 1999-08-30 2007-01-09 Broadcom Corporation Cable modem termination system
US6771654B1 (en) * 2000-01-24 2004-08-03 Advanced Micro Devices, Inc. Apparatus and method for sharing memory using a single ring data bus connection configuration
US6745246B1 (en) * 2000-01-28 2004-06-01 Advanced Micro Devices, Inc. Apparatus and method in a network switch for modifying a bandwidth request between a requestor and a router
US6981054B1 (en) * 2000-06-06 2005-12-27 Advanced Micro Devices, Inc. Flow control arrangement in a network switch based on priority traffic
US7266613B1 (en) * 2000-08-09 2007-09-04 Microsoft Corporation Fast dynamic measurement of bandwidth in a TCP network environment
US7185082B1 (en) 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US7260104B2 (en) * 2001-12-19 2007-08-21 Computer Network Technology Corporation Deferred queuing in a buffered switch
US6792449B2 (en) * 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US7103038B1 (en) * 2001-07-02 2006-09-05 Juniper Networks, Inc. Systems and methods for converting a P packet/cycle datapath to a Q packet/cycle datapath
US7299280B2 (en) * 2001-10-17 2007-11-20 The Regents Of University Of California Method and apparatus for TCP with faster recovery
KR100485850B1 (ko) * 2002-03-07 2005-04-28 삼성전자주식회사 프로토콜 처리 장치 및 방법, 그리고 트래픽 처리 장치 및방법
US7725557B2 (en) 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
US6934776B2 (en) * 2002-07-16 2005-08-23 Intel Corporation Methods and apparatus for determination of packet sizes when transferring packets via a network
US7650421B2 (en) 2002-12-30 2010-01-19 Microsoft Corporation Adaptable accelerated content streaming
EP1450536A1 (de) * 2003-02-24 2004-08-25 STMicroelectronics Limited Weiterleitung von Datenströmen
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US7054774B2 (en) * 2003-06-27 2006-05-30 Microsoft Corporation Midstream determination of varying bandwidth availability
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
AU2003295277A1 (en) * 2003-12-24 2005-07-14 Telefonaktiebolaget Lm Ericsson (Publ) Multisectional bus in radio base station and method of using such a radio base station
KR100582554B1 (ko) * 2004-02-11 2006-05-22 한국전자통신연구원 통신과 방송의 융합 서비스를 위한 액세스 시스템
US7162533B2 (en) 2004-04-30 2007-01-09 Microsoft Corporation Session description message extensions
US7600010B2 (en) * 2004-10-12 2009-10-06 Eaton Corporation Method of managing communication buffers employing an application framework for a plurality of communication layers and node employing the same
JP4396657B2 (ja) * 2006-03-16 2010-01-13 ソニー株式会社 通信装置及び送信制御方法及び送信制御プログラム
US10291503B2 (en) * 2013-09-26 2019-05-14 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed network
US20170093560A1 (en) * 2015-09-29 2017-03-30 Tektronix, Inc. Adaptive compensation for internal asymmetric delay in network based timing systems
EP4228210A4 (de) * 2020-11-03 2023-11-29 Huawei Technologies Co., Ltd. Netzwerkchip und netzwerkvorrichtung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997004564A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Allocated and dynamic bandwidth management
WO1997031455A1 (en) * 1996-02-23 1997-08-28 Allied Telesyn International Corporation Method and apparatus for switching data packets in a data network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1159480B (it) * 1983-08-04 1987-02-25 Cselt Centro Studi Lab Telecom Nodo di commutazione distribuito a banda variabile con gestione dinamica delle trame ibride
US5303302A (en) * 1992-06-18 1994-04-12 Digital Equipment Corporation Network packet receiver with buffer logic for reassembling interleaved data packets
JP3014080B2 (ja) * 1994-12-28 2000-02-28 三菱電機株式会社 交換機アダプタ及び汎用計算機
JP2833555B2 (ja) * 1995-10-31 1998-12-09 日本電気株式会社 優先制御方式
US5974466A (en) * 1995-12-28 1999-10-26 Hitachi, Ltd. ATM controller and ATM communication control device
JP3409966B2 (ja) * 1996-06-21 2003-05-26 株式会社日立製作所 パケット交換機およびパケット転送制御方法
US6023472A (en) * 1996-07-08 2000-02-08 Lancast, Inc. High speed FD/HD data translator and network
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
JP3156623B2 (ja) * 1997-01-31 2001-04-16 日本電気株式会社 ファイバチャネルファブリック
US6198724B1 (en) * 1997-10-02 2001-03-06 Vertex Networks, Inc. ATM cell scheduling method and apparatus
US6151321A (en) * 1997-11-14 2000-11-21 Fore Systems, Inc. Method and system for sending ATM cells to an ATM network from a host

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997004564A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Allocated and dynamic bandwidth management
WO1997031455A1 (en) * 1996-02-23 1997-08-28 Allied Telesyn International Corporation Method and apparatus for switching data packets in a data network

Also Published As

Publication number Publication date
KR20000011350A (ko) 2000-02-25
KR100335808B1 (ko) 2002-05-08
US6421348B1 (en) 2002-07-16
DE19929516A1 (de) 2000-01-05

Similar Documents

Publication Publication Date Title
DE19929516B4 (de) Hochgeschwindigkeits-Netzwerkschalter
DE69936966T2 (de) Kommunikationseinrichtung mit variabler Paketlänge
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE69726223T2 (de) Verkehrsformer mit virtuellen Pfaden mit mehrfachen Warteschlangen
DE69929142T2 (de) Verfahren zur Bilddatenübertragung unter Verwendung von einem IEEE 1394 Bus
DE60038538T2 (de) Vermittlungseinrichtung und Vermittlungsverfahren
DE69635379T2 (de) Atm-drosselung
DE60031596T2 (de) Zeitmultiplex-Vermittlungssystem (TDM) mit sehr breitem Speicher
DE4033334C2 (de) Integriertes Multimediennetzwerksystem
DE10123821A1 (de) Geschaltete Ethernet-Netzwerke
DE102007038964A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten
DE69832149T2 (de) ATM-Zellenübermittlungssystem
EP0996257A2 (de) Netzwerk mit Brücken-Terminal zur Übertragung von Daten zwischen mehreren Sub-Netzwerken
DE19907019A1 (de) Verfahren zur verbindungsorientierten Übertragung von Datenpaketen
DE4329048A1 (de) Lokales, nach dem asynchronen Transfermodus (ATM) arbeitendes Netzwerk
EP0833542B1 (de) Lokales Netzwerk mit Sende- und Empfangsvorrichtung
DE60028903T2 (de) Verfahren und Vorrichtung zur Kommunikationskontrolle
DE60036428T2 (de) Paketkommunikationssystem und darin benutzte netzseitige Vorrichtung, sowie Zeitschlitzzuweisungsverfahren.
DE102021109482A1 (de) SYSTEM UND VERFAHREN ZUR REGELUNG VON NVMe-oF-BEFEHLSANFRAGEN UND DATENFLUSS ÜBER EIN NETZWERK MIT UNGLEICHMÄßIGER GESCHWINDIGKEIT
EP0351014A2 (de) Koppelfeld für ein Vermittlungssystem
DE60133067T2 (de) Verfahren und Vorrichtung zum Wiederzusammensetzen von Paketen in einer Vermittlungsstelle
EP0996258A2 (de) Lokales Netzwerk mit einem Brücken-Terminal zur Übertragung von Daten zwischen mehreren Sub-Netzwerken und zur Schleifendetektion
DE19637026A1 (de) Lokales Netzwerk mit zur Funkübertragung vorgesehenen Terminals
DE60112680T2 (de) Netzwerkerweiterungsmodul
DE69926432T2 (de) Rückwandverdrahtung mit zugeordneter Bandbreite für Datenvermittlung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: ,

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee