-
Gebiet der Erfindung
-
Die
Erfindung betrifft Switches im Zeitmultiplexbetrieb. Die Erfindung
betrifft insbesondere Switches im Zeitmultiplexbetrieb, bei denen
eine Speicherbusbreite unabhängig
von der Breite irgendeines Pakets ist.
-
Hintergrund der Erfindung
-
Der
Zeitmultiplexbetrieb (TDM, TDM = Time Division Multiplexing) ist
eine Vorgehensweise, die man zum Implementieren eines Switching-Systems einsetzt.
Man betrachte ein Switching-Fabric mit N Eingabeports, die jeweils
Pakete mit einer Rate R empfangen, und mit N Ausgabeports, die jeweils
Pakete mit einer Rate R senden, siehe 1. Für ein TDM-Switching-System
mit gemeinsamem Speicher benötigt
man einen einzigen Speicherbus, der eine Gesamtbandbreite von 2 × N × R hat.
Die ankommenden Pakete werden verbunden und in den Speicher geschrieben.
Nach dem Schreiben in den Speicher werden die Pakete aus dem Speicher
gelesen und an die Ausgabeports übertragen.
-
Dieses
System arbeitet korrekt und in nicht blockierender Weise, solange
der gemeinsame Speicher eine ausreichende Bandbreite zum Bedienen
aller Eingabeports und Ausgabeports aufweist. Die Speicherbandbreite
kann man durch das Erhöhen der
Geschwindigkeit und der Breite des Speicherbusses vergrößern. Die
derzeitigen Speicherbusgeschwindigkeiten sind technisch auf grob
300 MHz begrenzt, wobei mikroprozessorsynchrone Cachespeicher verwendet
werden. Für
eine weitere Erhöhung der
Speicherbandbreite muss man den Speicherbus verbreitern.
-
Es
sei nun ein beispielhaftes TDM-Switching-System mit vier Eingängen und
vier Ausgängen
betrachtet, siehe 2. Die Eingabeports und Ausgabeports
bestehen aus 1 Bit breiten Datenwegen und laufen mit einer einzigen
festen Taktrate, die für
alle Ports und den Speicherbus gleich ist. Es sei davon ausgegangen,
dass alle Pakete 8 Bit lang sind. Das Switching-Fabric kann man
mit einem 8 Bit breiten TDM-Speicherbus implementieren. Über eine
Periode von 8 Taktzyklen wird jedem Eingabeport ein Taktzyklus zum
Schreiben eines Pakets (8 Bit) in den Speicher zugeordnet, und jedem
Ausgabeport wird ein Taktzyklus zum Lesen des Pakets aus dem Speicher
zugewiesen.
-
Es
gibt gewisse Punkte, die den Entwurf von TDM-Switching-Systemen
in der Praxis schwierig gestalten. Abhängig von der Anwendung des
Switching-Systems haben Pakete in der Regel unterschiedliche Größen. Unterschiedlich
große
Pakete beeinträchtigen
die Leistung des TDM-Systems, da die Pakete auf dem Speicherbus
fragmentiert werden. Nutzt ein Paket keine ganzzahlige Anzahl an Speicherzyklen,
so wird Speicher bandbreite für
Speicherzyklen verschwendet, die Daten lesen oder schreiben, die
die Speicherbusbreite nicht ausnutzen. Normalerweise werden TDM-Systeme
mit einer größeren Bandbreite
als 2 × N × R implementiert,
um die Schwachpunkte durch die Fragmentierung auszugleichen.
-
Fragmentierungsfragen
werden wesentlich, wenn sich die Speicherbandbreite den Paketdaten mit
der geringsten Größe nähert oder
sie überschreitet.
Man betrachte ein System mit einer Speicherbusbreite, die gleich
der doppelten minimalen Paketlänge
ist. In einer Periode, in der alle empfangenen Pakete eine Länge gleich
der minimalen Paketlänge
haben, wird die Speichersystem-Bandbreite um 50 Prozent verringert
(oder ist zu 50 Prozent wirksam), da alle in den Speicher geschriebenen
Pakete nur eine Hälfte
der Speicherbus-Datenbits verwenden.
-
Aufgrund
der Paketfragmentierung auf dem Speicherbus werden in üblichen
TDM-Switching-Systemen
Busbreiten verwendet, die mindestens so breit sind wie eine minimale
Paketlänge.
-
Die
Gesamtbandbreite eines TDM-Switching-Systems mit gemeinsamem Speicher
ist durch die Bandbreite des Speicherbusses begrenzt. Die Bandbreite
des Speicherbusses wird durch seine Geschwindigkeit (Taktrate) und
seine Breite (Anzahl der Bits) bestimmt. Unter der Vorgabe, dass
die Speichergeschwindigkeiten durch die Technologie der verfügbaren Speicherkomponenten
festgelegt sind, ist die Gesamtbandbreite von TDM-Switches durch die
minimale Paketgröße begrenzt.
-
Eine
Veröffentlichung
mit dem Titel "Fast Switched
Backplane for a gigabit switched router" von McKeown (DEPARTMENT OF ELECTRICAL ENGINEERING,
STANFORD UNIVERSITY, Dezember 1997 (1997-12), Seiten 1–30) lehrt
eine schnelle geschaltete Backplane für einen geschalteten Gigabit-Router
und betrifft hauptsächlich
die geschaltete Backplane, die für
den 12,000 G S R von Cisco entwickelt wurde. Dieser Router weist
eine geschaltete Hochleistungs-Backplanearchitektur auf, die 16
Ports gleichzeitig schalten kann, und zwar jeden mit einer Leitungsrate
von 2,4 Gb/s. Die Backplane weist einen parallelen kompakten Entwurf
auf, der einen extrem hohen Durchsatz sowohl für Unicast- als auch Multicast-Verkehr
liefert.
-
Eine
Veröffentlichung
mit dem Titel "Review of
recent shared memory based ATM switches" von Sharma N. K. (COMPUTER COMMUNICATIONS, ELSEVIER
SCIENCE PUBLISHERS BV, AMSTERDAM, NL, 1999-03-25, XPO04223020) offenbart
einen N × N- Zellen-Switch mit
gemeinsamem Speicher, der einen Zeitmultiplexbus enthält, wobei
in jedem Zeitschlitz bis zu N Zellen von Eingabeports in den gemeinsamen
Speicher geschrieben und bis zu N Zellen aus dem gemeinsamen Speicher
gelesen werden können.
-
Zudem
betrifft US-5,301,192 ein temporäres Informationsspeichersystem,
das einen Pufferspeicher umfasst, der Daten strukturiert in Datenblöcken mit
fester oder variabler Länge
speichert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Erfindung betrifft ein Switching-System. Das System umfasst I Eingabeport-Mechanismen, die
Pakete mit einer Breite von einer Kommunikationsleitung empfangen,
wobei I eine ganze Zahl und größer oder
gleich 1 ist. Das System umfasst O Ausgabeport-Mechanismen, die
Pakete an eine Kommunikationsleitung senden, wobei O eine ganze
Zahl und größer oder
gleich 1 ist. Das System umfasst einen Trägermechanismus, auf dem Pakete
verkehren. Der Trägermechanismus
hat eine Breite, die breiter ist als die Breite der Pakete. Der
Trägermechanismus ist
an jeden Eingabeport-Mechanismus und jeden Ausgabeport-Mechanismus
angeschlossen. Das System umfasst einen Speichermechanismus, in dem
Pakete abgelegt werden. Der Speichermechanismus ist mit dem Trägermechanismus
verbunden. Das System umfasst einen Mechanismus, der Pakete von
den Eingabeport-Mechanismen über
den Trägermechanismus
an den Speichermechanismus liefert. Der Liefermechanismus kann Pakete
oder Teile von Paketen, deren Gesamtbreite gleich der Breite des
Trägermechanismus
ist, in jedem Übertragungszyklus
an den Speichermechanismus übertragen. Zudem
enthält
der Liefermechanismus Eingabeschlangengruppen, die mit dem Trägermechanismus und
den Eingabeport-Mechanismen
verbunden sind und Pakete speichern, die die Eingabeport-Mechanismen
empfangen haben, und Ausgabeschlangengruppen, die mit dem Liefermechanismus
und den Ausgabeport-Mechanismen verbunden sind und Pakete speichern,
die an die Ausgabeport-Mechanismen zu senden sind, wobei jede Schlangengruppe einem
Paket zugeordnet ist.
-
Die
Erfindung betrifft ein Verfahren zum Vermitteln von Paketen, die
eine Breite besitzen, von Eingabemechanismen zu Ausgabemechanismen. Das
Verfahren umfasst die Schritte des Empfangens eines ersten Pakets
und mindestens eines zweiten Pakets an einem Switch-Mechanismus.
Das Verfahren umfasst die Schritte des Übertragens der Daten des ersten
Pakets und des zweiten Pakets an einen Speichermechanismus mit Hilfe
des Zeitmultiplexverfahrens auf einem Bus, der eine Breite aufweist,
die eine positive nicht ganzzahlige Vielfache der Breite der Pakete
ist, so dass die Daten der Pakete einen vorbestimmten Abschnitt
der Breite des Busses füllen,
indem man das erste Paket und zumindest das zweite Paket in einer
Eingabeschlangengruppe anordnet und die Daten in der Eingabeschlangengruppe
während
eines zugewiesenen Zeitschlitzes auf dem Bus an den Speichermechanismus überträgt, so dass
die Daten den vorbestimmten Abschnitt der Breite des Busses füllen.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
In
den beiliegenden Zeichnungen werden die bevorzugte Ausführungsform
der Erfindung und bevorzugte Verfahren zum praktischen Ausführen der Erfindung
erläutert.
-
Es
zeigt:
-
1 eine
Skizze eines herkömmlichen Zeitmultiplex-Switchs;
-
2 eine
Skizze eines herkömmlichen Zeitmultiplex-Switchs
mit 4 Eingängen
und 4 Ausgängen;
-
3 eine
Skizze eines Switching-Systems der Erfindung;
-
4 eine
Skizze eines Switching-Systems der Erfindung;
-
5 eine
skizzierte Darstellung eines Codeworts;
-
6 eine
Skizze eines Datenwegs eines Vier-Ports-Wegs;
-
7 eine
Skizze eines Speicherbusses, der im Zeitmultiplex unterteilt wird;
-
8 eine
Skizze eines Speichers; und
-
9 eine
Skizze von fünf
FIFO-Schlangen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es
wird nun Bezug auf die Zeichnungen genommen, und insbesondere auf 3 und 4. Gleiche
Bezugszeichen in den Abbildungen beziehen sich auf ähnliche
oder identische Teile. Dargestellt ist ein Switching-System 10.
Das System 10 umfasst I Eingabeport-Mechanismen 12,
die eine Breite haben und Pakete von einer Kommunikationsleitung 16 empfangen,
wobei I eine ganze Zahl und größer oder
gleich 1 ist. Ein Eingabeport-Mechanismus 12 enthält bevorzugt
einen Eingabeport. Das System 10 umfasst O Ausgabeport-Mechanismen 14,
die eine Breite haben und Pakete an eine Kommunikationsleitung 16 senden,
wobei O eine ganze Zahl und größer oder
gleich 1 ist. Ein Ausgabeport-Mechanismus 14 enthält bevorzugt
einen Ausgabeport. Das System 10 umfasst einen Trägermechanismus 18,
auf dem Pakete verkehren. Die Breite des Trägermechanismus 18 ist
breiter als die Breite des Eingabemechanismus und des Ausgabemechanismus.
Der Trägermechanismus 18 ist
an jeden Eingabeport-Mechanismus und jeden Ausgabeport-Mechanismus
angeschlossen. Das System 10 umfasst einen Speichermechanismus 22,
in dem Pakete gespeichert werden. Der Speichermechanismus 22 ist mit dem
Trägermechanismus 18 verbunden.
Das System 10 umfasst einen Mechanismus, der Pakete von
den Eingabeport-Mechanismen 12 über den Trägermechanismus 18 an
den Speichermechanismus 22 liefert. Der Liefermechanismus 20 kann
Pakete oder Teile von Paketen, deren Gesamtbreite gleich der Breite
des Trägermechanismus 18 ist,
in jedem Übertragungszyklus
an den Speichermechanismus 22 übertragen.
-
Bevorzugt
ist die Breite des Trägermechanismus 18 unabhängig von
der Breite irgendeines Eingabemechanismus oder Ausgabemechanismus.
Der Eingabeport-Mechanismus empfängt
bevorzugt Pakete mit variabler Größe. Der Ausgabemechanismus sendet
bevorzugt Pakete mit variabler Größe an die Kommunikationsleitung 16.
Die Kommunikationsleitung 16 kann ein ATM-Netz sein.
-
Der
Liefermechanismus 20 liefert bevorzugt Pakete vom Speichermechanismus 22 über den
Trägermechanismus 18 an
die Ausgabeport-Mechanismen 14. Der Liefermechanismus 20 kann
Pakete oder Teile von Paketen befördern, deren Gesamtgröße gleich
der Breite des Trägermechanismus 18 ist, und
zwar in jedem Übertragungszyklus
aus dem Speichermechanismus 22.
-
Der
Liefermechanismus 20 enthält bevorzugt eine Eingangsstufe
von Schlangengruppen 24, die mit dem Trägermechanismus 18 und
den Eingabeport-Mechanismen 12 verbunden ist, die Pakete speichert,
die die Eingabeport-Mechanismen 12 empfangen, und eine
Ausgangsstufe von Schlangengruppen 26, die mit dem Liefermechanismus 20 und den
Ausgabeport-Mechanismus 14 verbunden ist, die Pakete speichert,
die an den Ausgabeport-Mechanismus 14 zu senden sind, wobei
jede Schlangengruppe einem Paket entspricht. Der Liefermechanismus 20 enthält bevorzugt
einen Klassifiziermechanismus 28, der ein Paket, das der
Eingabeport-Mechanismus empfängt,
in einer zugeordneten Eingabeschlangengruppe platziert, wobei der
Klassifiziermechanismus 28 mit den Eingabeport-Mechanismen 12 und
den Eingabeschlangengruppen 24 verbunden ist. Der Liefermechanismus 20 enthält bevorzugt
einen Verarbeitungsmechanismus 30, der ein Paket in einer
Ausgabeschlangengruppe in einem zugeordneten Ausgabeport-Mechanismus 14 platziert,
wobei der Verarbeitungsmechanismus 30 mit den Ausgabeport-Mechanismen 14 und
den Ausgabeschlangengruppen 26 verbunden ist.
-
Der
Klassifiziermechanismus 28 enthält bevorzugt eine erste endliche
Schreib-Zustandsmaschine 32,
die Pakete in eine zugeordnete Eingabeschlange schreibt, und der
Liefermechanismus 20 enthält eine zweite endliche Schreib-Zustandsmaschine 34,
die Pakete von einer Eingabeschlangengruppe in den Speichermechanismus 22 schreibt, und er
enthält
eine erste endliche Lese-Zustandsmaschine 36, die Pakete
aus dem Speichermechanismus 22 in eine Ausgabeschlangengruppe
liest, und der Verarbeitungsmechanismus 30 enthält eine
zweite endliche Lese-Zustandsmaschine 38, die ein Paket
aus der Ausgabeschlangengruppe in das Netz liest.
-
Der
Speichermechanismus 22 enthält bevorzugt einen gemeinsamen
Speicher 40. Bevorzugt verkehren Pakete oder Teile von
Paketen im Zeitmultiplexverfahren auf dem Trägermechanismus 18.
Der Trägermechanismus 18 enthält bevorzugt
einen Bus 42. Bevorzugt überträgt die erste endliche Lese-Zustandsmaschine 36 nur
dann Daten von Paketen einer Eingabeschlangengruppe zum Bus 42,
wenn die Eingabeschlangengruppe mindestens eine Cache-Line an Daten
enthält.
-
Die
Erfindung betrifft ein Switching-System 10 für Pakete.
Das System 10 umfasst eine Zentralressource 44,
die eine Breite und eine Gesamtbandbreite aufweist, und Eingabeport-Mechanismen 12 und
Ausgabeport-Mechanismen 14 zum Empfangen bzw. Senden von
Paketen. Die Zentralressource 44 ist über Zeitschlitze unterteilt,
die den Eingabeport-Mechanismen 12 und Ausgabeport-Mechanismen 14 zugewiesen
sind. Die Breite der Zentralressource 44 ist unabhängig von
irgendeiner Breite eines Eingabeport-Mechanismus oder eines Ausgabeport-Mechanismus,
und die Gesamtbandbreite kann unbegrenzt wachsen. Das System 10 umfasst
einen Speichermechanismus 22, der Pakete speichert. Der Speichermechanismus 22 ist
mit der Zentralressource 44 verbunden.
-
Die
Zentralressource 44 enthält bevorzugt einen Speicherbus 42.
Die Zentralressource 44 enthält bevorzugt Schlangengruppen,
in die Pakete klassifiziert werden, und die Pakete werden von den Schlangengruppen
aus dem Speichermechanismus 22 gelesen bzw. dorthin geschrieben.
-
Die
Erfindung betrifft ein Switching-System 10. Das System 10 umfasst
einen Zeitmultiplexbus 42. Das System 10 umfasst
einen mit dem Bus 42 verbundenen Speichermechanismus 22,
auf den über
das Zeitmultiplexen des Busses 42 zugegriffen wird. Das
System 10 umfasst einen Mechanismus, der Daten von Paketen über den
Bus 42 aus dem Speichermechanismus 22 liest bzw.
dorthin schreibt, ohne die Paketgrenzen der Daten zu kennen.
-
Die
Erfindung betrifft ein Switching-System 10. Das System 10 umfasst
einen Zeitmultiplex-Trägermechanismus 18,
der eine Breite besitzt. Das System 10 umfasst einen Speichermechanismus 22, der
mit dem Trägermechanismus 18 verbunden
ist. Das System 10 umfasst einen Mechanismus zum Liefern
von Daten von Paketen an den Speichermechanismus 22, und
zwar von einem Eingabeport-Mechanismus, der eine Breite hat, durch
die die Daten der Pakete die Breite des Busses 42 durch
Zeitmultiplexen füllen.
Das System 10 umfasst einen Mechanismus zum Liefern von
Daten von Paketen vom Speichermechanismus 22 an einen Ausgabeport-Mechanismus,
der eine Breite hat. Die Breite des Busses 42 ist eine
positive nicht ganzzahlige Vielfache der Breite der Eingabe- und
Ausgabeport-Mechanismen.
-
Die
Erfindung betrifft ein Verfahren zum Vermitteln von Paketen. Das
Verfahren umfasst die Schritte des Empfangens eines ersten Pakets
und mindestens eines zweiten Pakets an einem Switch-Mechanismus,
der eine Breite hat. Das Verfahren umfasst die Schritte des Übertragens
der Daten des ersten Pakets und des zweiten Pakets an einen Speichermechanismus 22 mit
Hilfe des Zeitmultiplexverfahrens auf einem Bus 42, der
eine Breite aufweist, so dass die Daten der Pakete einen vorbestimmten
Abschnitt der Breite des Busses 42 füllen. Die Breite des Busses 42 unterscheidet
sich von der Breite des Eingabeport-Mechanismus.
-
Die
Breite des Busses 42 ist bevorzugt eine positive Vielfache
der Breite des Eingabeport-Mechanismus, und sie kann eine nicht
ganzzahlige Vielfache sein. Bevorzugt umfasst der Übertragungsschritt die
Schritte des Anordnens des ersten Pakets und zumindest des zweiten
Pakets in einer Eingabestufen-Schlangengruppe und das Übertragen
der Daten in der Eingabestufen-Schlangengruppe während eines zugewiesenen Zeitschlitzes
auf dem Bus 42 an den Speichermechanismus 22,
so dass die Daten den vorbestimmten Abschnitt der Breite des Busses 42 füllen.
-
Vor
dem Datenübertragungsschritt
findet bevorzugt der Schritt statt, in dem festgestellt wird, dass die
Eingabeschlangengruppe mindestens ausreichend Daten zum Füllen des
vorbestimmten Abschnitts der Breite des Busses 42 aufweist,
bevor die Daten auf den Bus 42 übertragen werden. Vor dem Datenübertragungsschritt
findet bevorzugt der Schritt statt, in dem festgestellt wird, dass
die Eingabestufen-Schlangengruppe mindestens eine Cache-Line an
Daten enthält.
-
Bei
Betrieb der Erfindung, d. h. des Systems 10, wird die Speicherbreitenbeschränkung von üblichen
TDM-Switching-Systemen entfernt, indem man Pakete in Eingabestufen-Schlangengruppen 24 klassifiziert
und anschließend
Daten von den Eingabestufen-Schlangengruppen 24 in den
Speicher schreibt bzw. von dort liest. Die Speicherbreite ist unabhängig von
der minimalen Paketgröße, und
die Gesamtbandbreite des TDM- Switching-Systems 10 kann
unbeschränkt
wachsen.
-
Die
Pakete, die an den Eingabeports des Switching-Systems 10 eintreffen,
werden einer festen Anzahl von Schlangengruppen 24 zugeordnet.
Eine Schlange wird für
jede Gruppe in drei Stufen implementiert:
- 1.
Eingabestufe: Das Ende der Schlange wird in dem Switching-Fabric
von einer endlichen Schreib-Zustandsmaschine (W-FSM, W-FSM = Write
Finite State Machine) implementiert.
- 2. Speicherstufe: Die Mitte der Schlange wird im gemeinsamen
Speicher implementiert.
- 3. Ausgabestufe: Der Kopf der Schlange wird in dem Switching-Fabric
von einer endlichen Lese-Zustandsmaschine (R-FSM, R-FSM = Read Finite
State Machine) implementiert.
-
Lese-
und Schreibvorgänge
im gemeinsamen Speicher werden auf Daten in der Schlangengruppe
implementiert, und sie werden ohne Kenntnis der Paketgrenzen der
Daten in der Schlange vorgenommen. Der Zugriff auf den gemeinsamen
Speicher wird den Lese-Zustandsmaschinen und Schreib-Zustandsmaschinen über das
Zeitmultiplexen des gemeinsamen Speicherbusses 42 zugewiesen.
Die Breite des gemeinsamen Speicherbusses 42 wird als Cache-Line
bezeichnet.
-
Die
W-FSM wird wie folgt implementiert:
Füllprozess der W-FSM-Schlange:
Pakete
kommen von den Eingabeports, werden in Kategorien eingestuft und
dem Ende einer Eingangsstufen-W-FSM-Gruppenschlange zugefügt.
Entleerungsprozess
der W-FSM-Schlange:
Bei (zugewiesenem Zeitschlitz für den TDM-Bus)
Falls
(W-FSM mindestens eine Cache-Line an Daten enthält)
Schreibe Cache-Line
am Kopf der W-FSM-Schlange an das Ende der Gruppenschlange des gemeinsamen
Speichers.
-
Die
R-FSM wird wie folgt implementiert:
Füllprozess der R-FSM-Schlange:
Bei
(zugewiesenem Zeitschlitz für
den TDM-Bus)
Falls (R-FSM keine Daten enthält)
Falls (der gemeinsame
Speicher Daten für
diese Gruppenschlange enthält)
Lese
Cache-Line am Kopf der Schlange im gemeinsamen Speicher und setzte
sie ans Ende der R-FSM-Schlange.
sonst (der gemeinsame Speicher
enthält
KEINE Daten für
diese Gruppenschlange)
Lese jegliche Daten vom Kopf der W-FSM-Schlange (bis
zu einer Cache-Line) und setzte sie ans Ende der R-FSM-Schlange.
Entleerungsprozess
der R-FSM-Schlange:
Pakete werden vom Kopf der Ausgangsstufen-R-FSM-Schlange
entfernt, verarbeitet und an einen Ausgabeport übertragen.
-
Im
Einzelnen kommt zunächst
eine Zelle oder ein Paket an einem Eingabeport des Switchs 45 an.
Eine erste endliche Schreib-Zustandsmaschine 32 klassifiziert
das Paket in eine Schlangengruppe 24. Kommen weitere Pakete
an Eingabeports des Switchs 45 an, so werden sie ebenfalls
von der ersten endlichen Schreib-Zustandsmaschine 32 in
ihre entsprechende Schlangengruppe 24 klassifiziert. Nach
dem Klassifizieren in eine Schlangengruppe werden sie an das Ende
der zugehörigen
Eingabestufen-Schlangengruppe
angehängt.
Dieses Klassifizieren und Füllen
der Zellen, die an den Eingabeports des Switchs 45 empfangen
werden, erfolgt kontinuierlich. Für eine bestimmte Eingabeschlangengruppe 24 gilt,
dass ein Paket, wenn es kategorisiert und in die Schlange klassifiziert
ist, dem Ende der entsprechenden Eingabeschlangengruppe 24 zugefügt wird.
-
Eine
zweite endliche Schreib-Zustandsmaschine 34, die der Eingabestufen-Schlangengruppe 24 zugeordnet
ist, verfolgt die Anzahl der Pakete in der Eingabestufen-Schlangengruppe 24.
Sind so viele Pakete in der Eingabestufen-Schlangengruppe 24, dass
die Daten in der Eingabestufen-Schlangengruppe 24 die Cache-Line
des Busses des Speichers 40 füllen, so wartet die zweite
endliche Schreib-Zustandsmaschine 34 darauf, dass der zugewiesene Zeitschlitz
der Eingabestufen-Schlangengruppe 24 auf dem Bus kommt.
Hat die zweite endliche Schreib-Zustandsmaschine 34 bisher
bei Ankunft des zugewiesenen Zeitschlitzes keine Daten aus der Eingabestufen-Schlangengruppe 24 auf
den Bus gelegt, weil nicht genügend
Daten zum Füllen
der Cache-Line in der Eingabestufen-Schlangengruppe 24 waren,
so sind nun genügend
Daten zum Füllen
der Cache-Line vorhanden, und die zweite endliche Schreib-Zustandsmaschine 34 sendet
während
des zugewiesenen Zeitschlitzes der Eingabeschlangengruppe 24 ausreichend
Daten von der Eingabestufen-Schlangengruppe 24 zum Füllen der
Cache-Line auf den Bus. Der zugewiesene Schlitz dauert ausreichend
lang, so dass eine Cache-Line mit Daten von der Eingabestufen-Schlangengruppe 24 auf
den Bus gesendet werden kann. Nach dem Senden der Cache-Line mit
Daten von der Eingabestufen-Schlangengruppe 24 auf den
Bus werden die in der Eingabestufen-Schlangengruppe 24 verbleibenden
Daten an den Kopf der Eingabestufen-Schlangengruppe 24 verschoben.
Zudem schaffen die an den Kopf der Eingabestufen-Schlangengruppe 24 verschobenen Daten
Platz für
zusätzliche
Pakete und damit Daten, die in der Eingabestufen-Schlangengruppe 24 angeordnet
werden können.
Es kann vorkommen, dass Daten von der Eingabestufen-Schlangengruppe 24 auf
den Bus gesendet werden und gleichzeitig Zellen am Ende der Eingabestufen-Schlangengruppe 24 angeordnet
werden.
-
Abhängig von
der Größe der Cache-Line können die
Daten, die über
den Bus gesendet werden, keine ganzzahlige Vielfache der Pakete
in der Eingabeschlangengruppe 24 sein. Als Beispiel habe die
Cache-Line eine Breite, bei der ein Teil eines Pakets in der Eingabestufen-Schlangengruppe 24 verbleibt,
nachdem die Cache-Line mit Daten auf den Bus zum Speicher 40 gesendet
ist. Die zweite endliche Schreib-Zustandsmaschine 34 ignoriert
Zellen- oder Paketgrenzen und kümmert
sich nur um das Füllen
der Cache-Line mit Daten, und zwar unabhängig davon, ob dabei die Integrität der Zelle
oder des Pakets verletzt wird. Damit wird eine Zelle oder ein Paket
aufgeteilt, um die Forderung zu erfüllen, dass die Daten die Cache-Line
während
des zugewiesenen Zeitschlitzes füllen
müssen.
-
Kommt
die Cache-Line mit Daten auf dem Bus am gemeinsamen Speicher 40 an,
so legt ein Controller 47 die Cache-Line mit Daten im gemeinsamen
Speicher 40 ab und zeichnet die Adresse im gemeinsamen
Speicher 40 auf, an der die Cache-Line gespeichert ist,
sowie die Reihenfolge dieser Cache-Line aus der Eingabestufen-Schlangengruppe 24 und
die Eingabestufen-Schlangengruppe 24, von der die Cache-Line
kommt. Im Verlauf der Zeit speichert der Controller 47 Daten-Cache-Lines
von unterschiedlichen Eingabestufen-Schlangengruppen 24 im
gemeinsamen Speicher 40 sowie die folgende Cache-Line,
die die Eingabestufen-Schlangengruppe 24 an den gemeinsamen
Speicher 40 sendet. Der Controller 47 bewahrt
die Adressen auf, an denen die Cache-Lines von einer Eingabestufen-Schlangengruppe 24,
abgelegt sind. Nachfolgende Cache-Lines von einer Eingabestufen-Schlangengruppe 24 müssen nicht
notwendig an der gleichen Adresse oder auch an zwei benachbarten
Adressen gespeichert werden, obwohl beispielsweise die erste Cache-Line
von der Eingabestufen-Schlangengruppe 24 den ersten Teil
einer Zelle enthalten kann, und die zweite Cache-Line von der Eingabestufen-Schlangengruppe 24 den
zweiten Teil der Zelle enthalten kann. Dies ist nicht erforderlich,
solange der Controller 47 weiß, wo sich die Cache-Lines
von der Eingabestufen-Schlangengruppe 24 befinden sowie
die Reihenfolge, mit der die Cache-Lines am gemeinsamen Speicher 40 angekommen
sind.
-
Ist
ein Paket von einem Ausgabeport zu übertragen, so wartet eine erste
endliche Lese-Zustandsmaschine 36, die einer Ausgabestufen-Schlangengruppe 26 zugeordnet
ist, darauf, dass der der Ausgabestufen-Schlangengruppe 26 zugewiesene
Zeitschlitz auf dem Bus kommt. Die erste endliche Lese-Zustandsmaschine 36 verfolgt
die Daten im gemeinsamen Speicher 40, die in die Ausgabestufen-Schlangengruppe 26 gelesen
werden müssen.
Die erste endliche Lese-Zustandsmaschine 36 kommuniziert
mit dem Controller 47 und der endlichen Schreib-Zustandsmaschine
und weiß daher, welche
Daten an die Ausgabestufen-Schlangengruppe 26 gehen, zu
der sie gehört.
Kommt der zugewiesene Zeitschlitz für die Ausgabestufen-Schlangengruppe 26,
so wird die Cache-Line, die nun für das Lesen aus dem gemeinsamen
Speicher 40 an der Reihe ist, von der ersten endlichen
Lese-Zustandsmaschine 36 an das Ende der Ausgabestufen-Schlangengruppe 26 gelesen.
Kommt der nächste
zugewiesene Zeitschlitz für
die Ausgabestufen-Schlangengruppe 26,
so wird die Cache-Line im gemeinsamen Speicher 40 für die Ausgabestufen-Schlangengruppe 26 von
der ersten endlichen Lese-Zustandsmaschine 36 in die Ausgabestufen-Schlangengruppe 26 gelesen.
Die erste endliche Lese-Zustandsmaschine 36 kennt die Adresse,
von der eine Cache-Line zu lesen ist, durch ihre Kommunikation mit
dem Controller 47. Da die Cache-Lines der Reihe nach gelesen
und am Ende der Ausgabestufen-Schlangengruppe 26 angeordnet
werden, werden jegliche Zellen, die während der Schreibstufe in den
gemeinsamen Speicher 40 unterbrochen wurden, wieder vereint,
wenn die getrennten Cache-Lines in der Ausgabestufen-Schlangengruppe 26 zusammengesetzt
werden. Befinden sich keine Daten im gemeinsamen Speicher 40,
wenn der zugewiesene Zeitschlitz für die Ausgabestufen-Schlangengruppe
kommt, so liest die endliche Lese-Zustandsmaschine Daten bis zu
einer Cache-Line direkt von einer Eingabestufen-Schlangengruppe 24,
deren Daten schließlich
in die Ausgabestufen-Schlangengruppe 26 gelangen.
-
Eine
zweite endliche Lese-Zustandsmaschine 38 überwacht
die Pakete in den Ausgabestufen-Schlangengruppen. Nur dann, wenn
eine vorbestimmte Anzahl Pakete in der Ausgabestufen-Schlangengruppe 26 vorliegen,
liest die zweite endliche Lese-Zustandsmaschine 38 Pakete
bis zu einer vorbestimmten Menge aus der Ausgabestufen-Schlangengruppe 26 und
sendet sie an einen Ausgabeport, der sie auf das Netz sendet.
-
Da
alle Lese- und Schreibvorgänge
bezüglich
des Speichers eine vollständige
Cache-Line an Daten enthalten, beträgt die Effizienz des Speicherbusses 42 100
Prozent. Kleine Pakete verursachen keine Zerstückelung der Daten auf dem Speicherbus 42.
Zudem kann die Speicherbusbreite unbeschränkt wachsen und ist nicht durch
die Paketgröße begrenzt.
-
Man
kann das Schlangengruppenmodell zum Implementieren beliebiger Warteschlangenstrukturen
einsetzen. Zum Implementieren von Ausgabeschlangen wird jedem Ausgabeport
eine Schlangengruppe zugewiesen. Eine Schlangengruppe besteht aus
der Eingabestufen-Schlangengruppe, einer Anzahl Cache-Lines, die
im gemeinsamen Speicher abgelegt sind, und der Ausgabestufen-Schlangengruppe.
Der Paketklassifizierer untersucht jedes Paket am Eingang und stuft
das Paket in die geeignete Ausgabeschlange ein. Die Pakete werden
an die Eingabestufen-Schlangengruppe geleitet, die dieser Ausgabeschlange
zugeordnet ist. Die Ausgabeschlangen 28 werden mit Hilfe
der W-FSMs und der
R-FSMs in die Schlange zum bzw. vom Speicher eingereiht. Nach der
R-FSM werden die
Pakete unmittelbar in eine Schlange für einen Ausgabeport eingereiht.
-
Eingabeschlangen
werden mit Hilfe eines trivialen Paketklassifizierers implementiert,
indem man jedem Eingabeport eine Schlangengruppe 24 zuordnet.
-
Ein
prioritätsgestütztes Schema
kann man wie folgt implementieren. Für jede von mehreren Prioritätsebenen
wird eine Schlangengruppe definiert. Bei der Eingabe wird ein Paket
in eine der Prioritätsschlangengruppen
eingeordnet. Die Schlangengruppen werden mit Hilfe der W-FSMs und
der R-FSMs in die Schlange zum bzw. vom Speicher eingereiht. Nach
der R-FSM werden die Pakete verarbeitet, um ihre Ausgabeports festzustellen,
und von dem Fabric übertragen.
-
Beispiel
-
Ein
Paketswitch mit vier Eingängen
und vier Ausgängen
wird mit Hilfe des Systems 10 implementiert. Das System
ist global synchron und arbeitet mit einem Takt von 20 MHz. Die
vier Eingänge
arbeiten mit einer Breite von 8 Bit und implementieren vier Schnittstellen
mit 160 Mbps. Die Pakete sind von einem Anfang-des-Pakets-Codewort
(SOP, SOP = Start Of Packet) und einem Ende-des-Pakets-Codewort
(EOP, EOP = End Of Packet) begrenzt, siehe 5.
-
Für das Beispiel
wird ein Switch mit Ausgabeschlange angenommen. Die Pakete, die
an den Eingabeports des Switching-Systems 10 ankommen, werden
in vier Schlangengruppen eingeordnet, d. h. eine Gruppe für jeden
Ausgabeport. Eine Ausgabeschlange, siehe 4, wird
für jede
Gruppe in drei Untersystemen implementiert:
- 1.
Das Ende wird in der Switching-Fabric mit einer endlichen Schreib-Zustandsmaschine
(W-FSM) implementiert.
- 2. Die Mitte wird im gemeinsamen Speicher implementiert.
- 3. Der Kopf wird in der Switching-Fabric mit einer endlichen
Lese-Zustandsmaschine
(R-FSM) implementiert.
-
Lese-
und Schreibvorgänge
bezüglich
des gemeinsamen Speichers werden auf Daten in der Schlangengruppe
implementiert und ausgeführt, ohne
dass man die Paketgrenzen der Daten in der Schlange kennt. Der Zugriff
auf den gemeinsamen Speicher wird den R- und W-FSMs im Zeitmultiplexverfahren
auf dem gemeinsamen Speicherbus zugeteilt. Die Breite des gemeinsamen
Speicherbusses bezeichnet man als Cache-Line.
-
Der
Kopf und das Ende der Schlangengruppe, die sich in der Eingangsstufe
und der Ausgangsstufe der Erfindung befinden, werden direkt in Schieberegistern 51 implementiert.
Die Schieberegister 51 sind so breit wie die Schnittstellen
der eingehenden Daten und so lang wie die Speicher-Cache-Line. Der Datenweg
für den
Vierport-Switch ist in 6 dargestellt.
-
Die
Cache-Line ist 64 Bit lang und enthält acht Byte. Daten von jedem
Port werden in ein Cache-Line-Schieberegister der Tiefe 8 mit
8 Bit Breite geschoben. Nicht dargestellt ist ein Synchronisations-Schieberegister
vor dem Schieberegister, das ebenfalls ein Register der Tiefe 8 mit
8 Bit Breite ist. Der Speicherbus wird im TDM-Verfahren (TDM = Time
Division Multiplex) in acht Zeitschlitze 53 unterteilt,
d. h. je einen Zeitschlitz für
jeden Eingabeport und Ausgabeport, siehe 7. Da der
Beispielswitch Ausgabeschlangen implementiert, werden die Ausgangsstufenschlangen
stets mit der selben Rate geleert und benutzen daher stets den gleichen
Zeitschlitz auf dem Bus. Da die ankommenden Pakete für jeden
beliebigen Ausgabeport bestimmt sein können, können sich die Eingangsstufenschlangen
mit jeder beliebigen Rate füllen.
Die Eingangsstufengruppen sind den Eingangsbus-Zeitschlitzen je
nach Bedarf zugeordnet. Da die gesamte Eingangsrate vier Zeitschlitze
nicht übersteigt,
reicht es aus, die Eingangsstufen über die vier Eingangsstufen-Zeitschlitze
entscheiden zu lassen.
-
Das
Synchronisationsregister dient dazu, sicherzustellen, dass keine
Daten verloren gehen. Im Synchronisationsregister werden in der
Regel keine Daten gespeichert. Alle ankommenden Pakete werden direkt
in das Cache-Line-Register geschrieben. Füllt sich das Cache-Line-Register
vor seinem Zeitschlitz auf dem TDM-Bus, so beginnt das Synchronisationsregister,
Daten zu speichern. Ist das Cache-Line-Register geleert, so werden
die Daten aus dem Synchronisationsregister in das Cache-Line-Register
geschoben. Ist das Cache-Line-Register nach wie vor gefüllt, so
entscheidet es sich sofort für
den nächsten
Eingangsbuszyklus. Nur gefüllte
Cache-Line-Register fordern Buszyklen an.
-
Der
Kopf und das Ende der Schlangengruppen (die Eingangs- und Ausgangsstufen
der Erfindung) werden direkt mit FIFO-Schlangen in Hardware implementiert,
siehe 8. Die Mitte der Schlangengruppen wird im Speicher
implementiert, und sie werden als Cache-Lines gespeichert. In diesem
Beispiel wird ein Speicher der Tiefe 256 verwendet, der
eine gesamte Cache-Line in einem einzigen Taktzyklus lesen und schreiben
kann. Es werden Zero-Turn-Around-Speicher (ZBT, ZBT = Zero Bus Turn around)
vorausgesetzt, so dass Schreibvorgänge direkt auf Lesevorgänge folgen
können.
-
Um
die Mitte der Schlangengruppen im Speicher zu implementieren, siehe 9,
sind fünf FIFO-Schlangen 57 erforderlich.
Vier der Schlangen enthalten Adressen der Cache-Lines, die im Speicher
enthalten sind, wobei je eine Schlange für jede Schlangengruppe vorhanden
ist. Die fünfte FIFO-Schlange,
die Freiliste, enthält
Adressen von freien Cache-Lines. Beim Zurücksetzen wird die Freiliste
so initialisiert, dass sie alle Adressen der Cache-Lines enthält, die
im Speicher vorhanden sind. Die Kanaladressen-FIFOs sind leer.
-
Die
Datenwege arbeiten in einem der acht Zustände:
Ain, Bin, Cin, Din,
Aout, Bout, Cout, Dout.
-
Die
Zustände
werden durch den Zeitschlitz bestimmt, den der oben abgegebene Speicherrahmen
bezeichnet. In diesem Beispiel verwenden die vier Ausgangsschlangen gruppen
ihre gekennzeichneten Zustände.
Die Eingangsstufen fordern die Nutzung irgendeines Eingangszustands
an. Ein Verwalter dient dazu, kennzuzeichnen, welche Eingangsstufe
jeden geeigneten Eingangszeitschlitz verwendet. Alle Eingangszustände (Ausgangszustände) arbeiten
in gleicher Weise. Es sei der Eingangszustand Ain betrachtet, ein
Eingangszustand, in dem die Eingangsstufe A erfolgreich den Eingangszustand
erlangt hat. Im ersten Taktzyklus im TDM-Rahmen arbeitet Ain wie
folgt:
Bei (zugewiesenem Zeitschlitz für den TDM-Bus)
Falls (ein
Cache-Line-Register voll ist)
Benutze die Adresse am Kopf der
Freiliste zum Ansteuern des Speicherbusses
Schreibe im Cache-Line-Register
des Kanals A enthaltene Daten in den Speicher
Hole Freilisten-Speicheradresse
Schiebe
Freilisten-Speicheradresse an das Ende des Adressen-FIFOs des Kanals
A
-
Ist
das Freilisten-Adressen-FIFO leer, so werden die Daten, die sich
im Cache-Line-Register des
Kanals A befinden, verworfen. Man muss darauf achten, die verworfenen
Pakete im Kanal A zu kennzeichnen. Die anderen Eingangskanäle arbeiten
in gleicher Weise in ihren gekennzeichneten Speicherzeitschlitzen.
-
Es
sei nun der Ausgangsstatus Aout betrachtet. Im fünften Taktzyklus im TDM-Rahmen arbeitet Aout
wie folgt:
Bei (zugewiesenem Zeitschlitz für den TDM-Bus)
Falls (R-FSM
keine Daten enthält)
Falls
(der gemeinsame Speicher Daten für
diese Gruppenschlange enthält)
Lese
Cache-Line am Kopf der Schlange des gemeinsamen Speichers an das
Ende der R-FSM-Schlange
Falls (der gemeinsame Speicher KEINE
Daten für diese
Gruppenschlange enthält)
Lese
beliebige Daten aus dem Kopf der W-FSM-Schlange (bis zu einer Cache-Line)
an das Ende der R-FSM-Schlange
-
Hinsichtlich
des Entleerungsvorgangs der R-FSM-Schlange werden Pakete vom Kopf
der R-FSM-Schlange entfernt, verarbeitet und an einen Ausgabeport übertragen.
-
Da
alle Lese- und Schreibvorgänge
bezüglich
des Speichers eine vollständige
Cache-Line an Daten enthalten, beträgt die Effizienz des Speicherbusses
100 Prozent. Kleine Pakete verursachen keine Zerstückelung
der Daten auf dem Speicherbus. Zudem kann die Speicherbusbreite
unbeschränkt wachsen
und ist nicht durch die Paketgröße begrenzt.