-
Gebiet der Erfindung
-
Die
Erfindung betrifft im Allgemeinen die Technik der Scheduling-Systeme,
in welchen Nachrichten, die mehrfachen Prozessen zugeordnet sind,
in mehreren Warteschlangen zur anschließenden Verarbeitung durch eine
einzelne Ressource gespeichert werden, die begrenzte Verarbeitungskapazität hat. Die
Erfindung hat besondere Anwendung auf das Gebiet der digitalen Kommunikationssysteme
und betrifft in dieser Hinsicht einen Scheduler und ein verwandtes
Verfahren zum effizienten Zuweisen der Bandbreite einer Kommunikationsverbindung
unter mehrfachen Warteschlangen, die einer Vielfalt von Dienstklassen
zugeordnet werden können.
-
Allgemeiner Stand der Technik
-
In
verschiedenen Typen von Kommunikationssystemen, die ATM-Systeme (Asynchronous
Transfer Mode/Asynchrones Übermittlungsverfahren)
einschließen,
entstehen oft Situationen, wo mehrere Verbindungen um die Bandbreite
einer Kommunikationsverbindung in einem Kommunikationsgerät wie zum
Beispiel auf einem Netzknoten wetteifern. Wenn solch eine Situation
entsteht, ist es notwendig die Datenpakete oder Zellen von den wetteifernden
Verbindungen in eine Warteschlange zu stellen oder zu Puffern, und
die Warteschlangen müssen
auf eine "faire" Art und Weise bedient
werden, um sicherzustellen, daß alle
Verbindungen ausreichend bedient werden.
-
Eine ähnliche
Situation entsteht im allgemeineren Fall, wo mehrfache Prozesse
um eine einzelne Ressource wetteifern. Zum Beispiel kann ein verteiltes
Verarbeitungssystem mehrere lokale Controller umfassen, die für verschiedene
Seiten des Systems verantwortlich sind, die mit einem zentralen
Controller verbunden sind, der für
die Gesamtverwaltung des Systems verantwortlich ist. Die lokalen
Controller kommunizieren mit dem zentralen Controller durch Senden
von Nachrichten, die der zentrale Controller verarbeiten, d. h.
auf die er einwirken muß.
In diesem Sinne bieten die lokalen Controller "Jobs" dem
zentralen Controller an. Zu irgendeinem Zeitpunkt werden einige
lokale Controller nicht besetzt sein, keine Nachrichten haben, die
durch den zentralen Controller verarbeitet werden müssen. Gleichzeitig
werden einige lokale Controller besetzt sein, mehrfache Nachrichten
anbieten und folglich potentielle Jobs für den zentralen Controller.
Da der zentrale Controller mit anderen Jobs besetzt sein kann, speichert
er die Nachrichten in verschiedenen Warteschlangen, z. B. gemäß dem Typ
oder der Klasse des lokalen Controllers, von dem die Nachricht ausging,
solange bis der zentrale Controller die Nachricht verarbeiten und
den zugeordneten Job durchführen
kann. Diese Nachrichten müssen
ebenfalls auf eine faire Art und Weise bedient werden, um sicherzustellen,
daß alle
lokalen Controller ausreichend behandelt werden. Aus dem vorhergehenden
wird ersichtlich sein, daß die
Nachrichten oder Jobs den Datenpaketen des digitalen Kommunikationssystems
entsprechen und die feste Verarbeitungsleistung oder -geschwindigkeit
des zentralen Controllers der Bandbreite der Kommunikationsverbindung
entspricht.
-
Ein
gemeinsames "faires" Scheduling-Schema
ist die proportional gewichtete faire Warteschlangenbildung (im
Folgenden "proportionale
WFQ"), in welcher
jeder Warteschlange, die jeder Verbindung entspricht, ein Gewicht
zugeordnet wird, das proportional zu ihrer zugewiesenen Dienstrate
ist. Der proportionale WFQ-Scheduler verwendet dieses Gewicht, um
die Menge des der Warteschlange gegebenen Dienstes zu bestimmen,
so daß der
Scheduler in der Lage ist, die zugeordnete Dienstrate für eine gegebene
Verbindung über eine
angemessen lange Besetztperiode (d. h. wenn ihre Warteschlange nicht
ständig
nicht-leer ist) bereitzustellen, vorausgesetzt, daß der Scheduler
nicht überbucht
ist. Der Begriff einer zugeordneten Dienstrate ist für ATM-Systeme
insbesondere geeignet, weil sich fast alle fünf gegenwärtig definierten ATM-Dienstklassen
auf die Rate als eine Basis zum Definieren der Dienstgüte (QoS/Quality
of Service) stützen.
Zum Beispiel garantieren Verbindungen mit konstanter Bitrate (constant
bit rate/CBR) eine Zellverlustrate (cell loss ratio/CLR) und Verzögerung für Zellen,
die der Spitzenzellrate (peak cell rate/PCR) entsprechen. Verbindungen
mit variabler Bitrate (variable bit rate/VBR), Echtzeit und Nicht-Echtzeit,
garantieren ebenfalls eine CLR und Verzögerung für Zellen, die der Dauerzellrate
(sustained cell rate/(SCR) und PCR entsprechen. Eine Verbindung
mit verfügbarer
Bitrate (available bit rate/ABR) gewährt eine variable Dienstrate,
die zwischen einer Mindestzellrate (minimum cell rate/MCR) und PCR
ist. Verbindungen mit unbestimmter Bitrate (unspecified bit rate/UBR)
sind mit PCRs verbunden und es wird erwartet, daß sie ebenfalls mit MCRs zu
verbinden sind.
-
Zusätzlich zur
zugeordneten Dienstrate, weil ein proportionaler WFQ-Scheduler schützend arbeitet, wird
jede nicht-leere Warteschlange ebenfalls eine bestimmte Menge von
momentaner freier Bandbreite empfangen. Das ist die zusätzliche
Dienstbandbreite, die eine Warteschlange aufgrund (1) einer nicht
zugeordneten Bandbreite einer Kommunikationsverbindung und (2) einer
zugeordneten, aber gegenwärtig
ungenutzten Bandbreite, die von den freien, nicht besetzten Perioden
der anderen Warteschlangen am Konkurrenzpunkt entsteht; empfängt.
-
Um
dies detaillierter zu erklären,
ist anzunehmen, daß der
Warteschlange n ein Gewicht Φn gegeben wird, das proportional zur zugeordneten
Dienstrate ist, die die Warteschlange n empfangen sollte. Der proportionale
WFQ-Scheduler verteilt demzufolge die gesamte zugeordnete Bandbreite
der Kommunikationsverbindung unter allen Warteschlangen im Verhältnis zu
ihren zugeordneten Dienstraten. Folglich wird die freie Bandbreite
der Verbindung ebenfalls im Verhältnis
zu den zugeordneten Dienstraten von allen nicht-leeren Warteschlangen
verteilt. Ein Beispiel davon ist in 1(a) gezeigt,
wo vier Warteschlangen 14, die vier Verbindungen A, B,
C und D entsprechen, durch einen proportionalen WFQ-Multiplexer 8 bedient
werden, um einen Ausgabezellenstrom oder Verbindung 16 zu
erzeugen. Die Verbindungen A, B und C haben zugeordnete Dienstraten
gleich 30% der Gesamtbandbreite, die mit der Verbindung 16 verbunden
ist, und sind deshalb gleich gewichtet. Die zugeordnete Dienstrate
der Verbindung D ist gleich 10% der Gesamtbandbreite der Verbindung 16. 1(b) ist ein Bandbreiten-Belegungsdiagramm, das
darstellt, wie die Verbindungsbandbreite den Verbindungen zugeordnet
wird. Von der Zeit t = 0 bis 8 hat jede Verbindung Zellen, die Bedienung
erfordern und folglich beträgt
die momentane Bandbreite, die durch jede Verbindung empfangen wurde,
25% der Gesamtbandbreite. Zur Zeit t = 8 sind jedoch nur die Verbindungen
B und D nicht-leer, die zu bedienende Zellen aufweisen, und folglich
wird die momentane freie Bandbreite (die jetzt 50% der Gesamtbandbreite
ist) den Verbindungen B und D im Verhältnis zu ihren zugeordneten
Dienstraten zugeordnet. Folglich empfängt zur Zeit t = 8 die Verbindung
B 75% der momentanen Gesamtbandbreite und die Verbindung D empfängt 25%
der momentanen Gesamtbandbreite. Im Allgemeinen ist der theoretische
momentane Dienst, den die Warteschlange n zur Zeit t empfängt, wenn
sie nicht-leer ist, ϕn/Σi∊A(t)ϕi, mit A(t) – Indexmenge der nicht-leeren
Warteschlangen zur Zeit t.
-
Dann
ist anzunehmen, daß ein
proportionaler WFQ-Scheduler in einem ATM-Kommunikationsgerät wie zum
Beispiel einem Netzknoten verwendet wird. Eine CBR-Verbindung sollte
eine zugeordnete Dienstrate gleich ihrer PCR aufweisen. Eine VBR- Verbindung sollte
eine zugeordnete Dienstrate VBW (virtuelle Bandbreite) aufweisen,
die mindestens gleich ihrer SCR und kleiner als ihre PCR ist. (Die
VBW wird in der Regel statistisch beim Einrichten durch die Verbindungs-
und Zugangskontrollfunktion (connection and admission control function/CAC-Funktion)
eines Netzes berechnet.) Eine ABR-Verbindung sollte eine zugeordnete Dienstrate gleich
ihrer SCR aufweisen und eine UBR-Verbindung sollte eine zugeordnete
Dienstrate gleich Null haben. Daher ist in solch einem Szenario
die Menge der freien Bandbreite, die eine CBR-Verbindung sieht, proportional ihrer
PCR, und die eine ABR-Verbindung
sieht, ist proportional ihrer MCR. Das kann zu sehr unerwünschtem
Dienst führen.
Zum Beispiel ist anzunehmen, daß ein
Switch (nur) vier Verbindungen überträgt: eine
ist CBR mit PCR = 980 kbps, zwei Verbindungen sind ABR mit MCR =
10 kbps und eine ist UBR. Folglich beträgt die freie Bandbreitenverteilung
98% für
die CBR-Verbindung und 1% für
jede ABR-Verbindung unter der Voraussetzung einer Periode, wenn
alle Verbindungen besetzt sind. Solch eine Verteilung ist bestimmt
nicht wünschenswert,
da CBR-Verbindungen im Allgemeinen keine Dienstbandbreite über ihre
PCRs hinaus empfangen sollten. ABR-Verbindungen würden zusätzliche
Bandbreite im Verhältnis
zu ihren MCRs bekommen; ein Phänomen,
das gewöhnlich
als MCR-Proportionaldienst bezeichnet wird. MCR-Proportionaldienst
ist eine Art des fairen Verteilens der freien Bandbreite, aber die
Literatur weist andere Verfahren wie zum Beispiel MCR und zusätzliche
faire Freigabe auf, was die proportionale WFQ nicht unterstützen kann.
Und nur die UBR-Verbindung bekommt den Dienst, wenn alle anderen
Warteschlangen leer sind. Solche Verteilungen der freien Bandbreite
sind nicht optimal und daher ist es wünschenswert, eine effizientere
Verteilung der freien Bandbreite zu erreichen. Ein Beispiel eines
Systems des Standes der Technik ist in
EP 0817434 gegeben.
-
Kurzdarstellung der Erfindung
-
Allgemein
ausgedrückt
stellt die Erfindung ein Verfahren zur Bedienung einer Mehrzahl
von Warteschlangen bereit, die Nachrichten halten, wie zum Beispiel
Datenpakete, die zur Verarbeitung durch eine Ressource bestimmt
sind, die eine begrenzte Verarbeitungsbandbreite aufweist, wie zum
Beispiel eine Kommunikationsverbindung, die eine begrenzte Übertragungsbandbreite
aufweist. Das Verfahren umfaßt
die Schritte: (a) Versorgen jeder Warteschlange mit einer minimalen
garantierten Dienstrate; (b) Versorgen jeder Warteschlange mit einem
freien Bandbreitenanteil; (c) Bedienen jeder Warteschlange durch
Senden ihrer Nachrichten an die Ressource in Zeitintervallen, die
der minimalen garantierten Dienstrate der Warteschlange entsprechen,
vorausgesetzt die Warteschlange ist nicht-leer; und (d) Bedienen
der Warteschlangen gemäß dem Anteil der
freien Bandbreite, die jeder Warteschlange während der Zeitintervalle zugeordnet
wurde, wenn keine Warteschlange Pakete hat, die an die Ressource
in Übereinstimmung
mit Schritt (c) weitergeleitet werden. Auf diese Weise wird die
Menge der momentanen freien Bandbreite, die eine Warteschlange empfängt, von
der zugeordneten Dienstrate entkoppelt, die der Warteschlange bewilligt
wurde.
-
In
der bevorzugten Ausführungsform
wird das obige Verfahren durch einen hierarchischen Scheduler durchgeführt, der
umfaßt
(a) einen erschöpfenden
Scheduler, der eine Mehrzahl von Schedulern mit unterem Pegel gemäß ungleichen
Prioritätsebenen
bedient, die dazu zugewiesen sind; (b) einen inaktiven schützenden Shaper-Scheduler,
der den erschöpfenden
Scheduler speist; und (c) einen aktiven schützenden freien Bandbreitenscheduler,
der den erschöpfenden
Scheduler speist. Der erschöpfende
Scheduler wird konfiguriert, so daß dem Shaper-Scheduler die
erschöpfende
Priorität über dem
freien Bandbreitenscheduler gegeben ist. Der hierarchische Scheduler
ist an die Warteschlangen gekoppelt, so daß jede Warteschlange gleichzeitig
um den Dienst vom Shaper-Scheduler und vom freien Bandbreitenscheduler
wetteifert.
-
Der
inaktive schützende
Shaper-Scheduler wie zum Beispiel ein virtueller Taktformer, der
unten beschrieben ist, erzeugt einen Strom von Datenpaketen mit
einer konstanten durchschnittlichen Bitrate. Da der Shaper-Scheduler,
der eine spezielle Warteschlange (die einer Verbindung entsprechen
kann) bedient, eine höhere
Priorität
als der aktive schützende
freie Bandbreitenscheduler aufweist, wie zum Beispiel ein WFQ-Scheduler, wird der
Warteschlange ihre zugeordnete Dienstrate während ihrer Besetztperiode
garantiert. Jedoch sendet der Shaper-Scheduler nicht immer Nachrichten
(oder in der bevorzugten Ausführungsform
die Identität
der Warteschlangen) an den erschöpfenden
Scheduler, weil nicht alle Warteschlangen zu jeder Zeit besetzt
sind, und selbst wenn eine Warteschlange besetzt ist, kann sie berechtigt
sein, aufgrund der inaktiven schützenden
Natur der Formung bedient zu werden. Die Perioden bilden die freie
Bandbreite der Ressource. Während
dieser "freien" Zeit ist der aktive
schützende
freie Bandbreitenscheduler niedrigerer Priorität, der die Warteschlange bedient,
in der Lage, den erschöpfenden
Scheduler zu speisen. Der freie Bandbreitenscheduler verteilt diese
freie Bandbreite auf eine Weise, die vorzugsweise von den garantierten
Dienstraten unabhängig
ist, die den Warteschlangen zugeordnet sind. In der bevorzugten
Ausführungsform
teilt der freie Bandbreitenscheduler die momentane freie Bandbreite
nach einem festen Verfahren oder Verhältnis zwischen QoS-Klassen
und gleichmäßig zwischen
allen Verbindungen auf, die einer speziellen QoS-Klasse zugeordnet sind.
-
In
verschiedenen hier beschriebenen Ausführungsformen sind der Shaper-Scheduler
und der freie Bandbreitenscheduler ebenfalls jeder vorzugsweise
aus einer Mehrzahl von Subschedulern zusammengesetzt, um flexibler
die Verteilung der freien Bandbreite in einer ATM-Anwendungsumgebung
anzupassen, wie unten detaillierter erläutert ist.
-
Gemäß einem
anderen wesentlichen Gesichtspunkt der Erfindung wird ein hierarchischer
Scheduler zum Bedienen einer Mehrzahl von Warteschlangen bereitgestellt,
die Nachrichten halten. Dieser Scheduler umfaßt einen erschöpfenden
Subscheduler, der eine Mehrzahl von Subschedulern niedrigerer Ebene
gemäß ungleichen
Prioritätsebenen
bedient, die ihnen zugewiesen sind; M inaktive schützende Shaper-Subscheduler, die
den erschöpfenden
Subscheduler speisen; und N aktive schützende freie Bandbreiten-Subscheduler,
die den erschöpfenden
Subscheduler speisen. Eine gegebene Warteschlange wetteifert gleichzeitig
um den Dienst von einem der Shaper-Subscheduler und von einem der
freien Bandbreiten-Subscheduler und der Shaper-Subscheduler, der
die gegebene Warteschlange bedient, weist eine höhere Prioritätsebene
bezüglich des
erschöpfenden
Subschedulers als der freie Bandbreiten-Subscheduler auf, der die
gegebene Warteschlange bedient.
-
Kurzbeschreibung der Zeichnungen
-
Der
vorhergehende und andere Gesichtspunkte der Erfindung werden aus
der folgenden Beschreibung ihrer bevorzugten Ausführungsformen
und den beigefügten
Zeichnungen offensichtlicher, welche nur beispielhaft die Prinzipien
der Erfindung veranschaulichen. In den Zeichnungen sind:
-
1(a) – ein
Diagramm, das das Warteschlangen-Arbitrierungsproblem
veranschaulicht, das ein proportionaler WFQ-Scheduler oder Multiplexer
des Standes der Technik zu verwalten hat;
-
1(b) – ein
Bandbreiten-Belegungsdiagramm, das zeigt, wie die Verbindungsbandbreite
den Warteschlangen über
der Zeit durch den proportionalen WFQ-Scheduler des Standes der
Technik unter den in 1(a) gezeigten
Bedingungen zugeordnet;
-
2 – ein Blockschaltbild,
das einen hierarchischen Scheduler gemäß einer ersten bevorzugten
Ausführungsform
der Erfindung darstellt;
-
3 – ein Blockschaltbild,
das einen hierarchischen Scheduler gemäß einer zweiten bevorzugten Ausführungsform
der Erfindung darstellt;
-
4 – ein Flußdiagramm,
das auf einer hohen Ebene ein Verfahren gemäß der ersten und zweiten bevorzugten
Ausführungsform
zum Implementieren des in 2 und 3 gezeigten
hierarchischen Schedulers darstellt;
-
5 – ein Flußdiagramm,
das eine Paket-Vorverarbeitungsstufe
des Flußdiagramms
von 4 detaillierter darstellt;
-
6 – ein Flußdiagramm,
das eine Ausgabeverarbeitungsstufe des Flußdiagramms von 4 detaillierter
gemäß der ersten
bevorzugten Ausführungsform
darstellt;
-
7 – ein Flußdiagramm,
das eine Vervollkommnung der im Flußdiagramm von 6 gemäß der zweiten
bevorzugten Ausführungsform
gezeigten Ausgabeverarbeitungsstufe darstellt;
-
8 – ein Blockschaltbild,
das einen hierarchischen Scheduler gemäß einer dritten bevorzugten
Ausführungsform
der Erfindung darstellt; und
-
9 – ein Blockschaltbild,
das einen hierarchischen Scheduler gemäß einer vierten bevorzugten Ausführungsform
der Erfindung darstellt.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsformen
-
2 ist
ein Blockschaltbild, das einen hierarchischen Scheduler 10 gemäß einer
ersten bevorzugten Ausführungsform
darstellt. Wie oben beschrieben ist, ist die Aufgabe des Schedulers 10,
die Datenpakete 12, die in einer Mehrzahl von Eingabewarteschlangen 14 gespeichert
sind, an eine begrenzte Ressource zu steuern wie zum Beispiel Ausgabekommunikationsverbindung 16,
die eine feste Bandbreite oder ihr zugewiesene Dienstrate aufweist.
In den bevorzugten Ausführungsformen
sind die Datenpakete 12 ATM-Zellen oder ATM-ähnliche Zellen fester Länge. Außerdem ist
der Scheduler 10 synchron, weil die Datenpakete 12 aus
der Warteschlange entfernt und an die Kommunikationsverbindung 16 mit
einer Rate übertragen
werden, die der festen Verbindungsbandbreite entspricht. Mit anderen
Worten, die Kommunikationsverbindung 16 kann als logisch
in Zeitschlitze unterteilt betrachtet werden, so daß der Scheduler 10 ein
Datenpaket 12 pro Zeitschlitz aus der Warteschlange entfernt.
-
Gemäß der ersten
bevorzugten Ausführungsform
umfaßt
der Scheduler 10 drei "Subscheduler" 20, 25 und 30,
d. h. im Wesentlichen unabhängige
Scheduler, die miteinander in einer zweistufigen hierarchischen Anordnung
verbunden sind. (Für
Bezeichnungszwecke werden die Subscheduler 20, 25 und 30 nur
als "Scheduler" bezeichnet, da diese
Scheduler selbst aus Subschedulern zusammengesetzt sein können, wie
zum Beispiel in
-
3 gezeigt
ist.) Ein erschöpfender
Scheduler 30 wird auf der oberen oder primären Ebene
benutzt, die die Ausgabe an die Kommunikationsverbindung 16 bereitstellt.
Der primäre
erschöpfende
Scheduler, der aktiv schützend
ist, dient als sekundärer
inaktiver schützender
Shaper-Scheduler 20, der unten detaillierter beschrieben
ist, und ein sekundärer
aktiver schützender
freier Bandbreitenscheduler 25 (wie zum Beispiel ein WFQ-Scheduler)
ist ebenfalls unten detaillierter beschrieben. Die zwei sekundären Scheduler 20 und 25 bedienen
gleichzeitig die Warteschlangen 14. Der erschöpfende Scheduler 30,
auch im Stand der Technik bekannt als ein statischer oder Scheduler
strenger Priorität,
bedient Prozesse gemäß den ihnen
zugewiesenen Prioritätsebenen.
Folglich bedient zu jeder gegebenen Zeit der primäre erschöpfende Scheduler 30 den
sekundären
Scheduler mit der höchsten
Prioritätsebene,
vorausgesetzt der letztere ist "besetzt", d. h. erfordert die
Bedienung. In der bevorzugten Ausführungsform wird dem sekundären Shaper-Scheduler 20 eine
höhere Prioritätsebene
als dem sekundären
freien Bandbreitenscheduler 25 zugewiesen, dadurch wird
sichergestellt, daß der
erstere immer vor dem letzteren, wenn besetzt, bedient wird.
-
Die
sekundären
Scheduler 20 und 25 "bedienen" gleichzeitig die Menge der Warteschlangen 14 durch Prüfen der
Warteschlangen und Auswählen
einer davon, um ein Datenpaket davon aus der Warteschlange zu entfernen.
Wenn die sekundären
Scheduler 20 und 25 eine zu bedienende Warteschlange
ausgewählt
haben, entfernen sie Datenpakete aus den Warteschlangen nicht; Stattdessen
werden die Warteschlangenkennungen an den primären Scheduler 30 gesendet.
Folglich senden bei jedem Zeitschlitz die sekundären Scheduler 25 und 20 gleichzeitig
und unabhängig
die Kennung einer auswählbaren
Warteschlange, falls vorhanden, an den primären Scheduler 30.
Sobald die sekundären
Scheduler 20 und 25 die Warteschlangenkennungen
gesendet haben, bedient dann der primäre Scheduler 30 den
sekundären
Scheduler höchster
Priorität,
der eine auswählbare
Warteschlange durch Entfernen des Head-of-Line (HOL)-Datenpakets
aus der Warteschlange sendete, die durch diesen sekundären Scheduler
identifiziert wurde.
-
Der
sekundäre
Shaper-Scheduler 20 wird vorzugsweise als ein virtueller
Taktformer implementiert, ähnlich
wie der in Stiliadios, D. und Varma, A., "A General Methodology for Designing
Efficient Traffic Scheduling and Shaping Algorithms", Proceedings of
I.E.E.E. INFOCOM, Japan, 1997 (im Folgenden "Stiliadios") beschriebene. Jede Warteschlange wird
bereitgestellt oder zugeordnet mit einer minimalen garantierten
Dienstrate und der sekundäre
Shaper-Scheduler 20 stellt einen konstanten Strom von Datenpaketen
von jeder Warteschlange mit ihrer garantierten Dienstrate bereit.
Folglich, wenn jede Warteschlange 14 einer virtuellen Verbindung
entspricht, dann wird jede Verbindung mit einem konstanten durchschnittlichen
Bitratenstrom versorgt. Der sekundäre Shaper-Scheduler 25 ist
inaktiv schützend
und wählt
daher nicht unbedingt eine jeden Zeitschlitz zu bedienende Warteschlange
aus.
-
Der
sekundäre
freie Bandbreitenscheduler 25 wird vorzugsweise als ein
WFQ-Scheduler implementiert, in welchem jede Warteschlange 14 vorzugsweise
mit einem festen WFQ-Gewicht versorgt oder zugeordnet wird, das
einer vorgegeben Zuordnung der momentanen freien Bandbreite der
Kommunikationsverbindung 16 entspricht. Folglich könnte zum
Beispiel jeder Warteschlange ein WFQ-Gewicht von 1/N zugewiesen
werden, wo N die Gesamtanzahl der Warteschlangen zu einem beliebigen
Zeitpunkt ist. Der sekundäre
freie Bandbreitenscheduler 25 ist aktiv schützend, so
daß er
eine auswählbare
Warteschlange an den primären
Scheduler 30 jeden Zeitschlitz senden kann, vorausgesetzt,
daß mindestens
eine Warteschlange ein Paket darin gespeichert hat.
-
Es
wird daran erinnert, daß beide
sekundären
Scheduler 20 und 25 gleichzeitig die Warteschlangen 14 bedienen.
Da der Shaper-Scheduler 20 eine
höhere
Priorität
als der aktive schützende
Scheduler 25 hat, werden den Warteschlangen ihre zugeordneten
Dienstraten während
ihrer Besetztperioden garantiert. Jedoch zu verschiedenen Zeiten
sendet der Shaper-Scheduler 20 nicht immer Warteschlangen
an den erschöpfenden Scheduler 30,
weil 1) der Shaper-Scheduler 20 inaktiv schützend ist,
so daß keine
Warteschlangen erfordern, daß ein
Paket während
einer speziellen Zeitperiode zu senden ist, um aufrechtzuerhalten,
daß sie
während einer
speziellen Zeitperiode leer sind (obgleich Warteschlangen, die Null-Formungsraten
aufweisen, besetzt sein können).
Diese Zeitperioden bilden die freie Bandbreite der Kommunikationsverbindung 16.
Während
dieser "freien" Zeit ist der aktive
schützende
freie Bandbreitenscheduler 25 niedrigerer Priorität, der immer
(vorausgesetzt, nicht alle Warteschlangen sind leer) eine auswählbare Warteschlange
jeden Zeitschlitz auswählt, in
der Lage, den primären
Scheduler 30 zu speisen, und daher die freie Bandbreite
unter den Warteschlangen gemäß dem speziellen
durch den Scheduler 25 bereitgestellten Schema zu speisen.
Auf diese Weise wird die Menge der momentanen freien Bandbreite,
die eine Warteschlange empfängt,
von oder unabhängig
von der ihr zugewiesenen garantierten Dienstrate entkoppelt.
-
Andere
Typen aktiver schützender
Subscheduler können
alternativ verwendet werden, um die freie Bandbreite einer Ressource
zuzuordnen, wie zum Beispiel Kommunikationsverbindung 16.
Jedoch allgemein ausgedrückt,
da jede Warteschlange um den Dienst von einem Shaper-Scheduler und
von einem aktiv-schützenden
Scheduler wetteifert, wobei dem ersteren die erschöpfende Priorität über dem
letzteren gewährt
wird, dann der aktiv-schützende
Scheduler einen Teil oder Anteil der momentanen freien Bandbreite
der Ressource (im Folgenden "freier
Bandbreitenanteil")
der Warteschlange zuordnet.
-
Eine
bevorzugte Konfiguration für
Scheduler 10 zur Handhabung verschiedener ATM-Verkehrsdienstklassen
ist in Tabelle 1 unten gezeigt. In der bevorzugten Konfiguration
wird die freie Bandbreite "fest
partitioniert" zwischen
den verschiedenen ATM-Dienstklassen und jede Warteschlange wird
mit einer virtuellen Verbindung verbunden, die ihrerseits mit einer
der ATM-Verkehrsklassen verbunden ist. Der freie Bandbreitenanteil,
den die Dienstklassen rtVBR.2/3, nrtVBR, ABR und UBR empfangen,
ist p1, p2, p3 beziehungsweise p4,
wo p1 + p2 + p3 + p4 = 1. Die freie
Bandbreite, die jeder Dienstklasse zugeordnet wurde, wird in gleicher
Weise unter den Verbindungen aufgeteilt, die zur gleichen Klasse
gehören.
-
Alternativ
könnte
die freie Bandbreite, die jeder Dienstklasse zugeordnet wurde, unter
den Verbindungen der gleichen Klasse im Verhältnis zu ihren garantierten
minimalen Dienstraten aufgeteilt sein. Andere Schemata sind ebenfalls
möglich. Tabelle 1
ATM-Dienstklasse | Garantierte
minimale Dienstrate pro Warteschlange (Formungsrate) | Freier
Bandbreitenanteil pro Warteschlange (WFQ-Gewicht) |
CBR | PCR | ∞ |
rtVBR.1 | VBW | ∞ |
rtVBR.2/3 | VBW | p1/NrtVBR.2/3 |
nrtVBR | VBW | p2/NnrtVBR |
ABR | MCR | p3/NABR |
UBR | MCR | p4/NUBR |
-
Den
CBR- und rtVBR.1-Warteschlangen ist ein Gewicht von ∞ zugewiesen,
um sicherzustellen, daß der
CBR- und rtVBR.1- Verkehr
den Prioritätsdienst über dem
Nicht-Echtzeit-Verkehr und rtVBR.2/3-Verkehr erhält. In der Praxis unterliegen
solche Quellen in der Regel der Belegungsparametersteuerung (usage
parameter control/UPC), d. h. einem Typ der Zellstromfunktion (policing
function), um sicherzustellen, daß eine Verbindung mit ihrem
Verkehrsvertrag beständig
ist und folglich nicht dazu neigt, burstartig zu sein (d. h. ihren CDVTs
entspricht). Alternativ können
andere Mittel in einem Kommunikationssystem zum Formen solcher Quellen
bereitgestellt sein, um die Übereinstimmung
mit dem Verkehrsvertrag sicherzustellen. Siehe zum Beispiel die
gleichzeitig anhängige
Kanadische Patentanmeldung Nr. 2,229,577 ,
eingereicht am 12. Februar 1998, und übertragen an den gegenwärtigen Inhaber.
Als solche werden die CBR- und nrtVBR.1-Verbindungen im Allgemeinen
selten die durch den Scheduler
25 verwaltete momentane
freie Bandbreite nutzen.
-
Die
rtVBR.2/3-Dienstklasse wird wie eine Nicht-Echtzeit-Klasse bezüglich der
Verteilung der freien Bandbreite wegen der Art ihres Verkehrsvertrags
behandelt, der nur ein ATM-Kommunikationsgerät erfordert, wie
zum Beispiel einen Netzknoten, der Verbindungszugangskontrolle (connection
admission control/CAC) aufweist, um den Dienst an CLP 0-Zellen zu
garantieren, aber nicht CLP 1-Zellen niedriger Priorität. Siehe
zum Beispiel ATM FORUM Dok. Nr. af-tm-0056.000, "Traffic Management Specification, Version
4.0", April 1996. CLP
0-Zellen unterliegen
zwei Bucket-UPC (d. h. PCR-Übereinstimmung
und SCR-Übereinstimmung)
und neigen folglich in der Regel zu gutem Verhalten. CLP 1-Zellen
unterliegen jedoch nur einer Bucket-UPC (d. h. nur PCR-Übereinstimmung),
so daß ein
Gesamt-CLP0+1-Strom
nur durch ein PCR-Bucket eingeschränkt ist. Entsprechend ist es
für CLP
1-Zellen von zahlreichen rtVBR.2/3-Verbindungen möglich, am
Knoten in erweiterten Bursts anzukommen. Wenn der rtVBR.2/3-Verkehrsklasse
ein freier Bandbreitenanteil von wie den anderen Echtzeit- Verkehrsklassen gewährt wurde,
dann könnten
CLP 1-Zellen Dienstaushungerung (service starvation) des Nicht-Echtzeit-Verkehrs wie zum
Beispiel UBR, dadurch Flooding des Knotens verursachen. Jedoch können CLP
1-Zellen in Wirklichkeit verworfen oder alternativ auf das gleiche
(oder schlechte) Ausmaß wie das
des Nicht-Echtzeit-Verkehrs verzögert
werden. Folglich kann durch Zuweisen eines begrenzten freien Bandbreitenanteils
zum rtVBR-2/3-Verkehr, ähnlich
wie zum Nicht-Echtzeit-Verkehr, dieses Problem vermieden werden.
-
3 zeigt
einen hierarchischem Scheduler 50 gemäß einer zweiten bevorzugten
Ausführungsform. In
dieser Ausführungsform
ist der sekundäre
Shaper-Scheduler 20 aus zwei Shaper-Subschedulern 20A und 20B zusammengesetzt
und der sekundäre
freie Bandbreitenscheduler 25 ist aus zwei aktiven schützenden Subschedulern 25A und 25B zusammengesetzt.
Die Warteschlangen 14A, die mit den CBR- und rtVBR.1-ATM-Verkehrsklassen
verbunden sind, werden gleichzeitig durch den Shaper-Subscheduler 20A und den
aktiven schützenden
Subscheduler 25A bedient. Die Warteschlangen 14B,
die mit den rtVBR.2/3-ATM-Verkehrsklassen
verbunden sind, werden gleichzeitig durch den Shaper-Subscheduler 20A und den
aktiven schützenden
Subscheduler 25B bedient. Die Warteschlangen 14C,
die mit den Nicht-Echtzeit-ATM-Verkehrsklassen verbunden sind, werden
gleichzeitig durch den Shaper-Subscheduler 20B und den aktiven
schützenden
Subscheduler 25B bedient. Die Reihenfolge der Priorität, die mit
den sekundären
Subschedulern verbunden ist, ist 20A, 20B, 25A und 25B,
von der höchsten
zur niedrigsten Priorität.
-
Eine
bevorzugte Konfiguration für
Scheduler 50 zur Handhabung verschiedener ATM-Verkehrsdienstklassen
ist in Tabelle 2 unten gezeigt. Wie bisher wird jede Warteschlange
mit einer einzelnen virtuellen Verbindung verbunden und für jede Warteschlange/virtuelle
Verbindung wird ihre garantierte minimale Dienstrate sichergestellt,
aber aufgrund der Priorität
des Shaper-Subschedulers 20A über 20B, wird der
Echtzeit-Verkehr vor Nicht-Echtzeit-Verkehr bei der Formung gesteuert.
Wie bisher erhalten die kritischen Echtzeit-Verkehrsklassen (Klassen CBR und rtVBR.1)
ebenfalls freie Bandbreite bevorzugt gegenüber den anderen Verkehrsklassen.
-
Jedoch
stellt die zweite Ausführungsform
einen Mechanismus zum besseren Verwalten der Verteilung der freien
Bandbreite unter dem kritischen Echtzeit-Verkehr bereit. Das hängt damit
zusammen, daß die
freie Bandbreite, die die CBR- und rtVBR-Dienstklassen bezüglich einander erhalten, α
1:α
2 ist,
wo α
1 + α
2 = 1, und die zugeordnete freie Bandbreite
pro Dienstklasse in gleicher Weise unter Verbindungen aufgeteilt
wird, die zur gleichen Klasse gehören. Auf diese Weise kann der
freie Bandbreitenanteil, der einer CBR- oder rtVBR.1-Warteschlange
zugeordnet ist, gut gesteuert werden, im Gegensatz zur ersten Ausführungsform,
während
immer noch diesen Dienstklassen die bevorzugte Behandlung beim Empfangen
der freien Bandbreite über
den anderen Dienstklassen gegeben wird. Tabelle 2
ATM-Dienstklasse | Garantierte
minimale Dienstrate pro Warteschlange (Formungsrate) | Freier
Bandbreitenanteil pro Warteschlange (WFQ-Gewicht) |
CBR | PCR | α1/NCBR |
rtVBR.1 | VBW | α2/NrtVBR.1 |
rtVBR.2/3 | VBW | p1/NrtVBR.2/3 |
nrtVBR | VBW | p2/NnrtVBR |
ABR | MCR | p3/NABR |
UBR | MCR | p4/NUBR |
-
Es
wird ebenfalls von der zweiten Ausführungsform angemerkt, daß die rtVBR.2/3-Warteschlangen wie
eine separate Gruppe behandelt werden, bedient durch den Shaper-Subscheduler 20A hoher
Priorität
zusammen mit den anderen Echtzeitklassen, aber bedient durch den
freien Bandbreiten-Subscheduler 25B niedrigster Priorität, ähnlich wie
die Nicht-Echtzeit-Verkehrsklassen.
Das erfolgt, um das CLP 1-Flooding aus den oben angegebenen Gründen zu
verhindern.
-
4 ist
ein Flußdiagramm,
das auf einer hohen Ebene ein Verfahren gemäß der ersten und zweiten bevorzugten
Ausführungsform
zum Implementieren der hierarchischen Scheduler 10 und 50 darstellt.
Das bevorzugte Verfahren verwendet eine Form des Zeitstempelns,
wie detaillierter unten beschrieben ist, um zu verfolgen, wann Warteschlangen
bedient werden sollten. Folglich gibt im Falle 60 des Eintreffens
eines Datenpakets 12 eine Eingangsverarbeitungsstufe 62 bei
Bedarf den Zeitstempel aus. Parallel entfernt eine Ausgabeverarbeitungsstufe 64 die
Datenpakete 12 aus den Warteschlangen 14 zur Übertragung
an die Kommunikationsverbindung 16, sowie gibt unter bestimmten
Umständen
Zeitstempel aus.
-
Im
bevorzugten Verfahren wird jede Warteschlange 14 mit zwei
Zeitstempeln verbunden, bezeichnet als theoretische Emissionszeiten
(TETs). Einer dieser Zeitstempel (im Folgenden "Formungs-TET") wird durch den sekundären Shaper-Scheduler 20 verwendet
und der andere Zeitstempel wird durch den bevorzugten sekundären freien
WFQ-Bandbreitenscheduler 25 (im Folgenden "WFQ TET") verwendet. Das
bevorzugte Verfahren unterscheidet sich von der virtuellen Taktformungstechnik,
die in Stiliadios oben beschrieben ist, dadurch, daß im Stand
der Technik jedes Paket einen mit ihm verbunden Zeitstempel aufweist,
wohingegen in den bevorzugten Ausführungsformen das Zeitstempeln
auf der Ebene jeder Warteschlange durchgeführt wird. Die Erfinder haben
festgestellt, daß das
Zeitstempeln pro Warteschlange wahrscheinlich wirtschaftlicher in
der Praxis wegen geringerer Speicheranforderungen zu implementieren
ist.
-
Beide
Zeitstempel einer Warteschlange ändern
sich jedes Mal, wenn ein neues Paket die Head-of-Line (HOL)-Position
in der Warteschlange erreicht. Das geschieht entweder wenn (a) ein
Datenpaket an einer leeren Warteschlange ankommt oder (b) ein Datenpaket
gerade bedient worden ist und seine Warteschlange ein folgendes
Datenpaket hat, das wartet bedient zu werden, was sich auf die HOL-Position
vorwärts
bewegt.
-
Wenn
ein Paket gerade bedient worden ist und seine Warteschlange keine
Pakete mehr hat, die warten, sind ihre Zeitstempel nicht mehr gültig; d.
h. die Warteschlange wird nicht mehr als auswählbar für das Scheduling durch den
sekundärer
Shaper-Scheduler 20 und den bevorzugten sekundären freien
WFQ-Bandbreitenscheduler 25 (einschließlich jedes seiner Subscheduler)
angesehen.
-
Gemäß dem bevorzugten
Verfahren, wenn ein Paket an einer leeren Warteschlange i ankommt,
dadurch das Paket auf ihre HOL-Position platziert, ist der Formungs-TET
(d. h. zu den Zwecken der sekundären Shaper-Subscheduler)
einer gegebenen Warteschlange i zu einem aktuellen Zeitpunkt RTP
(real time Pointer/Echtzeitzeiger):
wo R
i die
Formungsrate der Warteschlange i ist.
-
Im
Falle, daß ein
Paket aus der Warteschlange i entfernt wurde, so daß ein anderes
Paket, das in der Warteschlange wartet, die HOL-Position erreicht,
ist die Formungs-TET der Warteschlange i:
-
Der
Formungszeitstempel bleibt bei der Warteschlange, bis sie bedient
wird. An jedem Zeitschlitz bedient der sekundäre Shaper-Scheduler
20 (oder
die Shaper-Subscheduler
20A und
20B in der zweiten
Ausführungsform)
die Warteschlange mit der kleinsten Formungs-TET von allen auswählbaren
Warteschlangen. Eine Warteschlange i ist auswählbar, wenn
-
Mathematisch
wird der Index j der ausgewählten
Warteschlange ausgedrückt
als:
-
In
den bevorzugten Ausführungsformen
versieht der WFQ-Subscheduler,
der als der sekundäre
aktive schützende
Scheduler
25 (oder seine Subscheduler
25A und
25B in
der zweiten Ausführungsform)
dient, jede bediente Warteschlange ebenfalls mit Zeitstempel. Das
kann mit einem selbsttaktenden fairem Warteschlangenbildungsschema
(self-clocked fair queuing scheme/SCFQ) erreicht werden, das detaillierter
zum Beispiel in Goyal et al., "Start-Time
Fair Queuing: A Scheduling Algorithm for Integrated Services Packet
Switching Networks",
IEEE/ACM Trans. Networking, Vol. 5, No. 5, Oktober 1970 (im Folgenden "Goyal") beschrieben ist.
Mit SCFQ, wenn ein neues Paket an der HOL-Position der Warteschlange
i ankommt, ist der WFQ TET:
wo VTP (virtueller Zeitzeiger)
der WFQ TET-Wert der Warteschlange ist, die zuletzt durch den WFQ-Scheduler bedient
wurde, und Φ
i das WFQ-Gewicht der Warteschlange i ist.
(Es ist zu beachten, daß jeder
WFQ-Scheduler eine VTP-Variable aufweist, die mit ihm verbunden
ist. Im Gegensatz nutzen alle Former eine gemeinsame RTP-Variable,
da sie ein Maß der
Echtzeit ist.)
-
Alternativ
kann das Zeitstempeln für
den bevorzugten WFQ-Subscheduler
mit einem fairen Warteschlangenbildungschema für Startzeit (start-time fair
queuing scheme/SFQ) durchgeführt
werden, das detaillierter in Goyal oben beschrieben ist. Mit SFQ,
wenn ein neues Paket an der HOL-Position der Warteschlange i ankommt,
ist die WFQ TET:
wo VTP
wieder der WFQ TET-Wert der Warteschlange ist, die zuletzt bedient
wurde, und Φ
i das WFQ-Gewicht der Warteschlange i ist.
-
5 ist
ein Flußdiagramm,
das die Eingangsverarbeitungsstufe 62 (von 4)
detaillierter darstellt. Ein Anfangsschritt 70 reiht das
ankommende Paket in die entsprechende Warteschlange 14 ein.
Die kommenden Pakete können
in die Warteschlange unter Verwendung einer Vielfalt von Warteschlangenbildungsschematas
eingereiht werden zum Beispiel pro Prioritätswarteschlangenbildung gemäß der QoS- oder ATM-Verkehrsklassen
(wie zum Beispiel in 3 gezeigt ist), pro VC-Warteschlangenbildung,
pro Port-Warteschlangenbildung
oder Kombinationen der vorhergehenden.
-
Schritt 72 prüft, ob das
Paket, das im Schritt 70 in die Warteschlange eingereiht
wurde, am Kopf der entsprechenden Warteschlange platziert wurde.
Wenn nicht, wird der Prozeß beendet.
Andernfalls berechnet Schritt 74 den Zeitstempel für die entsprechende
Warteschlange zur anschließenden
Verwendung durch den Shaper-Scheduler 25 gemäß Gleichung
(1). Ähnlich
berechnet der Schritt 76 den Zeitstempel für die entsprechende
Warteschlange zur anschließenden
Verwendung durch den bevorzugten WFQ-Scheduler gemäß einer der
Gleichungen (5) und (6), wie gewünscht.
-
6 ist
ein Flußdiagramm,
das die Ausgabeverarbeitungsstufe 64 (von 4)
detaillierter für
einen Zeitschlitz darstellt. In einem Anfangsschritt 80 wählen der
sekundäre
Shaper- und der freie Bandbreitenscheduler 20 und 25 (welche
vorzugsweise als separate unabhängige
Computerprozesse oder Threads der Ausführung implementiert sind) gleichzeitig
und unabhängig
eine Warteschlange aus, falls vorhanden, zur Bedienung in dem aktuellen
Zeitschlitz. Im Falle des Shaper-Schedulers 20 erfolgt
die Warteschlangenauswahl gemäß der Gleichung
(4). Der freie Bandbreitenscheduler 20 wählt die
Warteschlange aus, die die niedrigste geschätzte TET aufweist.
-
Bei
Schritt 82 schlußfolgert
jeder sekundäre
Formungs- und freie Bandbreitenscheduler 20 und 25,
ob ein Paket aus der Warteschlange entfernt werden sollte oder nicht.
Wenn ja, dann senden bei Schritt 84 die sekundären Scheduler 20 und 25 die
Identitäten
Qj und QK der entsprechend
ausgewählten
Warteschlangen an den erschöpfenden
Scheduler 30.
-
Bei
Schritt
86 prüft
der primäre
erschöpfende
Scheduler
30, ob der sekundäre Shaper-Scheduler
20 eine
Warteschlange zur Bedienung gesendet hat oder nicht. Wenn ja, dann
entfernt bei Schritt
90 der primäre erschöpfende Scheduler
30 das
HOL-Paket aus Warteschlange Qj und leitet das Paket an die Kommunikationsverbindung
16 weiter.
Bei Schritt
96 wird die Warteschlange Qj (die gerade bediente
Warteschlange) geprüft,
um zu bestimmen, ob sie leer ist oder nicht. Wenn sie nicht leer
ist, dann wird ein folgendes Paket innerhalb der Warteschlange Q
j ein HOL-Paket und folglich wird bei Schritt
100 der
Formungs-TET für
die Warteschlange Q
j gemäß der Gleichung (2) aktualisiert.
Jedoch, wenn die Warteschlange Q
j leer ist,
dann wird die Steuerung an Schritt
104 abgegeben. In diesem
Falle wird eine Einstellung an der WFQ TET für Warteschlange Q
j wie
folgt durchgeführt:
-
Diese
Einstellung erfolgt, weil das Zeitstempelsystem nach dem Prinzip
der akkumulierten "Kredite" arbeitet, wie der
Fachmann verstehen wird, und folglich, da der sekundäre freie
Bandbreitenscheduler 20 nicht tatsächlich die Warteschlange Qj bedient, wird sein Kredit bezüglich des
sekundären
Schedulers 20 vorzugsweise korrigiert, bevor das nächste Paket,
das ein HOL-Paket sein wird, in der Warteschlange Qj ankommt.
-
Wenn
bei Schritt
86 der sekundäre Shaper-Scheduler
20 keine
Warteschlange zur Bedienung gesendet hat, dann prüft bei Schritt
88 der
primär
erschöpfende
Scheduler
30, ob der sekundäre freie Bandbreitenscheduler
25 eine
Warteschlange zur Bedienung gesendet hat oder nicht. Wenn ja, dann
entfernt bei Schritt
92 der primäre erschöpfende Scheduler
30 das
HOL-Paket aus der Warteschlange Q
K und leitet
das Paket an die Kommunikationsverbindung
16 weiter. Bei
Schritt
98 wird die Warteschlange Q
K (die
gerade bediente Warteschlange) geprüft, um zu bestimmen, ob sie
leer ist oder nicht. Wenn sie nicht leer ist, dann wird ein folgendes
Paket innerhalb der Warteschlange Q
K ein
HOL-Paket und folglich wird bei Schritt
102 der WFQ TET-Zeitstempel
für die
Warteschlange Q
K gemäß einer der Gleichungen (5)
und (6) wie gewünscht
aktualisiert. Jedoch, wenn die Warteschlange Q
K leer
ist, dann wird die Steuerung an Schritt
106 abgegeben.
In diesem Falle wird nun eine Krediteinstellung aus den zuvor beschriebenen
Gründen
an der Formungs-TET wie folgt durchgeführt:
-
7 zeigt
die Verarbeitung, die durch den primären erschöpfenden Scheduler 30 speziell
für den
Fall der zweiten Ausführungsform
(4) durchgeführt
wird. Es wird angemerkt, daß eine
Abfrage jedes sekundären
Subschedulers 20A, 20B, 25A und 25B in
der Reihenfolge durchgeführt
wird, um zu bestimmen, ob sie Warteschlangen gesendet haben und
entsprechend auf eine Weise ähnlich
der oben beschriebenen bedient wurden oder nicht.
-
8 zeigt
einen hierarchischen Scheduler 110 tertiärer Ebene
gemäß einer
dritten bevorzugten Ausführungsform.
In dieser Ausführungsform
bedient der Scheduler 110 vierundsechzig Eingänge I1–I64, von denen jeder mehrfache Verbindungen
von jeder der verschiedenen ATM-Verkehrsklassen tragt. Die Zellen
von jedem Eingang werden in einer Menge von Warteschlangen gespeichert.
Jede Menge umfaßt
mindestens eine Warteschlange von jeder Verkehrsklasse. Folglich
sind zum Beispiel vierundsechzig CBR-Warteschlangen insgesamt vorhanden,
eine für
jeden Eingang; und vierundsechzig nrtVBR-Warteschlangen insgesamt, eine für jeden
Eingang. Der UBR-Verkehr
wird in zwei Abschnitte unterteilt: "UBR m" bezieht sich auf Multicast-UBR-Verkehr; "UBR s" bezieht sich auf
Singlecast-UBR-Verkehr.
-
In
dieser Ausführungsform
ist der Shaper-Scheduler 20 aus zwei Shaper-Subschedulern 20A und 20B zusammengesetzt,
die einen erschöpfenden
Subscheduler 112 speisen (der seinerseits den erschöpfenden Scheduler 30 speist).
Der Shaper-Subscheduler 20A bedient die Echtzeit-Verkehrsklassen
und der Shaper-Subscheduler 20B bedient
die Nicht-Echtzeit-Verkehrsklassen (und rtVBR.2/3). Der Shaper-Subscheduler 20A hat
eine höhere
Priorität
bezüglich
des erschöpfenden
Subschedulers 112 als der Shaper-Subscheduler 20B,
auf eine Weise ähnlich
wie die zweite bevorzugte Ausführungsform,
die in 3 gezeigt ist.
-
Der
freie Bandbreitenscheduler 25 ist aus fünf tertiären WFQ-Subschedulern 114A–E zusammengesetzt,
die einen sekundären
WFQ-Subscheduler 116 speisen. In dieser Hierarchie entsprechen
die Gewichte des sekundären
WFQ-Subschedulers 116 einem Teil der freien Bandbreite,
die einer ATM-Verkehrsgruppe als ein Ganzes zugeordnet ist, und
die Gewichte eines gegebenen tertiären WFQ-Subschedulers 114 teilen
den Teil der freien Bandbreite, die der entsprechenden ATM-Verkehrsgruppe
zugeordnet ist, unter den Warteschlangen dieser Gruppe auf.
-
Eine
bevorzugte Konfiguration für
Scheduler
110 ist in Tabelle 3 unten gezeigt. In der Tabelle
bedeutet die Schreibweise "Σ
rtVBR.2/3,queue VBW" zum Beispiel die
Summe der VBWs aller Verbindungen, die sich eine spezielle rtVBR.2/3-Warteschlange
teilen, und "Σ
rtVBR.2/3 VBW" bedeutet die Summe
der VBWs aller rtVBR.2/3-Verbindungen auf allen Eingängen, d.
h. im gesamten System. Außerdem
bezeichnet die Schreibweise "N
UBR,queue" beziehungsweise "N
UBR" zum Beispiel die
Anzahl der UBR-Verbindungen
in einer speziellen Warteschlange und die Gesamtanzahl der UBR-Verbindungen
auf allen Eingängen. Tabelle 3
ATM-Dienstklasse | Garantierte
minimale Dienstrate pro Warteschlange (Formungsrate) | Tertiäres WFQ-Gewicht
(pro Warteschlange) | Sekundäres WFQ-Gewicht (pro Klasse) |
CBR | ΣCBR,queue PCR | ΣCBR,queue PCR/ΣCBR,
PCR | |
rtVBR.1 | ΣrtVBR.1,queue VBW | ΣrtVBR.1,queue VBW/ΣrtVBR.1,
VBW |
rtVBR.2/3 | ΣrtVBR.2/3,queue VBW | ΣrtVBR.2/3,queue VBW/ΣrtVBR.2/3 VBW | p1 |
nrtVBR | ΣnrtVBR,queue VBW | ΣnrtVBR,queue VBW/ΣnrtVBR VBW | p2 |
ABR | ΣABR,queue MCR | NABR,queue/NABR | p3 |
UBR | ΣUBR,queue MCR | NUBR,queue/NUBR | p4 |
-
Wie
bisher werden die ATM-Dienstklassen in drei verschiedene Gruppen
wie folgt unterteilt: (1) kritischer Echtzeit-Verkehr (CBR- und
rtVBR.1-Warteschlangen); (2) Echtzeit-Verkehr mit CLP1-Zellen, die
verworfen werden können
(rtVBR.2 und rtVBR.3) und (3) Nicht-Echtzeit-Verkehr (nrtVBR, UBR
und ABR.) Die erste und zweite Gruppe (Warteschlangen, die mit Echtzeit-Verkehr verbunden
sind) haben erschöpfende
Priorität über der
dritten Gruppe (Warteschlangen, die mit Nicht-Echtzeit-Verkehr verbunden
sind) bezüglich
der Shaper-Subscheduler 20A und 20B.
-
Das
stellt sicher, daß die
Echtzeit-Warteschlangen die Bandbreite bekommen, die ihnen durch
die CAC mit minimaler Verzögerung
zugeordnet wurde.
-
Bezüglich der
Zuordnung der freien Bandbreite erhält die erste Gruppe der kritischen
Echtzeitverkehr-Warteschlangen (deren Verbindungen QoS-Garantien
für sowohl
CLP 0- als auch CLP 1-Zellen
haben) erschöpfende
Priorität über dem
Nicht-Echtzeit-Verkehr,
da ihnen ein Gewicht von ∞ zugeordnet
ist. Die rtVBR.2/3-Verkehrsklasse ist in dieser Kategorie nicht
eingeschlossen, da der rtVBR.2/3-Verkehr CLP 1-Zellen aufweist,
die keine QoS-Garantien haben. Stattdessen wird die freie Bandbreite
auf eine begrenzte Weise durch den sekundären WFQ-Subscheduler 116 verteilt,
indem der Summen-rtVBR.2/3-, nrtVBR-, UBR- und ABR-Verkehr ein vorgegebenes
Verhältnis
Pi der gesamten verfügbaren
freien Bandbreite erhält.
Innerhalb der rtVBR.2/3- und nrtVBR-Verkehrsklassen wird die freie
Bandbreite der Dienstklasse unter den Warteschlangen im Verhältnis zu
den garantierten Dienstraten der Verbindungen aufgeteilt, die durch
die Warteschlangen getragen werden. Innerhalb der ABR- und CBR-Klasse
wird die freie Bandbreite, die jeder Klasse zugeordnet ist, ungefähr gleich
unter allen Verbindungen in der Klasse verteilt. Natürlich ist
es auch möglich,
die proportionale Verteilung der freien Bandbreite durch Einstellung
der Gewichte der tertiären
Subscheduler 114D und 114E für jede Warteschlange auf ΣnrtVBR,queue MCR/ΣnrtVBR MCR
zu erreichen.
-
Die
zweistufige Hierarchie des Schedulers 25 stellt ebenfalls
eine flexiblere Anordnung zum Verteilen der freien Bandbreitenzuweisung
innerhalb einer gegebenen Dienstklasse bereit. Zum Beispiel sei
ein Szenario betrachtet, wo insgesamt fünf Warteschlangen in der nrtVBR-Klasse
vorhanden sind und der Klasse 20% der freien Bandbreite zugeordnet
sind. Wenn alle fünf
Warteschlangen aktiv sind, dann erhält jede Warteschlange 1/5 von
20% der zugeordneten freien Bandbreite. Wenn jedoch nur eine der
fünf Warteschlangen aktiv
ist, dann würde
aufgrund der aktiven schützenden
Natur der WFQ diese Warteschlange immer durch den entsprechenden
tertiären
WFQ-Subscheduler 114 bedient,
der seinerseits 20% der freien Bandbreite vom sekundären WFQ-Subscheduler 116 erhält. Demzufolge
erhält
nur die besetzte Warteschlange in der Klasse 20% der freien Bandbreite.
Im Gegensatz hat in der zweiten Ausführungsform, die in 3 gezeigt
ist, jede Warteschlange einen freien Bandbreitenanteil von p/N und
folglich würde
unter dem vorliegenden Szenario die besetzte Warteschlange nur ungefähr 1/5 von
20% der freien Bandbreite erhalten (mit den anderen 16%, die unter
allen besetzten Schedulern aufgeteilt sind).
-
Die
bevorzugten oben beschriebenen hierarchischen Scheduler sind bezüglich einer
ATM-Anwendungsumgebung konfiguriert worden. Es wird verstanden,
daß die
hierarchischen Scheduler für
andere Typen von Anwendungen konfiguriert werden können. Im
allgemeinen Fall können
die hierarchischen Scheduler M inaktive schützende Shaper-Subscheduler,
die einen erschöpfenden
Subscheduler speisen, und N aktive schützende freie Bandbreiten-Subscheduler,
die den erschöpfenden
Subscheduler speisen, umfassen, vorausgesetzt, daß eine Warteschlange
gleichzeitig um den Dienst von einem der Shaper-Subscheduler und von einem der freien
Bandbreiten-Subscheduler wetteifert und der Shaper-Subscheduler,
der die Warteschlange bedient, eine höhere erschöpfende Prioritätsebene
als der freie Bandbreiten-Subscheduler aufweist, der die gleiche
Warteschlange bedient. 9 zeigt ein Beispiel solch eines
hierarchischen Schedulers, wo M = 2 und N = 3 ist.
-
Es
sollte auch verstanden werden, daß die Kommunikationsverbindung 16 ein Übertragungsmedium oder
alternativ einen internen Bus oder Weg in einem Kommunikationsgerät darstellen
kann. Entsprechend sollte verstanden werden, daß die bevorzugten Ausführungsformen
in anderen Typen von Anwendungen angewandt werden können, wo
mehrere Prozesse verschiedene Typen von Nachrichten oder Jobs erzeugen,
die in einer Mehrzahl von Warteschlangen zur anschließenden Verarbeitung
durch eine einzelne Ressource gespeichert werden, die eine begrenzte
Verarbeitungskapazität
oder Bandbreite aufweist. Außerdem,
während sich
die bevorzugten Ausführungsformen
auf synchrone Subscheduler/Scheduler bezogen haben, die an Datenpaketen
fester Länge über gleiche
Zeitperioden arbeiten, können
in alternativen Ausführungsformen
der Erfindung die Scheduler asynchroner Natur sein und an Datenpaketen
variabler Länge
arbeiten.
-
Wo
nach in einem Patentanspruch erwähnten
technischen Merkmalen Bezugszeichen folgen, sind diese Bezugszeichen
für den
alleinigen Zweck der Erhöhung
der Verständlichkeit
der Patentansprüche
eingeschlossen und entsprechend haben solche Bezugszeichen keine
begrenzende Auswirkung auf den Anwendungsbereich jedes Elements,
das beispielhaft durch solche Bezugszeichen gekennzeichnet ist.