-
Gebiet:
-
Der
hier offenbarte Gegenstand betrifft das Übertragen von Daten gemäß einem
Datenübertragungsformat.
Insbesondere betrifft der hier offenbarte Gegenstand das Übertragen
von Daten zwischen unterschiedlichen Datenübertragungsformaten.
-
Information:
-
Datenübertragungsprotokolle
definieren typisch, wie Daten in einem Datenlink zu übertragen
sind. Ein Datenübertragungsprotokoll
kann zum Beispiel ein Format für
einen Daten-Frame definieren, der zu übertragen ist, sowie Datenraten
zum Übertragen
von Daten-Frames in Datenlinks. Da sich die Datenlink-Kommunikationsprotokolle
weiterentwickeln, kann die Datenübertragung
von einer Quelle zu einem Zielort das Übertragen von Daten-Frames
auf Datenlinks aufweisen, die Daten gemäß unterschiedlichen Datenübertragungsprotokollen übertragen.
Ein Kommunikationspfad, der Daten zwischen der Quelle und dem Zielort überträgt, weist typisch
mehrere Datenlinks auf, wobei die unterschiedlichen Datenlinks in
der Kommunikation Daten-Frames gemäß unterschiedlichen Datenübertragungsprotokollen übertragen.
-
US-A-6 064 674 beschreibt
ein Verfahren und ein Gerät
für Material
zum Weiterleiten von LAN-Frames über
ATM-Netze in Zusammenhang mit den Merkmalen des Oberbegriffs der
unabhängigen
Ansprüche.
EP-A2-0 300 350 und
US-A-561 002 beschreiben Datenkommunikationssysteme
in Zusammenhang mit dem technischen Hintergrund der Erfindung.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Nicht
einschränkende
Ausführungsformen,
die keinen Anspruch auf Vollständigkeit
erheben, der vorliegenden Erfindung werden unter Bezugnahme auf
die folgenden Figuren beschrieben, wobei gleiche Bezugszeichen gleiche
Teile in allen verschiedenen Figuren bezeichnen, außer wenn anders
angegeben.
-
1 zeigt
eine Schnittstelle zwischen zwei medienunabhängigen Schnittstellen (MIIs)
gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
2 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames, die an einer
GigabitMII (GMII) empfangen werden, zu einer 10-Gigabit-MII (XGMII)
gemäß einer
Ausführungsform
der in 1 gezeigten Schnittstelle.
-
3 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames, die an einer
XGMII empfangen werden, zu einem GMII gemäß einer Ausführungsform
der in 1 gezeigten Schnittstelle.
-
4 zeigt
eine Ausführungsform
der vorliegenden Erfindung, die eine XGMII aufweist, die zum Kommunizieren
mit mehreren GMIIs, die eine GMII enthalten, zu der XGMII-Schnittstelle,
wie in 1 gezeigt gekoppelt ist.
-
5 zeigt
eine alternative Ausführungsform
der vorliegenden Erfindung, die eine XGMII aufweist, die zum Kommunizieren
mit mehreren GMIIs, die eine GMII aufweisen, zu der XGMII-Schnittstelle
wie in 1 gezeigt gekoppelt ist.
-
6 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames von mehreren
GMIIs zu einer einzelnen XGMII gemäß einer der alternativen Ausführungsformen,
die in den 4 und 5 gezeigt
sind.
-
7 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames von einer einzelnen
XGMII zu mehreren GMIIs gemäß einer
der alternativen Ausführungen,
die in den 4 und 5 gezeigt
sind.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Wenn
in dieser Spezifikation auf „eine
Ausführungsform" oder „irgendeine
Ausführungsform" Bezug genommen wird,
bedeutet das, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik,
die in Zusammenhang mit der Ausführungsform
beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Erfindung
enthalten ist. Steht daher der Satz „in einer Ausführungsform" oder „in einer
beliebigen Ausführungsform" an verschiedenen
Stellen in dieser Spezifikation, bezieht er sich nicht notwendigerweise
auf die gleiche Ausführungsform.
Ferner können
die bestimmten Merkmale, Strukturen oder Charakteristiken in einer
oder mehreren Ausführungsformen
kombiniert sein.
-
„Logik", wie hier erwähnt, betrifft
eine Struktur zum Ausführen
einer oder mehrerer logischer Operationen. Zum Beispiel kann die
Logik Schaltungen aufweisen, die ein oder mehrere Ausgangssignale
basierend auf einem oder mehreren Eingangssignalen bereitstellen.
Derartige Schaltungen können
einen endlichen Automaten aufweisen, der einen digitalen Eingang
empfängt
und einen digitalen Ausgang bereitstellt, oder Schaltungen, die
ein oder mehrere analoge Ausgangssignale als Reaktion auf ein oder
mehrere analoge Eingangssignale bereitstellt. Derartige Schaltungen
können
in einer anwendungsspezifischen integrierten Schaltung (ASIC) oder
einem feldprogrammierbaren Gate-Array (FPGA) bereitgestellt werden.
Logik kann auch maschinenausführbare
Anweisungen enthalten, die in einem Speicher kombiniert mit Verarbeitungsschaltkreisen
zum Ausführen
solcher maschinenlesbarer Anweisungen gespeichert sind. Es handelt
sich hier aber nur um Beispiele für Strukturen, die Logik bereitstellen
können,
und die Ausführungsformen
der vorliegenden Erfindung sind diesbezüglich nicht eingeschränkt.
-
Eine „medienunabhängige Schnittstelle" (MII), wie sie hier
verwendet wird, betrifft eine Schnittstelle zum Empfangen von Daten
von einer Quelle oder zum Übertragen
von Daten zu einem Zielort in einem Format, das von einem bestimmten Übertragungsmedium
zum Übertragen
der Daten unabhängig
ist. Ein Daten-Transceiver kann zum Beispiel Daten zu einem Übertragungsmedium
in einem Datenübertragungsformat als
Reaktion auf die an einer MII empfangenen Daten übertragen. Ein Daten-Transceiver
kann auch Daten zu einer MII als Reaktion auf den Empfang von Daten
von einem Übertragungsmedium
in einem Datenübertragungsformat
bereitstellen. Eine „Gigabit-MII" (GMII), wie sie
hier verwendet wird, betrifft eine MII, die Daten von einer Quelle
empfangen oder Daten zu einem Zielort mit einer Datenrate von etwa
einem Gigabit pro Sekunde übertragen
kann. Eine "10-Gigabit-MII" (XGMII), wie sie
hier erwähnt
wird, betrifft eine MII, die Daten von einer Quelle empfangen oder
Daten zu einem Zielort mit einer Datenrate von etwa zehn Gigabit
pro Sekunde übertragen
kann. Es handelt sich hier bloß um
Beispiele für
eine MII, und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Eine „Extended
Attachment Unit Interface",
wie sie hier erwähnt
wird, betrifft einen Datenlink, der Daten zwischen einer MII und
einem Daten-Transceiver übertragen
kann. Eine 10-Gigabit Extended Attachment Unit Interface (XAUI),
wie sie hier erwähnt
wird, betrifft einen Datenlink, der Daten zwischen einer XGMII und einem
Daten-Transceiver übertragen
kann. Weitere Extended Attachment Unit Interfaces können für höhere Datenraten
definiert werden, wie zum Beispiel 40 oder 100 Gigabit pro Sekunde.
-
Ein „Datenbyte", wie es hier erwähnt wird,
betrifft eine fixe Menge von Daten, wie zum Beispiel acht Bits.
Ein „Datenwort", wie es hier erwähnt wird,
betrifft eine Menge von Daten, die eine ganze Zahl zusammengehören der Datenbytes
enthält.
Es sind dies bloße
Beispiele für
ein Datenbyte und ein Datenwort, und die Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ein „Daten-Frame", wie er hier verwendet
wird, betrifft eine Menge von Daten, die von einer Quelle zu einem
Zielort gemäß einem
Datenübertragungsprotokoll übertragen
werden kann. Zum Beispiel kann ein Daten-Frame Daten enthalten,
die von einer Quelle zu einem Zielort in einem Datenlink gemäß einem
Datenlink-Layer-Protokoll zu übertragen
sind. Ein Daten-Frame kann mit einer Größe verbunden sein, die auf
einer Menge von Daten beruht, wie zum Beispiel einer Anzahl von
Bytes in dem Daten-Frame. Das ist jedoch allein beispielhaft für einen
Daten-Frame, und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ein
Daten-Frame kann als eine Sequenz von Datenbytes übertragen
werden, die in der Sequenz an einem Zielort zu verarbeiten sind.
In einem oder mehreren Anfangsbytes einer solchen Sequenz von Bytes, kann
ein Daten-Frame einen „Start-Code" als ein Symbol aufweisen,
das den Anfang eines Daten-Frames anzeigt. Ebenso können eines
oder mehrere Trail-Datenbytes in einer solchen Sequenz von Datenbytes „Abschluss-Codes" als ein Symbol aufweisen,
das das Ende eines Datenpakets anzeigt. Es sind dies jedoch bloß Beispiele
für einen
Start-Code und Abschluss-Codes und die Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ein
Daten-Frame kann auch zum Übertragen
von einer Quelle zu einem Zielort gemäß einem Ethernet-Protokoll
formatiert werden, wie es in den Versionen des IEEE-Standards 802.3 bereitgestellt
ist. Ein derartiger Ethernet-Daten-Frame weist Felder auf, die Adressfelder
enthalten, um eine „Ethernet-Adresse" für einen
Zielort und eine Quelle bereitzustellen. Diese Ethernet-Adresse
kann auch als physikalische Adresse, Materialadresse oder MAC-Adresse
bekannt sein. Beim Empfang eines Ethernet-Frame kann eine Vorrichtung die
Zieladresse des Frames mit einer physikalischen Adresse vergleichen,
die zu der Vorrichtung gehört.
Wenn die Zieladresse und die der empfangenden Vorrichtung übereinstimmen,
kann die Vorrichtung den gesamten Daten-Frame lesen und liefern.
-
Eine „Medienzugangskontrolle" (MAC)-Vorrichtung,
wie sie hier verwendet wird, betrifft eine Vorrichtung, die den
Zugang zu einem Übertragungsmedium
zum Übertragen
oder Empfangen von Daten ermöglicht. Eine
MAC-Vorrichtung kann mit einer MII gekoppelt werden, um es einem
Client-Prozess zu erlauben, Daten-Frames über ein Übertragungsmedium zu senden
oder zu empfangen. Eine MAC-Vorrichtung kann auch mit einer Ethernet-Adresse
verbunden sein, um Daten-Frames, die die dazugehörende Ethernet-Adresse haben,
zu empfangen und weiterzuleiten. Es sind dies jedoch bloß Beispiele
für eine
MAC-Vorrichtung, und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ein „optisches Übertragungsmedium" wie er hier verwendet
wird, betrifft ein Übertragungsmedium
der Lichtenergie in einem optischen Signal übertragen kann, das durch ein
Datensignal moduliert wird, das durch Demodulieren des optischen
Signals zurückgewonnen
werden kann. Ein optisches Übertragungsmedium
kann zum Beispiel Lichtleitfaserverkabelung gekoppelt zwischen einem
Sendepunkt und einem Empfangspunkt aufweisen. Dies ist jedoch bloß ein Beispiel
für ein
optisches Übertragungsmedium,
und die Ausführungsformen der
vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Eine „Rückwandplatine", wie sie hier verwendet
wird, betrifft eine oder mehrere Leiterplatten auf Unter systemniveau.
Eine Rückwandplatine
kann zum Beispiel eine oder mehrere Buchsen als „Rückwandplatinenschnittstellen" zum Integrieren
von Untersystem-Leiterplatten oder Erweiterungskarten aufweisen.
Eine Rückwandplatinen-Schnittstelle
kann auch eine Rückwandplatine
mit einem externen Übertragungsmedium koppeln.
Es sind dies bloße
Beispiele für
eine Rückwandplatine
und eine Rückwandplatinen-Schnittstelle,
und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Kurz
gesagt betrifft eine Ausführungsform
der vorliegenden Erfindung ein Verfahren und ein Gerät zum Übertragen
von Daten-Frames zwischen einer ersten MII und einer zweiten MII.
Die erste MII kann die Größe des empfangenen
Daten-Frames bestimmen, um es der zweiten MII zu erlauben, die empfangenen
Daten-Frames zu einem Zielort bereitzustellen. Es ist dies jedoch
nur ein Beispiel einer Ausführungsform,
und andere Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
1 zeigt
eine Schnittstelle 12 zwischen zwei MIIs. Eine Gigabit-MII
(GMII) weist eine Übertragungsschnittstelle 18 und
eine Empfangsschnittstelle 20 auf, während eine 10-Gigabit-MII (XGMII)
eine Übertragungsschnittstelle 14 und
eine Empfangsschnittstelle 16 aufweist. Die Übertragungs-
und die Empfangsschnittstellen 18 und 20 können gemäß der Norm
IEEE 802.3z oder 802.3-2000, Absatz 35 gebildet werden, während die Übertragungs-
und Empfangsschnittstelle 14 und 16 gemäß IEEE P802.3ae,
Absatz 46 gebildet werden können. Die Schnittstelle 12 kann
eine anwendungsspezifische Leiterplatte (ASIC) oder eine feldprogrammierbare
Gate-Array-(FPGA)-Schaltung aufweisen. Es sind dies jedoch bloß Beispiele
für das
Umsetzen einer Busumwandlungsvorrichtung in Logik, und die Ausführungsformen
der vorliegenden Erfindungen sind in dieser Hinsicht nicht eingeschränkt.
-
Bei
einer Ausführungsform
können
die Schnittstellen 18 und 20 mit einer MAC-Vorrichtung
(nicht gezeigt) gekoppelt werden, die zum Übertragen oder Empfangen von
Daten von der Schnittstelle 12 gemäß der Norm IEEE 802.3-2000 geeignet ist.
Alternativ können
die Schnittstellen mit einer Vorrichtung gekoppelt werden, die eine
physikalische Codier-Sublayer (PCS) (nicht gezeigt) zum Übertragen
von Daten oder Senden von Daten von einem Kabel der Kategorie 5
gemäß der Norm
IEEE 802.3-2000, Absatz 40 aufweist. Es sind dies jedoch
bloß Beispiele
für Vorrichtungen,
die gekoppelt werden können,
um mit einer GMII zu kommunizieren, und die Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Die Übertragungs-
und Empfangsschnittstellen 14 und 16 können mit
einer von mehreren Vorrichtungen zum Übertragen von Daten zu einem
Zielort oder zum Empfangen von Daten von einer Quelle gekoppelt werden.
Bei einer Ausführungsform
können
die Schnittstellen 14 und 16 mit einer physikalischen
Layer-Vorrichtung gekoppelt werden, die einen physikalischen Medien-Anhang
(PMA) und eine physikalische medienabhängige (PMD) und physikalische
Codier-Sublayer (PCS)-Abschnitte zum Kommunizieren mit einem optischen Übertragungsmedium
gemäß IEEE P802.3ae,
Absätze 48 bis 51 aufweist.
Bei einer weiteren Ausführungsform
können
die Schnittstellen 14 und 16 mit einer MAC (nicht
gezeigt) zum Übertragen
von Daten zwischen der XGMII und einem E/A-System, wie zum Beispiel
einem Switch Fabric- oder
gemultiplexten Datenbus zu übertragen,
gekoppelt werden. Alternativ können
die Schnittstellen mit einer XGMII-Extended Sublayer (XGXS)-Schaltung
(nicht gezeigt) gekoppelt werden, um eine 10-Gigabit-Attachement
Unit Interface (XAUI) gemäß IEEE P802.3ae,
Absatz 47 bereitzustellen. Es sind dies jedoch bloß Beispiele
des Kommunizierens einer XGMI mit Vorrichtungen, und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
2 zeigt
eine Schnittstelle 50 zum Weiterleiten von Daten-Frames,
die an einer GMII empfangen werden, zu einer XGMII gemäß einer
Ausführungsform
der Schnittstelle 12, die in 1 gezeigt
ist. Eine GMII-Transmit-State-Machine 52 empfängt sequenziell
getaktete Byte-Wide-Daten 78 eines empfangenen Daten-Frames
als Reaktion auf ein Aktivierungssignal GMII_TXEN. Die Register 56 und 58 weisen
jeweils vierundsechzig Bits auf, um acht der empfangenen Datenbytes
zu empfangen. Ein Multiplexer 54 alterniert Laderegister 56 und 58 mit
den empfangenen Datenbytes, um zu erlauben, dass die Daten von einem
Register zu einem First-In-First-Out (FIFO)-Puffer 72 geschrieben
werden, während
die empfangenen Datenbytes zu dem anderen Register geladen werden.
-
Die
GMII-Transmit-State-Machine 52 kann auch die Größe des empfangenen
Daten-Frames bestimmen, indem die Anzahl empfangener Bytes als Byte-Wide-Daten 78 gezählt werden.
Die GMII-Transmit-State-Machine 52 kann den Anfang eines
Daten-Frames zum Beispiel durch Erfassen eines Übergangs in dem Signal GMII_TX_EN
von „0" auf „1" bestimmen. Alle
Datenbytes, die als Byte-Wide-Daten 78 empfangen werden,
können
dann gezählt
werden, bis ein Übergang
in dem Signal GMII_TX_EN von „1" auf „0" erfasst wird, der
das das Ende des Frames anzeigt. Die daraus resultierende Bytezählung kann
dann in einem Puffer 62 gespeichert werden, der mit dem
Daten-Frame verbunden ist, der in dem Puffer 72 gespeichert
ist. Alternativ kann die GMII-Transmit-State-Machine 52 die Bytezählung in
dem Puffer 72 verbunden mit dem gespeicherten Daten-Frame
speichern. Es sind dies jedoch bloß Beispiele zum Bestimmen der
Größe und Aufzeichnen
eines empfangenen Daten-Frames, und die Ausführungformen der vorliegenden
Erfindungen sind in dieser Hinsicht nicht eingeschränkt.
-
Der
Puffer 72 stellt die gespeicherten Daten-Frames als Multi-Byte-Wörter bereit,
die jeweils acht Bytes haben, als Reaktion auf Anfragen von einer
XGMII-Transmit-State-Machine 66.
Die XGMII-Transmit-State-Machine 66 steuert auch Multiplexer 64 und 70 als
Reaktion auf das Erfassen eines Anfangs eines Daten-Frames (Herauslesen
aus dem Puffer 72) und eines Endes des Daten-Frames. Die
XGMII-Transmit-State-Machine 66 kann
den Anfang eines Daten-Frames
zum Beispiel durch Erfassen von Größeninformation (zum Beispiel
Bytezählung),
die in den Puffer 62 geschrieben wird, oder durch Erfassen
von Änderungen in
der Größeninformation
(zum Beispiel Bytezählung)
des Puffers 72 erfassen. An dem Anfang des Daten-Frames
kann die XGMII-Transmit-State-Machine 66 das
idle en-Signal deassertieren, um den Multiplexer 64 zu veranlassen,
mit dem Senden von Multibyte-Wörtern 74,
die aus dem Puffer 72 gelesen werden, zu beginnen, und
den Multiplexer 70 zu veranlassen, einen Steuercode 8'b00000001 auf den
Bytes XGMII_TXC_[7:0] zu übertragen.
Ein XGMII-Decoder 68 stellt einen Steuercode auf Signal
txc_delayed[7:0] durch den Multiplexer 70 als Reaktion
auf ein Anfangs- oder Trail-Multi-Byte-Wort XGMII_TXD_d[63:0], das
von dem Multiplexer 64 übertragen
wird, bereit. Bei einer Ausführungsform
kann der Anfangscode „FB" als Anfangsbyte
des Daten-Frames, der in dem Puffer 72 gespeichert ist,
eingefügt
werden, so dass der Start-Code das Anfangsbyte des auf XGMII_TXD_d[63:0]
ausgegebenen Frames ist.
-
Gemäß einer
Ausführungsform
kann die GMII-Transmit-State-Machine 52 einen Anfangs-
oder Abschluss-Code in die Register 56 oder 58 einfügen, um
den Anfang oder das Ende eines Daten-Frames anzuzeigen. Wenn die
GMII-Transmit-State-Machine 52 bestimmt,
dass die restlichen Bytes eines Daten-Frames, die in den Puffer 72 zu
laden sind, geringer sind als ein komplettes Multi-Byte-Wort (zum
Beispiel weniger als acht Bytes in der hier veranschaulichten Ausführungsform),
wird in das letzte Multi-Byte-Wort, das zu XGMII_TXD_d[63:0] herausgelesen
wird, ein Abschluss-Code „FD" gefolgt von einem
Idle-Code „07" in jedem restlichen
Byte des Multi-Byte-Worts eingefügt
wird. Die unten stehende Tabelle 1 zeigt das Format des letzten Multi-Byte-Worts, das einen
Abschluss-Code basierend auf der Anzahl restlicher Daten-Frame-Bytes
in dem letzten Multi-Byte-Wort enthält.
-
Die
XGMII-Transmit-State-Machine
66 kann das Ende eines Daten-Frames
(herausgelesen als 64-Bit-Wörter)
durch Dekrementieren eines Bytezählers
bei dem Herauslesen aus dem Puffer
72 jedes Multi-Byte-Worts
bestimmen (zum Beispiel bei der hier veranschaulichten Ausführungsform
durch acht Vierundsechzig-Bit-Wörter).
Die XGMII-Transmit-State-Machine
66 kann
auch Steuercodes bestimmen, die in XGMII_TXC_[7:0] als Reaktion
auf das Erfassen eines Anfangs und Endes eines Daten-Frames eingefügt werden.
Wenn sich in dem Puffer
72 keine Daten-Frames befinden,
die durch die XGMII zu übertragen
sind, kann der Multiplexer
70 einen Idle-Steuercode 8'b11111111 ausgeben,
und der Multiplexer
64 kann den Wert 64'h07070707070707 als Reaktion auf ein
assertiertes idle en-Signal ausgeben. Wie oben besprochen, kann der
Multiplexer
70 beim Erfassen des Anfangs eines Daten-Frames
an der XGMII-Transmit-State-Machine
66 und Deassertieren
des idle en-Signals den Steuercode 8'b00000001 ausgeben. Zwischen den Anfangs-
und Abschlussbedingungen kann der Multiplexer
70 8'00000000 ausgeben,
um anzuzeigen, dass Daten gegenwärtig
sind. Wenn die XGMII-Transmit-State-Machine
66 bestimmt,
dass die restlichen Bytes in dem Daten-Frame in dem Puffer
72 weniger
sind als ein komplettes Multi-Byte-Wort (zum Beispiel weniger als
acht Bytes in der hier veranschaulichten Ausführungsform), gibt der Multiplexer
70 den
Steuercode XGMII_TXC_[7:0] basierend auf den restlichen Bytes wie
in Tabelle 1 gezeigt aus.
Trail-Bytes
des | XGMII_TXD[63:0] | XGMII_TXC[7:0] |
Daten-Frames
im letzten 8-Byte-Wort | | |
7 | 07070707070707FD | 8'b11111111 |
6 | 070707070707FDxx | 8'b11111110 |
5 | 0707070707FDxxxx | 8'b11111100 |
4 | 07070707FDxxxxxx | 8'b11111000 |
3 | 070707FDxxxxxxxx | 8'b11110000 |
2 | 0707FDxxxxxxxxxx | 8'b11100000 |
1 | 07FDxxxxxxxxxxxx | 8'b11000000 |
0 | FDxxxxxxxxxxxxxx | 8'b10000000 |
Tabelle
1
-
In
der hier veranschaulichten Ausführungsform
stellt der Multiplexer 64 den Ausgang 74 als sequenziell
getaktete Vierundsechzig-Bit-Wörter
bereit, und der Multiplexer 70 stellt den Ausgang 76 als
sequenziell getaktete Acht-Bit-Bytes bereit. Bei dieser Ausführungsform
können
Latch-Schaltungen (nicht gezeigt) zum Partionieren des Vierundsechzig-Bit-Ausgangs 74 in
Zweiunddreißig-Bit-Wörter und
zum Partionieren des Acht-Bit-Ausgang 76 in Vier-Bit-Mengen verwendet
werden, um einen mit XGMII kompatiblen Ausgang bereitzustellen.
Alternativ können
die GMII-Transmit-State-Machine 52 und der Puffer 72 Abschnitte
empfangener Daten-Frames als Zweiunddreißig-Bit-Wörter speichern.
-
Der
Multiplexer 64 kann dann den Ausgang als Dreißig-Bit-Wörter mit etwa zweimal der Geschwindigkeit
des Herauslesens der Vierundsechzig-Bit-Wörter bei der oben genannten
Ausführungsform
herauslesen. Ähnlich
können
der Multiplexer 70 und die XGMII-Transmit-State-Machine 66 Vier-Bit-Steuercodes
in dem Ausgang 76 bereitstellen, der mit dem Zweiunddreißig-Bit-Ausgang
synchronisiert ist.
-
3 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames, die an einer
XGMII empfangen werden, zu einer GMII gemäß einer Ausführungsform
der Schnittstelle 12, die in 1 gezeigt
ist. Ein Daten-Frame wird an eine XGMII als sequenziell getaktete
Vierundsechzig-Bit-Eingabewörter 106 empfangen,
die in einen FIFO-Puffer 124 gespeichert werden. Ein Multiplexer 104 kann
dann den gespeicherten Daten-Frame als sequenziell getakteten Acht-Bit-Ausgang 116 als
GMII_RXD[7:0] zu einer GMII herauslesen. Ein XGMII-Decode-Abschnitt 108 empfängt ebenfalls
die Eingabewörter 106,
um einen Anfangscode (zum Beispiel „FB") in einem ersten Byte des empfangenen
Daten-Frames und einen Abschlusscode (zum Beispiel „FD") in einem letzten
Byte des empfangenen Daten-Frames zu erfassen. Der XGMII-Decode-Abschnitt 108 kann
Anfangs- und Abschlusssignale zu einer XGMII Receive State Machine 110 als
Reaktion auf das Erfassen des Anfangs- und des Abschluss-Codes bereitstellen.
Die Anfangs- und Abschluss-Signale können es der XGMII Receive State
Machine 110 erlauben, die Größe (zum Beispiel die Anzahl
von Acht-Bit-Bytes) des empfangenen Daten-Frames, durch Zählen der
Anzahl von Acht-Bit-Bytes in dem empfangenen Daten-Frame zu bestimmen. Die
XGMII Receive State Machine 110 kann dies zum Beispiel
durchführen,
indem sie einen Unterschied in der Zeit zwischen dem Empfang des
Anfangssignals und dem Empfang des Abschlusssignals bestimmt. Es
ist dies jedoch bloß ein
Beispiel des Bestimmens der Größe eines
Daten-Frames, der an einer XGMII empfangen wird, und die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Nach
dem Bestimmen der Größe des empfangenen
Daten-Frames, kann die XGMII Receive State Machine 110 Größeninformation
als die Anzahl empfangener Bytes in einen Puffer 112 verbunden
mit dem empfangenen Daten-Frame, der in dem Puffer 124 gespeichert
ist, schreiben. Alternativ kann die XGMII Receive State Machine 110 die
Größe des empfangenen
Daten-Frames mit den empfangenen Datenbytes in dem Puffer 124 speichern.
Dies sind jedoch bloß Beispiele
des Speicherns der Größe eines
Daten-Frames verbunden mit Daten-Frame-Bytes, und die Ausführungen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
gibt ein Multiplexer 104 Byte-Abschnitte des Daten-Frames,
der in dem Puffer 124 gespeichert ist, als Reaktion auf
ein byte_en[2:0]-Signal von einer GMII Receive State Machine 102 aus.
Der Multiplexer 104 kann den gespeicherten Daten-Frame
in Multi-Byte-Wide-Mengen
(zum Beispiel Vierundsechzig-Bit-Wörter) empfangen und den Daten-Frame
als einen sequenziell getakteten Acht-Bit-Bytes-GMII_RXD[7:0] ausgeben.
In der veranschaulichten Ausführungsform
können
die Eingabedaten zu dem Multiplexer 104 alle acht Taktgeberzyklen
der GMII wieder gefüllt
werden, wenn Daten zu dem Multiplexer 104 direkt von dem
Puffer 124 präsentiert
werden. Gleichzeitig mit der Ausgabe des gespeicherten Daten-Frames
als Acht-Bit-Byte-GMII_RXD[7:0],
kann die GMII Receive State Machine 102 das Signal GMII_RXDV
assertieren, um das Erfassen eines Fehlers in Daten anzuzeigen,
die an der XGMII empfangen werden (zum Beispiel als Reaktion auf
einen Fehlersteuercode, der an XGMII_RXC[7:0] empfangen wird). Ein solcher
Fehlerzustand kann von der XGMII Receive State Machine 110 erfasst
werden und einen solchen Fehlerzustand durch Setzen eines Bits in
dem Puffer 112 oder Puffer 124 in Verbindung mit
dem empfangenen Daten-Frame, der in dem Puffer 124 gespeichert
ist, anzeigen. Als Reaktion auf das Anzeigen des Fehlerzustands
kann die GMII Receive State Machine 102 das Weiterleiten
des gespeicherten Daten-Frames durch den Multiplexer 104 durch Überspringen
der Bytes des gespeicherten Daten-Frames in dem Puffer 124 inhibieren.
-
Gemäß einer
Ausführungsform
kann die XGMII Receive State Machine 110 Fehlerzustände an einem empfangenen
Daten-Frame erfassen, indem sie ein XGMII_RXC[7:0]-Bit erkennt,
das während
einer Frameübertragung
(eingeschlossen zwischen START und TERMINATE) gesetzt wird, während das
entsprechende Byte in XGMII_RXD[63:0] nicht der START, TERMINATE
oder IDLE-Code ist. In diesem Zustand kann die XGMII Receive State
Machine 110 von dem XGMII-Decode-Abschnitt 108 das
Signal erhalten, dass das oben genannte Fehlerbit entweder im Puffer 112 oder
Puffer 124 gesetzt ist. Ein Fehler zwischen Paketen kann
von dem XGMII-Decode-Abschnitt 108 auch
durch ein XGMII_RXC[7:0]-Bit erfasst werden, das während der
Pausenzeit (umgeben von TERMINATE- und START-Codes) gesetzt wurde, während das
entsprechende XGMII_RXD[63:0]-Byte nicht der START, TERMINATE oder
IDLE-Code ist. Diese
Bedingung kann ignoriert werden. Wenn XGMII_RXC[7:0] zusätzlich Daten
anzeigt, (mit 0 in jedem beliebigen Bit), können diese Daten ignoriert
werden, denn das würde
dem Erfassen des START-Codes vorausgehen.
-
Gemäß einer
Ausführungsform
wählt das
Drei-Bit-Signal-byte_en[2:0]
ein bestimmtes Byte (bei der hier veranschaulichten Ausführungsform
aus acht möglichen
Bytes) zum Ausgeben durch den Multiplexer 104 aus. Ferner
bestimmt die GMII Receive State Machine 102 eventuell das
letzte Byte des gespeicherten Daten-Frames, das basierend auf der
Größeninformation
zu übertragen
ist, die von der XGMII Receive State Machine 110 wie oben
besprochen gespeichert wird. Die GMII Receive State Machine 102 kann
zum Beispiel einen Bytezähler
dekrementieren, der entweder in dem Puffer 112 oder 124 gespeichert
und mit dem gespeicherten Daten-Frame
verbunden ist. Nach dem Bestimmen des letzten Bytes in dem Daten-Frame
kann die GMII Receive State Machine 102 einen Wert für das Signal
byte_en[2:0] zum Überspringen
des Abschluss-Codes in dem gespeicherten Daten-Frame (zum Beispiel „FD") bereitstellen und
das Signal GMII_RXER nach dem Übertragen
des letzten Bytes vor dem Abschluss-Code deassertieren.
-
Die 4 und 5 zeigen
Systeme, die eine GMII-zu-XGMII-Schnittstelle gemäß der Schnittstelle 12,
die in 1 gezeigt ist, enthalten. In 4 ist
eine XGMII-zu-GMII-Schnittstelle 126 zum Übertragen
von Daten zwischen einer 10-Gigabit-Attachement Unit Interface (XAUI)-Datenlink 130 (gekoppelt
mit der Schnittstelle 126 an einer XGMII) und mehreren
GMIIs 128 gekoppelt. Bei der veranschaulichten Ausführungsform kann
sich der XAUI-Datenlink 130 über eine Leiterplatte oder
eine Rückwandplatine
erstrecken, um eine serielle Verbindung zwischen einem externen
Element und GMII-kompatiblen Vorrichtungen, die mit den GMIIs 128 verbunden
sind, bereitzustellen.
-
Der
XAUI-Datenlink 130 weist eine erste XGMII Extended Sublayer
(XGXS)-Vorrichtung 134 auf, die mit einer XGMII auf der
Schnittstelle 126 und einer zweiten XGXS-Vorrichtung 135,
die mit dem Daten-Transceiver 132 gemäß der Norm IEEE 802.3ae, Absatz 47,
gekoppelt ist. Es ist jedoch klar, dass die Extended Sublayer-Vorrichtungen
verwendet werden können,
um physikalische Übertragungsprotokolle
für gesteigerte
Datenraten zu unterstützen,
zum Beispiel 40- oder 100-Gigabit-Ethernet-Formate. Die erste und
die zweite XGXS-Vorrichtung 134 und 135 können auf
einer Leiterplatte durch Pisten gekoppelt sein, die sich bis zu
etwa 50 cm weit erstrecken. Der Daten-Transceiver 132 kann
einen physikalischen Codier-Sublayer (PCS)-Abschnitt, einen physikalischen
Medien-Anhängabschnitt
(PMA) und einen physikalischen medienabhängigen (PMD)-Abschnitt aufweisen,
um Daten von einem optischen Übertragungsmedium
durch eine medienabhängige
Schnittstelle (MDI) gemäß der Norm
IEEE 803.3ae, Absätze 49 bis 52 bereitgestellt
zu übertragen
oder empfangen.
-
Bei
dieser Ausführungsform
kann eine GMII 128 mit einer beliebigen von mehreren Vorrichtungen
gekoppelt werden, die über
eine GMII kommunizieren können,
darunter zum Beispiel eine MAC-Vorrichtung oder ein Daten-Transceiver
mit PCS- und PMA-Abschnitten zum Kommunizieren über ein Übertragungsmedium. Es sind
dies jedoch Beispiele für
Vorrichtungen, die mit einer GMII gekoppelt werden können, und
die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
In 5 ist
eine XGMII-zu-GMII-Schnittstelle 136 zum Übertragen
von Daten zwischen einem Daten-Transceiver 142 und mehreren
MAC-Vorrichtungen 140 (gekoppelt mit GMIIs 138)
gekoppelt, um es mehreren unabhängigen
Vorrichtungen zu ermöglichen,
Daten über
eine gemeinsame XGMII zu übertragen
und empfangen. Bei einer Anwendung befähigen die MAC-Vorrichtungen 140 mehrere
Netz-Clients in einem Local Area Network (LAN), eine gemeinsame
XGMII zu verwenden. Es sind dies jedoch bloß Beispiele für den Einsatz
mehrerer MACs zum Kommunizieren in einer gemeinsamen XGMII, und
die Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Die 6 und 7 zeigen
eine Schnittstelle zum Weiterleiten von Daten-Frames zwischen einer
XGMII und mehreren GMIIs gemäß alternativen
Ausführungsformen
der vorliegenden Erfindung, die in den 4 und 5 gezeigt
sind. 6 zeigt eine Schnittstelle zum Weiterleiten von
Daten-Frames für
mehrere GMIIs 178 zu einer einzelnen XGMII gemäß einer
Ausführungsform
der Schnittstelle 126 oder 136, die in den 4 und 5 gezeigt
ist. Jede der GMIIs 178 weist einen Puffer 172 zum
Speichern von Daten-Frames auf, die als sequenziell getaktete Acht-Bit-Bytes
an einer GMII-Transmit-State-Machine 152 wie
oben unter Bezugnahme auf 2 besprochen
empfangen werden. Die GMII-Transmit-State-Machine 152 kann auch
die Größe des empfangenen
Daten-Frames durch Zählen
der empfangenen Datenbytes bestimmen, während das Signal GMII_TX_EN
assertiert wird, wie ebenfalls unter Bezugnahme auf 2 besprochen.
-
Die
XGMII kann Daten-Frames aus den Puffern 122 über einen
Multiplexer 180 als sequenziell getaktete Vierundsechzig-Bit-Wörter herauslesen.
Während
jede der GMIIs 178 unabhängig Daten-Frames zum Speichern
in einem dazugehörenden
Puffer 172 empfangen kann, kann eine XGMII-Transmit-State-Machine 166 die
Auswahl von GMII-Schnittstellen 178 zum Bereitstellen der
gespeicherten Daten-Frames steuern. Bei der veranschaulichten Ausführungsform
wählt die
XGMII-Transmit-State-Machine 166 aus, einen kompletten Daten-Frame
von einer GMII 178 zu empfangen, bevor sie beschließt, einen
beliebigen Abschnitt eines Daten-Frames von einer darauf folgenden
GMII 178 zu empfangen. Die XGMII-Transmit-State-Machine 166 kann beschließen, eine
GMII 178 auszuwählen,
um das Weiterleiten eines Daten-Frames
(aus einem dazugehörenden
Puffer 172) von nur den GMIIs 178 zu beginnen,
die einen kompletten Daten-Frame in dem dazugehörenden Puffer 172 gespeichert
haben. Nach dem Abschließen
des Herauslesens eines Daten-Frames aus einer GMII 178,
kann die XGMII-Transmit-State-Machine 166 eine darauf folgende
GMII 178 (die einen kompletten Daten-Frame in ihrem dazugehörenden Puffer 172 gespeichert
hat), um das Bereitstellen eines Daten-Frames zu dem Multiplexer 180 durch
Assertieren des Signals fifo read auf einem Bus 182 zu
beginnen.
-
Wie
unter Bezugnahme auf 2 besprochen, können die
GMIIs 178 einen Bytezähler
in einem Puffer 162 führen,
auf den die XGMII-Transmit-State-Machine 166 beim Herauslesen
von Daten-Frames zugreifen kann. Die XGMII-Transmit-State-Machine 166 kann
das Ende eines Daten-Frames (der als Vierundsechzig-Bit-Wörter herausgelesen
wird) bestimmen, indem sie die Bytezählung dekrementiert, während jedes
Multi-Byte-Wort aus dem Puffer 162 herausgelesen wird.
Wenn die XGMII-Transmit-State-Machine 166 feststellt, dass
die restlichen Bytes in dem Daten-Frame in dem Pufferspeicher 72 weniger
sind als ein komplettes Multi-Byte-Wort, wird in das letzte zu XGMII_TXD_d[63:0]
herausgelesene Multi-Byte-Wort ein Abschluss-Code „FD" eingefügt, auf
den ein Idle-Code „07" in jedem restlichen
Byte des Multi-Byte-Worts
folgt. Die oben stehende Tabelle 1 zeigt ein Format der Trail-Bytes,
die in das Vierundsechzig-Bit-Wort basierend auf der Anzahl der
restlichen Daten-Frame-Bytes in dem letzten Multi-Byte-Wort einzufügen sind.
-
Die
XGMII-Transmit-State-Machine 166 kann auch Fehlercodes
bestimmen, die in XGMII_TXC_[7:0] (wie oben unter Bezugnahme auf 2 besprochen)
als Reaktion auf das Erfassen eines Anfangs und Abschlusses eines
Daten-Frames einzufügen sind.
Wenn die XGMII-Transmit-State-Machine 166 bestimmt,
dass die restlichen Bytes in dem Daten-Frame in dem Puffer 72 weniger
sind als ein komplettes Multi-Byte-Wort (zum Beispiel weniger als
acht Bytes in der hier veranschaulichten Ausführungsform), gibt der Multiplexer 70 einen
Fehlercode XGMII_TXC_[7:0] basierend auf den restlichen Bytes wie
in Tabelle 1 gezeigt aus.
-
7 zeigt
eine Schnittstelle zum Weiterleiten von Daten-Frames von einer einzelnen
XGMII zu mehreren GMIIs 278 gemäß einer Ausführungsform
der Schnittstelle 126 oder 136, die in den 4 und 5 gezeigt
ist. In der hier veranschaulichten Ausführungsform weist eine XGMII 280 eine
XGMII Receive State Machine 210 zum Weiterleiten empfangener
Daten-Frames zu ausgewählten
GMIIs 278 auf. Die XGMII Receive State Machine 210 kann
empfangene Daten-Frames
zu den GMIIs 278 weiterleiten, indem sie eines mehrerer
Routing-Systeme verwendet, wie zum Beispiel ein Round Robin-System,
TCP/IP-Routing-System zum Routen spezifischer IP-Datagramme zu einer
gegebenen Schnittstelle oder einer Ethernet-Adresse, an der die
XGMII 280 mit mehreren Adressen verbunden ist (wobei jede
Adresse einer der GMIIs 278 entspricht). Es sind dies jedoch
bloße
Beispiele des Routens empfangener Daten-Frames unter mehreren GMIIs
für die XGMII,
und die Ausführungsformen
der vorliegenden Erfindungen sind in dieser Hinsicht nicht eingeschränkt.
-
Bei
einer Ausführungsform
ist jede der GMIIs 278 mit einer einzigen Ethernet-Adresse
verbunden, so dass die XGMII Receive State Machine 210 empfangene
Daten-Frames zu einem entsprechenden Zielort GMII 278 basierend
auf einer Ziel-Ethernet-Adresse in dem Daten-Frame routen kann.
Die XGMII Receive State Machine 210 kann eine Aufzeichnung
oder Tabelle führen,
die jede der GMIIs 278 mit ihrer Ethernet-Adresse verbindet.
Die XGMII 280 kann diese Tabelle oder Aufzeichnung für jede GMII 278 erstellen,
indem sie zum Beispiel einen anfänglichen
ausgehenden Daten-Frame von der GMII 278 empfängt und
eine Quellen-Ethernet-Adresse des anfänglichen Daten-Frames mit der
GMII 278 verbindet. Die XGMII Receive State Machine 210 kann
dann darauf folgende eingehende Daten-Frames zu der GMII 278 basierend
auf einer Verbindung der Ziel-Ethernet-Adresse der eingehenden Daten-Frames mit der Ethernet-Adresse,
die mit der GMII 278 verbunden ist, routen.
-
Wie
oben unter Bezugnahme auf 3 besprochen,
wird ein Daten-Frame an der XGMII 280 als sequenziell getaktete
Vierundsechzig-Bit-Eingabewörter
empfangen, die in einem FIFO-Puffer 224 einer ausgewählten Ziel-GMII 278 gespeichert
werden. Ein Multiplexer 204 der ausgewählten GMII 278 kann
dann den gespeicherten Daten-Frame als sequenziell getakteten Acht-Bit-Ausgang
GMII_RXD[7:0] herauslesen. Ein XGMII-Decode-Abschnitt 208 empfängt ebenfalls
die Eingabewörter,
um einen Anfangs-Code (zum Beispiel „FB") in einem ersten Byte des empfangenen
Daten-Frames0 und einen Abschluss-Code (zum Beispiel „FD") in einem letzten
Byte des empfangenen Daten-Frames zu erfassen. Der XGMII-Decode-Abschnitt 208 kann Start-
und Abschluss-Signale zu der XGMII Receive State Machine 210 als
Reaktion auf das Erfassen des Start- und des Abschluss-Codes bereitstellen.
Das Start- und das Abschluss-Signal ermöglichen es der XGMII Receive
State Machine 210, die Größe (zum Beispiel Anzahl von
Acht-Bit-Bytes) des empfangenen Daten-Frames durch Zählen der Anzahl von Acht-Bit-Bytes
in dem empfangenen Daten-Frame zu bestimmen.
-
Nach
dem Bestimmen der Größe des empfangenen
Daten-Frames, kann die XGMII Receive State Machine 210 die
Größeninformation
als die Anzahl der empfangenen Bytes in einen Puffer 212 der
ausgewählten
GMII 278 verbunden mit dem empfangenen Daten-Frame schreiben.
Alternativ kann die XGMII Receive State Machine 210 die
Größe des empfangenen
Daten-Frames mit den empfangenen Datenbytes in dem Puffer 224 der
ausgewählten
Ziel-GMII 278 speichern.
-
Ein
Multiplexer 204 der ausgewählten Ziel-GMII 278 gibt
Byteabschnitte des Daten-Frames, der in dem Puffer 124 gespeichert
ist, als Reaktion auf ein byte_en[2:0]-Signal von einer GMII Receive State
Machine 202 aus, während
das Signal GMII_RXDV assertiert wird. Die GMII Receive State Machine 202 kann
dann das letzte Byte des gespeicherten Daten-Frames, der zu übertragen
ist, basierend auf der Größeninformation
bestimmen, die von der XGMII Receive State Machine 210 gespeichert
wird. Nach dem Bestimmen des letzten Bytes in dem Daten-Frame kann
die GMII Receive State Machine 202 einen Wert für das Signal
byte_en[2:0] zum Überspringen
des Abschluss-Codes in dem gespeicherten Daten-Frame (zum Beispiel „FD") bereitstellen und
das Signal GMII_RXDV nach dem Übertragen
des letzten Bytes vor dem Abschluss-Code deassertieren.
-
Obwohl
hier beschrieben und veranschaulicht wurde, was derzeit als beispielhafte
Ausführungsformen der
vorliegenden Erfindung betrachtet wird, ist es für den Fachmann klar, dass verschiedene
andere Änderungen
erfolgen können,
und Gleichwertiges ersetzt werden kann, ohne den wahren Geltungsbereich
der Erfindung zu verlassen. Zusätzlich
können
zahlreiche Änderungen
vorgenommen werden, um eine besondere Situation an die Lehren der
vorliegenden Erfindung anzupassen, ohne das zentrale erfinderische
Konzept zu verlassen, das hier beschrieben wird. Es wird daher beabsichtigt,
dass die vorliegende Erfindung nicht auf die offenbarten besonderen
Ausführungsformen
beschränkt
ist, sondern dass die Erfindung alle Ausführungsformen enthält, die
in den Geltungsbereich der anliegenden Ansprüche fallen.