-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Kommunikationssysteme und -verfahren,
die einen Per-Service-Queuing-Mechanismus vorsehen, um mehrere Dienstklassen über eine
einzelne virtuelle Verbindung (VC – virtual circuit) zu unterstützen, wobei
die Dienstgüteverschlechterung
(QoS-Verschlechterung) höherer
QoS-Dienste minimiert wird.
-
Relevanter
Stand der Technik
-
Ein
wichtiger Aspekt eines Kommunikationssystems, das auf der asynchronen Übertragungsmodustechnologie
(ATM-Technologie – Asynchronous Transfer
Mode technology) basieren kann, besteht in seiner Fähigkeit,
spezifische Niveaus der Dienstgüte (Quality
of Service – QoS)
für eine
festgelegte virtuelle Verbindung (VC) zwischen einer Quelle und
einem Ziel vorzusehen. Implementierungen vieler Higher-Layer-Protokolle,
die über
einer ATM-Schicht liegen (wie etwa ein Punkt-zu-Punkt-Protokoll über Ethernet), machen es erforderlich,
dass für
den gesamten Datenverkehr zwischen einer Verkehrsquelle (traffic
source) und einem spezifischen Kundenziel eine einzelne VC verwendet
wird. Aktuelle Systeme lassen keine Übertragung von Verkehrsquellendaten mehrerer
Dienste (wie etwa Voice-over-IP, Daten und Video) mit unterschiedlichen
QoS-Parametern über eine
einzelne VC zu, ohne bei Verwendung von Per-VC-Queuing-Mechanismen
die Dienstgüte
des Dienstes erheblich zu verschlechtern.
-
Es
werden ein Kommunikationssystem und -verfahren benötigt, die
einen Per-Service-Queuing-Mechanismus vorsehen, der mehrere Dienstklassen über eine
einzelne VC unterstützt,
wobei die QoS-Verschlechterung von höheren QoS-Diensten minimiert wird. Darüber hinaus
werden ein Kommunikationssystem und -verfahren benötigt, die
gleichzeitig mit einem Einzel-Prioritäts-Queuing-Verfahren arbeiten
können,
d.h. mit einer Warteschlange pro VC.
-
In
WO 99/53656 ist ein computerimplementiertes Verfahren zum Formen
oder Gestalten (Shaping) des Ausgangs von Zellen eines Ausgangspfads einer
Datenübertragungseinrichtung
beschrieben. Die Datenübertragungseinrichtung
ist zum Vermitteln (Switching) der Zellen von mehreren Eingangspfaden
zu den Ausgangspfaden eines Netzwerks konfiguriert. Das Verfahren
umfasst das Sortieren einer Mehrzahl von Warteschlangen, wobei jede
Warteschlange eine Mehrzahl an Zellen umfasst, die einer Kommunikationseinrichtung
zugeordnet sind. Die Mehrzahl an Warteschlangen ist gemäß einer
Wertigkeit und einer Datenrate angeordnet, die jeder Mehrzahl an
Zellen zugeordnet sind, was zu einer Mehrzahl sortierter Warteschlangen
aus Warteschlangen führt.
Ein summierter Ausgang von Zellen von jeder sortierten Warteschlange
aus Warteschlangen wird basierend auf den Datenraten der Warteschlangen jeder
sortierten Warteschlange aus Warteschlangen und den Wertigkeiten
jeder sortierten Warteschlange aus Warteschlangen geregelt, so dass
der geplante Ausgang mit dem Ausgangspfad verbunden ist. Es wird
ein Traffic-Shaping-Verfahren
durchgeführt,
wobei anstelle der Verwendung eines Traffic-Shapers für jede virtuelle Verbindung
(VC) die Gruppierung von VC-Warteschlangen mit ähnlichen Datenraten durchgeführt wird,
so dass ihr Verkehr (traffic) durch einen einzelnen Traffic-Shaper
geformt wird.
-
Gemäß
EP 1 039 774 A2 ist
eine im asynchronen Übertragungsmodus
(ATM) arbeitende Puffersteuereinheit und ein ATM-Puffersteuerverfahren realisiert,
das ein hohes Niveau der Dienstgüte
des ATM-Verkehrs unabhängig
davon aufrechterhält,
ob ein Shaping (Formen) erforderlich ist oder nicht. Verkehr, der
kein Shaping benötigt,
wird in einer dedizierten Ausgangswarteschlange jeder ATM-Dienstkategorie
angeordnet und entsprechend der Ordnung jeder Priorität über die
Steuerung der festgelegten Priorität ausgegeben. In der Zwischenzeit
wird Verkehr, der Shaping benötigt,
in einem von n Teilen von Shapern angeordnet und an dem Verkehr
eine Shaping-Verarbeitung durchgeführt. Alle Shaper können über die
Verkehrsklasse einen geeigneten von fünf Round-Robin-Steuerabschnitten
auswählen,
um die Priorität
des Ausgangs des entsprechenden ATM-Verkehrs zu steuern.
-
EP 1 039 774 A2 beschreibt
einen dynamischen Ratensteuerungs-Scheduler (DRC-Scheduler – dynamic rate control scheduler)
zur Ablaufplanung (Scheduling) von Zellen für den Dienst in einem üblichen
ATM-Switch (asynchronous transfer mode switch). Gemäß der DRC
wird an jedem Verkehrsstrom, der einer internen Switch-Warteschlange zugeordnet
ist, in Übereinstimmung
mit einer Rate, die aus einer minimal garantierten Rate und einer
dynamischen Komponente besteht, welche basierend auf Überlastungsinformationen
im Switch berechnet wird, ein Rate-Shaping-Verfahren durchgeführt. Obgleich
sie häufig
genutzt wird, garantiert die DRC nur einen minimalen Durchsatz bei
jedem Strom und verteilt die unbenutzte Bandbreite einigermaßen. Die Verteilung
von ungenutzter Bandbreite bei DRC muss nicht proportional zu den
minimalen Durchsatzgarantien sein, wie bei gewichteten Fair-Share-Schedulern.
Eine QoS-Steuerung mit geschlossenem Regelkreis wird in die DRC
durch dynamisches Aktualisieren eines Satzes an Wertigkeiten basierend
auf der beobachteten Dienstgüte
eingebaut.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
Aufgabe
der vorliegenden Erfindung ist es, eine Kommunikationsvorrichtung
und ein Verfahren zum Steuern der Datenübertragung von einer Kommunikationsvorrichtung
vorzusehen.
-
Die
Ausführungsformen
der vorliegenden Erfindung sehen eine Kommunikationsvorrichtung
vor. Die Kommunikationsvorrichtung umfasst Gruppen von Übertragungswarteschlangen
(transmit queues), die Verkehrsquellendaten von entsprechenden Verkehrsquellen
(traffic sources) empfangen. Die Kommunikationsvorrichtung umfasst
außerdem
eine Shaping-Einrichtung, die Traffic-Shaper umfasst, wobei jeder
der Traffic-Shaper mit einer entsprechenden der Warteschlangen verbunden
ist. Die Kommunikationsvorrichtung umfasst ferner eine Prioritätsablaufplanungseinrichtung
(priority scheduling device), die einen Scheduler und Multiplexer
umfasst, wobei die Multiplexer mit entsprechenden der Übertragungswarteschlangengruppen
verbunden und die Multiplexer dafür konfiguriert sind, die Verkehrsquellendaten über eine
entsprechende virtuelle Verbindung (VC) an kundeneigene Endgeräte (CPE – customer
premise equipment) zu senden.
-
Andere
Ausführungsformen
der vorliegenden Erfindung sehen ein Verfahren zum Steuern von Datenübertragungen
vor, das den Schritt des Initialisieren eines Systems umfasst, wobei
das System Übertragungswarteschlangen,
die in Gruppen von Übertragungswarteschlangen
organisiert sind, eine Shaping-Einrichtung mit mehreren Traffic-Shapern, wobei
einer der mehreren Traffic-Shaper einer der Übertragungswarteschlangen entspricht,
und eine Prioritätsablaufplanungseinrichtung
aufweist. Das Verfahren umfasst außerdem den Schritt des Empfangens
von Zellenanfragedaten, die den Daten von entsprechenden der Übertragungswarteschlangen entsprechen,
an entsprechenden der Traffic-Shaper. Das Verfahren umfasst ebenfalls
den Schritt des Bestimmens eines QoS-Prioritätswertes für alle Zellenanfragedaten in
dem entsprechenden der Traffic-Shaper. Das Verfahren umfasst ferner
den Schritt der Ablaufplanung der Übertragung der Daten basierend
auf dem bestimmten QoS-Wert.
-
Die
Vorteile dieses Systems und Verfahrens bestehen darin, dass sie
es ermöglichen,
Sendedaten mehrerer Dienste, die sich eine einzelne VC teilen, basierend
auf den gewählten
QoS-Anforderungen nach Vorrang zu ordnen. Das System und das Verfahren
erzielen dieses Mehr-Prioritäten-Queuing, ohne
Einschränkung
der Anzahl an verfügbaren Übertragungswarteschlangen,
die sich eine VC teilen können,
ohne Einschränkung
der Anzahl an Mehr-Prioritäten-VCs
und ohne die Ablaufplanung (Scheduling) von Einzel-Prioritäts-VCs aufzugeben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
-
Die
begleitenden Zeichnungen, die in die Beschreibung eingearbeitet
sind und einen Teil derselben darstellen, zeigen eine oder mehrere
Ausführungsformen
der Erfindung und erläutern
zusammen mit der Beschreibung den Zweck, die Vorteile und Grundlagen
der Erfindung. In den Zeichnungen beziehen sich gleiche Bezugszeichen
auf gleiche oder im Wesentlichen gleiche Elemente. Des Weiteren gibt/geben
die ganz links stehenden Ziffer(n) der Bezugszeichen die Nummer
der Zeichnung an, in der das Bezugszeichen zuerst benutzt wird.
-
1 zeigt
ein Kommunikationssystem gemäß den Ausführungsformen
der vorliegenden Erfindung.
-
2 zeigt
eine herkömmliche Übertragungswarteschlange.
-
3 zeigt Übertragungswarteschlangen und
einen Multiplexer gemäß den Ausführungsformen
der vorliegenden Erfindung.
-
4 zeigt
eine detaillierte Ansicht eines Abschnitts des Kommunikationssystems
gemäß 1.
-
5 ist
ein Flussdiagramm, das ein allgemeines Betriebsverfahren des Kommunikationssystems
aus 1 gemäß den Ausführungsformen
der vorliegenden Erfindung zeigt.
-
6 ist
ein Flussdiagramm, das einen Initialisierungsabschnitt des Verfahrens
gemäß 5 zeigt.
-
7 ist
ein Flussdiagramm, das einen Zellenanfragedaten-Shapingabschnitt
des Verfahrens gemäß 5 zeigt.
-
8A und 8B zeigen
ein Flussdiagramm, das einen Scheduling-Abschnitt des Verfahrens
gemäß 5 zeigt.
-
9 ist
ein Computer-System gemäß den Ausführungsformen
der vorliegenden Erfindung.
-
GENAUE BESCHREIBUNG
DER ERFINDUNG
-
Ein
Kommunikationssystem und ein damit in Zusammenhang stehendes Verfahren
gemäß den Ausführungsformen
der vorliegenden Erfindung sehen die Fähigkeit vor, Verkehrsquellendaten
von einer oder mehreren Übertragungswarteschlangen
auf einer einzelnen VC kombinieren und die Reihenfolge der Übertragung
jeder Gruppe auf einen jeder Warteschlange zugewiesenen QoS-Prioritätswert stützen zu
können.
Es versteht sich, dass in der gesamten Beschreibung eine "Gruppe" von Übertragungswarteschlangen
eine oder mehrere Übertragungswarteschlangen
umfassen kann. Diese Fähigkeit
ermöglicht
es mehreren Dienstklassen, sich eine VC zu teilen, ohne die Fähigkeit
zu verlieren, einer Dienstklasse Vorrang gegenüber einer anderen einzuräumen. Wie
beispielsweise in 4 gezeigt, ist es bei dem System
und Verfahren möglich,
eine Übertragungswarteschlange
für niedrige
QoS-Datendienste, eine andere für
höhere
QoS-Datendienste und eine dritte für höchste QoS-Videodienste festzulegen,
wobei sich alle drei Dienstklassen eine einzelne VC teilen und wobei
sichergestellt wird, dass die höheren QoS-Sendepakete
vor den niedrigeren QoS-Sendepaketen gesendet werden. Dies steht
im Gegensatz zu herkömmlichen
Systemen, wie in 3 gezeigt, die alle Prioritätsklassen
ungeachtet der Priorität
in einer einzelnen Übertragungswarteschlange
stapeln (Per-VC-Queuing).
-
1 zeigt
ein Kommunikationssystem 100, das Teil eines ATM-Netzwerks
sein kann, gemäß den Ausführungsformen
der vorliegenden Erfindung. Das System 100 umfasst Verkehrsquellen 102,
die Verkehrsquellendaten (z.B. Sprachdaten, Videodaten, Internetdaten
etc.) an eine Übertragungswarteschlange 104 senden.
Die Übertragungswarteschlange 104 sendet
Zellenanfragedaten (z.B. Zellenverfügbarkeitssignale), die auf
den Verkehrsquellendaten basieren, an eine Shaping-Einrichtung 106 und
eine Prioritätsablaufplanungseinrichtung 108. Die
Shaping-Einrichtung 106 gestaltet die Zellenanfragedaten
und gibt eine Zellenanfrage an die Prioritätsablaufplanungseinrichtung 108 aus.
Die Prioritätsablaufplanungseinrichtung 108 sendet
Zellenbewilligungsinformationen an die Shaping-Einrichtung 106,
nachdem eine Zellenanfrage bewilligt worden ist. Ein Shaping- und
Zellenübertragungszyklus
wird durch einen Shaping-Intervalldauerzähler (SIT-Zähler – shaping interval time counter) 110 initiiert,
welcher ein programmierbarer Zähler
sein kann, der ein SIT-Signal an den Shaper 106 und die
Prioritätsablaufplanungseinrichtung 108 sendet.
Eine Hauptsteuereinheit 112 sendet erste Parameter an die
Shaping-Einrichtung 106 und die Prioritätsablaufplanungseinrichtung 108.
Eine Sende-Multiplexer oder erster Multiplexer 114 ist
mit der Übertragungswarteschlange 104 und
dem Scheduler 108 verbunden. Der erste Multiplexer 114 steuert
die Weiterleitung (Routing) der Verkehrsquellendaten, die über n (n
= eine positive ganze Zahl zwischen 1 und m) VCs an einen Empfangs-Mulitplexer
oder zweiten Multiplexer 116 gesendet werden. Schließlich steuert
der zweite Multiplexer 116 die Weiterleitung der Verkehrsquellendaten
an kundeneigene Endgeräte
(CPE) 118.
-
2 zeigt
eine detailliertere Ansicht der Übertragungswarteschlangen 104,
der Shaping-Einrichtung 106 und der Prioritätsablaufplanungseinrichtung 108.
Die Shaping-Einrichtung 106 umfasst Traffic-Shaper 200,
die mit entsprechenden der Übertragungsdatenwarteschlangen 104 verbunden
sind, und Parameterspeichereinrichtungen 202, die mit entsprechenden
der Traffic-Shaper 200 verbunden sind. Jeder der Traffic-Shaper 200 ist
mit einem Scheduler 204 in der Prioritätsablaufplanungseinrichtung 108 verbunden.
Der Scheduler 204 ist außerdem mit einem Gruppenkennungsspeicher 206 und
dem Multiplexer 114 verbunden. Der Multiplexer 114 kann mehrere
Multiplexer 208 umfassen. Die Parameterspeichereinrichtungen 202 und
der Gruppenkennungsspeicher 206 sind mit der Hauptsteuereinheit 112 verbunden
und werden von dieser initialisiert.
-
Wiederum
Bezug nehmend auf 2 multiplext das System 100 Verkehrsquellendaten
von einer beliebigen Anzahl an Eingangswarteschlangen 104 auf
eine einzelne VC unter Verwendung der Per-TX-(Sende-)Warteschlangen-Shaping-Einrichtung 106 zusammen
mit der Prioritätsablaufplanungseinrichtung 108.
Wie in den 2 und 4 gezeigt,
ist jede betriebsfähige
VC dafür
konfiguriert, eine Gruppe aufzuweisen, die entweder eine einzelne
Warteschlange 104 (Einzel-Prioritäts-Betriebsart) oder mehrere
Warteschlangen 104 (Mehr-Prioritäten-Betriebsart) umfasst. Wenn
eine VC für
die Mehr-Prioritäten-Betriebsart
konfiguriert ist, wird eine Mehr-Prioritäten-Gruppe für diese
VC durch die Hauptsteuereinheit 112 im Gruppenkennungsspeicher 206 festgelegt.
Der Gruppenkennungsspeicher 206 enthält ein Aktivierungs-Bit und
eine einzigartige Kennung für
jede Gruppe. Jede Übertragungswarteschlange 104 und
der zugeordnete Traffic-Shaper 200, die für eine Übertragung über eine
bestimmte Mehr-Prioritäten-VC
(Gruppe) ausgelegt sind, werden zu einem Mitglied dieser Gruppe.
Die Hauptsteuereinheit 112 initialisiert den Traftic-Shaper 200 jeder Übertragungswarteschlange 104 als
Mehr-Prioritäten-VC-Mitglied und ermittelt
die Gruppe des Mitglieds, die dieselbe einzigartige Kennung verwendet, die
im Gruppenkennungsspeicher 206 gespeichert wurde. Das System 100 unterstützt eine
konfigurierbare Anzahl an Gruppen mit einer beliebigen Anzahl an
Mitgliedern in jeder Gruppe, beispielsweise zwischen 1 und n. Eine Übertragungswarteschlange 104 kann
ein Mitglied einer Ein-Mitgliedsgruppe (Einzel-Prioritäts-Betriebsart) oder einer
Mehr-Prioritäten-VC-Gruppe
sein. Wenn sie kein Mitglied einer Mehr-Prioritäten-VC-Gruppe ist, dann arbeitet Übertragungswarteschlange 104 normalerweise
als einzelne Übertragungswarteschlange
pro VC, was als Per-VC-Queuing bekannt ist.
-
Wie
beispielhaft in 2 gezeigt, sind die Übertragungswarteschlangen 104-0, 104-1 und 104-3 alle
Mitglieder einer ersten Gruppe (einer Mehr-Prioritäten-Gruppe) und werden über den
Multiplexer 208-1 auf VC-1 gesendet. Außerdem ist die Übertragungswarteschlange 104-2 ein
Mitglied einer zweiten Gruppe (einer Einzel-Prioritäts-Gruppe)
und wird über
einen Multiplexer 208-2 auf VC-2 gesendet. Des Weiteren
sind die Übertragungswarteschlangen 208-(m-1)
und 208-m Mitglieder einer dritten Gruppe und werden auf
VC-m gesendet.
-
Weiterhin
Bezug nehmend auf 2 enthält die Traffic-Shaping-Einrichtung 106 die
einzelnen Traffic-Shaper 200, von denen jeder direkt einer Übertragungswarteschlange 104 zugeordnet
ist. Jedes Mitglied einer bestimmten Mehr-Prioritäten-VC-Gruppe hat einen
Shaper 200, der durch die Hauptsteuereinheit 112 mit
denselben Shaping-Parametern wie alle anderen Mitglieder konfiguriert
wird, und zwar in Übereinstimmung
mit den Traffic-Shaping-Parametern der VC. Jedes Mitglied einer
bestimmten Gruppe, dem in seiner zugeordneten Übertragungswarteschlange (TX-Queue) 104 Verkehrsquellendaten
zur Verfügung
stehen, erzeugt eine Zellenanfrage gemäß den Traffic-Shaping-Parametern der
VC, und zwar zur gleichen Zeit wie jedes andere Mitglied, dem ebenfalls
Verkehrsquellendaten zur Verfügung
stehen. Die Prioritätsablaufplanungseinrichtung 108 vergleicht
die Priorität
der Zellenanfragen aller Mitglieder einer Gruppe und entscheidet welchem
Mitglied die Sendeanfrage bewilligt werden soll. Sobald einem beliebigen
Mitglied einer "Gruppe" eine Zellenanfrage
bewilligt worden ist, aktualisieren die Traftic-Shaper 200 aller
Mitglieder ihre Shaping-Algorithmen so als ob sie die Zellenbewilligung erhalten
hätten,
und zwar unabhängig
davon, ob ein bestimmtes Mitglied die Zellenbewilligung erhalten hat
oder ein anderes Mitglied der Gruppe. Alle Mitglieder einer Gruppe
müssen
den Shaping-Algorithmus aktualisieren, so dass die Traffic-Shaping-Parameter
der VC nicht überschritten
werden.
-
Ein
Verfahren 500 gemäß den Ausführungsformen
der vorliegenden Erfindung ist in 5 gezeigt.
Die Hauptsteuereinheit 112 initialisiert das System 100 in
Schritt 502. Zu Beginn jedes Scheduling-Intervalls generiert
und sendet der SIT-Zähler 110 in
Schritt 504 einen Impuls an die Shaping-Einrichtung 106 und
die Prioritätsablaufplanungseinrichtung 108.
In Schritt 506 greift die Shaping-Einrichtung 106 auf
Zellenanfragedaten von den Übertragungswarteschlangen 104 zu
und gestaltet sie. Wie nachfolgend genauer besprochen, gestaltet
die Shaping-Einrichtung 106 Zellenanfragedaten und gibt eine
Zellenanfrage gegebenenfalls mit einer Warteschlangennummer, einer
Warteschlangenpriorität und
einem Mehr-Prioritäten-Gruppenkennungswert mit
jeder Sendeanfrage aus. In Schritt 508 empfängt die
Prioritätsablaufplanungseinrichtung 108 von
der Shaping-Einrichtung 106 Zellenanfragen für jede Übertragungswarteschlange 104,
der Verkehrsquellendaten zur Verfügung stehen und die die Anforderungen
der gewählten
QoS-Parameter der VC erfüllt. Es
können
bis zu "m" gültige Anfragen
empfangen werden. Die Prioritätsablaufplanungseinrichtung 108 bewertet
jede Anfrage in Bezug auf andere Anfragen, um zu bestimmen welche
Anfrage eine Zellenbewilligung erhält. Mit anderen Worten, die
Ptioritätsablaufplanungseinrichtung
plant die Übertragungen
basierend auf der Zellenanfrage.
-
Ein
Verfahren 600, das zum Initialisieren des Systems 100 während Schritt 502 verwendet
werden kann, ist in 6 gezeigt. Die Warteschlangen 104 werden
in Schritt 602 so konfiguriert, dass sie entweder mehrere
Prioritäten
(mehrere Warteschlangen in einer Gruppe) oder nicht mehrere Prioritäten (nur eine
Warteschlange allein in einer Gruppe) haben. In Schritt 604 werden
Mehr-Prioritäten-Gruppen
im Gruppenkennungsspeicher 206 festgelegt, die mit den
konfigurierten Gruppen aus Schritt 602 in Wechselbeziehung
stehen. Ein Aktivierungs-Bit und eine einzigartige Gruppenkennung
werden in Schritt 606 für
jede Gruppe im Gruppenkennungsspeicher 206 gespeichert.
Dieselbe Gruppenkennung wird in einer entsprechenden Parameterspeichereinrichtung 202 in
Schritt 608 gespeichert.
-
Ein
Verfahren 700, das dazu verwendet werden kann, auf Zellenanfragedaten
der Warteschlangen 104 zuzugreifen und diese zu gestalten,
ist in 7 gezeigt. Ein Impuls vom SIT-Zähler 110 wird an
der Shaping-Einrichtung 106 empfangen, um in Schritt 702 ein
Shaping-Intervall zu beginnen. Die Zellenanfragedaten von entsprechenden
der Warteschlangen 104 werden in Schritt 706 an
den einzelnen Traffic- Shapern 200 empfangen.
In Schritt 708 gestalten die Traffic-Shaper 200 basierend
auf den QoS-Parametern, die in den Parameterspeichereinrichtungen 202 gespeichert
sind, die Zellenanfragedaten. Eine Zellenanfrage gegebenenfalls
mit einer Warteschlangennummer, einer Warteschlangenpriorität und einer
Mehr-Prioritäten-Kennung wird von den
Traffic-Shapern 200 an die Prioritätsablaufplanungseinrichtung 108 in
Schritt 710 ausgegeben.
-
Die 8A–8B zeigen
ein Verfahren 800, das in der Prioritätsablaufplanungseinrichtung 108 durchgeführt wird,
die Sendezellenanfragen von der Shaping-Einrichtung 106 nach Priorität ordnet. Die
Prioritätsablaufplanungseinrichtung 108 hat "n" gespeicherte Gruppenkennungswerte,
von denen jeder eine Mehr-Prioritäten-Gruppe festlegt, die aus mehr als einem
Mitglied besteht. Das Verfahren 800 vergleicht die Gruppenkennung
jeder Zellenanfrage mit den einzigartigen Gruppenkennungen, die
im Gruppenkennungsspeicher 206 gespeichert sind, um in
Schritt 802 zu bestimmen, ob die Anfrage ein Mitglied einer
bestimmten Mehr-Prioritäten-Gruppe ist. Wenn
die Zellenanfrage kein Mitglied einer Mehr-Prioritäten-Gruppe
ist, dann wird beginnend in Schritt 806 die Anfrage hinsichtlich
ihrer Priorität
gegenüber anderen
Einzel-Prioritäts-Gruppenanfragen
und dem festgelegten Eigentümer
anderer Gruppen bewertet, was in 8B gezeigt
und nachfolgend genauer beschrieben ist. Der Eigentümer einer
Gruppe wird gemäß der Zellenanfragepriorität jedes
Mitglieds und dadurch, ob ein Mitglied derzeit ein Paket sendet, festgelegt.
-
Weiterhin
Bezug nehmend auf 8A ermittelt, wenn die Zellenanfrage
als Mitglied einer Mehr-Prioritäten-Gruppe
erachtet wird, das Verfahren 800 in Schritt 808 zunächst, ob
die Zellenanfrage oder ein anderes Mitglied (Zellenanfrage) der
Gruppe bereits eine Zellenanfrage verarbeitet, einschließlich eines
Paketes (das in einer oder mehreren Zellen enthalten ist) auf der
VC. Jedes Mitglied, das dabei ist, ein Paket zu senden, wird aufgrund
der Voreinstellung zum Eigentümer
der Gruppe. Alle anderen Mitgliederanfragen werden in Schritt 810 abgelehnt, bis
der aktuelle Eigentümer
die Verarbeitung des Pakets abgeschlossen hat. Ob die Anfragepriorität des Mitglieds
höher als
die anderer aktiver Mitgliederanfragen ist, wird in Schritt 812 bestimmt.
Die Zellenanfrage wird in Schritt 814 dem Mitglied mit
der Anfrage höherer
Priorität
bewilligt. Wenn jedoch die Anfragepriorität nicht höher ist, wird in Schritt 816 bestimmt, ob
die Anfragepriorität
des Mitglieds gleich der Priorität
des anfragenden Mitglieds ist. Wenn nicht, wird die Anfrage in Schritt 818 abgelehnt.
Wenn zwei oder mehr Gruppenmitgliederanfragen die gleiche Priorität haben,
wird in Schritt 820 zwischen Mitgliederanfragen gleicher
Priorität
ein gewichtetes Round-Robin-Scheduling-Verfahren
durchgeführt,
um sicherzustellen, dass jedes Mitglied seine Daten senden kann.
Das gewichtete Round-Robin-Scheduling-Verfahren gibt demjenigen
der Mitglieder mit gleicher Priorität Vorrang, das am längsten gewartet
hat. Dann wird in Schritt 822 ein Aktivierungssignal an
die jeweilige Warteschlange 104 und den jeweiligen Multiplexer 208 gesendet.
-
8B zeigt
den Betrieb der Prioritätsablaufplanungseinrichtung 108,
wenn das Mitglied der Zellenanfrage kein Mitglied einer Gruppe ist.
In Schritt 806 wird bestimmt, ob eine andere Einzel-Prioritäts-Gruppenmitgliedsanfrage
bereits eine Zellenanfrage verarbeitet, einschließlich eines
Paketes auf einer VC. Jedes Einzel-Prioritäts-Gruppenmitglied, das dabei
ist, ein Paket zu senden, wird aufgrund der Voreinstellung zum Eigentümer der
Einzel-Prioritäts-Gruppe.
Alle anderen Mitgliederanfragen werden in Schritt 824 abgelehnt,
bis der aktuelle Eigentümer
die Verarbeitung des Pakets abgeschlossen hat. Ob die Anfragepriorität des Mitglieds
höher als die
anderer aktiver Mitgliederanfragen ist, wird in Schritt 826 bestimmt.
In Schritt 828 wird die Zellenanfrage dem Mitglied mit
der Anfrage höherer
Priorität bewilligt.
Wenn jedoch die Anfragepriorität
nicht höher
ist, wird in Schritt 830 bestimmt, ob die Anfragepriorität des Mitglieds
gleich ist. Wenn nicht, wird die Anfrage in Schritt 832 abgelehnt.
Wenn zwei oder mehr Gruppenmitgliederanfragen die gleiche Priorität haben,
wird in Schritt 834 zwischen Mitgliederanfragen gleicher
Priorität
ein gewichtetes Round-Robin-Scheduling-Verfahren durchgeführt, um
sicherzustellen, dass jedes Mitglied seine Daten senden kann. Das
gewichtete Round-Robin-Scheduling-Verfahren gibt demjenigen der Mitglieder
mit gleicher Priorität
Vorrang, das am längsten
gewartet hat. Dann wird in Schritt 822 (8A)
ein Aktivierungssignal an die jeweilige Warteschlange 104 und
den jeweiligen Multiplexer 208 gesendet.
-
Sobald
eine erste Anfrage eines Mitglieds bewilligt worden ist, werden
alle anderen Mitgliederanfragen ignoriert, bis das bewilligte Mitglied
die Übertragung
eines gesamten, in der Warteschlange befindlichen Pakets abgeschlossen
hat. Die Anfragepriorität
des Gruppeneigentümers
wird dann mit der Priorität
aller anderen Gruppeneigentümer-
und Einzel-Prioritäts-Gruppenanfragen
verglichen. Die Prioritätsablaufplanungseinrichtung 108 beendet
das Ablaufplanungsverfahren (Scheduling-Verfahren) durch Auswählen der
Anfrage höchster
Priorität
aus allen Gruppen und Einzel-Prioritäts-Gruppen.
-
Alle
Mitglieder einer Mehr-Prioritäten-VC-Gruppe
teilen sich eine VC, weshalb sie auch die QoS-Parameter der VC in
der Traffic-Shaping-Einrichtung 106 teilen. Wenn beispielsweise eine
Mehr-Prioritäten-VC
als Dienst mit konstanter Bitrate (CBR-Dienst – Constant Bit Rate service)
und einer Spitzenzellenrate (PCR – Peak Cell Rate) von "y" festgelegt wird, dann sendet ein Mitglied
mit einer Rate von "y" sobald es den Zellenbewilligungsstatus erreicht
hat. Basierend auf allen Mitgliedern einer Gruppe, die die QoS-Parameter
in der Traffic-Shaping-Einrichtung 106 teilen, aktualisieren
alle Mitglieder der Gruppe, wenn ein Mitglied eine Zellenbewilligung
erhält,
ihre Shaping-Parameter im Parameterspeicher 202 und Gruppenkennungsspeicher 206 solchermaßen, dass
suggeriert wird, dass sie eine Zellenbewilligung erhalten haben,
obwohl sie möglicherweise
gar keine Zellenbewilligung erhalten haben. Demgemäß wird gewährleistet,
dass die gesamte Sendebandbreite aller Mitglieder der Gruppe die spezifizierten
QoS-Parameter der VC nicht übersteigt.
-
Daher
sehen das System 100 und das Verfahren 500 das
Kombinieren von Verkehrsquellendaten aus mehreren Quellen auf einer
einzelnen VC vor, wodurch es möglich
ist, dass ein Verkehrsquellendatenpaket höherer Priorität Pakete
mit niedrigerer Priorität überspringt,
was dazu beiträgt,
die QoS-Anforderungen der Dienste höherer Priorität aufrechtzuerhalten.
Das System 100 und das Verfahren 500 erzielen
das Mehr-Prioritäten-VC-Scheduling,
ohne eine feste Konfiguration der "m" Übertragungswarteschlangen 104 im
Hinblick darauf zu benötigen,
zu welcher Gruppe die Warteschlange 104 gehört. Außerdem wird
ein gleichzeitiges Scheduling vieler Mehr-Prioritäten- und
Einzel-Prioritäts-VCs
ermöglicht.
-
In
seiner einfachsten Form, die dann gegeben ist, wenn sich alle "m" Übertragungswarteschlangen
eine einzelne VC teilen, kann der Betrieb ähnlich dem eines Paket-Switch
angesehen werden. Beim Paket-Switching muss der Switch, wenn an
mehreren Eingangsports Pakete ankommen, die alle für denselben
Ausgangsport bestimmt sind, entscheiden welches Paket als erstes,
zweites, etc. an den Ausgangsport gesendet wird. Ein Paket-Switch
führt typischerweise
das Paket-Scheduling
auf einer Round-Robin- oder Prioritätsbasis durch. Das System 100 und
das Verfahren 500 gemäß den Ausführungsformen
der vorliegenden Erfindung unterscheiden sich jedoch von diesem
einfachen Betrieb eines Paket-Switch, da das Scheduling von Paketen
von mehreren Warteschlangen 104 gewährleisten muss, dass der Gesamtdurchsatz
aller Übertragungswarteschlangen 104 nicht
die QoS-Parameter
der VC überschreitet.
Außerdem
führen
die Ausführungsformen
der vorliegenden Erfindung eine Zellenverschachtelung von Paketen
aus mehreren Quellen zu einem einzelnen Ausgangsport durch, während der Paket-Switch
diesen Arbeitsgang nicht durchführt. Des
Weiteren besteht ein erheblicher Unterschied im Vergleich zum Betrieb
eines einfachen Paket-Switch in der Fähigkeit der vorliegenden Erfindung,
gleichzeitig viele Mehr-Prioritäten-
und Einzel-Prioritäts-VCs
zu planen und dabei die QoS-Parameter jeder VC aufrechtzuerhalten.
-
Daher
umfassen das System 100 und das Verfahren 500 gemäß den Ausführungsformen
der vorliegenden Erfindung ein Kommunikationssystem mit einer Shaping-Einrichtung 106 und
einer Ablaufplanungseinrichtung 108, das als Teil einer
ATM-Segmentierungsmaschine (ATM Segmentation engine) in einem ATM-Netzwerk integriert
werden kann. Die Shaping-Einrichtung 106 und die Ablaufplanungseinrichtung 108 arbeiten
zusammen, um den Verkehr höherer
Priorität
vor dem Verkehr niedrigerer Priorität einzuplanen und dabei die
spezifizierten QoS-Parameter konstanter Bitrate (CBR) oder variabler
Bitrate (VBR) der Mehr-Prioritäten-VC
aufrechtzuerhalten. Die Anzahl der Prioritätsniveaus und die Anzahl der unterstützten Mehr-Prioritäten-VCs
können
modifiziert werden, um die Anforderungen einer spezifischen Implementierung
bestmöglich
zu erfüllen.
Es gibt keine Einschränkung
der Anzahl an Übertragungswarteschlangen,
die sich eine VC teilen können,
und keine Einschränkung
der Anzahl an Mehr-Prioritäten-VCs,
die gleichzeitig unterstützt werden
können.
Wenn es auch in der Praxis eine Begrenzung der Anzahl unterstützter Mehr-Prioritäten-VCs
gibt. Angenommen eine Vorrichtung hat "m" Übertragungswarteschlangen,
dann beträgt
die maximale Anzahl an Mehr-Prioritäten-VCs in der Praxis "m"/2.
-
Das
System 100 kann mit logischen Einrichtungen ausgeführt werden,
um die in den 5–8B dargestellten
Funktionen und Schritte durchzuführen.
Alternativ können
die Funktionen und Schritte gemäß den 5–8B in
einem Prozessor, wie etwa einem Mikroprozessor, eingebetteten Prozessor
(embedded processor), etc., ausgeführt werden. Der Prozessor kann
einen Computerprogrammcode ausführen,
um die Schritte gemäß den Figuren
auszubilden. Der Computerprogrammcode kann auf einem computernutzbaren
Medium, wie etwa einem Speicher, einer Computerdiskette oder dergleichen,
gespeichert werden.
-
9 zeigt
beispielsweise ein Computersystem 900 mit einem oder mehreren
Prozessoren, wie etwa dem Prozessor 904. Der Prozessor 904 kann ein
digitaler Spezial- oder Universal-Signalprozessor sein. Der Prozessor 904 ist
mit einer Kommunikationsinfrastruktur 906 (z.B. einem Bus
oder Netzwerk) verbunden. Verschiedene Softwareimplementierungen
sind im Hinblick auf dieses exemplarische Computersystem beschrieben.
Nach dem Studium dieser Beschreibung ist es für Fachleute auf dem relevanten technischen
Gebiet offensichtlich, wie sich die Erfindung unter Verwendung anderer
Computersysteme und/oder Computerarchitekturen implementieren lässt.
-
Das
Computersystem 900 umfasst außerdem einen Hauptspeicher 908,
bevorzugt einen Schreib-Lese-Speicher mit wahlfreiem Zugriff (RAM), und
kann zudem einen sekundären
Speicher 910 aufweisen. Der sekundäre Speicher 910 kann
beispielsweise ein Festplattenlaufwerk 912 und/oder ein Wechselspeicherlaufwerk 914 umfassen,
das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches
Plattenlaufwerk, etc. darstellt. Das Wechselspeicherlaufwerk 914 liest
von einer und/oder schreibt auf eine Wechselspeichereinheit 918 in wohlbekannter
Art und Weise. Die Wechselspeichereinheit 918 umfasst eine
Diskette, ein Magnetband, eine optische Platte, etc., die/das von
einem Wechselspeicherlaufwerk 914 gelesen und beschrieben wird.
Es versteht sich, dass die Wechselspeichereinheit 918 ein
computernutzbares Speichermedium umfasst, in dem Computersoftware
und/oder Daten gespeichert sind.
-
Bei
alternativen Implementierungen kann der sekundäre Speicher 910 andere ähnliche
Einrichtung umfassen, die es ermöglichen,
Computerprogramme oder andere Instruktionen in das Computersystem 900 zu
laden. Solche Einrichtungen können
beispielsweise eine Wechselspeichereinheit 922 und eine
Schnittstelle 920 umfassen. Beispiele solcher Einrichtungen
können
eine Programmkassette und Kassettenschnittstelle (wie sie sich etwa
in Videospieleinrichtungen finden), einen Wechselspeicherchip (wie
etwa einen EPROM oder PROM) und eine zugehörige Buchse sowie andere Wechselspeichereinheiten 922 und
Schnittstellen 920 umfassen, die es ermöglichen, Software und Daten
von der Wechselspeichereinheit 922 in das Computersystem 900 zu übertragen.
-
Das
Computersystem 900 kann auch eine Kommunikationsschnittstelle 924 umfassen.
Die Kommunikationsschnittstelle 924 ermöglicht es, Software und Daten
zwischen dem Computersystem 900 und externen Einrichtungen
zu übertragen.
Beispiele für
eine Kommunikationsschnittstelle 924 können ein Modem, eine Netzwerkschnittstelle
(wie etwa eine Ethernet-Karte), einen Kommunikationsport, eine(n) PCMCIA-Schlitz
und -Karte, etc. umfassen. Über
die Kommunikationsschnittstelle 924 übertragene Software und Daten
haben die Form von Signalen 928, welche elektronische,
elektromagnetische, optische oder andere Signale sein können, die
von der Kommunikationsschnittstelle 924 empfangen werden können. Diese
Signale 928 werden der Kommunikationsschnittstelle 924 über einen
Kommunikationspfad 926 zugeführt. Der Kommunikationspfad 926 trägt die Signale 928 und
kann unter Verwendung einer Leitung oder eines Kabels, Glasfasern,
einer Telefonleitung, einer zellularen Telefonverbindung, einer
HF-Verbindung und anderer Kommunikationskanäle implementiert werden.
-
In
diesem Dokument werden die Begriffe "Computerprogrammmedium" und "computernutzbares
Medium" so verwendet,
dass sie sich allgemein auf Medien beziehen, wie etwa Wechselspeicherlaufwerke 914,
eine in einem Festplattenlaufwerk 912 installierte Festplatte
und Signale 928. Diese Computerprogrammprodukte sind Mittel,
um dem Computersystem 900 Software zuzuführen.
-
Computerprogramme
(auch Computersteuerlogik genannt) werden im Hauptspeicher 908 und/oder
sekundären
Speicher 910 gespeichert. Computerprogramme können auch über die
Kommunikationsschnittstelle 924 empfangen werden. Solche
Computerprogramme ermöglichen
es dem Computersystem 900, wenn sie ausgeführt werden,
die vorliegende Erfindung wie hierin ausgeführt zu implementieren. Insbesondere
ermöglichen
es die Computerprogramme, wenn sie ausgeführt werden, dem Prozessor 904,
erfindungsgemäße Prozesse,
wie etwa das/die Verfahren, zu implementieren. Demgemäß stellen
solche Computerprogramme Steuereinheiten des Computersystems 900 dar.
Wenn die Erfindung unter Verwendung von Software implementiert wird,
kann die Software in einem Computerprogrammprodukt gespeichert und
unter Verwendung eines Wechselspeicherlaufwerks 914, eines
Festplattenlaufwerks 912 oder einer Kommunikationsschnittstelle 924 in
das Computersystem 900 geladen werden.
-
Konklusion
-
Es
wurden hierin beispielhafte Ausführungsformen
der vorliegenden Erfindung beschrieben. Wie an anderer Stelle erwähnt, wurden
diese beispielhaften Ausführungsformen
rein aus Gründen
der Veranschaulichung beschrieben und stellen keine Einschränkung dar.
Andere Ausführungsformen
sind möglich
und durch die Erfindung abgedeckt. Derartige Ausführungsformen
sind basierend auf der hierin enthaltenen Lehre für Fachleute
auf dem/den relevanten technischen Gebieten) offensichtlich. Daher werden
die allgemeine Anwendbarkeit und der Schutzumfang der vorliegenden
Erfindung durch keine der vorstehend beschriebenen beispielhaften Ausführungsformen
eingeschränkt,
sondern definieren sich vielmehr ausschließlich durch die folgenden Ansprüche und
deren Entsprechungen.