-
TECHNISCHES GEBIET
-
Die
Erfindung betrifft allgemein einen Mehrport-Switch mit hoher Bandbreite
zum Beispiel zur Verwendung in Gigabit-Ethernet-Netzwerken. Insbesondere
betrifft die Erfindung das Puffern von Paketen in einem Switch und
das Aufrechterhalten von Dienstqualität (QoS) in dem gesamten Switch.
-
ALLGEMEINER STAND DER
TECHNIK
-
Netzwerke
dienen zum Transfer von Voice, Video und Daten zwischen verschiedenen
Netzwerkeinrichtungen. In Netzwerken befinden sich Netzwerkeinrichtungen
wie etwa Switch zum Anleiten des Transfers von Netzwerkverkehr zwischen
den verschiedenen Netzwerkeinrichtungen. Netzwerkverkehr ist in
der Regel Burst-artig, und um Netzwerkverkehr-Bursts zu kompensieren,
wurden Speicherpuffer in Switch-Entwürfe integriert. Speicherpuffer
erlauben es einem Switch, Pakete vorübergehend zu speichern, wenn
eine ankommende Datenrate höher
als eine abgehende Datenrate ist. Wenn mehr als ein Puffer Pakete
aufweist, die um denselben Ausgang konkurrieren, müssen bestimmte
Pakte in den Puffern warten, und es wird ein bestimmter Mechanismus
benötigt,
um zu bestimmen, wie Paketwettbewerb aufgelöst wird.
-
Um
Wettbewerb aufzulösen
und einem Netzwerk-Switch höhere
QoS zu geben, sind zwei verschiedene Pufferverwaltungsverfahren
bekannt, Prioritäts-Warteschlangen
und gewichtete faire Warteschlangen. Bei dem Prioritäts-Warteschlangenverfahren
werden konkurrierenden Warteschlangen verschiedene Prioritäten zugewiesen,
und Pakete werden aus den Warteschlangen in strikter Prioritätsreihenfolge
weitergeleitet. Zum Beispiel puffern mit Bezug auf 1 vier
Warteschlangen A, B, C und D Pakete, die um denselben Ausgang 20 konkurrieren,
der eine endliche Bandbreite aufweist. Um den Wettbewerb aufzulösen, werden
den Warteschlangen verschiedene Prioritäten zugewiesen, wie zum Beispiel
eine erste, eine zweite, eine dritte und eine vierte Priorität. Pakete
werden ähnlich
priorisiert und gemäß ihrer
Priorität
in Warteschlangen eingereiht. Die in Warteschlangen eingereihten
Pakete werden in Prioritätsreihenfolge
zu dem Ausgang weitergeleitet, so daß alle Pakete aus Warteschlangen
höherer
Priorität
vor jeglichen Paketen aus Warteschlangen niedriger Priorität weitergeleitet
werden. Obwohl Prioritäts-Warteschlangen
gut funktionieren, wenn Wettbewerb zwischen Warteschlangen besteht,
werden die Pakete höherer
Priorität
auf Kosten von Paketen niedriger Priorität wietergeleitet. Wenn Pakete
höherer
Priorität
den größten Teil
der endlichen Ausgangsbandbreite aufbrauchen, wird den Paketen niedriger
Priorität
Bandbreite versagt und sie können
sich in der gesamten Switch-Architektur anstauen, wodurch potentiell
die Latenz bis zu einem Punkt vergrößert wird, an dem Pakete fallen
gelassen werden. Einige wenige Pakete aus einem Transfer fallen
zu lassen, kann erfordern, einen gesamten Strom von Paketen neu
zu senden, wodurch praktisch die Nachteile verloren gehen, die durch
die Priorisierung der konkurrierenden Warteschlangen an erster Stelle
erhalten wurden.
-
Bei
dem gewichteten fairen Warteschlangenverfahren werden konkurrierenden
Warteschlangen Gewichte zugewiesen, und Pakete werden proportional
zu den jeder Warteschlange zugewiesenen Gewichten aus den Warteschlangen
weitergeleitet. Zum Beispiel puffern mit Bezug auf 2 vier
Warteschlangen A, B, C und D Pakete, die um denselben Ausgang 30 mit
endlicher Bandbreite konkurrieren. Um Konkurrenz aufzulösen, wird
jeder Warteschlange ein Prozentsatz oder ein Gewicht zugewiesen,
der bzw. das die Menge der für
diese Warteschlange reservierten Bandbreite repräsentiert. Betrüge die gesamte
verfügbare
Bandbreite des Ausgangs 100 Byte pro Sekunde, dann würde mit
als 20%, 25%, 15% und 40% zugewiesenen Warteschlangengewichten Warteschlange
A 20 Byte pro Sekunde an den Ausgang weiterleiten, Warteschlange
B 25 Byte pro Sekunde an den Ausgang weiterleiten, Warteschlange
C würde
15 Byte pro Sekunde an den Ausgang weiterleiten und Warteschlange
D würde
40 Byte pro Sekunde an den Ausgang weiterleiten, wobei jeder Anteil
jede Sekunde weitergeleitet wird.
-
Obwohl
das gewichtete faire Warteschlangenverfahren gut dafür funktioniert,
das Problem des Verhungerns zu verhindern, das bei Prioritäts-Warteschlangen
auftritt und eine maximale Flußrate
für jede
Warteschlange herzustellen, wird häufig Ausgangsbandbreite verschwendet,
wenn eine der Warteschlangen keine zu dem Ausgang weiterzuleitenden
Pakete enthält.
Bandbreite wird verschwendet, weil der Prozentsatz der Ausgangsbandbreite,
der für
die bestimmte Warteschlange reserviert ist, reserviert wird, ob
Pakete warten oder nicht. Wenn versucht wird, die übrige Bandbreite
bei dem Verfahren der gewichteten fairen Warteschlangen zu verteilen,
besteht keine offensichtliche Verfahrensweise zum Verteilen der übrigen Bandbreite
zwischen den Warteschlangen, weil den Warteschlangen keine Priorität relativ
zueinander zugewiesen ist.
-
Ein
zusätzlicher
Nachteil der gewichteten fairen Warteschlangen besteht darin, daß die Bandbreitengrenzen
nicht flexibel sind und sie sich deshalb nicht an Schwankungen von
Verkehrsmustern anpassen. Es ist schwer, vorherzusagen, an welche
Stelle die strengen Bandbreitengrenzen für optimale Netzwerkleistungsfähigkeit
gesetzt werden sollen, insbesondere wenn sich Verkehrsmuster dauernd ändern. Außerdem erfordert das
Setzen von Bandbreitengrenzen eine präzise Abstimmung durch einen
Netzwerkadministrator.
-
Zusätzlich zu
den Nachteilen des Warteschlangenverhungerns und der verschwendeten
Bandbreite, die sich aus den Prioritäts- und gewichteten fairen
Warteschlangen ergeben, implementieren vorbekannte Switches die
Prio ritäts-
und gewichteten fairen Warteschlangenverfahren unter Verwendung
von Vielzweck-Zentralverarbeitungseinheiten (CPU) in Verbindung
mit anwendungsspezifischer Software. Obwohl Softwareanwendungen
im allgemeinen leichter zu entwickeln und flexibler zu aktualisieren
sind als in anwendungsspezifisch integrierte Schaltungen (ASIC)
eingebettete Logik, nehmen in Software durchgeführte Operationen in der Regel
mehr Zeit in Anspruch und weisen relativ zu in ASICs eingebetteter
Logik ein größeres Overhead
auf. Mit zunehmenden Bandbreitenanforderungen für Netzwerke wird die Geschwindigkeit,
mit der konkurrierende Pakete aus Puffern freigegeben werden, von
größerer Wichtigkeit.
-
Im
Bezug auf die oben angegebenen Nachteile des Stands der Technik
wird eine Möglichkeit
benötigt, das
Verhungern von priorisierten Warteschlangen zu vermeiden, während unbenutzte
Bandbreite mit Geschwindigkeiten, die zum Beispiel von Gigabit-Ethernet-Netzwerken
erfordert werden, logisch verteilt wird.
-
Aus
der Schrift EP-A-0 648 062, AT&T,
ist ein Verfahren zur adaptiven Steuerung von Fenstern und Raten
in Netzwerken bekannt, in denen ein periodisches Ein-Bit-Rückkopplungssignal mit systematischer Dämpfung und
Steuerung des Verstärkungssignals
kombiniert wird, um eine Minimalbandbreite und einen fairen Anteil übriger verfügbarer Bandbreite
unter virtuellen Leitungen in dem Netzwerk auf rechtzeitige Weise
zu erzielen. Bei diesem Verfahren erfolgt die Verteilung der unbenutzten
Bandbreite "proportional
zu den CIR (vereinbarte Informationsrate) jeder aktiven virtuellen
Leitung.
-
Aus
der Schrift US-5748629 = D2 (Fujitsu Network Communication) ist
ein System und ein Verfahren bekannt, bei dem zusätzliche
Bandbreite teilweise im garantierten Verfahren und teilweise im
Reigenverfahren verteilt wird. Gemäß D2 wird die Bandbreite, die
zu einem Ausgang verteilt wird, entweder als zugeteilte Bandbreite
oder als dynamische Bandbreite definiert. Zugeteilte Bandbreite
bedeutet Bandbreite, die einem bestimmten Verkehr "spezifisch zugewiesen" ist, und dynamische
Bandbreite bedeutet Bandbreite, die zugeteilt, aber unbenutzt ist,
oder Bandbreite, die nicht zugeteilt ist.
-
KURZFASSUNG DER ERFINDUNG
-
Ein
Verfahren und eine Vorrichtung gemäß der vorliegenden Erfindung
werden in den unabhängigen Ansprüchen definiert,
auf die der Leser nun verwiesen wird. Bevorzugte Merkmale werden
in den abhängigen Ansprüchen definiert.
-
Ein
Verfahren und eine Vorrichtung zum Weiterleiten von Paketen aus
konkurrierenden Warteschlangen zu einem Ausgang mit einer endlichen
Bandbreite umfassen: Priorisieren jeder Warteschlange der mehreren
Warteschlangen mit einer Priorität,
die relativ zu den anderen Warteschlangen der mehreren Warteschlangen
fest ist, wodurch ein fester Priorisierungsbereich definiert wird,
der eine Warteschlange höchster
Priorität
und eine Warteschlange niedrigster Priorität enthält; Vergeben eines Anteils
der Bandbreite des Ausgangs an jede der Warteschlangen; Aufbrauchen
mindestens eines Teils der Bandbreite des Ausgangs mit Paketen aus
den Warteschlangen gemäß den vergebenen
Anteilen, wodurch ein unverbrauchter Teil übrig bleibt, wenn mindestens
eine der Warteschlangen den vergebenen Anteil der mindestens einen
Warteschlange nicht ausschöpft;
und Verteilen von einhundert Prozent des unverbrauchten Teils der
Bandbreite an die Warteschlangen auf Festprioritätsbasis, wobei einhundert Prozent
des unverbrauchten Teils der Bandbreite zuerst der Warteschlange
der höchsten
Priorität
und dann einhundert Prozent eines etwaigen übrigen Teils des unverbrauchten
Teils der Bandbreite Warteschlangen niedrigerer Priorität warteschlangenweise
gemäß dem festen
Priorisierungsbereich angeboten werden, bis die gesamte Bandbreite
verbraucht ist oder keine weiteren Pakete in Warteschlangen vorliegen.
Ferner wird bei einer bevorzugten Ausführungsform die Logik zur Durchführung des
Warteschlangenmanagements in eine anwendungsspezifische integrierte
Schaltung eingebettet.
-
Das
Verfahren und die Vorrichtung der Erfindung werden vorzugsweise
in einem Mehrport-Switch mit hoher Bandbreite implementiert, in
dem Pakete gepuffert werden, bevor sie aus dem Switch ausgegeben
werden. Die Architektur des Mehrport-Switch enthält Datenstrecken, die mit Eingangs-/Ausgangssteuerungen
verbunden sind, die mit einem Koppelfeld verbunden sind. Die Datenstrecken
stellen die Datenwege zwischen anderen Einrichtungen in dem Netzwerk
und dem Mehrport-Switch bereit. Es können mehrere Datenstrecken verschiedener
Typen und Kapazitäten
vorliegen, die mit dem Mehrport-Switch verbunden sind. Vorzugsweise sind
die Datenstrecken verdrillte Doppelleitungen und optische Fasern,
die Pakete variabler Länge
gemäß dem Ethernet-Protokoll
mit 10, 100 und 1000 Mbps führen.
-
Die
Eingangs-/Ausgangssteuerungen sind zwischen die Strecken der Daten 35 und
das Koppelfeld geschaltet, um Paketsteuerung zwischen den Datenstrecken
und dem Koppelfeld bereitzustellen. Zu Paketsteuerfunktionen gehört das Senden
und Empfangen von und zu den Datenstrecken und das Puffern ankommender
und/oder abgehender Pakete, um Fluktuationen der Netzwerkverkehrsraten
zu berücksichtigen.
-
Die
Eingangs-/Ausgangssteuerungen führen
dem Koppelfeld außerdem
durch das Koppelfeld zu verarbeitende Pakete zu.
-
Das
Koppelfeld stellt die physischen Datenwege zur Verbindung verschiedener
Datenstrecken des Switch bereit. Zusätzlich teilt das Koppelfeld
durch das Koppelfeld zu übertragende
Pakete auf eine Weise ein, die die Bandbreite des Koppelfelds maximiert.
-
Da
Wettbewerb auftritt, wenn auf verschiedenen Datenstrecken ankommende
Pakete auf derselben Datenstrecke ausgegeben werden sollen, enthält die Eingangs-/Ausgangssteuerungsarchitektur
Eingangspaketpufferungs- und Warteschlangenmanagementfunktionen,
die bei der Minimierung von Paketverlusten helfen. Da das Koppelfeld
in der Lage sein kann, Pakete einer Ausgangsdatenstrecke schneller
zuzuführen,
als die Datenstrecke, die Pakete empfangen kann, enthält Eingangs-/Ausgangssteuerungsarchitektur
zusätzlich Ausgangspufferung
und Warteschlangenmanagement. Die bevorzugte Ausführungsform
der Erfindung wird mit Bezug auf Ausgangspaketpufferung und Warteschlangenmanagement
beschrieben, obwohl die Erfindung gleichermaßen auf Eingangspaketpufferung
und -warteschlangenmanagement anwendbar ist.
-
Bei
der bevorzugten Ausführungsform
enthalten die Eingangs-/Ausgangssteuerungen Ausgangswarteschlangenmanager,
die eingebettete Logik benutzen, um Paketwarteschlangen zu verwalten,
die Datenpakete repräsentieren,
die in einem Ausgangspuffer gespeichert sind. Der Puffer kann eine
integrierte Schaltung eines dynamischen Direktzugriffsspeichers
(DRAM) sein und die Warteschlangen in dem Ausgangswarteschlangenmanager
repräsentieren
die in dem Puffer gespeicherten Pakete. Die Ausgangspuffer können in
die E/A-Steuerungen integriert oder extern dieser angeordnet sein.
Bei der bevorzugten Ausführungsform
befinden sich die Ausgangspuffer neben den E/A-Steuerungen und sind
nicht auf dieselben Schaltungen wie die E/A-Steuerungen integriert.
Die Ausgangswartschlangenmanager sind integrierte Schaltungen, die
anwendungsspezifische Einrichtungen enthalten, wie zum Beispiel
Zähler
und Komparatoren, um die Logik zu erzeugen, die das Warteschlangenmanagement
ausführt.
Die Ausgangswarteschlangenmanager sind durch eine Programmierschnittstelle
einstellbar und können
zum Beispiel durch einen Netzwerkadministrator gesteuert werden.
Die Programmierschnittstelle ermöglich
warteschlangenspezifische Einstellbarkeit, die während des Betriebes des Switch
manipuliert werden kann, um eine spezifizierte QoS bereitzustellen.
-
Bei
der bevorzugten Ausführungsform
werden Pakete variabler Länge
auf der Basis bestimmter Eigenschaften der Pakete in vier Kategorien
priorisiert. Die für
die Priorisierung interessierenden Paketeigenschaften umfassen Quelle
und/oder Ziel des Pakets, die Art der in dem Paket geführten Informationen
oder das Alter des Pakets. Ein Paket, das Videokonferenzdaten führt, kann
zum Beispiel eine höhere
Priorität
aufweisen, als ein Paket, das E-Mail führt, weil die Qualität der Videokonferenz
beeinträchtigt
wird, wenn Pakete verzögert
werden, während
ein E-Mail-Transfer gegenüber
Paketverzögerungen
toleranter ist. Mit jedem Port einer Eingangs-/Ausgangssteuerung
sind vier Warteschlangen assoziiert, die die eingerichteten Paketprioritätskategorien
verfolgen. Die vier Warteschlangen verfolgen die vier Prioritätskategorien,
und sowohl die Paketals auch die Warteschlangenprioritäten werden
für Beschreibungszwecke
als Steuerung (CTRL), hoch (HI), mittel (MED) und niedrig (LO) bezeichnet,
wobei Steuerung die höchste
Priorität
und niedrig die niedrigste Priorität ist. Das Warteschlangenverfahren
ist nicht auf vier Warteschlangen beschränkt und kann herauf- oder herabskaliert
werden.
-
Die
Eingangs-/Ausgangssteuerungen empfangen Pakete von dem Koppelfeld,
und wenn die Pakete nicht unmittelbar zu einer Datenstrecke weitergeleitet
werden, werden die Pakete in Speicher gepuffert, und die entsprechende
Warteschlange in dem Warteschlangenmanager wird mit Informationen
bezüglich
des gepufferten Pakets aktualisiert. Wenn Prioritäts-Warteschlangen
das einzige benutzte Warteschlangenmanagementverfahren ist, werden alle
Pakete einer höheren
Priorität
aus den priorisierten Warteschlangen vor jeglichen Paketen einer
niedrigeren Priorität
weitergeleitet. Zum Beispiel werden jegliche Pakete in der Steuerwarteschlange
vor Paketen aus den Warteschlangen für hoch, mittel oder niedrig
zu einer assoziierten Datenstrecke weitergeleitet. Bei dem Warteschlangenmanagementverfahren
der Erfindung werden gewichtete faire Warteschlangen in Verbindung
mit Prioritäts-Warteschlangen
implementiert, um die endliche Bandbreite eines Ausgangs besser
auszunutzen.
-
Im
Betrieb wird jeder der vier Prioritäts-Warteschlangen ein jeweiliger Anteil
der gesamten Ausgangsdatenstreckenbandbreite zugeteilt, die über einen
designierten Zeitraum verbraucht werden soll. Während jedes designierten Zeitraums
werden Pakete in Prioritätsreihenfolge
gemäß ihren
zugeteilten Anteilen aus den Warteschlangen an die assoziierte Datenstrecke
freigegeben, so daß die
zugeteilten Pakete in der Steuerwarteschlange vor den zugeteilten
Paketen in der Hoch-Warteschlange freigegeben werden usw. Der Schlüssel für das Warteschlangenmanagementverfahren
der Erfindung besteht darin, daß,
wenn eine Warteschlange während
eines designierten Zeitintervalls nicht ihre gesamte zugeteilte
Bandbreite verbraucht, die übrige Bandbreite
auf Prioritätsbasis
den anderen Warteschlangen zugeteilt wird. Das heißt, übrige Bandbreite
wird zuerst der Steuerwarteschlange angeboten, und wenn in der Steuerwarteschlange
genug Pakete warten, verbraucht die Steuerwarteschlange die gesamte übrige Bandbreite.
Wenn dagegen die Steuerwarteschlange nicht die gesamte übrige Bandbreite
verbraucht hat, wird die übrige
Bandbreite der Warteschlange mit der nächst niedrigeren Priorität angeboten
usw., bis alle verfügbare
Ausgangsbandbreite verbraucht ist oder bis keine Pakete in dem Ausgangspuffer
bleiben.
-
Einer
der Hauptbetriebsgesichtspunkte des gewichteten Prioritätswarteschlangenverfahrens
der Erfindung ist der Ausgleich zwischen Latenz und Fehler. Das
Problem des Ausgleich von Latenz und Fehler erschwert sich durch
den Umstand, daß Paketlängen über einen
großen
Umfang variieren können.
Im Kontext der Erfindung ist Latenz die Zeitdauer, die zwischen
dem Eintritt eines ersten Pakets aus einer bestimmten Warteschlange
in eine assoziierte Ausgangsdatenstrecke und dem Eintritt des nächsten Pakets
aus derselben Warteschlange in dieselbe Ausgangsdatenstrecke, nachdem
alle anderen Prioritätswarteschlangen
ihre zugeteilte Bandbreite angeboten bekommen haben, abläuft. Fehler
ist ein Maß dafür, wie nahe
der tatsächliche Bandbreitenverbrauch
einer bestimmten Ausgangsdatenstrecke den hergestellten Bandbreitenzuteilungsanteilen
für die
Datenstrecke kommt. Fehler wird verursacht, weil, nachdem ein Paket
mit dem Senden aus einem Puffer auf eine Datenstrecke beginnt, das
Paket weiter gesendet wird, bis die Übertragung abgeschlossen ist. Wenn
das Senden eines Pakets länger
als das warteschlangenspezifische Zeitintervall dauert, das für die bestimmte
Warteschlange zugeteilt ist, wird die Paketübertragung fortgesetzt und
der Fehler wächst
proportional zu der verbrauchten Überschußzeit. Beim Ausgleich von Latenz
und Fehler erzeugt eine relativ lange Bandbreitenzuteilungs-Zykluszeit eine hohe
Paketlatenz, aber eine niedrige Fehlerrate, und wenn die Latenz
zu hoch ist, können
Warteschlangen praktisch zwischen Zykluszeiten verhungern und Pakete
können
anfangen, fallen gelassen zu werden. Eine relativ kurze Bandbreitenzuteilungs-Zykluszeit erzeugt
dagegen eine niedrige Paketlatenz, aber eine hohe Fehlerrate, da
mehr Pakete die relativ kurzen warteschlangenspezifischen Zeitintervalle überschreiten,
die für
Paketübertragung
zugeteilt sind.
-
Vorteile
der Erfindung sind zum Beispiel, daß das Warteschlangenmanagementverfahren
das unnötige
Fallenlassen von Paketen vermeidet, indem jeder Warteschlange Bandbreite
zugeteilt wird und es sich automatisch an Änderungen der Netzwerkverkehrsmuster
anpaßt,
indem unverbrauchte Bandbreite in Prioritätsreihenfolge verteilt wird.
Zusätzlich
ist das Warteschlangenmanagementverfahren flexibel, weil die im
Voraus festgelegten Bandbreitenzuteilungen automatisch eingestellt
werden, wenn Warteschlangen mehr Bandbreite als notwendig zugeteilt
ist. Da die Logik für
das gewichtete Prioritätswarteschlangenverfahren
in anwendungsspezifisch integrierte Schaltungen eingebettet ist,
kann das Verfahren ferner leicht in einem Switch mit hoher Bandbreite,
wie zum Beispiel einem Gigabit-Ethernet-Switch verwendet werden.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
1 ist
eine Abbildung eines vorbekannten Warteschlangenverfahrens gemäß dem Stand
der Technik.
-
2 ist
eine Abbildung eines gewichteten fairen Warteschlangenverfahrens
gemäß dem Stand
der Technik.
-
3 ist
eine Abbildung der grundlegenden Switch-Architektur der bevorzugten Ausführungsform
der Erfindung.
-
4 ist
eine erweiterte Abbildung einer bevorzugten Architektur einer Eingangs-/Ausgangssteuerung
mit einer Datenstrecke gemäß der Erfindung.
-
5 ist
eine erweiterte Abbildung einer bevorzugten Architektur einer Eingangs-/Ausgangssteuerung
mit zwei Datenstrecken gemäß der Erfindung.
-
6 ist
eine Abbildung des gewichteten Prioritätswarteschlangenverfahrens
gemäß der Erfindung.
-
7 ist
ein Prozeßflußdiagramm
zum Weiterleiten von Paketen gemäß der Erfindung.
-
8 ist
eine Abbildung der grundlegenden Hardwarearchitektur zur Durchführung von
gewichteten Prioritäts-Warteschlangenverfahren
gemäß der Erfindung.
-
9 ist
eine Abbildung von zur Zuteilung von Bandbreite zwischen vier Prioritäts-Warteschlangen verwendeten
internen Registerwerten.
-
AUSFÜHRLICHE BESCHREIBUNG
-
3 ist
eine Abbildung der grundlegenden Architektur eines Switch 38 zum
Weiterleiten von Paketen variabler Länge, die die bevorzugte Ausführungsform
der Erfindung enthält.
Obwohl für
Beschreibungszwecke ein vierkanaliger Switch gezeigt ist, kann der
Switch weniger Kanäle
aufweisen, vorzugsweise aber mehr. Die bevorzugte Architektur enthält Datenstrecken 52, 54, 56 und 58,
die mit Eingangs-/Ausgangs-(E/A-)Steuerungen 42, 44, 46 und 48 verbunden
sind, die mit einem Koppelfeld 40 verbunden sind.
-
Die
mit den E/A-Steuerungen 42-48 verbundenen Datenstrecken 52-58 stellen
das Medium zum Transferieren von Datenpaketen in und aus dem Switch 38 bereit.
Bei einer bevorzugten Ausführungsform
basiert die Anzahl der mit jeder E/A-Steuerung verbundenen Datenstrecken
auf der Bandbreitenkapazität
der Datenstrecke. Zum Beispiel repräsentieren in 3 die
Einfach- und Doppeldatenstrecken, 52, 54 und 56 Verbindungen
mit 1000 Megabit pro Sekunde (Mbps), und die acht Datenstrecken 58 repräsentieren
Verbindungen mit 10 und/oder 100 Mbps, obwohl diese Verbindungsbandbreiten
größer oder
kleiner sein können
und die Anzahl der Datenstrecken pro E/A-Steuerungen größer oder kleiner sein kann.
Außerdem
besteht der physische Aufbau der Datenstrecken vorzugsweise aus
verdrillten Doppelleitungen und/oder optischen Einmodenfasern, obwohl
andere Datenstrecken möglich
sind, wie zum Beispiel Koaxialkabel, optische Mehrmodenfaser, Infrarot-
und/oder Hochfreugenzstrecke.
-
Die
E/A-Steuerungen 42-48 sind direkt mit den Datenstrecken 52-58 und
durch Eingangsverbindungen 62, 64, 66 und 68 und
durch Ausgangsverbindungen 72, 74, 76 und 78 mit
dem Koppelfeld 40 verbunden. Die E/A-Steuerungen stellen
Paketsteuerung zwischen den Datenstrecken und dem Koppelfeld bereit.
Die E/A-Steuerungen empfangen ankommende Pakete aus den Datenstrecken
und transformieren die Pakete in digitale Datenpakte, die mit dem
Switch 38 kompatibel sind. Die E/A-Steuerungen senden außerdem abgehende
Daten auf die Datenstrecken. Die E/A-Steuerungen puffern ankommende
und/oder abgehende Pakete, und die E/A-Steuerungen können bestimmte
Netzwerkverkehrssteuerung durchführen.
Schließlich
liefern die E/A-Steuerungen dem Koppelfeld Pakete zur Verarbeitung
durch das Koppelfeld. Das Puffern von Paketen und das Verwalten
der gepufferten Warteschlangen steht im Brennpunkt der Erfindung,
die nachfolgend ausführlich
beschrieben wird.
-
Das
Koppelfeld 40 stellt die physischen Datenwege zum Verbinden
der verschiedenen Switch-Kanäle und
letztendlich der Datenstrecken 52-58 des Switch 38 bereit.
Das Koppelfeld teilt außerdem
Pakete für
den Fluß durch
das Koppelfeld dergestalt ein, daß die Bandbreite des Koppelfelds
maximiert wird. Vorzugsweise ist das Koppelfeld eine integrierte
Schaltung, die Pakete mit Raten weiterleiten kann, die jede einzelne
Datenstrecke übersteigen.
-
Da
Wettbewerb auftritt, wenn auf verschiedenen Datenstrecken ankommende
Pakete auf derselben Datenstrecke ausgegeben werden sollen, enthält die E/A-Steuerungsarchitektur
Eingangspaketpufferungs- und Warteschlangenmanagementfunktionen,
die dabei helfen, Paketverluste zu minimieren. Da das Koppelfeld
Pakete einer Ausgangsdatenstrecke schneller zuführen kann, als die Datenstrecke
die Pakete empfangen kann, enthält
die E/A-Steuerungsarchitektur
zusätzlich
Ausgangspaketpufferung und -warteschlangenmanagement. Die bevorzugte
Ausfüh rungsform
der Erfindung wird mit Bezug auf Ausgangspaketpufferung und -warteschlangenmanagement
beschrieben, obwohl die Erfindung gleichermaßen auf Eingangspaketpufferung und
-warteschlangenmanagement anwendbar ist.
-
4 ist
eine ausführlichere
Abbildung einer bevorzugten Architektur einer E/A-Steuerung 42 von 3,
die eine einzige Datenstrecke 52 aufweist. Bei der bevorzugten
Ausführungsform
enthält
die E/A-Steuerung einen Ausgangswarteschlangenmanager 82,
der eine Paketwarteschlange verwaltet, die Datenpakete repräsentiert,
die in einem Ausgangspuffer gespeichert sind. Der Ausgangswarteschlangenmanager
ist während
des Betriebs des Switch durch eine Programmierschnittstelle völlig einstellbar.
Die Programmierschnittstelle stellt die warteschlangenspezifische
Einstellbarkeit bereit, die manipuliert werden kann, während der Switch
in Betrieb ist, um eine spezifizierte QoS bereitzustellen. Der Puffer
ist eine integrierte Schaltung aus dynamischem Direktzugriffsspeicher
(DRAM), in dem die Pakete gespeichert werden, und die Warteschlangen 84, 86, 88 und 90 in
dem Ausgangswarteschlangenmanager repräsentieren die in dem Puffer
gespeicherten Pakete. Der Ausgangspuffer kann in die E/A-Steuerung
integriert oder außerhalb
der E/A-Steuerung angeordnet sein, und bei der bevorzugten Ausführungsform
befindet sich der Ausgangspuffer neben der E/A-Steuerung und ist
nicht auf dieselbe Schaltung wie die E/A-Steuerung integriert, obwohl
dies für
die Erfindung nicht kritisch ist.
-
Bei
der bevorzugten Ausführungsform
werden Pakete auf der Basis bestimmter Eigenschaften der Pakete
priorisiert. Die für
die Priorisierung interessierenden Paketeigenschaften umfassen Quelle
und/oder Ziel des Pakets, die Art der in dem Paket geführten Informationen
oder das Alter des Pakets. Ein Paket, das Videokonferenzdaten führt, kann
zum Beispiel eine höhere Priorität aufweisen,
als ein Paket, das E-Mail führt,
weil die Qualität
der Videokonferenz beeinträchtigt
wird, wenn Pakete verzögert
werden, während
ein E-Mail-Transfer
gegenüber
Paketverzögerungen
toleranter ist. Die vier Warteschlangen 84-90 in 4 verfolgen
die vier Prioritätskategorien,
und sowohl die Paket- als auch die Warteschlangenprioritäten werden
für Beschreibungszwecke
als Steuerung (CTRL), hoch (HI), mittel (MED) und niedrig (LO) bezeichnet,
wobei Steuerung die höchste
Priorität
und niedrig die niedrigste Priorität ist. Jede der vier priorisierten
Warteschlangen ist als acht Register in bezug auf acht Pakete enthaltend
abgebildet, obwohl die genaue Anzahl für die Erfindung nicht kritisch
ist. Die Kapazität
der Warteschlangen kann auch durch eine Programmierschnittstelle
geändert
werden. Die E/A-Steuerung von 4 empfängt Pakete
durch die Eingangsverbindung 72 aus dem Koppelfeld, und wenn
das Paket nicht unmittelbar für
die Ausgabe auf der Datenstrecke 52 weitergeleitet wird,
wird das Paket im Speicher gepuffert und die entsprechende Warteschlange
in dem Warteschlangenmanager wird mit Informationen bezüglich des
gepufferten Pakets aktualisiert. Bei der bevorzugten Ausführungsform
ist die Designierung von Paket- und/oder Warteschlangenprioritäten während des
Betriebes oder im Verlauf durch eine Programmierschnittstelle änderbar.
-
5 ist
eine ausführlichere
Abbildung einer E/A-Steuerung 46 von 3,
die zwei Datenstrecken 56 und 56a aufweist. Die
mit den beiden Datenstrecken verbundene E/A-Steuerung enthält separate
Ausgangswarteschlangenmanager 94 und 96 für jede der
Datenstrecken. Wie bei der E/A-Steuerung von 6 besitzen die
beiden Warteschlangenmanager von 5 vier Prioritäts-Warteschlangen 100, 102, 104, 106 bzw. 110, 112, 114, 116,
wobei jede Warteschlange acht Register in bezug auf acht Pakete
enthält.
Die Ausgangswarteschlangenmanager stehen eindeutig mit den beiden
mit der E/A-Steuerung
verbundenen Datenstrecken in Beziehung und beide Ausgangswarteschlangenmanager
empfangen Pakete von dem Koppelfeld durch dieselbe Eingangsverbindung 76.
Obwohl sie nicht in ausführlicher
Ansicht abgebildet ist, besitzt eine E/A-Steuerung 48 aus 3,
die acht Datenstrecken 58 aufweist, acht Ausgangswarteschlangenmanager
in eindeutiger Entsprechung mit den acht Datenstrecken.
-
6 ist
eine Abbildung von vier Warteschlangen 130, 132, 134 und 136 in
bezug auf einen einzigen Ausgangswarteschlangenmanager (siehe 4),
mit dem das bevorzugte Ausgangswarteschlangenmanagementverfahren
beschrieben wird. Wie oben beschrieben, werden, wenn herkömmliche
Prioritäts-Warteschlangen
das einzige verwendete Warteschlangenmanagementverfahren sind, alle
Pakete einer höheren
Priorität vor
jeglichen Paketen einer niedrigeren Priorität weitergeleitet. Wenn zum
Beispiel bei Prioritäts-Warteschlangen
etwaige Pakete in der Steuerwarteschlange 130 von 6 vorliegen,
werden diese Pakete vor Paketen aus der Hoch-, der Mittel- oder
der Niedrig-Warteschlange über
den Ausgangsbus 142 zu der Datenstrecke 140 weitergeleitet.
Bei dem Warteschlangenmanagementverfahren der Erfindung wird ein
faires Warteschlangenverfahren in Verbindung mit einem Prioritätswarteschlangenverfahren
implementiert, um die endliche Bandbreite des Ausgangs besser auszunutzen.
-
6 zeigt
die Paketpriorität
in bezug auf jede Warteschlange 130-136 zusätzlich zu
alternativen Beispielen dafür,
wie die gesamte Datenstreckenbandbreite auf die vier Warteschlangen
aufgeteilt werden kann. In Beispiel 1 werden der Steuerprioritätswarteschlange 130 10%
der gesamten Datenstreckenbandbreite zugeteilt, der Hoch-Prioritätswarteschlange 132 werden
30% der gesamten Datenstreckenbandbreite zugeteilt, der Mittel-Prioritätswarteschlange 134 werden
15% der gesamten Datenstreckenbandbreite zugeteilt und der Niedrig-Prioritätswarteschlange 136 werden
45% der gesamten Daten streckenbandbreite zugeteilt. Bei der bevorzugten
Ausführungsform
ist die Bandbreitenzuteilung während
des Betriebs des Netzwerk-Switch völlig einstellbar (Laufzeit-programmierbar)
und wird durch eine Programmierschnittstelle durchgeführt.
-
Im
Betrieb wird jeder Warteschlange ihr jeweiliger Anteil oder Prozentsatz
der Gesamtbandbreite über einen
designierten Zeitraum zugeteilt. Während jedes designierten Zeitraums
werden Pakete in Prioritätsreihenfolge
auf die Datenstrecke 140 freigegeben, so daß die Pakete
in der Steuerwarteschlange 130 vor den Paketen in der Hoch-Warteschlange 132 freigegeben
werden usw. Der Schlüssel
für das
Warteschlangenmanagementverfahren der Erfindung besteht darin, daß, wenn
eine Warteschlange ihre gesamte zugeteilte Bandbreite während eines
designierten zeitlichen Intervalls nicht verbraucht, die übrige Bandbreite
auf Prioritätsbasis
den anderen Warteschlangen zugeteilt wird. Das heißt, übrige Bandbreite
wird zuerst der Steuerwarteschlange angeboten, und wenn die Steuerwarteschlange
genug wartende Pakete aufweist, wird die gesamte übrige Bandbreite
durch die Steuerwarteschlange verbraucht. Wenn dagegen die Steuerwarteschlange
die übrige
Bandbreite nicht ganz aufbraucht, wird die übrige Bandbreite der Warteschlange
mit der nächst
niedrigeren Priorität
angeboten usw., bis alle verfügbare
Ausgangsbandbreite verbraucht ist oder keine Pakete in dem kombinierten
Ausgangspuffer übrigbleiben.
-
Als
Beispiel für
die Funktionsweise beziehe man sich wieder auf Beispiel 1 von 6.
Während
eines designierten Zeitraums werden 10% der gesamten Datenstreckenbandbreite
der Steuerprioritätswarteschlange 130 angeboten
und man nehme beispielsweise an, daß die Steuerprioritätswarteschlange
mehr als genug Pakete aufweist, um 10% der Datenstreckenbandbreite
zu verbrauchen, und somit werden die 10% der Bandbreite verbraucht.
Als nächstes
werden der Hoch-Prioritäts- warteschlange 132 30%
der Bandbreite angeboten, und man nehme beispielsweise an, daß die Hoch-Prioritätswarteschlange
mehr als genug Pakete aufweist, um ihre 30% der Bandbreite zu verbrauchen,
und somit werden die 30% der Bandbreite verbraucht. Als nächstes werden
der Mittel-Prioritätswarteschlange 134 15%
der Bandbreite angeboten, und man nehme beispielsweise an, daß die Mittel-Prioritätswarteschlange
keine auf Weiterleitung wartende Pakete aufweist. Um eine Verschwendung
der zugeteilten Bandbreite zu vermeiden und die Ausnutzung der verfügbaren Bandbreite
der Datenstrecke zu maximieren, werden die 15% der Datenstreckenbandbreite,
die der Mittel-Prioritätswarteschlange
für das
vorliegende Zeitintervall zugeteilt sind, in Prioritätsreihenfolge
den Warteschlangen höherer Prioritäten angeboten.
Das heißt,
die 15% der zugeteilten Datenstreckenbandbreite aus der Mittel-Prioritätswarteschlange
werden zuerst vollständig
der Steuerprioritätswarteschlange
angeboten. Wenn in der Steuerprioritätswarteschlange genug Pakete
warten, verbraucht sie alle übrige
Bandbreite, oder wenn die Steuerprioritätswarteschlange nicht alle übrige Bandbreite
verbraucht, wird die verbleibende übrige Bandbreite der Hoch-Prioritätswarteschlange
angeboten. Wenn ferner die Hoch-Prioritätswarteschlange die übrige Bandbreite
nicht verbraucht, wird die übrige
Bandbreite der Niedrig-Prioritätswarteschlange 136 angeboten.
Unter dieser priorisierten Verteilung übriger Bandbreite wird niemals übrige Bandbreite
verschwendet, solang gepufferte Pakete vorliegen.
-
Zugeteilte
Bandbreite kann bei dem gewichteten Prioritätswarteschlangenverfahren durch
die Programmierschnittstelle eingestellt werden, um eine bestimmte
QoS zu spezifizieren und um verschiedene Verkehrsmuster zu erzeugen.
Zum Beispiel werden mit Bezug auf das Beispiel 2 von 6 der
Steuerprioritätswarteschlange 130 30%
der gesamten Datenstreckenbandbreite zugeteilt, der Hoch-Prioritätswarteschlange 132 werden
0% der gesamten Datenstreckenbandbreite zugeteilt, der Mittel- Prioritätswarteschlange 134 werden
50% der gesamten Datenstreckenbandbreite zugeteilt und der Niedrig-Prioritätswarteschlange 136 werden
20% der gesamten Datenstreckenbandbreite zugeteilt. Wenn einer Warteschlange,
wie zum Beispiel der Hoch-Prioritätswarteschlange 0% der Bandbreite
zugeteilt werden, teilen sich effektiv die Warteschlange mit 0%
zugeteilter Bandbreite und die Warteschlange nächsthöherer Priorität übrige Bandbreite
gemäß einem
reinen Prioritätsschema.
In Beispiel 2 wird etwaige übrige
Bandbreite aus der Steuerprioritätswarteschlange
zuerst der Hoch-Prioritätswarteschlange
angeboten, obwohl der Hoch-Prioritätswarteschlange
0% der Bandbreite zugeteilt sind. In Beispiel 3 wird etwaige der
Hoch-Prioritätswarteschlange
angebotene übrige
Bandbreite gemäß einem
reinen Prioritätsschema
gemeinsam zwischen der Hoch-Prioritätswarteschlange
und der Mittel-Prioritätswarteschlange
benutzt, obwohl der Mittel-Prioritätswarteschlange
0% der Bandbreite zugeteilt sind.
-
Einer
der Hauptbetriebsaspekte des gewichteten Prioritätswarteschlangenverfahrens
der Erfindung ist der Ausgleich zwischen Latenz und Fehler. Im Kontext
der Erfindung ist Latenz die Zeitdauer, die zwischen dem Eintritt
eines ersten Pakets aus einer bestimmten Warteschlange in eine Ausgangsdatenstrecke
und dem Eintritt des nächsten
Pakets aus derselben Warteschlange in dieselbe Ausgangsdatenstrecke,
nachdem allen anderen Prioritätswarteschlangen
ihre zugeteilte Bandbreite angeboten wurde, abläuft. Zum Beispiel ist mit Bezug
auf Beispiel 1 von 6 Latenz der Zeitraum, der beginnt,
wenn ein erstes Paket aus der Steuerprioritätswarteschlange ausgegeben
wird, und dann endet, wenn alle anderen Prioritätswarteschlangen ihre zugeteilte
Bandbreite verbraucht haben und während eines neuen Zuteilungszyklus
ein zweites Paket aus der Steuerprioritätswarteschlange 130 ausgegeben
wird. Die Latenz von Paketen steht direkt mit der gewählten Bandbreitenzuteilungs-Zykluszeit
in Beziehung, wobei die Bandbreitenzuteilungs-Zykluszeit das Gesamtzeitintervall
für einen
Bandbreitenzuteilungszyklus ist. Wenn zum Beispiel die Bandbreitenzuteilungs-Zykluszeit
für die Warteschlangen
von 6 eine Millisekunde (ms) beträgt, erhält die Steuerprioritätswarteschlange
alle eins ms 0,10 ms der Gesamtbandbreite, die Hoch-Prioritätswarteschlange 132 erhält alle
eins ms 0,30 ms der Gesamtbandbreite, die Mittel-Prioritätswarteschlange 134 erhält alle
eins ms 0,15 ms der Gesamtbandbreite und die Niedrig-Prioritätswarteschlange 136 erhält alle
eins ms 0,45 ms der Gesamtbandbreite. Die Bandbreitenzuteilungs-Zykluszeit ist voll
programmierbar, und Paketlatenz wird unter Verwendung von Paketgrößen gemessen,
die in einem Zeitintervall, das einer spezifischen Warteschlange
zugeteilt wird, vollständig
weitergeleitet werden können.
-
Der
Fehler ist ein Maß dafür, wie nahe
der tatsächliche
Bandbreitenverbrauch einer Zielausgangsdatenstrecke den festgelegten
Bandbreitenzuteilungsanteilen kommt. Der Fehler wird verursacht,
weil, nachdem ein Paket mit dem Senden aus einem Puffer auf eine
Datenstrecke beginnt, das Paket weiter gesendet wird, bis die Übertragung
abgeschlossen ist. Wenn das Senden eines Pakets länger als
das warteschlangenspezifische Zeitintervall (Zeitschlitz) dauert,
das für
die bestimmte Warteschlange zugeteilt ist, wird die Paketübertragung
fortgesetzt und der Fehler wächst
proportional zu der verbrauchten Überschußzeit. Der Fehler tritt am stärksten in Übertragungsprotokollen
auf, die Pakete variabler Länge
zulassen, weil die Größe des auf
Transfer wartenden Pakets unvorhersehbar ist. Wenn zum Beispiel
der Steuerprioritätswarteschlange
alle eins ms 0,10 ms der Datenstreckenbandbreite erlaubt sind und
ein Steuerprioritätspaket
0,15 ms braucht, um vollständig
von einem Puffer zu der Ausgangsdatenstrecke gesendet zu werden,
dann werden für
den aktuellen Bandbreitezutei lungszyklus 0,05 ms unzugeteilter Übertragungszeit
von der Steuerprioritätswarteschlange
benutzt und deshalb müssen
die 0,05 ms aus der den Warteschlangen niedrigerer Priorität verfügbaren Übertragungszeit
eliminiert werden.
-
Beim
Ausgleich von Latenz und Fehler zur Bereitstellung einer spezifizierten
QoS erzeugt eine relativ lange Bandbreitenzuteilungs-Zykluszeit
eine höhere
Paketlatenz, aber eine niedrige Fehlerrate. Wenn die Latenz zu hoch
ist, können
Warteschlangen praktisch zwischen Zykluszeiten verhungern und Pakete
fangen an, fallengelassen zu werden. Andererseits erzeugt eine relativ
kurze Bandbreitenzuteilungs-Zykluszeit eine relativ niedrige Paketlatenz,
aber eine hohe Fehlerrate, da mehr Pakete die relativ kurzen warteschlangenspezifischen
Zeitintervalle überschreiten,
die für
Paketübertragung
zugeteilt werden. Bei Implementierung von gewichteten Prioritätswarteschlangen
in einem Ethernet-Netzwerk mit 100 Mbps, bei dem Paketgrößen im Bereich
von 64 Byte bis 1500 Byte liegen, weist eine Bandbreitenzuteilungs-Zykluszeit oder Latenz
von 1,28 ms einen Fehler von ungefähr 9,38% auf, und eine Latenz
von 163,84 ms einen Fehler von ungefähr 0,7%. Die Fehlerverteilung
skaliert sich mit anderen Datenraten.
-
7 ist
ein Prozeßflußdiagramm
zum Weiterleiten von Paketen gemäß einer
bevorzugten Ausführungsform
der Erfindung. In einem ersten Schritt 150 wird eine Gruppe
konkurrierender Warteschlangen relativ zueinander von einer Warteschlange
höchster
Priorität
bis zu einer Warteschlange niedrigster Priorität priorisiert. In einem nächsten Schritt 152 werden
der Gruppe priorisierter Warteschlangen Teile der Bandbreite eines Ausgangs
zugeteilt. In einem nächsten
Schritt 154 wird die Bandbreite des Ausgangs von Paketen
aus den priorisierten Warteschlangen gemäß den jeder Warteschlange zugeteilten
Teilen der Bandbreite verbraucht. In einem nächsten Schritt 156 wird
die Bandbreite, die nicht gemäß dem zugeteilten
Teil durch die Warteschlangen verbraucht wird, auf Prioritätsbasis
an die Warteschlangen verteilt. Bei der bevorzugten Ausführungsform wird
die unverbrauchte Bandbreite vor allen anderen Warteschlangen erst
der Warteschlange mit der höchsten Priorität angeboten,
und die unverbrauchte Bandbreite wird erst dann der niedrigsten
Priorität
angeboten, nachdem die Bandbreite allen Warteschlangen höherer Priorität angeboten
wurde.
-
8 ist
eine Abbildung der grundlegenden Architektur einer Hardwareimplementierung
des bevorzugten gewichteten Prioritätswarteschlangenverfahrens.
Die bevorzugte Hardware enthält
vier priorisierte Warteschlangen 180, 182, 184 und 186,
einen Multiplexer 190, Prioritätslogik 194 und Logik 198 für gewichtete faire
Warteschlangen, in einen ASIC eingebettet. Die Logik für gewichtete
faire Warteschlangen enthält
Register 200, 202, 204, 206 und 208,
einen Zähler 210 und
Komparatoren 220, 222, 224 und 226.
Die Register dienen zum Festlegen der Bandbreitenzuteilungsanteile
der Warteschlangen. Der Zähler
wird in regelmäßigen Zeitintervallen
nach Vorschrift durch einen Systemtakt von einem Maximalwert dekrementiert.
Die Komparatoren vergleichen den Zählerwert mit den Registerwerten,
um zu bestimmen, welche Prioritätswarteschlange
Zugang zu dem Ausgang 230 erhalten soll. Wenn der Zählerwert
unter einen der Registerwerte abfällt, wird der jeweilige Komparator
ausgelöst
und es wird ein Auswahlsignal von dem Komparator zu der Prioritätslogik
gesendet. Das Auswahlsignal identifiziert der Prioritätslogik,
welcher zugeteilte Teil der Bandbreite aktiv ist. Die Prioritätslogik
leitet das Signal zu dem Multiplexer und der Multiplexer überwacht
die Warteschlangen, um zu bestimmen, ob Pakete in der gewählten Warteschlange
warten. Wenn das Überwachen
bestimmt, daß Pakete in
der gewählten
Warteschlange warten, werden die Pakete zu dem Ausgang weitergeleitet,
bis der Zählerwert die
nächste
Prioritätswarteschlange
auslöst.
Wenn dagegen nicht genug Pakete vorliegen, um die gesamte Zuteilung
von Bandbreite zu verbrauchen, wird die Prioritätslogik aufgerufen, um die
unverbrauchte Bandbreite in strikter Prioritätsreihenfolge zu verteilen.
-
9 zeigt
die fünf
Registerwerte, die die vier warteschlangenspezifischen Zeitintervalle
(Zeitschlitze) entsprechend den Bandbreitenzuteilungen von Beispiel
1 von 6 repräsentieren.
Während
jedes Bandbreitenzuteilungszyklus zählt der 14-Bit-Zähler von dem Maximalwert von
16384 (214) herunter und der Zählerwert wird
mit den vier kleineren Registerwerten verglichen. Bandbreite wird
den jeweiligen Warteschlangen zugeteilt, wenn der Zählerwert
in einem warteschlangenspezifischen Zeitintervall (Zeitschlitz)
liegt, das durch die Registerwerte festgelegt wird.
-
Bei
der bevorzugten Ausführungsform
besitzt der Zähler
16 Bit, obwohl nicht unbedingt alle 16 Bit benutzt werden. Tabelle
1 gibt die Beziehung zwischen der gewählten Auflösung des Zählers und der Latenz und dem
Fehler eines Systems, das 32-Byte-Zellen mit 100 Mbps sendet, an.
-
Der
Flexibilität
halber kann der Betrieb des Switch als ein reiner Prioritätswarteschlangenmodus
gewählt
werden, oder der Betrieb des Switch kann als gewichteter Prioritätswarteschlangenmodus
gewählt
werden, auf den sich die Erfindung konzentriert.
-
TABELLE
1 BITAUFLÖSUNG IM
VERGLEICH ZU LATENZ UND FEHLER
-