-
Die
vorliegende Erfindung bezieht sich auf das Gebiet digitaler Paketvermittlungsnetzwerke,
bei den bevorzugten Ausführungsbeispielen
auf ein Injizieren eines unidirektionalen Datenstroms niedriger
Bandbreite in einen Kanal hoher Bandbreite.
-
Bei
vielen Anwendungen, die digitale Netzwerke betreffen, besteht ein
Bedarf nach Kanälen
für Verwaltungs-, Überwachungs-
und/oder Messfunktionen. Bei diesen Funktionen ist es üblich, dass
eine Vorrichtung mit einem Kanal hoher Bandbreite verbunden ist.
Die Vorrichtung führt
eine gewisse Funktion durch, wobei ein Datenstrom niedriger Bandbreite
als ein Ergebnis erzeugt wird. Ein Handhaben dieses Datenstroms niedriger
Bandbreite erfordert, dass die Vorrichtung mit einem anderen Kommunikationskanal
verbunden ist, wie beispielsweise einer drahtlosen Verbindung oder
einem Tor (Port) an einem Hochgeschwindigkeitsschalter (Hochgeschwindigkeitsswitch).
Bei Vorrichtungen, wie beispielsweise Schaltern und Routern, die
eingebaute Mess- und Verwaltungsfähigkeiten aufweisen, sind zusätzliche
Ressourcen einem Liefern einer Kommunikationsfähigkeit für diese Funktionen gewidmet.
In jedem Fall sind zusätzliche
Ressourcen bei dem Prozess eines Platzierens des Datenstroms niedriger
Bandbreite zurück
in das Netzwerk beschäftigt.
-
Die
WO 01/56195 offenbart einen
digitalen Statuskanal für
ein Breitbandkommunikationssystem.
-
Die
vorliegende Erfindung versucht, einen verbesserten Kanalbetrieb
zu schaffen.
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Erzeugen
eines Kanals niedriger Bandbreite in einem Kanal hoher Bandbreite
gemäß Anspruch
1 vorgesehen.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum
Erzeugen eines Kanals niedriger Bandbreite in einem Kanal hoher
Bandbreite gemäß Anspruch
8 vorgesehen.
-
Bei
den bevorzugten Ausführungsbeispielen
ist ein Kanal niedriger Bandbreite in einem Kanal hoher Bandbreite
erzeugt, derart, dass eine zusätzliche
Bandbreite lediglich für
den Kanal niedriger Bandbreite verwendet wird, wenn Daten gesendet
werden sollen, eine minimale Latenz in den Kanal hoher Bandbreite
eingebracht wird, wenn kein Paket über den Kanal niedriger Bandbreite
gesendet werden soll, und die Wirkungen eines Sendens eines Pakets
an dem Kanal niedriger Bandbreite unter anderem durchlaufenden Verkehr
absorbiert und verteilt werden.
-
Ausführungsbeispiele
der vorliegenden Erfindung sind unten lediglich durch ein Beispiel
mit Bezug auf die zugehörigen
Zeichnungen beschrieben, in denen:
-
1 eine
Paketeinfügung
zeigt,
-
2 ein
Blockdiagramm eines ersten Ausführungsbeispiels
der Erfindung zeigt,
-
3 FIFO-Zeiger
für das
erste Ausführungsbeispiel
der Erfindung zeigt,
-
4 eine
Zustandsmaschine zeigt, die für
das erste Ausführungsbeispiel
der Erfindung geeignet ist,
-
5 Zustandsübergänge bei
dem ersten Ausführungsbeispiel
der Erfindung zeigt,
-
6 ein
Blockdiagramm eines zweiten Ausführungsbeispiels
der Erfindung zeigt,
-
7 eine
Zustandsmaschine zeigt, die für
das zweite Ausführungsbeispiel
der Erfindung geeignet ist,
-
8 Zustandsübergänge für das zweite
Ausführungsbeispiel
der Erfindung zeigt,
-
9 ein
Blockdiagramm eines dritten Ausführungsbeispiels
der Erfindung zeigt,
-
10 Zustandsübergänge für das dritte
Ausführungsbeispiel
der Erfindung zeigt, und
-
11 eine
Zustandsmaschine zeigt, die für
das dritte Ausführungsbeispiel
der Erfindung geeignet ist.
-
Das
bevorzugte Ausführungsbeispiel
erzeugt einen Kanal niedriger Bandbreite durch ein Einfügen von Paketen
in den Paketstrom hoher Bandbreite. Ein Kanal niedriger Bandbreite
wird innerhalb des Kanals hoher Bandbreite durch ein Einfügen von
Paketen in einem vorbestimmten Intervall erzeugt. Diese Einfügung bringt eine
Latenz in den Kanal hoher Bandbreite ein. Diese Latenz ist nicht
konstant, sondern wird durch ein Minimieren von Zwischenpaketlücken zwischen
Paketen in dem eingehenden Kanal hoher Bandbreite nach dem eingefügten Paket
wieder gewonnen. Während
das eingefügte
Paket übertragen
wird, wobei der Kanal mit niedriger Bandbreite gebildet wird, werden
ankommende Pakete hoher Bandbreite in einem elastischen Puffer gespeichert.
-
In
Anbetracht der Analogie eines Eintretens in Autobahnverkehr tritt
ein eingehender Verkehr dem Autobahnverkehr durch ein „Einfädeln" (Verschmelzen) bei.
Falls es genug Platz zwischen Autos auf der Autobahn gibt, gibt
es kein Problem. Während
der Hauptverkehrszeit jedoch wird ein Beitreten zu einem Verkehr schwieriger.
Wenn man in dichten Verkehr auf der Autobahn eintritt, müssen Autos,
die hinter einem sein werden, häufig
langsamer werden, um Platz zu machen. Dies ist jedoch eventuell
für Autos
weiter hinten nicht erkennbar. Der Verkehr kompensiert einen Eintritt
durch ein Verlangsamen und ein Kleinermachen von Lücken zwischen
Autos aufgrund niedrigerer Geschwindigkeiten. Frührer, als es keine Dosierlichter
gab, erzeugten derartige Eintritte ein Chaos. Durch ein Einführen von
Dosierlichtern verbesserte sich die Situation in dem Sinne, dass
Autos mit einer vorbestimmten Frequenz in die Autobahn eintraten.
Dies milderte die Auswirkung eines „Injizierens" von Autos in laufenden
Verkehr. Das System stützt
sich auf eine ausreichend unterausgenutzte Verbindungskapazität, wenn
Pakete mit einer angemessen niedrigen Rate injiziert werden.
-
Verschiedene
Ethernet-Netzwerkstudien haben gezeigt, dass Ethernet-Netzwerke
gut arbeiten, falls die Bandbreite zu nicht mehr als 30 % einer
Kapazität
ausgenutzt ist. Eine stärkere
Nutzung kann Kollisionen bewirken, die zu einer Verstopfung führen. Eine
Neuübertragung
kann mehr Verkehr und mehr Kollisionen bewirken, bis zu dem Punkt,
dass sehr wenig Verkehr durchkommt. Bei Hauptnetzwerken (Backbone-Netzwerken) oder
Zwischenbereichsverbindungen, bei denen es weniger Übertragungsurheber
gibt, ist der Verkehr viel glatter und die Ausnutzung derartiger
Verbindungen kann 60–70
% einer Kapazität
erreichen. Es gibt weniger Kollisionen, weil weniger Teilnehmer
an den Schaltern, an denen der Verkehr konvergiert, in Konkurrenz stehen.
Eine höhere
Ausnutzung und ein gelegentliches Verkehrsbersten (Verkehrsbursting)
kann zu einem wesentlichen Paketverlust bei den Routern führen. Während eine
maximale Paketgröße für grundlegendes Ethernet
1536 Byte beträgt,
umfasst ein typischer Verkehr einen Bereich von Paketgrößen. Dies
bedeutet, dass Paketschaltfähigkeiten
eines Routers mit Verkehrsmustern sowie einer Verbindungsbandbreite übereinstimmen
müssen.
In anderen Worten ausgedrückt
resultiert ein Treiben einer Kommunikationsleitung nahe an 100 %
einer Fähigkeit
eines Routers, entweder in Paketen pro Sekunde oder einer Verbindungskapazität, in einem
wesentlichen Paketverlust. Die Auswirkungen eines Paketverlusts
sind sehr ernst. Ein Paketverlust kann einen Lawineneffekt aufweisen
und kann aufgrund von Neuübertragungen
sogar mehr Verkehr erzeugen. Deshalb belassen die meisten Netzwerkplaner
etwas freie, zusätzliche
Kapazität,
anstatt Kommunikationsleitungen bei 100 %-iger Kapazität zu betreiben.
Etwas dieser zusätzlichen
Kapazität
ist für
uns als ein Kanal niedriger Bandbreite verfügbar, wie es diese Erfindung
vorschlägt.
Dieser Kanal niedriger Bandbreite verwendet eventuell nur 1 % der
Gesamtbandbreite der Kommunikationsleitung.
-
Das
beschriebene Ausführungsbeispiel
definiert die obere Bandbreite des Kanals niedriger Bandbreite durch
ein Spezifizieren eines Haltezeitgebers. Der Haltezeitgeber definiert
ein Intervall, während
dessen lediglich ein Paket gesendet werden kann. Wenn der Haltezeitgeber
abläuft,
kann ein anderes Paket über
den Kanal niedriger Bandbreite gesendet werden. Dies kann lediglich
unter der Bedingung auftreten, bei der der Paketstrom hoher Bandbreite
irgendein vorhergehendes Paket absorbierte, das eingefügt wurde.
Mit anderen Worten muss der Paketstrom hoher Bandbreite zu einem
unveränderten
Bewegen zurückkehren,
bevor ein zusätzliches
Paket in den Strom eingefügt
werden kann. Natürlich
würde die
Einfügung
eines zusätzlichen
Pakets kleine, temporäre
Verzögerungen
in dem Paketstrom hoher Bandbreite bewirken. Die Haltezeitgeberverzögerung in
Taktzyklen (Schriftzeichen; jedes übertragene Schriftzeichen nimmt
einen Taktzyklus ein) berechnet sich wie folgt:
-
Falls
beispielsweise die Größe eines
eingefügten
Pakets 1,5 Kbyte beträgt,
die Bandbreite des Kanals hoher Bandbreite 1 Gbps beträgt und der
Kanal niedriger Bandbreite 1 % der Kapazität des Kanals hoher Bandbreite,
d. h. 10 Mbps, beträgt,
dann beträgt
der Haltezeitgeber näherungsweise
150000 Taktzyklen. Der Taktzyklus pro Byte bei 1 Gbps und bei einer
8B/10B-Codierung des Bitstroms beträgt 10 nsec. Dies bedeutet, dass
bei diesem Beispiel kein anderes Paket in weniger als 1,5 msec in
den Paketstrom hoher Bandbreite eingebracht werden könnte. Kleinere
Paketgrößen weisen
kleinere Haltezeitgeberwerte auf und könnten häufiger eingebracht werden.
Ein Wählen
kleinerer Pakete kann jedoch die Anzahl von Paketen pro Sekunde
erhöhen, was
die Verarbeitungsfähigkeit
des Routers beeinflussen kann, falls sich derselbe nahe der Paket-pro-Sekunde-Grenze
desselben befindet.
-
Anstelle
eines Definierens des Haltezeitgebers als eine feste Funktion einer
Paketgröße und -bandbreite,
könnte
der Haltezeitgeber einen eingebauten zufälligen Faktor aufweisen. In
diesem Fall könnte
der obige berechnete Haltezeitgeber ein Durchschnittswert sein,
der zufällig
zwischen einer unteren und einer oberen Begrenzung schwankt. Beispielsweise
könnte
sich der Haltezeitgeber innerhalb von +–20 % eines Durchschnitts befinden.
Eine Randomisierung des Haltezeitgebers kann eine Synchronisation
eines Verkehrsflusses verhindern, wenn die Pakete gleicher Größe in den
Verkehr eingefügt
werden. Es ist nicht erwiesen, dass eine Randomisierung dieses Haltezeitgebers
eine Flusssynchronisation beeinflussen kann, aber verschiedene Studien
von Verkehrsflüssen
haben gezeigt, dass eine Synchronisation im Allgemeinen eine nachteilige
Auswirkung auf die Gesamtstabilität der Netzwerke aufweisen kann.
-
Ein
anderer wichtiger Parameter ist die Zwischenpaketlücke. Dies
ist eine Lücke
zwischen zwei aufeinander folgenden Paketen oder Rahmen (Frames)
(z. B. Ethernet-Rahmen). Bei 1 Gbps-Ethernet muss die minimale Zwischenpaketlücke 96 nsec
betragen. Die einzige Möglichkeit,
um die Auswirkung einer Einfügung eines
zusätzlichen
Pakets (eigentlich ein Paket, das gerahmt ist) in den Strom hoher
Bandbreite zu reduzieren, besteht durch ein Reduzieren von Zwischenpaketlücken folgender
Pakete, die größer als
das Minimum sind. Natürlich
könnte
die minimale Lücke
als größer als
eine minimale Lücke
definiert sein, die durch einen spezifischen Standard definiert
ist. Dies kann notwendig sein, falls die Leitungskarte Probleme
bei einem Handhaben minimaler Lücken
hat, die durch den Standard definiert sind. Ähnlich dem Haltezeitgeber könnte die
minimale Lücke
ferner einen eingebauten zufälligen
Faktor aufweisen, um eine mögliche
schädliche
Verkehrssynchronisation zu vermeiden. Aber eine Studie muss durchgeführt werden,
um zu bestimmen, ob dies notwendig ist.
-
1 stellt
dar, wie zusätzliche
Pakete (Rahmen) 110 und 112 in einen Paketstrom 100 hoher
Bandbreite eingefügt
werden. Es sollte hier wiederholt werden, dass ein „Paket" nicht nur ein IP-Paket
ist, sondern dasselbe ein Rahmen ist, der ein IP-Paket enthalten
kann. In dem Fall von Ethernet ist dasselbe ein eigentlicher Ethernet-Rahmen,
der bereits codiert ist, z. B. unter Verwendung einer 8B/10B-Codierung. Der Codierungstyp
hängt davon
ab, welcher Codierungstyp durch einen durchlaufenden Verkehr verwendet
wird. In 1 sind unbeeinflusste Pakete
durchsichtig, verzögerte
Pakete grau und eingefügte
zusätzliche
Pakete in Schwarz gezeigt.
-
Bei
t0 ist ein zusätzliches Paket 110 bereit,
um gesendet zu werden. Bis zu dieser Zeit ist der vorbestimmte Haltezeitgeber
abgelaufen. Dies bedeutet, dass die nächste Gelegenheit, um ein zusätzliches
Paket einzufügen,
dann sein wird, wenn der Kanal hoher Bandbreite LEERLAUF-Schriftzeichen (IDLE-Schriftzeichen) überträgt. Bei
t0 wurde ein Paket P0 übertragen. Nach einem Abschluss
eines Übertragens
von P0 und einer minimalen Lücke
könnte
bei t1 ein neues Paket EP1 (EP = extra packet
= zusätzliches
Paket) eingefügt werden.
Zu der gleichen Zeit muss die Erfindung einen eingehenden Verkehr
in einem elastischen Puffer für eine
zukünftige
Neuübertragung
absorbieren. Bei dem Beispiel in 1 weist
der eingehende Verkehr zwischen P0 und P1 eine Zwischenpaketlücke auf,
die größer als
das Minimum ist. Dieses Ausführungsbeispiel minimiert
diese Lücke
und lässt
zusätzliche
LEERLAUF-Schriftzeichen fallen, bis dasselbe das Paket P1 sieht. Das
P1-Paket tritt in den elastischen Puffer ein, sowie die minimale
Lücke zwischen
21 und 22, wenn das zusätzliche
Paket sich in dem Prozess eines Gesendetwerdens befindet. Ferner
wird die Lücke
zwischen P2 und P3 reduziert, so dass das P3-Paket sich ohne Verzögerung bewegt.
Durch die Einfügung
des EP1-Pakets werden lediglich 21 und 22 beeinflusst (verzögert), aber
P3 wird nicht verzögert.
Bei t1 startet das Ausführungsbeispiel ferner einen
Haltezeitgeber, wie es vorher definiert wurde, als ein Paketstrom 120 gezeigt.
Ein Paketstrom 130 stellt eine Situation dar, wenn ein
zufälliger
Faktor zu dem Haltezeitgeber hinzugefügt ist. Bei t2 ist
ein weiteres zusätzliches
Paket EP2 112 bereit, um gesendet zu werden, zu dieser
Zeit jedoch sind die Kriterien eines Kanal niedriger Bandbreite
noch nicht erfüllt
und man muss bis t3 warten, wenn der Haltezeitgeber
abläuft. Nach
t3 wiederholt sich der Prozess, d. h. bei
t4 wird ein zusätzliches Paket in den Strom
injiziert, usw. Hier ist anzumerken, dass die Geschwindigkeit, mit
der die neuen zusätzlichen
Pakete absorbiert werden, von den Zwischenpaketlückengrößen abhängen würde. Größere Lücken „absorbieren" neue Pakete schneller.
Ferner spielt es keine Rolle, ob ein eingehender Verkehr normale
(1,5 Kbyte) oder extra große
(9 Kbyte) Ethernet-Rahmen enthält.
burst-Ethernet-Rahmen werden jedoch nicht auseinandergebrochen.
-
Ein
erstes Ausführungsbeispiel
der vorliegenden Erfindung ist in 2 bis 5 gezeigt;
dasselbe bringt null Verzögerung
ein. Ein zweites Ausführungsbeispiel
der vorliegenden Erfindung ist in 6 bis 8 gezeigt
und verwendet eine Verzögerung
von 2 Schriftzeichen. Ein drittes Ausführungsbeispiel der vorliegenden
Erfindung ist in 9 bis 11 gezeigt
und verwendet eine beliebige Verzögerung.
-
Während die
vorliegende Erfindung in verschiedenen Formen implementiert sein
kann, ist die vorliegende Erfindung auch für eine Implementierung in einer
sehr integrierten Form geeignet, die für ein Ersetzen von Industriestandard-Schnittstellenwandlermodulen
geeignet ist, beispielsweise diesen, die als GBICs oder GigaBit-Schnittstellenwandler
(GigaBit Interface Converters) bekannt sind. Aktuelle GBICs sind
im Grunde Sende/Empfangsgeräte,
die einen Medientyp (optisch, verdrilltes Paar, etc.) in einen anderen
Medientyp übersetzen.
Durch ein Bereitstellen eines Ersatz-GBIC, der die vorliegende Erfindung
umfasst, sind zahlreiche Anwendungen ermöglicht, die Kanäle niedriger
Bandbreite erfordern. Derartige Anwendungen umfassen viele Netzwerküberwachungsanwendungen.
-
Die
Lösung
mit null Verzögerung
von 2 bis 5 ist normalerweise bei einer
Leitungsgeschwindigkeit wirksam (keine Latenz in durchlaufenden
Verkehr eingebracht, außer
einer Latenz, die durch Serialisierer, MUX und Deserialisierer eingebracht
wird). Wie es in 2 gezeigt ist, werden zusätzliche
Pakete aus einem Puffer 260 in den Verkehrsstrom injiziert.
-
Die
Verzögerung
von zwei Schriftzeichen, die in 6 bis 8 gezeigt
ist, bringt eine minimale Verzögerung
von zwei Schriftzeichen für
einen Normalbetrieb ein (d. h. durchlaufender Verkehr wird um zwei Schriftzeichen
verzögert).
Wie es in 6 gezeigt ist, wird das zusätzliche
Paket vor einer Übertragung
in einen FIFO-Puffer 650 kopiert.
-
Die
Lösung
mit beliebiger Verzögerung
von 9 bis 11 ist für diese Anwendungsarten bedeutsam,
die eine Manipulation von Daten vor einem Weiterleiten erfordern,
z. B. einem Aktualisieren von Paketkopfblöcken, einem Entfernen von Teilen
von Kopfblöcken,
etc.
-
Während hier
Beschreibungen zu diesen darstellenden Ausführungsbeispielen enthalten
sind, liegt das Hauptaugenmerk auf der Lösung mit null Verzögerung,
die unten detailliert beschrieben ist.
-
Jedes
Mal, wenn ein serieller Bitstrom zu parallelen n-Bit-Wörtern deserialisiert wird,
kann das Ergebnis lediglich dann für eine weitere Verarbeitung
(selbst nur um zu reserialisieren) weitergeleitet werden, nachdem
alle n Bits angekommen sind. Dies bedeutet, dass ein Deserialisieren
und anschließendes
Reserialisieren eines Bitstroms eine Latenz von zumindest einem
Wortzyklus oder n Bit einbringt. In der Praxis ist zu erwarten, dass
der Serialisierer und der Deserialisierer jeweils mehr als Mehrfache
von einem Bit einer internen Latenz aufweisen, für insgesamt etwa zwei Wortzyklen
(20 ns für
das Gigabit-Ethernet-Beispiel), selbst in dem Fall der so genannten
Lösung
mit „null
Verzögerung". Zusätzlich muss
die Erfindung lesen und zu einem Auf-Chip-Speicher (On-Chip-Speicher)
schreiben und Leerlaufschriftzeichen mit der Wortrate erfassen,
z. B. 125 MHz bei Gigabit-Ethernet. Dies sollte bei einem modernen
CMOS-Prozess kein
Problem sein. Schnellere Schnittstellen, wie z. B. 10 Gb-Ethernet,
können
jedoch einen breiteren, parallelen Mehrwortstrom erfordern, der
eine zusätzliche
SER/DES-Latenz von 1 Wortzyklus (n Bit) pro Wort einfahren würde. Absolut
ausgedrückt wären natürlich diese
Zyklen 10x schneller.
-
Null
Verzögerung. 2 bis 5 zeigen
ein Ausführungsbeispiel
der vorliegenden Erfindung mit null Verzögerung (Latenz). Mit Bezug
auf 2 kommt der eingehende Strom von Paketen an einer
Schnittstelle 211 herein. Weil derselbe ein serieller Strom
von Bits ist (bei 1-Gigabit-Ethernet läuft derselbe mit einer tatsächlichen
Leitungsrate von 1,25 Gbps), wird derselbe durch einen Deserialisierer 210 zu
parallelen Strömen von
Bits deserialisiert. Falls eine 8B/10B-Codierung verwendet wird
(z. B. Ethernet mit 1 Gigabit/sec) wird der Strom in einen Strom 212 von
10 parallelen Bits deserialisiert. Dieser Strom nimmt abhängig von
dem Systemzustand unterschiedliche Routen.
-
Eine
Deserialisierung ist eine gut bekannte Technik, um Hochgeschwindigkeitsdaten
mit niedrigeren Geschwindigkeiten zu verarbeiten. Bei 1-Gigabit-Ethernet
beispielsweise können
Daten mit 125 MHz anstelle von 1,25 GHz verarbeitet werden. Falls
kein anderes Paket gesendet wird oder der FIFO-Puffer 250 leer
ist (d. h. es gibt keine Auswirkung von vorhergehend eingefügten Paketen
auf den Hauptpaketstrom), befindet sich der Zustand der Steuerlogik 230 in
dem Anfangszustand – S0
von 4. Die Zustandsmaschine, die in 4 beschrieben
ist, zeigt, wie die Steuerlogik 230 basierend auf Ereignissen
von einem Zustand in einen anderen übergeht. 5 zeigt
ein Beispiel eines Zustandsübergangs. 2 stellt
die grundlegenden Bausteine dar und 3 beschreibt,
wie FIFO-Pufferzeiger übergehen.
-
Es
ist zu beachten, dass, während
Zustandsmaschinen als ein Beispiel und eine Hilfe für ein Verständnis der
vorliegenden Erfindung vorgesehen sind, Zustandsmaschinen bei einem
Praktizieren der Erfindung nicht nötig sind. Kompaktere Ausführungsbeispiele
können
unter Verwendung einer festen Logik erhalten werden, die die hierin
beschriebenen Konzepte implementiert.
-
Während gleichermaßen ein
FIFO als ein Beispiel verwendet wird, kann irgendein elastischer
Puffer verwendet werden. Hardwareimplementierungen erfordern eventuell
keine direkte Steuerung von Lese- und Schreibzeigern und es können beispielsweise
Einzeltorpuffer verwendet werden.
-
In
dem Zustand S0 verwenden die Daten des eingehenden Paketstroms den „schnellen
Weg". Dieselben
bewegen sich von der Schnittstelle 212 durch eine Schnittstelle 271 zu
einem Multiplexer MUX 270. Der MUX 270 befindet
sich in einem Zustand 0, der ermöglicht,
dass die eingehenden Daten 271 durch eine Schnittstelle 273 und 221 zu
einem SERialisierer 220 weitergeleitet werden, der die
parallelen Ströme
an dem Ende zurück
zu einem seriellen Strom 222 umwandelt. Der Ausgang des
SERialisierers 220 stellt typischerweise eine Verbindung
mit einer Außennetzwerkausrüstung her
und kann eine elektrische oder optische Schnittstelle darstellen.
-
Mit
Bezug auf das Beispiel in 5 läuft zu der
Zeit t0 ein eingehendes Paket P0 unter Verwendung des
oben beschriebenen schnellen Wegs durch. Die Steuerlogik 230 befindet
sich in dem Zustand S0. Bei t1 läuft die
Haltezeit ab (5) und bewegt sich die Steuerlogik 230 von
S0 zu einem Zustand S1 (Ereignis: Haltezeitgeber abgelaufen; 4, 5).
Bei t2 ist ein zusätzliches Paket (5)
bereit, um in den Strom injiziert zu werden (Ereignis: zusätzliches
Paket bereit). Die Zustandsmaschine der Steuerlogik 230 schaltet
in einen Zustand S3 (4 & 5). Zu dieser
Zeit beginnt die Steuerlogik 230 ein Erfassen, wann das
zusätzliche Paket
zu injizieren ist. Die Erfassung wird durch ein Überprüfen jedes einzelnen Schriftzeichens 231 vorgenommen,
das die Steuerlogik 230 durchläuft.
-
Die
Daten können
nach dem Deserialisierer 212 von 2 drei unterschiedliche
Wege nehmen. Der erste Weg wurde oben als der schnelle Weg beschrieben.
Der zweite Weg 251 geht in den FIFO-Puffer 250. Der
dritte Weg 231 tritt in die Steuerlogik 230 ein.
Die Steuerlogik 230 erfasst LEERLAUF-Schriftzeichen, die die Möglichkeit
eines Injizierens des zusätzlichen
Pakets angeben. Die Steuerlogik 230 zählt LEERLAUF-Schriftzeichen,
um die minimale Lücke
einzuhalten. Dies tritt in dem in 4, 5 gezeigten
Zustand S3 auf. Sobald die minimale Lücke eingehalten ist, wird ein
Ereignis: aktuelle Lücke
== minimale Lücke,
erzeugt und die Zustandsmaschine schaltet in einen Zustand S4 (Paket
in Strom einfügen
und Absorbieren von eingehendem Verkehr in FIFO beginnen). Es ist
hier zu beachten, dass bei Gigabit-Ethernet LEERLAUF-Schriftzeichen aus
zwei unterschiedlichen Codierungsgruppen kommen. Mit anderen Worten
gibt es zwei unterschiedliche LEERLÄUFE. Welcher der LEERLÄUFE zu verwenden
ist, hängt
von einer DC-Signalausgeglichenheit des gesamten Stroms gesendeter
Schriftzeichen ab. Falls beispielsweise ein injiziertes Paket durch
eine Art von LEER LAUF gefolgt ist und es LEERLÄUFE in dem FIFO gibt, die unmittelbar
LEERLÄUFEN
des eingefügten
Pakets folgen sollten, dann sollten diese LEERLÄUFE durch den LEERLAUF ersetzt werden,
der dem eingefügten
Paket folgte. Auf diese Weise wird eine ordnungsgemäße DC-Signalausgeglichenheit
bewahrt. Zusätzlich
ist ein LEERLAUF kein einziges Schriftzeichen sondern zwei Schriftzeichen.
Bei t3 wird das zusätzliche Paket 260 eingefügt. Zu der
gleichen Zeit startet ein neuer Haltezeitgeber, wird der aktuelle
Lückenzähler auf
0 gesetzt, wird der R-Zeiger (R = read = lesen) des FIFO 250 gesichert
und zeigt ein neuer R-Zeiger auf den Beginn des zusätzlichen
Pakets (3).
-
Zu
der gleichen Zeit werden die eingehenden Paketdaten auch zu dem
FIFO 250 weitergeleitet 251, aber werden nicht
durch einen MUX 280 weitergeleitet, weil der Zustand des
MUX 280 0 lautet und die Schnittstelle 282 lediglich
ein Weiterleiten von Daten ermöglicht,
falls der Zustand des MUX 280 1 lautet. Weil der R-Zeiger
zu dem zusätzlichen
Paket zeigt, bewegt sich der W-Zeiger (W = write = schreiben) zu
dieser Zeit nicht vor. Die Daten werden in den FIFO 250 zu
der gleichen Position geschrieben, aber ein Lesen tritt von dem
Zusatzpaketpuffer auf.
-
Es
ist hier zu beachten, dass die Steuerlogik 230 einen Zustand
von S0 → S2 → S3 verändern würde, falls
das Ereignis: zusätzliches
Paket bereit vor dem Ereignis: Haltezeit abgelaufen auftritt (4).
Sobald diese zwei Ereignisse auftreten, schaltet die Steuerlogik 230 in
einen Zustand S4.
-
Sobald
die Steuerlogik 230 in den Zustand S4 eintritt, sendet
dieselbe ein Signal durch die Schnittstelle 232–274,
um den Zustand des MUX 270 auf 1 zu ändern, und ein Signal 236–284,
um denn MUX 280 in den Zustand 0 zu versetzen. Zu der gleichen
Zeit beginnt dieselbe durch das Signal 235–262 einen
Prozess eines Sendens des zusätzlichen
Pakets 260 Schriftzeichen für Schriftzeichen. Bei t3 zeigt der R-Zeiger zu den Daten des zusätzlichen
Pakets. Schriftzeichen des zusätzlichen
Pakets bewegen sich durch eine Schnittstelle 261–281 zu
dem MUX 280 und dann werden dieselben durch eine Schnittstelle 283–272 zu
dem MUX 270 weitergeleitet. Weil der MUX 270 sich
in dem Zustand 1 befindet, gehen Daten durch eine Schnittstelle 273–212 zu
dem SERialisierer 220 und treten durch die Schnittstelle 222 aus.
Bei t4 kommt das Paket P1 an. Ein Ereignis:
Start-Rahmen wird
erzeugt und die Steuerlogik 230 geht in einen Zustand S5 über. Der
FIFO 250 beginnt ein Ansammeln von P1-Schriftzeichen, d. h. der W-Zeiger desselben
beginnt sich vorzubewegen. Dies bedeutet auch, dass eine Lücke t3–t4 aus dem Strom von Paketen beseitigt wurde,
um die Wirkung der Einfügung
des zusätzlichen
Pakets auf die Verzögerung
des eingehenden Paketstroms zu kompensieren. Bei dem in 5 gezeigten
Beispiel ist diese Lücke
(t3–t4) nicht ausreichend, um die Wirkung des
neu eingefügten
zusätzlichen
Pakets vollständig
zu absorbieren, und es müssen
mehr Zwischenpaketlücken
verwendet werden, um die Wirkung zu kompensieren.
-
Es
ist hier zu beachten, dass der Übergang
zu dem nächsten
Zustand, z. B. von S3 → S4
oder S5 → S4,
lediglich auftritt, falls die konfigurierte minimale Lücke eingehalten
ist. Mit anderen Worten könnte
beispielsweise ein Paket nach P0 nicht eingefügt werden, falls die tatsächliche
minimale Lücke
(wie es durch den Standard definiert ist) zwischen P0 und P1 geringer
als eine konfigurierte minimale Lücke ist. Das zusätzliche Paket
wird warten müssen,
bis sich eine genügend
große
Zwischenpaketlücke
zeigt. Diese Option eines Aufweisens einer konfigurierbaren minimalen
Lücke,
die größer als
diese ist, die durch einen spezifischen Standard definiert sind,
wird für
diese Einsätze
gelassen, bei denen eine standardmäßige definierte minimale Lücke dem
empfangenden Ende zu viel Belastung auferlegt. Es wird angenommen,
dass unter normalen Umständen die
konfigurierbare minimale Lücke
gleich dieser sein wird, die durch den Standard definiert ist. In
diesem Dokument bezieht sich der Kürze halber jedes Mal, wenn
sich diese Erfindung auf eine minimale Lücke bezieht, dieselbe auf eine
konfigurierbare minimale Lücke.
-
Das
zusätzliche
Paket muss durch zumindest die minimale Lücke gefolgt sein. Die Lücke zwischen den
Paketen P0 und P1 ist zu klein, um die nachfolgende Lücke für das eingefügte zusätzliche
Paket aufzunehmen, und deshalb muss eine minimale Lücke als
ein Teil eines zusätzlichen
Pakets enthalten sein. Die Absorption der Wirkung der Einfügung des
zusätzlichen
Pakets (t3–t4)
wird einfach dadurch vorgenommen, dass der FIFO 250 den
eigenen W-Zeiger desselben nicht vorbewegt.
-
Sobald
das Paket P1 durch den FIFO 250 absorbiert ist, nimmt der
FIFO LEERLAUF-Schriftzeichen, die P1 folgen, lediglich an, bis die
minimale Lücke,
die P1 nachfolgt, bei t5 erfüllt ist.
Bei t5 wird ein Ereignis: aktuelle Lücke == min.
Lücke erzeugt
und geht die Steuerlogik (230) zurück zu dem Zustand S4 über, um
zusätzliche
LEERLAUF-Schriftzeichen zu beseitigen. Der FIFO (250) überspringt
LEERLAUF-Schriftzeichen
bis zu der Ankunft eines neuen Pakets P2 (t6).
Erneut wird hier die Lücke
t5–t6 verwendet, um die Wirkung der Einfügung des
zusätzlichen
Pakets zu kompensieren. Bei t6 kommt ein
neues Paket P2 an und wird ein Ereignis: START-Rahmen erzeugt. Dieses
Ereignis lässt
die Zustandsmaschine der Steuerlogik (230) zu dem Zustand S5 übergehen,
in dem der FIFO eingehende Pakete für eine zukünftige Übertragung sichern wird.
-
Zu
einer Zeit t7 wird das zusätzliche
Paket mit minimaler Lücke
schließlich
gesendet. Die Steuerlogik 230 schaltet durch eine Schnittstelle 236–284 den
MUX 280 zu dem Zustand 1 und setzt den R-Zeiger auf den Anfang
des FIFO 250 (3, Zustand S6, S7). Ein Ereignis:
Einfügungsende
wird erzeugt und die Zustandsmaschine der Steuerlogik 230 geht
zu dem Zustand S6 über.
Zu dieser Zeit werden Daten von dem FIFO 250 gesendet.
Der R-Zeiger des FIFO wird auf ein erstes Schriftzeichen gesetzt
und dies wird das erste Schriftzeichen des Pakets P1 sein, das in
dem FIFO gesichert ist. In der Zwischenzeit nimmt der FIFO 250 das
Paket P2 an 251 und speichert dasselbe. Bei t8 ist
eine minimale Lücke
erreicht, die dem Paket P2 folgt. Ein Ereignis: aktuelle Lücke == minimale
Lücke wird
erzeugt und die Zustandsmaschine geht zu einem Zustand S7 über (LEERLAUF-Schriftzeichen überspringen,
während
FIFO geleert wird).
-
Zu
einer Zeit t9 wird das letzte Schriftzeichen
aus dem FIFO 250 gesendet. Es ist zu beachten, dass dies
nicht das tatsächlich
letzte Schriftzeichen ist, das in dem FIFO gesichert ist. Das letzte
Schriftzeichen bedeutet ein Schriftzeichen, das aus dem FIFO gelesen
werden könnte.
Der R-Zeiger befindet sich zu dieser Zeit zwei Schriftzeichen hinter
dem W-Zeiger. Weil man LEERLAUF-Schriftzeichen empfing, nachdem
die minimale Lücke
erreicht war, hat sich der W-Zeiger nicht vorbewegt. Mit anderen
Worten wurden LEERLAUF-Schriftzeichen zwischen t8 und
t9 absichtlich aus dem eingehenden Paketstrom
fallen gelassen. Falls bei t9 die letzten zwei
empfangenen Schriftzeichen LEERLAUF darstellten, wird es dann bei
dem nächsten
Taktzyklus (nächstes
Schriftzeichen) sicher sein, zu dem schnellen Weg umzuschalten.
Das einzige, was aus dem eingehenden Paketstrom verloren gehen könnte, ist
dieser LEERLAUF (d. h. zwei Schriftzeichen, die einen LEERLAUF darstellen).
Und das ist in Ordnung, es ist eigentlich was man will. In diesem
Fall werden Ereignisse: FIFO == 2 und letztes empfangenes Schriftzeichen
== LEERLAUF erzeugt und geht die Zustandsmaschine der Steuerlogik
zurück
zu dem Zustand S0 (schneller Weg). Die Steuerlogik 230 schaltet über eine
Schnittstelle 232–274 den
MUX 270 zu dem Zustand 0 und ermöglicht, dass der Paketstrom
dem schnellen Weg (212–271–273–212–222)
folgt.
-
Wie
es gezeigt ist, kommt das Paket P3 nach t9 an.
Falls jedoch durch einen Zufall das letzte empfangene Schriftzeichen
das Anfangsrahmenschriftzeichen des Pakets P3 war, dann hat man
keine andere Wahl, als in dem FIFO-Weg zu bleiben, bis die Zwischenpaketlücke lang
genug ist (minimale Lücke
plus zwei zusätzliche
Schriftzeichen, die einen LEERLAUF darstellen), um zu ermöglichen,
dass man zu dem schnellen Weg schalten kann. Dies ist ein sehr entscheidendes
Element der Erfindung. Ein Schalten von dem FIFO-Weg zu dem schnellen
Weg kann lediglich auftreten, wenn zwei Schriftzeichen, die einen
Leerlauf darstellen und empfangen aber noch nicht gesendet wurden,
fallen gelassen werden können.
Und die einzigen Schriftzeichen, die fallen gelassen werden können, sind
LEERLÄUFE
(jeweils zwei Schriftzeichen), natürlich unter der Annahme, dass
die minimale Lücke
bereits gesendet wurde. Der Beschaffenheit desselben nach ist der
FIFO-Weg immer zumindest zwei Schriftzeichen hinter dem schnellen
Weg, d. h. der R-Zeiger folgt dem W-Zeiger mit mindestens zwei Schriftzeichen.
-
Verzögerung von
zwei Schriftzeichen. Ein Ausführungsbeispiel
der vorliegenden Erfindung, das eine Verzögerung von zwei Schriftzeichen
(Größe eines
LEERLAUFS) verwendet, ist in 6 bis 8 gezeigt. Wie
es in 6 gezeigt ist, verwendet dieses Ausführungsbeispiel
ein Register 640 in dem Weg, dessen Ausgang 642 entweder
einem FIFO 650 zugeführt
ist oder die Logik durch einen MUx 680 und einen SERialisierer 620 verlässt. Der
Unterschied zwischen diesem Ausführungsbeispiel
und dem Ausführungsbeispiel
mit null Verzögerung
ist zweifach. Bei dem schnellen Weg dieses Ausführungsbeispiels bringt das
Register 640 eine permanente Verzögerung von zwei Schriftzeichen
ein und das zusätzliche
Paket wird nicht von einem getrennten Speicher in den Paketstrom
injiziert, sondern wird anstelle dessen zuerst zu dem FIFO 650 kopiert.
Dies kann eine Implementierung der Speichersteuerung und -verwaltung
des FIFO 650 vereinfachen. 6 bis 8 stellen
das Blockdiagram, eine geeignete Zustandsmaschine und beispielhafte
Zustandsübergänge für dieses
Ausführungsbeispiel
dar.
-
Lösung mit
beliebiger Verzögerung.
Ein Ausführungsbeispiel
der Erfindung, das eine Lösung
mit beliebiger Verzögerung
verwendet, ist eine vereinfachte Version von null Verzögerung ohne
eine Option einer Verzögerung
von null. 9 bis 11 stellen
dieses Ausführungsbeispiel
dar, das für
Anwendungen, die Verzögerungen
erfordern, anwendbar ist. Beispielsweise erfordert eine Manipulation
von IP-Kopfblöcken oder
eines ganzen Pakets eine Zurückhaltung
vor einem Freigeben und Modifizieren von Informationen in dem Paketkopfblock.
Dasselbe ist konzeptionell ähnlich
Speicher- und Weiterleitungstechniken, die durch Paketschalter verwendet
werden. Sowohl das zusätzliche
Paket 240 als auch der Paketstrom 211 sind in
dem FIFO 250 gespeichert und werden selektiv unter einer
Steuerung einer Zustandsmaschine gemäß 11 zu
dem SERialisierer 220 geleitet.