-
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 121–133 vor (die
Ports 123–131 sind
nicht gezeigt), und die Datenaustauscheinrichtung 160 sieht
Ports 171–183 vor (die
Ports 173–181 sind
nicht gezeigt). Die Ports 121–133 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 121–133.
Jeder der Ports 171–183 ist
mit einer externen physischen Schicht 162 verbunden. Die
externe physische Schicht 162 hat dieselbe Funktion wie die physische
Schicht 112. Jeder der Ports 121–133 und 171–183 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 121–133 verbunden
ist, Daten zu einer Einrichtung übertragen,
welche mit einem der Ports 171–183 verbunden ist. Ähnlich kann
eine Netzeinrichtung, die mit einem der Ports 171–183 verbunden
ist, Daten zu einer Einrichtung übertragen,
die mit einem der Ports 121–133 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 121–133 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 121–133 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 121–133 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 171–183 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 171–183 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 171–183.
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 121–133 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 121–133 (die
Ports 123–131 sind nicht
gezeigt) umfaßt
ein Port-FIFO 701–713 (die FIFOs 701–711 sind
nicht gezeigt). Der FIFO-Manager 710 ist auch mit den Port-FIFOs 721–733 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 121–133 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 121–133 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.