-
Die
vorliegende Erfindung betrifft eine Ablauffolgesteuerung für Paketvermittlungen,
und insbesondere ein Verfahren zum Steuern der Ablauffolge von Datenpaketen
von mehreren Eingabeports zu mindestens einem Ausgabeport, aufweisend
die Schritte des Speicherns von Datenpaketen in mehreren virtuellen
Ausgabeschlangen, wobei eine virtuelle Ausgabeschlange zum Speichern
von Datenpaketen von einem der mehreren Eingabeports angeordnet ist,
die für
einen bestimmten des mindestens einen Ausgabeports bestimmt sind,
und des Steuerns der Ablauffolge der mehreren virtuellen Ausgabeschlangen.
-
Das
Steuern der Ablauffolge von Paketen in Terabit-Switches und passiven optischen Gigabit-Netzwerken
(GPON) erfordert eine erhebliche Menge an Rechenleistung. Wenn ein
Prioritätsmechanismus
zum Verwalten von Verkehr mit unterschiedlicher Dienstgüte (QoS)
eingesetzt werden muss, wird das Problem sogar noch komplexer. Diese
Komplexität
kann als die Gesamtzahl von Eingangsschlangen in dem System ausgedrückt sein, die
pro Ausgangsport ablauffolgegesteuert werden muss, d.h. das Produkt
der Anzahl von Eingangsports und der Anzahl von Dienstklassen. Zum
Steuern der Ablauffolge von Datenpaketen einer großen Anzahl
Schlangen ist gemäß ihrer
spezifischen Priorität
ein Algorithmus erforderlich. Der Algorithmus muss effizient in
Technologie auf dem Stand der Technik, d.h. ASIC oder FPGA, implementiert
sein.
-
Der
Artikel „A
Cell Based MAC Protocol with Traffic Shaping and a Global FIFO Strategy" von C. Blondia,
O. Casals und J. Garcia, Proceedings of the RACE Open Workshop on
Broadband Access, Nijmegen, Niederlande, Juni 1993, offenbart ein MAC-Protokoll,
das einen Anfordern/Genehmigen-Mechanismus benutzt, welcher einen
gewöhnlichen
FIFO-Puffer einsetzt. Jeder Netzabschluss (NT) gibt sein Bandbreitenerfordernis über Anforderungen bekannt,
die Information über
den Zustand der Schlangen in dem NT aufweist. NTs werden mithilfe von
Genehmigungen über
zugeordnete Bandbreite informiert. Dieser Algorithmus für PONs (besonders asynchroner Übertragungsmodus-(ATM-)
PON) richtet sich nur an eine kleine Anzahl von Schlangen (bis 64),
unzureichend für
große
Systeme (bis 1000 Schlangen) mit Gigabitkapazitäten. Zudem werden zusätzliche
Switch-Funktionen
zum Verbinden des PON mit einem Kernnetz benötigt.
-
Der
Artikel „A
Contention-Free Packet Scheduling Scheme for Provision of Quality-of-Service
in Tbit/sec WDM Networks" von
I. Elhanany, J. Nir, D. Sadot, Optical Networks Magazine, Juli 2000,
offenbart ein Ablauffolgesteuerungsschema für Paketvermittlungen. Es wurde
ein Algorithmus vorgeschlagen, der in der Ordnung von N·2log(N) Operationen pro Paketschlitzperiode
abfordert, wobei N die Anzahl von Ausgabeports oder Zielen ist (der
Artikel bezieht sich auf einen N×N-Switch). Dieses Verfahren
setzt sequentielle Aussagen der verschiedenen Eingabeports unter
Verwendung eines Ringversuchverfahrens ein, einschließlich einer
priorisiert übereinstimmenden
Ablauffolgesteuerung pro Eingabeport zum Erfüllen diverser Dienstgüteerfordernisse.
Für große Anzahlen
von Schlangen ist dies noch immer zu langsam. Außerdem richtet es sich nicht
an PONs. Die US-Patentschrift 5,870,396 offenbart ein Verfahren zum
Steuern der Ablauffolge von Paketen unter Benutzung virtueller Ausgabeschlangen,
wobei die Ablauffolgesteuerung bei diesem Verfahren parallel stattfindet.
-
Die
vorliegende Erfindung erstrebt, eine Ablauffolgesteuerung für Paketvermittlungen
und PONs bereitzustellen, die imstande ist, die Ablauffolge von Pakete
einer großen
Anzahl von Schlangen gemäß ihrer
spezifischen Priorität
zu steuern. Die Anzahl von Schlangen ist gleich der Anzahl von Eingabeports oder
gleich dem Produkt der Anzahl von Eingabeports und der Anzahl von
Dienstklassen (oder Prioritätsklassen)
im Falle des Verwaltens von Datenverkehr mit unterschiedlichen Dienstgüteerfordernissen.
-
Die
vorliegende Erfindung stellt ein Verfahren gemäß dem oben definierten Oberbegriff
bereit, bei dem der Schritt des Steuerns der Ablauffolge der mehreren
virtuellen Ausgabeschlangen die Schritte des parallelen Steuerns
der Ablauffolge der virtuellen Ausgabeschlangen, die einem des mindestens
einen Ausgabeports zugeordnet sind, durch Steuern der Ablauffolge
der virtuellen Ausgabeschlangen, die einem des mindestens einen
Ausgabeports zugeordnet sind, mittels eines Ablauffolgesteuerbaums
aufweist, wobei der Ablauffolgesteuerbaum mindestens eine Vergleichsschicht
zum Ausführen
der Schritte des paarweisen Vergleichens von Anforderungen, die
von den zugeordneten virtuellen Ausgabeschlangen parallel empfangen
werden, und des Sendens der Anforderung mit einer höheren Priorität an eine Vergleichsschicht
einer höheren
Ebene, bis eine einzelne Anforderung übrig bleibt, wobei die einzelne Anforderung
die virtuelle Ausgabeschlange anzeigt, die zum Senden ihres Datenpakets
an den zugeordneten Ausgabeport ablauffolgegesteuert ist, aufweist.
-
Das
Verfahren gemäß der vorliegenden
Erfindung hat den Vorteil, dass die Ablauffolge einer sehr großen Anzahl
virtueller Ausgabeschlangen effizient gesteuert werden kann. Das
vorliegende Verfahren benötigt
nur 2logN Operationen zum Steuern der Ablauffolge,
wobei N die Anzahl der virtuellen Ausgabeschlangen ist. Es kann
durch Kaskadierung des Zugangs zu den geteilten Medien und des Zugangs
zu den Ausgabeports effizient für
Paketvermittlungen, aber auch für
passive optische Netzwerke verwendet werden. Das vorliegende Verfahren kann
parallel für
alle Ausgabeports der zugeordneten Paketvermittlung oder passiven
optischen Netzwerks ausgeführt
werden.
-
In
einer Ausführungsform
des vorliegenden Verfahrens weist die Anforderung eine Identifizierung der
zugeordneten virtuellen Ausgabeschlange auf. Dies ermöglicht eine
direkte Identifizierung der virtuellen Ausgabeschlange, der Zugang
zu einem bestimmten Ausgabeport gewährt wird.
-
In
einer weiteren Ausführungsform
führt die Vergleichsschicht
den weiteren Schritt des Speicherns der Anforderung mit einer höheren Priorität und, nach
dem Empfangen einer Genehmigung von einer Ebene höherer Ordnung,
wobei die Genehmigung die einzelne Anforderung aufweist, des Sendens
der Genehmigung an eine Vergleichsschicht einer niedrigeren Ebene
gemäß der gespeicherten
Anforderung, die der höheren
Priorität
zugeordnet ist, aus. Diese Ausführungsform
ermöglicht
es, den Zuordnungsmechanismus zu vereinfachen, indem verhindern
wird, dass die virtuelle Ausgabeschlangenidentifikation in dem Ablauffolgesteuerbaum
befördert werden
muss. Natürlich
erfordert diese Backrouting-Alternative
insgesamt 22logN Operationen zum Steuern
der Ablauffolge, was dennoch weniger als bei Ablauffolgesteuerungsschemata
des Stands der Technik ist.
-
Das
paarweise Vergleichen von Anforderungen kann eine festgelegte Präzedenz für eine der zwei
empfangenen Anforderungen anwenden, wodurch eine sehr einfache Implementierung
des Verfahrens mit einer mehr oder weniger festgelegten Port-/Dienstklassenkombination
ermöglicht
ist. Als Alternative kann eine abwechselnde Präzedenz für jede der zwei Anforderungen
angewendet werden, was zu einem Nettoergebnis führt, dass keiner der virtuellen
Ausgabeschlangen, deren Ablauffolge gesteuert werden soll, Präzedenz gewährt wird.
In einer weiteren Alternative weist die Anforderung eine Prioritätsebene
auf, und der Schritt des paarweisen Vergleichens von Anforderungen
wendet einen Vergleich der Prioritätsebenen an. Diese Ausführungsform
ermöglicht
flexibles Programmieren der virtuellen Ausgabeschlangen auf Kosten
komplexerer Vergleichslogik. Die zugegebene Komplexität erfordert ungefähr 2logNc zusätzlicher
Logikschaltungen, wobei Nc die Anzahl verfügbarer Prioritätsebenen
ist.
-
In
wiederum einer anderen Ausführungsform der
vorliegenden Erfindung führt
die Vergleichsschicht den weiteren Schritt des Beförderns des
Datenpakets, das der Anforderung mit der höheren Priorität zugeordnet
ist, zu der Vergleichsschicht der höheren Ebene aus. Durch Einsetzen
dieser Ausführungsform
kann gleichzeitig mit dem Ablauffolgesteuerungsmechanismus ein Weg
für die
Datenpakete zwischen einem Eingabeport und einem Ausgabeport errichtet
werden.
-
In
einem weiteren Aspekt betrifft die vorliegende Erfindung ein Ablauffolgesteuersystem
zum Steuern der Ablauffolge von Datenpaketen von mehreren Eingabeports
zu mindestens einem Ausgabeport, aufweisend virtuelle Ausgabeschlangen,
die zum Speichern von Datenpaketen von einem der mehreren Eingabeports
angeordnet sind, die für
einen bestimmten des mindestens einen Ausgabeports bestimmt sind.
Das Ablauffolgesteuersystem weist einen Ablauffolgesteuerbaum mit
mehreren Vergleichsschichten auf, wobei jede Vergleichsschicht mindestens
ein Vergleichselement aufweist, wobei das Vergleichselement zwei
Eingabegatter und ein Ausgabegatter aufweist, wobei die Eingabegatter
der Vergleichselemente der Vergleichschicht der niedrigsten Ebene
mit den mehreren virtuellen Ausgabeschlangen verbunden sind, wobei
die Ausgabegatter von zwei Vergleichselementen einer Vergleichsschicht
mit den Eingabegattern von einem Vergleichselement einer Vergleichsschicht
einer höheren
Ebene verbunden sind, und wobei jedes Vergleichselement zum Auswerten
von Anforderungen, die an seinen Eingabegattern empfangen werden,
und zum Bereitstellen der Anforderung mit der höchsten Priorität an seinem
Ausgabegatter angeordnet ist. Das vorliegende Ablauffolgesteuersystem
kann leicht durch kombinatorische Logikschaltungen implementiert
sein und kann beispielsweise in einem Cross-Connect-Switch in einem
einzelnen ASIC integriert sein. Außerdem kann der Ablauffolgesteuerbaum
auf verteilte, erweiterbare Art und Weise, z.B. in einer Zweischichtaufteilung,
einer Anzahl von Eingabeports zugeordnet und jedem der Ausgabeports zugeordnet,
implementiert sein und sich auf entsprechenden Line Cards befinden.
-
Zum
Ermöglichen
einer direkten Identifizierung der virtuellen Ausgabeschlange, der
Zugang zum Ausgabeport gewährt
wird, weist die Anforderung vorzugsweise eine Identifizierung der
zugeordneten virtuellen Ausgabeschlange auf.
-
In
einer Ausführungsform
des vorliegenden Ablauffolgesteuersystems weist das mindestens eine Vergleichselement
Speichermittel zum Speichern der Anforderung mit einer höheren Priorität auf, und
das Vergleichselement ist ferner zum Empfangen einer Genehmigung
von einer Vergleichsschicht einer höheren Ebene, wobei die Genehmigung
die Anforderung mit der höchsten
Priorität
auf der Vergleichsschicht der höchsten
Ebene aufweist, und zum Senden der Genehmigung an das Vergleichselement
einer Vergleichsschicht einer niedrigeren Ebene gemäß der gespeicherten
Anforderung, die der höheren Priorität zugeordnet
ist, angeordnet.
-
Das
mindestens eine Vergleichselement kann zum Anwenden einer festgelegten
Präzedenz für eines
seiner zwei Eingabegatter angeordnet sein.
-
Alternativ
weist die Anforderung eine Prioritätsebene auf, und das mindestens
eine Vergleichselement ist zum Vergleichen der Prioritätsebenen
der Anforderungen angeordnet.
-
In
einer weiteren Ausführungsform
weist das mindestens eine Vergleichselement einen Datenweg zum Befördern eines
Datenpakets, das der Anforderung mit der höchsten Priorität zugeordnet
ist, zu der Vergleichsschicht der höheren Ebene auf.
-
Um
imstande zu sein, die Ablauffolge des Zugangs von einer Anzahl von
Eingabeports zu einem einer Anzahl von Ausgabeports zu steuern,
können
mehrere Ablauffolgesteuerbäume
in Reihe verbunden sein. Dies kann in passiven optischen Netzwerken
angewendet sein, die eine Ablauffolgesteuerung zum Zugang zu geteilten
Medien (geteilten Fasern) und zum Zugang zu den Ausgabeports erfordern.
-
In
einer weiteren Ausführungsform
des vorliegenden Ablauffolgesteuersystems weist das Ablauffolgesteuersystem
mehrere Ablauffolgesteuerbäume
auf, die einem ersten und einem zweiten Ausgabeport zugeordnet sind.
Das Ablauffolgesteuersystem ist zum Aktivieren des Ablauffolgesteuerbaums
angeordnet, der dem zweiten Ausgabeport zugeordnet ist, wenn der
erste Port für
die zugeordnete virtuelle Ausgabeschlange nicht verfügbar ist. Diese
Ausführungsform
ermöglicht
verbindungslose Ablauffolgesteuerung oder Protection Switching und kann
leicht unter Benutzung zusätzlicher
Logikschaltungen implementiert werden.
-
Die
vorliegende Erfindung wird unter Benutzung einer Anzahl beispielhafter
Ausführungsformen unter
Bezugnahme auf die beiliegenden Zeichnungen detaillierter verdeutlicht.
-
Es
zeigen:
-
1a eine
Grundkonfiguration eines Switchs, der Eingabeports mit Ausgabeports
verbindet;
-
1b eine
Grundkonfiguration eines passiven optischen Netzwerks;
-
2 in
einem schematischen Diagram die Ablauffolge steuerung von Datenverkehr
mit einer bestimmten Dienstgüte;
-
3 ein
schematisches Diagramm eines Ablauffolgesteuerbaums gemäß der vorliegenden
Erfindung;
-
4a bis 4c schematische
Diagramme von Ausführungsformen
von mehrstufigen Ablauffolgesteuerungsanordnungen der vorliegenden Erfindung;
-
5a ein
schematisches Diagramm eines festgelegten Präzedenzvergleichers mit Backrouting der
Genehmigung;
-
5b ein
schematisches Diagramm eines integrierten Wegabschnitts für eine Ablauffolgesteuerung
gemäß der vorliegenden
Erfindung;
-
6 ein
schematisches Diagramm einer Implementierung der vorliegenden Erfindung
in einer Paketvermittlungs-Ablauffolgesteuerung; und
-
7 ein
schematisches Diagramm einer weiteren Implementierung der vorliegenden
Erfindung in einer Ablauffolgesteuerung eines passiven optischen
Netzwerks.
-
1a zeigt
ein schematisches Diagramm einer Anwendung einer Ablauffolgesteuerung
zum Vermitteln von Eingabedatenströmen zu spezifischen Ausgabedatenströmen. Ein
Switch 2 verbindet Nj Eingabeports 11 ...1j mit
N0 Ausgabeports 31 ...30 . Jeder der Eingabeports 11 ...1j kann
mit jedem der Ausgabeports 31 ...30 durch den Switch 2 verbunden
sein. Um das Zusammentreffen von Daten von verschiedenen Eingabeports 11 ...1j zu
vermeiden, ist eine Ablauffolgesteuerungsfunktion zum Regulieren
des Zugangs zu jedem der Ausgabeports 31 ...30 erforderlich. Eine ähnliche
Funktion ist in einem passiven optischen Netzwerk (PON) notwendig,
das in 1b gezeigt ist, wobei neben
dem Schalter 2 die Eingabeports 11 ...1j mit Ng geteilten
Medien 41 ...4g verbunden sind.
Im Falle eines PON muss die Ablauffolgesteuerungsfunktion nicht
nur den Zugang zu den Ausgabeports 31 ...30 regulieren, sondern außerdem den
Zugang zu den geteilten Medien 41 ...4g . In den oben angegebenen Fällen wird
der Switch 2 als einstufig nichtblockierend betrachtet,
d.h. die Eingabeports 11 ...1j sind direkt mit dem ablauffolgegesteuerten Ausgabeport 31 ...30 verbunden.
Für den
Fall eines PON können
zwei separate Ablauffolgesteuerungen implementiert sein, eine für den Zugang
zu den geteilten Medien 41 ...4g und eine für den Zugang zu den Ausgabeports 31 ...30 .
Dies erfordert jedoch zusätzliche
Eingabeschlangen am Eingang des Switchs 2 und reduziert
die Leistung zwischen Endpunkten.
-
Zum
Vermeiden eines Zusammentreffens von Datenpaketen an den Ausgabeports 31 ...30 werden
die Datenpakete in Schlangen gereiht. Es ist möglich, die Datenpakete auf
verschiedene Art und Weise in Schlangen einzureihen. Die Datenpakte können an
dem Ausgabeport 31 ...30 gespeichert werden, für den das
Paket bestimmt ist, wobei dies jedoch beinhaltet, dass alle angebotenen
Datenpakete zuerst durch den Switch 2 befördert werden
müssen. Für große Portanzahlen
würde dies
unrealistische interne Geschwindigkeiten erfordern. Eine weitere Möglichkeit
ist die zentralisierte Schlangenbildung, die jedoch große, komplexe
Schaltungen erfordert, welche für
große
Anzahlen von Eingabe- und Ausgabeports schwer zu implementieren
sind. Wiederum eine weitere Möglichkeit
ist das Einreihen der Datenpakete in Schlangen an den Eingabeports 11 ...1j .
Dieser Ansatz hat den Nachteil, dass ein Datenpaket, das an einen
verfügbaren
Ausgabeport 31 ...30 gerichtet
ist, durch ein anderes Datenpaket in derselben Schlange blockiert
wird, das auf einen anderen Ausgabeport 31 ...30 wartet (so genanntes Head-of-Line-Blocking).
Dies kann durch eine Technik bewältigt
werden, die Virtual Output Queuing (VOQ) genannt wird und bei der
Daten in separaten Eingabeschlangen gespeichert werden, die für einen Ausgabeport 31 ...30 bestimmt
sind, was zu NjN0 virtuellen
Ports führt,
deren Ablauffolge in dem System zu steuern ist.
-
Wenn
Datenpakete mit verschiedenen Prioritäten von den Eingabeports 11 ...1j zu
befördern
sind (die verschiedener Dienstgüte,
QoS, zugeordnet sind); sollte auch die Ablauffolgesteuerfunktion
diese Prioritäten
berücksichtigen.
Um das Blockieren von Datenpaketen mit hoher Priorität durch
Datenpakete mit niedrigerer Priorität zu verhindern, kann der virtuelle
Ausgabeschlangenbildungsmechanismus zum Enthalten von mehreren Nc Prioritätenklassen
erweitert sein, was zu einer Anzahl von Schlangen führt, deren
Ablauffolge gleich NjN0Nc zu steuern ist. Die Ablauffolgesteuerung
von verschiedenen Schlangenprioritäten erfordert angemessenes
Gewichten.
-
2 zeigt
die Ablauffolgesteuerung von Datenpaketen mit verschiedenen Prioritäten für Datenverkehr
von einem bestimmten Eingabeport 1 zu einem bestimmten
Ausgabeport 3. Eine Klassifiziervorrichtung 5 wertet
ein eingehendes Datenpaket aus und weist es gemäß der Prioritätsklasse
einer der mehreren virtuellen Eingabeschlangen 61 ...6c zu. Die verschiedenen Schlangen 61 ...6c werden
in eine Ablauffolgesteuerung 7 zum Zugang zum Ausgabeport 3 eingegeben,
unter Beinhaltung der Abschätzung
der Prioritätsklasse
der Schlangen 61 ...6c . Diese Steuerung der Ablauffolge wird
für jede
der NjNc virtuellen
Ausgabeschlangen ausgeführt.
-
Der
Vorgang des Steuerns der Ablauffolge, der von der Ablauffolgesteuerung 7 ausgeführt wird, kann
in drei Phasen aufgeteilt werden. Zunächst fragt die Ablauffolgesteuerung 7 die
Schlangen 6 (insgesamt NjN0Nc für ein System
mit Nj Eingabeports, N0 Ausgabeports
und Nc Prioritätsklassen) nach ihren Zugangsanforderungen
ab. Zweitens bestimmt die Ablauffolgesteuerung 7, welcher
Schlange 6 auf Grundlage der spezifischen Priorität Zugang
zu einem Ausgabeport 31 ...30 gewährt wird.
-
Schließlich informiert
die Ablauffolgesteuerung 7, welcher Schlange 6 Genehmigung
zum Senden des zugeordneten Datenpakets an den angeforderten Ausgabeport 3 erteilt
wird.
-
Diese
Schritte werden für
jedes Paket in einem bestimmten Datenpaketswitch 2 wiederholt,
und folglich muss der gesamte Vorgang weniger als die zugeordnete
Schlitzzeit Ts dauern. Bei modernen Datenpaketnetzen
befindet sich die Schlitzzeit Ts in der Größenordnung
von Mikrosekunden. Da derzeitige Prozessoren mit einer Zykluszeit
in der Größenordnung
von mehreren Nanosekunden arbeiten, ermöglicht dies ungefähr 100 Operationen
pro Zeitschlitz zum Steuern der Ablauffolge aller virtueller Ausgabeschlangen.
Der zeitaufwändigste
Teil der Ablauffolgesteuerung ist die Abschätzung. Bekannte Ablauffolgesteuerungstechniken
verwenden Abfrage- oder Ringversuchtechniken, aber diese sind zu
langsam für
eine große
Anzahl Schlangen. Die vorliegende Erfindung ermöglicht, dass die Steuerung
der Ablauffolge für
große
Anzahlen von Schlangen durch Zerlegen der Abschätzung und Gewichten der Schlangenanforderungen
in einen binären
Baum 10, wie in 3 gezeigt, ausgeführt wird.
-
In 3 ist
ein einzelner Ablauffolgesteuerbaum 10 dargestellt, zum
Bestimmen, welche einer Anzahl virtueller Ausgabeschlangen 61 ...6n Zugang zu
einem bestimmten Ausgabeport 31 ...30 erhält. Ein Ablauffolgesteuerbaum 10 wie
dargestellt ist daher für
jeden der Ausgabeports 31 ...30 erforderlich.
-
Der
Ablauffolgesteuerbaum 10 weist eine Anzahl identischer
Vergleichselemente 11 auf, die beispielsweise in kombinatorischer
Logik implementiert sein können
(siehe unten). Jedes Vergleichselement 11 weist zwei Eingaben
und eine einzelne Ausgabe auf. Die Vergleichselemente 11 sind
baumartig miteinander verbunden, d.h. eine der Eingaben eines Vergleichselements 11 auf
einer höheren
Ebene ist mit der Ausgabe eines Vergleichselements 11 auf
einer niedrigeren Ebene verbunden. Auf der untersten Ebene sind
die Eingaben der der Vergleichselemente 11 mit den virtuellen
Ausgabeschlangen 61 ...6n verbunden. Jeden Zeitschlitz Ts zeigen die virtuellen Ausgabeschlangen 61 ...6n ihre
Anforderung r an einer der Eingaben der Vergleichselemente 11 an.
Vorherrschende Anforderungen werden zu einer höheren Ebene weitergeleitet,
bis an der obersten Ebene die gewährte Anforderung eines spezifischen
Ausgabeports 3 nach 2logN Gatteroperationen
hervorgeht. An der Ausgabe des Vergleichselements 11 der
obersten Ebene bleibt nur eine Anforderung des spezifischen Ausgabeports 3 übrig, und
somit kann die Anforderung der zugeordneten, virtuellen Ausgabeschlange 61 ...6n direkt
zugewiesen werden.
-
Durch
Wählen
geeigneter Schaltungen können
die Vergleichselemente 11 zum parallelen Arbeiten implementiert
werden, sodass nur 2logN (wobei N die Anzahl
(virtueller) Ports ist, die pro Ausgabeports ablauffolgegesteuert
werden sollen, d.h. N = NjNc im Falle
von Nj Eingabeports und Nc Dienstklassen) Schritte
zum Bestimmen notwendig sind, welche virtuelle Ausgabeschlange 61 ...6n Zugang
zu dem spezifischen Ausgabeport 3 erhält.
-
Die
Vergleichselemente 11 können
auf jeglicher Ebene entscheiden, welche Anforderung r auf der Grundlage
von beispielsweise einer festgelegten Präzedenz vorherrscht, der eine
der Eingaben des Vergleichselements 11 Priorität gibt.
In der Ausführungsform,
die in 3 gezeigt ist, würde die Priorität der Baumeingaben
in der rechten oder linken Richtung zunehmen. Dies vereinfacht die
Implementierung für
Systeme mit einer mehr oder weniger festgelegten Port- und Dienstklassenkombination.
-
Alternativ
können
die Vergleichselemente 11 zum ab wechselnden Verleihen von
Präzedenz
an empfangene Anforderungen angeordnet sein, d.h. die Priorität wechselt
jedes Mal, wenn einem Eingabeport eine Genehmigung p erteilt wurde,
zu dem anderen Eingabeport, was zu keiner Nettopräzedenz führt.
-
Als
weitere Alternative kann eine gewichtete Präzedenz in den Vergleichselementen 11 implementiert
sein. Die Anforderung r jeder der virtuellen Ausgabeschlangen 61 ...6n sollte
dann die Prioritätsebene
aufweisen. In diesem Falle ist flexibles Programmieren der virtuellen
Ausgabeschlangen möglich,
erfordert jedoch komplexere Logik (ungefähr einen Faktor von 2logNc) zum Implementieren
der Vergleichselemente 11.
-
Es
ist möglich
zu verhindern, dass die Identität
der virtuellen Eingabeschlangen 61 ...6n durch den Ablauffolgesteuerbaum 10 befördert werden,
und den Zuweisungsmechanismus zu vereinfachen. Dies kann erzielt
werden, indem die Vergleichselemente 11 derart angeordnet
sind, dass sie die zugeordneten Zwischenergebnisse speichern. Auf
diese Art und Weise ist es möglich,
die Genehmigung p, die an der Ausgabe des Vergleichselements 11 der
höchsten Ebene
erhalten wurde, durch den Ablauffolgesteuerbaum 10 zurück zu der
richtigen virtuellen Ausgabeschlange 61 ...6n zu routen. Dies ist in 3 durch
die unterbrochenen Pfeile angezeigt.
-
Es
ist außerdem
möglich,
den Ablauffolgesteuerbaum 10 derart anzuordnen, dass er
eine integrierte Wegabschnittsschaltung mit den Vergleichselementen 11 enthält, wodurch
es der Ablauffolgesteuerung 7 ermöglicht ist, automatisch einen
Weg für
die Datenpakete zwischen den virtuellen Ausgabeschlangen 61 ...6n und
den Ausgabeports 31 ...30 zu errichten.
-
Der
Ablauffolgesteuerbaum 10 wie bis jetzt beschrieben ermöglicht die
Steuerung der Ablauffolge von Datenpaketen zu einem Ausgabeport 3.
Da der Ablauffolge steuerbaum 10 zum parallelen Arbeiten
für jeden
Ausgabeport 31 ...30 eines
Paketswitchs 2 implementiert sein kann, ist die Gesamtanzahl
von Schritten, die zum Steuern der Ablauffolge aller (NjN0Nc) virtuellen Ausgabeschlangen 61 ...6n notwendig
sind, ebenfalls gleich 2logNjNc.
-
Die
vorliegende Erfindung ermöglicht
es außerdem,
den Zugang zu den geteilten Medien 41 ...4g in einem passiven optischen Netzwerk
durch Anordnen von zwei Ablauffolgesteuerbäumen in Reihe zu steuern. 4a zeigt
in vereinfachter Form eine mehrstufige Ablauffolgesteuerungsanordnung
für eine
einzelne Schlange 6 in beispielsweise einem passiven optischen
Netzwerk. Zunächst
werden die Eingabeschlangen I1...Ij zu den geteilten Medien 41 ...4g durch einen ersten Ablauffolgesteuerbaum 15 ablauffolgegesteuert,
bei dem die Backrouting-Anordnung implementiert ist, wonach die
geteilten Medien 41 ...4g durch einen zweiten Ablauffolgesteuerbaum 16 zu
den Ausgabeports 31 ...30 ablauffolgegesteuert werden. Die zwei
Ablauffolgesteuerbäume 15, 16 können somit
zum Ausführen
einer UND-Funktion miteinander verbunden sein.
-
4b zeigt
eine andere mögliche
Ausführungsform
unter Verwendung eines ersten Ablauffolgesteuerbaums 15 und
eines zweiten Ablauffolgesteuerbaums 16, wobei die Genehmigung
p1, die vom ersten Ablauffolgesteuerbaum 15 erhalten wurde,
umgekehrt und in ein UND-Gatter 17 eingegeben wird, wobei
das zweite Eingabegatter des UND-Gatters 17 mit einer der
virtuellen Ausgabeschlangen 6 verbunden ist und die Ausgabe
des UND-Gatters 17 mit
dem zweiten Ablauffolgesteuerbaum 16 verbunden ist. Tatsächlich implementiert
dies eine logische ODER-Funktion zum Zugang zu alternativen Ausgabeports,
wodurch die Ablauffolgesteuerung verbindungsloser Datenpakete ermöglicht ist.
Die ersten Ablauffolgesteuerbäume 15 aller
virtuellen Ausgabeschlangen 6 sollten zuerst eine Genehmigung
p1 aus geben, und dann sollte die Genehmigung p1 durch das UND-Gatter 17 verarbeitet
und in den zweiten Ablauffolgesteuerbaum 16 eingegeben
werden, um doppelte oder unaufgeforderte Zuordnungen zu vermeiden.
-
4c zeigt
eine weitere mögliche
Ausführungsform
unter Verwendung eines ersten Ablauffolgesteuerbaums 15 und
eines zweiten Ablauffolgesteuerbaums 16. Eine Anforderung
von einer virtuellen Ausgabeschlange 6 wird sowohl in den
ersten sowie in den zweiten Ablauffolgesteuerbaum 15, 16 eingegeben.
Eine Genehmigung p1 wird von dem ersten Ablauffolgesteuerbaum 15 oder
dem zweiten Ablauffolgesteuerbaum 16 erhalten. Tatsächlich implementiert
dies ebenfalls eine logische ODER-Funktion zum Zugang zu alternativen
Ausgabeports, wobei jetzt jedoch nur die Unterstützung von Protection Switching
ermöglicht
ist.
-
5a zeigt
ein einfaches Blockdiagramm einer beispielhaften Implementierung
des Vergleichselements 11 des Ablauffolgesteuerbaums 10 mit kombinatorischer
Logik. Das Vergleichselement 11 ist mit einer festgelegten
Präzedenz
und Backrouting der Genehmigung p implementiert. Eine erste Eingabe 20 und
eine zweite Eingabe 21 sind mit einem ODER-Element 28 verbunden.
Abhängig
vom Wert der Anforderung r, die an der ersten oder zweiten Eingabe 20, 21 eingegeben
wird (ob er ein hoher oder niedriger Wert ist), spiegelt die Ausgabe
des Vergleichselements 11 (die die Ausgabe des ODER-Elements 28 ist)
wider, ob dieses spezifische Vergleichselement 11 eine
Anforderung an ein Vergleichselement 11 einer höheren Ebene
sendet. von dem Vergleichselement 11 wird ein Genehmigungswert
an einer Genehmigungseingabe 23 des Vergleichselements 11 empfangen.
Diese Genehmigungseingabe 23 wird mit einer Eingabe eines
ersten UND-Gatters 26 und eines zweiten UND-Gatters 27 verbunden. Wenn
dieses spezifische Vergleichselement 11 eine Genehmigung
p von einem Vergleichselement 11 einer höheren Ebene
empfängt, geben
das erste und zweite UND-Gatter 26, 27 die logischen
Werte aus, die an ihren jeweiligen zweiten Eingaben vorhanden sind.
Die zweite Eingabe des UND-Gatters 26 wird mit
der ersten Anforderungseingabe 20 verbunden, und die zweite
Eingabe des UND-Gatters 27 wird mit dem Kehrwert der ersten
Anforderungseingabe 20 verbunden. Die Ausgaben der UND-Gatter 26, 27 stellen
die Genehmigungen (logischen Werte) der ersten bzw. zweiten Eingabe 20 bzw. 21 bereit.
Tatsächlich
implementiert dies eine festgelegte Präzedenz für die erste Eingabe 20.
-
5b zeigt
eine beispielhafte Ausführungsform
einer Wegabschnittsschaltung, die in dem Vergleichselement 11 integriert
sein kann, neben der kombinatorischen Logik von 5a.
Die Wegabschnittsschaltung weist ein erstes freigegebenes Gatter 33 und
ein zweites freigegebenes Gatter 34 auf. Die Eingaben des
ersten und zweiten freigegebenen Gatters 33, 34 empfangen
die Datenpakete 30, 31, die der ersten Eingabe 20 bzw.
der zweiten Eingabe 21 zugeordnet sind. Die Ausgaben des
ersten und zweiten freigegebenen Gatters 33, 34 sind verbunden
und bilden die Wegabschnittsausgabe 32 aus. Das erste und
zweite freigegebene Gatter 33, 34 wird durch Gattereingaben
gesteuert, die die Genehmigungsausgaben 24, 25 der
kombinatorischen Logik von 5a empfangen.
Die Kombination von 5a und 5b stellt
ein Schaltungselement bereit, das das Vergleichselement 11 implementiert, das
automatisch eine Verbindung zwischen einem Eingabeport 1 und
einem Ausgabeport 3 herstellt. Dieses Schaltungselement
ermöglicht
es, einen vollständigen
Switch 2 zu bauen. Dem Fachmann ist klar, dass in dem Vergleichselement 11 Gating-
und Latching-Elemente zum Vorsehen angemessenen Timings und angemessener
Synchronisierung notwendig sind.
-
6 zeigt
ein schematisches Diagramm einer Anwendung der vorliegenden Erfindung
in einer Paketver mittlung. In diesem Fall kann der Ablauffolgesteuerbaum 10 zwischen
Eingabe- und Ausgabeknoten verteilt sein, möglicherweise durch Kaskadierung über mehrere
Ebenen und Backplanes zum Unterstützen beteiligter physikalischer
Dimensionen. In der Ausführungsform,
die in 6 gezeigt ist, ist eine Paketvermittlungsablauffolgesteuerung 40 für einen 16×4 Switch 2 in
drei Teile aufgeteilt, eine Eingabestufe 41, eine Backplane 42 und
eine Ausgabestufe 43.
-
Die
Eingabestufe 41 ist in vier Eingabemodule 451 ...454 aufgeteilt,
die mit einem Verwaltungsmodul 44 verbunden sind. Außerdem ist
die Ausgabestufe 43 in vier Ausgabemodule 491 ...494 aufgeteilt. Jedes
der Eingabemodule 45k weist vier
Eingabeschlangen 46k1 ...46k4 zum Empfangen von Datenpaketen von
einer zugeordneten Eingabe Il...Ij und zugeordnete Policing-Steuerungen 47k1 ...47k4 auf,
um es einer Eingabeschlange 46k1 ...46k4 zu ermöglichen, ihre Datenpakete nach
dem Empfangen einer Genehmigung p von dem Ablauffolgesteuerbaum 10 zu senden.
Der Ablauffolgesteuerbaum 10 ist in vier Eingabeablauffolgesteuerbäume 48k1 ...48k4 in
jedem Eingabemodul 45k , das einem
der vier Ausgabeports zugeordnet ist, und einen Ausgabeablauffolgesteuerbaum 501 ...504 für jedes
Ausgabemodul 491 ...494 aufgeteilt. Die Ausgaben von den Eingabeablauffolgesteuerbäumen 48k1 ...48k4 sind
mit der Backplane 42 verbunden, die eine Ausgabe von einem
Eingabeablauffolgesteuerbaum 48k1 ...48k4 mit dem zugeordneten Ausgabeablauffolgesteuerbaum 501 ...504 verbindet.
Das Verwaltungsmodul 44 steuert eine Policing-Funktion
und andere Timing- und Synchronisierungsfunktionen. Die Policing-Funktion kann außerdem auf
verteilte Art und Weise implementiert sein, sollte jedoch stets
zwischen den Eingabeschlangen 46k1 ...46k4 und den Eingabeablauffolgesteuerbäumen 48k1 ...48k4 angeordnet
sein.
-
In
der Ausführungsform,
die in 6 gezeigt ist, können besondere Einrichtungen
vorhanden sein, um beispielsweise eine Rückschleife von Anforderungen
der obersten Ebene direkt in die Anforderung einer Eingabeschlange 46 zu
ermöglichen
oder Protection Switching zu ermöglichen.
-
7 zeigt
ein schematisches Diagramm einer Implementierung einer Ablauffolgesteuerung 70 zur
Implementierung in einem passiven optischen Netzwerk (PON). Der
Hauptunterschied zwischen einer Paketvermittlungsablauffolgesteuerung 40,
wie in 6 dargestellt, und einer PON-Ablauffolgesteuerung 70,
wie in 7 dargestellt, ist, dass die PON-Ablauffolgesteuerung 70 abgesehen
davon, dass sie eine zusätzliche
Abschätzungsstufe
für geteilte
Medien 41 ...4g aufweist
(siehe 1 und obige Beschreibung),
nicht direkt mit den Schlangen von fernen Optical Network Units
(ONU) verbunden ist. Außerdem
ist die PON-Ablauffolgesteuerung 70 im Allgemeinen nicht
mit einem integrierten Wegabschnitt, wie in 5b dargestellt,
ausgerüstet,
sondern steuert den Zugang zu einem oder mehreren geteilten Medien 41 ...4g ,
die durch einen separaten (optischen) Cross-Connect mit den Ausgabeports 31 ...30 verbünden sind. 7 zeigt,
dass die PON-Ablauffolgesteuerung 70 ebenfalls
in eine Eingabestufe 51, eine Backplane 52 und
eine Ausgabestufe 53 aufgeteilt ist. Die Funktion und Struktur
der Ausgabestufe 53 und der Backplane 52 gleichen
jenen der Ausgabestufe 43 bzw. der Backplane 42 der Paketvermittlungsablauffolgesteuerung 40.
Die Eingabestufe 51 enthält jedoch die zusätzliche
verteilet Medienstufe und eine Eingabe- /Ausgabe- (I/O) Backplane 611 ...613 für jedes
Eingabemodul 551 ...553 zum Empfangen von fernen Anforderungen
und Senden von fernen Genehmigungen an die ONUs des PON.
-
Zur
Steuerung der Ablauffolge von Schlangen, die an fernen Optical Network
Units residieren, muss die Ablauffolgesteuerung 70 Kommunikationsmittel
zum Unterstützen
der Abschätzungs-
und Zuweisungsphasen des Ablauffolgesteuerungsvorgangs bereitstellen.
Obgleich möglich,
ist es nicht praktikabel, den Ablauffolge steuerbaum 10 über das PON
selbst zu verteilen, da keine Ausrüstung in dem Gebiet auf der
Verknüpfungsebene
arbeitet. In der dargestellten Ausführungsform ist dies durch Schlangen-Proxys 56 an
einer zentralen Stelle gelöst.
In 7 sind zwei Schlangen-Proxys 56k1 ...56k2 für
jedes Eingabemodul 55k als Beispiel
gezeigt . Die Schlangen-Proxys 56k1 ...56k2 sind gewöhnlich für ONUs geschaffen, die eine
bestimmte, festgelegte Bandbreite für ihren Datenverkehr erfordern.
Um lange Umlaufverzögerungen
für deterministischen
Datenverkehr mit einer hohen Dienstgüte (hohen Priorität) zu vermeiden,
können
diese Schlangen-Proxys 56k1 ...56k2 unabhängig Anforderungen erzeugen,
um die ferne Schlange zu unterstützen.
Burst-Verkehr wird ähnlich
wie die Datenpakete in der Paketvermittlung 40 abgewickelt,
die in 6 gezeigt ist, d.h. eine ONU, die diese Art Datenverkehr
sendet, muss Anforderungen an die PON-Ablauffolgesteuerung 70 einsenden.
Von den Eingabeablauffolgesteuerbäumen 58k1 ...58k4 empfangene Genehmigungen werden über die
I/O Backplanes 611 ...613 an die fernen ONUs zurückgesendet.
-
Zudem
muss eine PON-Ablauffolgesteuerung 70 zum Abwickeln von
Wartungsfunktionen für das
PON, gesteuert durch OAM und Ranging-Block 62, ausgerüstet sein,
besonders dann, wenn Ranging zum Initialisieren neuer ONUs erforderlich
ist. Für
diese Zwecke kann eine dedizierte Schlange derart konfiguriert sein,
dass sie oberste Priorität
aufweist, sodass es möglich
ist, jedes Mal nachfolgende Zeitschlitze zu beanspruchen, wenn die
Ranging-Funktion eine Funkstille anfordert.
-
Die
Schlangen-Proxys 56k1 ...56k2 können verhältnismäßig einfach
unter Verwendung der festgelegten Präzedenzschemata wie bezüglich 5a gezeigt
und beschrieben implementiert werden. In diesem Falle beinhaltet
die Anforderung r von einem Schlangen-Proxy 56k1 ...56k2 nur einen einzelnen logischen Wert
(„0" oder „1"), und die lokalen
Schlangenbildungsfunktionen können
unter Ver wendung gewöhnlicher
Zähler
implementiert werden, die die unerledigten Anforderungen anzeigen.