-
Allgemeiner
Stand der Technik
-
Eine
Ausführungsform
der Erfindung betrifft allgemein serielle Punkt-zu-Punkt-Verbindungstechnolgie,
die zur kommunikativen Kopplung von Elementen eines elektronischen
Systems geeignet ist, und insbesondere jene mit bestimmten Aspekten,
die der PCI Express Base Specification 1.0a (Errata vom 7. Oktober
2003) („PCI
Express") entsprechen.
Andere Ausführungsformen
werden ebenfalls beschrieben.
-
Ein
elektronisches System setzt sich aus mehreren Elementen zusammen,
die dafür
ausgelegt sind, miteinander über
eine Eingangs-/Ausgangs(I/O)-Verbindung des Systems zu kommunizieren.
Beispielsweise kann ein modernes Computersystem die folgenden Elemente
umfassen: einen Prozessor, einen Hauptspeicher und eine Systemschnittstelle
(auch als Systemchipsatz bezeichnet). Ein Element kann eines oder
mehrere Geräte
mit integriertem Schaltkreis (IC-Geräte) umfassen. Beispielsweise
kann der Systemchipsatz ein Memory-Controller-Hub(MCH)-Gerät aufweisen, das es dem Prozessor
ermöglicht,
mit dem Systemspeicher und einem Grafikelement zu kommunizieren.
Außerdem
kann ein I/O-Controller-Hub(ICH)-Gerät bereitgestellt sein, das
den Prozessor und den Speicher über
das MCH mit anderen Elementen des Computersystems wie Massenspeichergeräten und
Peripheriegeräten
verbindet. In diesem Fall kann eine separate Punkt-zu-Punkt-Verbindung
wie eine, die von PCI Express definiert wird, benutzt werden, um
die bidirektionale Kommunikation zwischen einem Gerätepaar,
z.B. dem Prozessor und dem MCH, dem MCH und dem Grafikelement sowie
dem ICH und dem Massenspeichergerät, zu ermöglichen.
-
Eine
Punkt-zu-Punkt-Verbindung mit PCI Express kann eine oder mehrere
Lanes (Spuren, Bahnen) aufweisen, die gleichzeitig arbeiten können. Jede
Lane weist doppelte, unidirektionale Pfade auf, die ebenfalls gleichzeitig
betrieben werden können. Jeder
Pfad kann einen einzelnen Satz von Sender-Empfänger-Paaren aufweisen (z.B.
einen Sender in einem Port des Geräts A, einen Empfänger in einem
Port des Geräts
B). In diesem Fall können
der Sender und der Empfänger
ein Übertragungsmedium,
wie etwa ein Paar Metallspuren in einer Platine, das einen Platine-zu-Platine-Anschluß quert,
erkennen und treiben. Alternativ können andere Übertragungsmedien
bereitgestellt sein, wie etwa ein Glasfaserleiter.
-
Eine
Punkt-zu-Punkt-Verbindung dient dem Transport verschiedener Arten
von Informationen zwischen Geräten.
Auf einer so genannten „höheren Schicht" jedoch kann die
Kommunikation zwischen Peers in zwei Geräten (auch als ein Requester
und ein Completer bezeichnet) mit Hilfe von Transaktionen erfolgen.
Beispielsweise gibt es Speichertransaktionen, die Daten zu oder
von einem im Speicher aufgezeichneten Ort transferieren. Unter PCI
Express gibt es auch Nachrichtentransaktionen, die diverse Nachrichten
kommunizieren und für
Funktionen wie Interrupt-Signalisierung, Fehlersignalisierung und
Leistungsmanagement benutzt werden können
-
Es
kann drei abstrakte Schichten geben, die eine Transaktion „aufbauen". Die erste Schicht
kann eine Transaktionsschicht sein, die den Prozeß des Umwandelns
von Anfrage- oder Vervollständigungsdaten,
die von einem Gerätekern
kommen, in ein Datenpaket für
eine Transaktion startet. Die zweite Schicht des Architekturaufbaus
wird die Datenverbindungsschicht genannt; sie gewährleistet,
daß die
Pakete, die auf einer Verbindung hin und her wandern, ordnungsgemäß empfangen
werden (über
Techniken wie etwa der Codierung zur Fehlererkennung und -korrektur).
Die dritte Schicht wird die physikalische Schicht genannt. Diese
Schicht ist für
das eigentliche Senden und Empfangen des Pakets auf der Verbindung
verantwortlich. Die physikalische Schicht in einem bestimmten Gerät interagiert
mit seiner Datenverbindungsschicht (in demselben Gerät) auf der
einen Seite und mit Metallspuren, einem Glasfaserleiter oder einem
anderen Übertragungsmedium,
das Teil der Verbindung ist, auf der anderen Seite. Die physikalische
Schicht kann Schaltungen für
Sender und Empfänger,
Parallel-zu-Reihe- und Reihe-zu-parallel-Wandler,
Frequenz- und Phasensteuerschaltungen und Impedanzanpassungsschaltungen
enthalten. Sie kann auch Schaltungen für logische Funktionen enthalten,
die zu ihrer Initialisierung und ihrer Aufrechterhaltung benötigt werden.
Eine Schichtenarchitektur kann leichtere Upgrades zulassen, indem sie
beispielsweise die Wiederverwendung im Wesentlichen derselben Transaktions-
und Datenverbindungsschicht ermöglicht,
während
die physikalische Schicht aufgerüstet
wird (z.B. die Sende- und Empfangstaktfrequenzen erhöht werden).
-
Ein
Beispiel für
das Verhalten der physikalischen Schicht wird im Folgenden geschildert.
Ist das System gestartet, sind die physikalischen Schichten an beiden
Geräten
A und B dafür
verantwortlich, die Verbindung zu initialisieren und für Transaktionen
in Bereitschaft zu versetzen. Dieser Initialisierungsprozeß kann das
Bestimmen umfassen, wie viele Spuren für die Verbindung benutzt werden
sollten und mit welcher Datenrate die Verbindung arbeiten sollte.
Einige Zeit, nachdem die Verbindung ordnungsgemäß initialisiert wurde, wird
in Gerät
A eine Speicherleseanfrage ausgelöst. Schließlich trifft diese Leseanfrage
auf der physikalischen Schicht des Geräts A ein, einschließlich der
Header, der Fehlererkennungsinformation und den Sequenznummern,
die von den höheren
Schichten hinzugefügt
werden. Die physikalische Schicht nimmt dann dieses Paket von Daten und
wandelt es in einen seriellen Datenstrom um (möglicherweise nachdem sie ihm
Rahmendaten hinzugefügt
hat) und sendet den Datenstrom, beispielsweise mit Hilfe eines elektrischen
differentiellen Signals mit vorbestimmten Zeitablaufregeln.
-
Wenn
die physikalische Schicht in Gerät
B das Erscheinen des Signals an ihrem Empfängereingang sieht, tastet sie
das Signal ab, um den Datenstrom wiederherzustellen, und baut den
Strom zu einem Datenpaket zurück
(z.B. nach Entfernung der Rahmung). Das Paket wird dann zur Datenverbindungsschicht
in Gerät
B geleitet, die die Header entfernt und es auf Fehler untersucht;
liegen keine Fehler vor, wird das Paket auf die Transaktionsschicht
hinauf geleitet, wo die Speicherleseanfrage extrahiert und dann
zur entsprechenden logischen Funktion gesendet wird, um auf die
in der Anfrage angegebenen Orte zuzugreifen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Ausführungsformen
der Erfindung sind als Beispiel und nicht als Einschränkung in
den Figuren der beigefügten
Zeichnungen dargestellt, in denen gleiche Bezugszeichen ähnliche
Elemente bezeichnen. Es sollte angemerkt werden, daß Bezüge auf „eine" Ausführungsform
der Erfindung in dieser Offenbarung nicht unbedingt dieselbe Ausführungsform
meinen und daß sie
mindestens eine bedeuten.
-
1 zeigt
ein Paar Geräte
mit integrierten Schaltkreisen, die über eine serielle Punkt-zu-Punkt-Verbindung
miteinander gekoppelt sind.
-
2 zeigt
ein Blockdiagramm eines Teils der Verbindungsschnittstellenschaltungen,
die zur Einrichtung der seriellen Punkt-zu-Punkt-Verbindung in einem
Gerät mit
integrierten Schaltkreisen benutzt werden.
-
3 zeigt
ein Blockdiagramm von Schaltungen zur Entzerrung des Signalversatzes
zum Bedienen einer Verbindung mit vier Lanes in diesem Beispiel.
-
4A–4B zeigen
ein detailliertes Blockdiagramm beispielhafter Schaltungen zur Entzerrung
des Signalversatzes für
eine einzige Lane.
-
5 ist
ein beispielhaftes Zeitablaufdiagramm, das einen Vorgang der Entzerrung
des Signalversatzes illustriert.
-
6A–6B zeigen
ein beispielhaftes Zeitablaufdiagramm eines weiteren Vorgangs der Entzerrung
des Signalversatzes.
-
7 kennzeichnet
die verschiedenen Elemente eines Multimedia-Desktop-PCs, von denen
einige über
virtuelle PCI-Express-Kanäle
(VCs) kommunikativ aneinander gekoppelt sind.
-
8 zeigt
ein Blockdiagramm eines Unternehmensnetzwerks.
-
DETAILLIERTE BESCHREIBUNG
-
Eine
Ausführungsform
der Erfindung richtet sich auf das empfängerseitige Entzerren mehrerer Lanes
einer seriellen Punkt-zu-Punkt-Verbindung. 1 illustriert
ein Paar von Geräten
mit integrierten Schaltkreisen, die über eine serielle Punkt-zu-Punkt-Verbindung
miteinander gekoppelt sind. Die IC-Geräte 104 (Gerät A) und 108 (Gerät B) können Teil
eines Computersystems sein, das einen Prozessor 112 und
einen Hauptspeicher 114 umfaßt. In diesem Beispiel wird
eine serielle Punkt-zu-Punkt-Verbindung 120 benutzt, um
den Kern des Geräts
B mit dem des Geräts
A kommunikativ zu koppeln. Die Verbindung 120 weist duale, unidirektionale
Pfade 122 mit der Schnittstelle 124 auf, die dazu
dient, den Gerätekern
des jeweiligen Geräte
A und B zu koppeln.
-
In
dieser Ausführungsform
wird Gerät
B als der Root-Komplex des Computersystems bezeichnet und verschafft
dem Prozessor 112 I/O-Zugriff beispielsweise auf ein Grafikelement
in Gerät
A. Der Root-Komplex kann in einen Grafik- und Memory-Controller-Hub
(GMCH) und einen I/O-Controller-Hub (ICH) partitioniert sein. Der
ICH würde
als eine weitere Schnittstelle zwischen dem GMCH und anderen I/O-Geräten des
Systems wirken, einschließlich
eines nicht flüchtigen
Massenspeichergeräts,
eines Zeigegeräts
wie etwa eines Trackpads oder einer Maus, und einer Netzwerkschnittstellensteuerung
(nicht dargestellt). Die Punkt-zu-Punkt-Verbindung 120 kann
dupliziert werden, um das Gerät
B kommunikativ an den Prozessor 112 und den Hauptspeicher 114 zu
koppeln. Es sind auch andere Plattformarchitekturen möglich, die
die Punkt-zu-Punkt-Verbindung 120 umfassen.
-
Die
Schnittstelle 124 der 1 kann als
die Instanz betrachtet werden, die die Mehrschichtarchitektur (oben
unter Stand der Technik beschrieben) für eine serielle Punkt-zu-Punkt-Verbindung umsetzt.
Einige Details der Schnittstelle 124 sind in 2 dargestellt.
Die Schnittstelle 124 unterstützt selbständige Sende- und Empfangspfade
zwischen dem Übertragungsmedium 122 und
der Datenverbindungsschicht des jeweiligen Geräts 104, 108.
Auf dem Sendepfad treffen Informationen in Form von Datenpaketen
aus der Datenverbindungsschicht ein und werden in Symbole unterteilt,
die von einem Codierblock 208 verschlüsselt werden. Ein Zweck der
Verschlüsselung
durch den Block 208 besteht darin, ein Taktsignal einzubetten,
sodaß kein
separates Taktsignal in das Übertragungsmedium 122 gesendet
werden muß.
Bei dieser Verschlüsselung
kann es sich um das bekannte 8B-10B handeln, bei dem eine Menge von
8 Bit in eine Menge von 10 Bit umgewandelt wird; andere Codierschemata
sind möglich.
In einigen Fällen,
wie etwa, wenn ein separater Impuls oder ein separates Taktsignal
in das Medium 122 gesendet wird, kann eine solche Codierung
unnötig
sein.
-
Nach
dem Codieren in Block 208 werden die Dateneinheiten (hier
als Symbole bezeichnet) durch einen Parallel-zu-seriell-Block 212 eines
Analogeingangs(AFE)-Sendeblocks 214 verarbeitet, um einen Strom
von Bits zu erzeugen. Es ist anzumerken, daß ein „Bit" in der vorliegenden Verwendung für mehr als zwei
verschiedene Zustände
stehen kann, z.B. ein binäres
Bit, ein ternäres
Bit usw. Der Begriff „Bit" wird hier nur der
Bequemlichkeit wegen gebraucht und soll nicht auf ein binäres Bit
eingeschränkt
sein. Der Datenstrom wird dann in das Übertragungsmedium 122 getrieben.
Wie oben unter Stand der Technik beschrieben, kann dieses Übertragungsmedium
ein Paar Metallspuren sein, die in einer Platine gebildet sind.
Es können
alternativ andere Formen des Übertragungsmediums 122 benutzt
werden, wie etwa ein Glasfaserleiter.
-
Die
Serie von Blöcken 208–214 kann
eine einzige Lane der Punkt-zu-Punkt-Verbindung 120 (1)
bedienen. Allgemein kann es mehr als eine Lane in der Punkt-zu-Punkt-Verbindung 120 geben, sodaß ein Paket,
das von der Datenverbindungsschicht empfangen wird, zum Senden über die
mehreren Lanes „gestreift" werden kann.
-
Nunmehr
mit Bezug auf die in 2 dargestellte Empfängerseite
weist jede Lane ihren dazugehörigen
Analogeingangs(AFE)-Empfängerblock 224 auf,
der zum Empfangen eines Stroms von Informationen aus dem Übertragungsmedium 122 dient,
beispielsweise durch das Abtasten eines Signals in dem Übertragungsmedium 122.
Der AFE-Empfängerblock 224 übersetzt
zwischen der Signalisierung des Übertragungsmediums 122 und
der Signalisierung des IC-Geräts 104 (z.B.
On-Chip, Komplementär-Metalloxidhalbleiter,
CMOS, logische Signalisierung). Wie unten erläutert werden wird, stellt der Strom
der Informationen Sequenzen von M-Bit-Symbolen dar (wobei M eine ganze
Zahl größer als
1 ist), die von Gerät
B über
die serielle Punkt-zu-Punkt-Verbindung 120 gesendet wurden
(siehe 1).
-
Der
Strom von Bits, der vom AFE-Empfängerblock 224 bereitgestellt
wird, wird in die Symbolausrichtungslogik 228 eingegeben,
die dazu dient, die empfangenen Symbole auszurichten oder festzusetzen.
Mit anderen Worten, und wie unten erklärt werden wird, setzt die Symbolausrichtungslogik 228 die
korrekten Symbolgrenzen innerhalb des empfangenen Bit-Stroms zur
Verwendung durch nachfolgende Abschnitte der physikalischen Schicht
im Gerät 104.
-
Der
Bit-Strom mit ausgerichteten Symbolen kann dann in den Decodierblock 232 eingespeist werden,
der die von Codierblock 208 durchgeführte Verschlüsselung
auflöst
(z.B. 10B-8B-Decodierung, um Symbole von Informationen zu erzeugen,
die aus je acht binären
Bits bestehen).
-
Die
decodierten Symbole werden dann einem elastischen Puffer EB 234 zugeführt. Der
EB 234 dient zum Kompensieren etwaiger Unterschiede zwischen
der Toleranz der Rate, mit der die Symbole in Gerät B gesendet
wurden, und einem lokalen Taktsignal (local_clk) des Geräts A. Das
local-clk wird benutzt, um Symbole vom EB 234 zu entladen,
sowie um in einigen Fällen
Teile der Lane-zu-Lane- Entzerrungsschaltung 238 zu betreiben,
wie unten beschrieben (in dem Fall, in dem die Verbindung 120 aus
mehr als einer Lane besteht). Es sollte angemerkt werden, daß der Decodierblock 232 (falls
bereitgestellt) an späterer
nachgeschalteter Stelle angeordnet sein kann, z.B. am Ausgang des
EB 234 oder am Ausgang der Entzerrungsschaltung 238.
-
Der
Entladezeiger des EB 234 kann so gemanagt werden, daß Zustände des übermäßigen oder
zu geringen Flusses in dem Puffer vermieden werden, und zwar mit
Hilfe vorbestimmter spezieller oder Nicht-Daten-Sequenzen von Symbolen,
die von Gerät
B (siehe 1) in eine Datensequenz eingefügt werden.
Kurz gesagt kann, um einen zu geringen Fluß im elastischen Puffer zu
verhindern, der Entladezeiger bei einem Eintrag des Puffers, der
ein Nicht-Daten-Symbol
enthält,
gestoppt werden, als Reaktion auf das Erkennen einer Nicht-Daten-Sequenz.
Dies geschieht, während
die Datensequenz entsprechend des sich ändernden Entladezeigers entladen
wird. Dies bewirkt, daß der
Ladezeiger sich von dem Entladezeiger entfernt und somit ein zu
geringer Fluß vermieden
wird.
-
Andererseits
kann der Entladezeiger, um einen übermäßigen Fluß durch den elastischen Puffer zu
verhindern, von mehr als einem Eintrag so geändert werden, daß ein Nicht-Daten-Symbol der Nicht-Daten-Sequenz
(wie sie in den Puffer geladen ist) übersprungen wird, während Symbole
vom Puffer entladen werden. Wiederum geschieht dies als Reaktion
auf das Erkennen der Nicht-Daten-Sequenz. Dies bewirkt, daß sich der
Entladezeiger von dem Ladezeiger entfernt, wiederum um eine Kollision
zu vermeiden.
-
Ein
Symbol kann ein „Daten-"Symbol sein, das
ein Payload darstellt, die von der Datenverbindungsschicht, der
Transaktionsschicht oder einer anderen höheren Schicht wie etwa dem
Gerätekern
bezogen wurde. Alternativ kann ein Symbol ein „Nicht-Daten-"Symbol sein, z.B.
ein spezielles Symbol, das von der physikalischen, der Datenverbindungs-
oder der Transaktionsschicht erzeugt wurde, um eine gewisse Art
von Kontrolle über
die Informationen zu erlangen, die über die serielle Punkt-zu-Punkt-Verbindung übertragen
werden. Verschiedene Beispiele solcher Nicht-Daten-Symbole werden
unten als spezielle PCI-Express-Symbole aufgeführt.
-
PCI
Express definiert eine Anzahl spezieller Symbole, die den Paketen,
die kommuniziert werden, hinzugefügt werden. Beispielsweise können spezielle
Symbole hinzugefügt
werden, um den Anfang und das Ende eines Pakets zu markieren. Dies
geschieht, um einem empfangenden Gerät mitzuteilen, wo ein Paket
beginnt und wo es endet. Verschiedene spezielle Symbole werden bei
Paketen hinzugefügt,
die aus der Transaktionsschicht, nicht aus der Datenverbindungsschicht,
stammen. Außerdem
gibt es ein spezielles Symbol namens „SKP" („skip" – überspringen), das von der physikalischen
Schicht benutzt werden soll, um kleine Unterschiede in den Betriebsdatenraten
zweier miteinander kommunizierender Ports zu kompensieren. Es gibt auch
ein spezielles Symbol namens „COM" („comma" – Komma), das von der physikalischen
Schicht für
die Lane- und Verbindungsinitialisierung verwendet werden soll.
-
Entzerrung
-
Das
Problem der Entzerrung des Signalversatzes, wie es im Vorliegenden
behandelt wird, betrifft Verbindungen, die mehr als eine Lane aufweisen.
Im Wesentlichen ist die Entzerrung des Signalversatzes ein Problem,
weil die „Flugzeit" von Informationen,
wenn sie von Gerät
B gesendet und von Gerät
A empfangen werden, von Lane zu Lane variieren kann. Obschon ein
Satz von Symbolen gleichzeitig auf einem entsprechenden Satz von
Lanes unter Verwendung desselben Übertragungstaktes von Gerät B gesendet
werden kann, kann somit nicht erwartet werden, daß sie bei
Gerät A
im wesentlichen zur selben Zeit ankommen, d.h. ohne Lane-zu-Lane-Signalversatz.
Es kann mehrere verschiedene Quellen für den Lane-zu-Lane-Signalversatz
geben. Zu diesen gehören
in dem Fall, daß das Übertragungsmedium
der physikalischen Schicht, wie im PCI Express definiert, differentielle
On-Chip-Treiber und -Empfänger
sind, Platinen-Impedanzabweichungen
und falsche Lane-Leiteranpassungen. Verschiedene Verzögerungen
können
auch durch die Serialisierungs- und Deserialisierungslogik hervorgerufen sein.
-
Da
ein Paket über
mehrere Lanes gestreift werden kann, sollte jeglicher Lane-zu-Lane-Signalversatz minimiert
werden, um gewährleisten
zu helfen, daß das
verteilte Paket am Empfängergerät korrekt
empfangen und verarbeitet wird. Anderenfalls wäre, wenn Symbole, die zeitgleich
gesendet wurden, zu verschiedenen Zeiten bei dem Empfänger eintreffen
und dann deserialisiert werden, um ein Datenpaket zu rekonstruieren,
ein solches Paket mit größter Wahrscheinlichkeit
für die
Datenverbindungsschicht völlig
unverständlich.
Unter PCI Express können
vorbestimmte Nicht-Daten-Sequenzen, die als „geordnete TS1/TS2-Sätze" bezeichnet werden,
benutzt werden, um das Ausmaß der
Nichtübereinstimmung
oder des Signalversatzes zwischen den Lanes einer bestimmten Verbindung
zu bestimmen. 3 stellt konzeptionell dar,
wie vier Sätze
einer Sequenz mit vier Symbolen, die „gleichzeitig" gesendet wurden,
parallel, aber zu unterschiedlichen Zeiten bei dem Empfänger eintreffen und
anschließend
mittels der Entzerrungsschaltung ausgerichtet werden.
-
Gemäß einer
Ausführungsform
der Erfindung kann die Lane-zu-Lane-Entzerrung über die Verarbeitung von Nicht-Daten-Symbolen
erreicht werden, wie unten beschrieben. Zuerst werden zwei oder
mehr Symbolsequenzen parallel im Gerät A empfangen, wobei diese
Sequen zen von Gerät
B über
die serielle Punkt-zu-Punkt-Verbindung (siehe 2)
gesendet wurden. Jede Symbolsequenz umfaßt eine Instanz eines ersten
Nicht-Daten-Symbols (z.B. das PCI-Express-COM). Die Symbolsequenzen werden
gepuffert, um die Toleranzen zu kompensieren, die für den Sendetakt
des Geräts
B und den Empfangstakt in Gerät
A zulässig
sind. Mit erneutem Bezug auf 2 kann eine
solche Pufferung mit dem elastischen Puffer (EB) 234 erreicht
werden. Diese Pufferung kann jedoch eine Änderung der Anzahl der Häufigkeit
bewirken, mit der eine Instanz eines zweiten Nicht-Daten-Symbols
(z.B. PCI-Express-SKP) in einer bestimmten Symbolsequenz auftritt.
Somit kann zusätzlich
zu den oben genannten, standardmäßigen Quellen
des Signalversatzes die Aktivität des
EB 234 weiteren Lane-zu-Lane-Signalversatz induzieren.
-
Eine
Ausführungsform
der Erfindung richtet sich auf einen zweiteiligen Entzerrungsvorgang.
Der erste Teil richtet eine Instanz des ersten Nicht-Daten-Symbols
in jeder der gepufferten Signalsequenzen der Verbindung aneinander
aus. Dieser Vorgang führt
durch den Puffereffekt der Entzerrungslogik zu einer gewissen Anpassung
in den Verzögerungen, die
jeder Sequenz widerfahren. Ist dieser Teil abgeschlossen, kann der
zweite Teil aufgerufen werden, bei dem die Anzahl der Instanzen
des zweiten Nicht-Daten-Symbols, die einer Instanz eines ersten Nicht-Daten-Symbols (in
jeder der Symbolsequenzen) folgen, ausgeglichen wird. Im Folgenden
wird ein Beispiel mit speziellen, nach PCI Express definierten Symbolen
beschrieben. Es sollte angemerkt werden, daß andere Arten von Nicht-Daten-Symbolen,
einschließlich
verschiedener erster und zweiter Nicht-Daten-Symbole, verwendet
werden können, um
die hier beschriebene Entzerrung des Signalversatzes zu erreichen.
Außerdem
kann dieser erste und zweite Teil der Entzerrung jeweils separat
oder in Kombination mit anderer Symbolverarbeitung verwendet werden,
um zuverlässige
Kommunikation über
mehrere Lanes für
eine serielle Punkt-zu-Punkt-Verbindung
zu erreichen.
-
Beginnend
mit 3 zeigt diese Figur ein Blockdiagramm der Entzerrungsschaltung,
in diesem Beispiel zum Bedienen einer Verbindung mit vier Lanes.
Jede empfängt
10-Bit-Symbole vom EB 234 (siehe 2). Obschon
diese als 10-Bit-Symbole dargestellt sind, kann die Ausführungsform
der 10 wegen des Vorhandenseins des
Decodierblocks 232 tatsächlich
8-Bit-Symbole bereitstellen. Andere
Symbolgrößen sind
alternativ möglich.
-
Jede
Lane weist ihre eigene Lane-Entzerrungslogik 304 auf die
ihre jeweilige Symbolsequenz empfängt. Außerdem empfängt die Lane-Entzerrungslogik 304 Steuersignale
von einem Teil der Verbindungsinitialisierungseinheit 308,
die als eine Aufsicht für
den Entzerrungsvorgang wirken kann. Diese Steuersignale umfassen:
ein Steuersignal zum Aktivieren der Entzerrung (pro Lane) und ein
Steuersignal, das anzeigt, daß das
erste Nicht-Daten-Symbol auf allen Lanes der Verbindung erkannt
wurde (all_com_det). Jede Instanz der Lane-Entzerrungslogik 304 stellt
an ihrem Ausgang auch ihre jeweilige weitergeleitete Symbolsequenz
(mit reduziertem Signalversatz) bereit.
-
Gemäß einer
Ausführungsform
der Erfindung kann die Lane-Entzerrungslogik von der in 4A–4B dargestellten
Hardware realisiert werden. Ein Entzerrungspuffer 404 (der
eine First-In-First-Out-Struktur, auch als Warteschleife bezeichnet,
haben kann) ist in diesem Beispiel mit einer Tiefe von sieben Einträgen (0,
1, ... 6) bereitgestellt. Die Tiefe des Puffers 404 sollte
mit Blick auf eine Obergrenze des zulässigen Signalversatzes, die
in einer Designspezifikation für
die Verbindung bereitgestellt ist, gewählt werden. Derselbe Puffer 404 kann
sowohl für
den ersten als auch für
den zweiten Entzerrungsvorgang verwendet werden.
-
Immer
noch mit Bezug auf 4A ist die Schreibzeigerlogik 408 zum
Laden einer gepufferten Symbolsequenz in den Entzerrungspuffer 404 eingerichtet.
Im ersten Teil des Entzerrungsvorgangs wird der Wert des Schreibzeigers
der Reihenfolge nach gemäß dem lokalen
Takt, lgclk, geändert
oder aktualisiert, der auch benutzt wird, um die gepufferten Symbole
aus dem EB 234 (siehe 2) auszulesen. Es
ist anzumerken, daß der
Schreibzeiger bei jedem Zyklus des lgclk unter normalen Umständen wie
auch während
des ersten Teils des Entzerrungsvorgangs inkrementiert werden kann,
das heißt,
um einen Eintrag geändert
werden kann, selbst wenn der Lesezeiger wie unten beschrieben gestoppt
wurde. Im zweiten Teil des Entzerrungsvorgangs jedoch wird der Schreibzeiger
solcherart gesteuert, daß das
zweite Nicht-Daten-Symbol
(z.B. SKP) möglicherweise
nie in den Puffer geschrieben wird. Das zweite Nicht-Daten-Symbol ist dasjenige,
das ersetzt wird, wenn der Lesezeiger gestoppt wird (während des
ersten Teils des Entzerrungsprozesses). Zu vermeiden, daß das zweite
Nicht-Daten-Symbol (während
des zweiten Teils) tatsächlich
auf den Puffer geschrieben wird, trägt dazu bei, am Ende einen Überfüllungszustand des
Puffers zu vermeiden.
-
4B zeigt
die Lesezeigerlogik 412, die einen Lesezeiger bereitstellt,
um die gepufferte Symbolsequenz aus dem Entzerrungspuffer 404 zu
entladen. Beispielsweise wird der Lesepuffer entsprechend jedem
Zyklus des lgclk inkrementiert, es sei denn, das erste Nicht-Daten-Symbol
(z.B. COM) erscheint am Ausgang des Puffers 404.
-
Die
in 4B dargestellte Entzerrungsschaltung umfaßt auch
die Steuerlogik 416, die an die Lesezeigerlogik 412 gekoppelt
ist. Die Logik kann aktiviert werden, wenn erst das Aktivierungssteuersignal
gi_gb_dskew_en (sowie vielleicht ein Hinweis, daß die Symbolausrichtung eingetreten
ist, nämlich über gp_gi-kalignlck)
ausgegeben wurde. Als Reaktion auf die erste Instanz des ersten
Nicht-Daten-Symbols (z.B. COM), das an einem Ausgang des Puffers 404 erscheint,
kann die Steuerlogik 416 den Lesezeiger stoppen, in diesem
Beispiel durch das Anwählen des „01"-Eingangs eines Multiplexers
wie dargestellt. Außerdem
kann die Steuerlogik 416 eine Instanz des zweiten Nicht-Daten-Symbols
(z.B. SPK) an einem Ausgang der Lane-Entzerrungslogik, durch den die gepufferte
Symbolsequenz dskw_data[7:0] weitergeleitet wird, erzeugen. Die
Steuerlogik 416 kann den Lesezeiger freigeben (und das
Erzeugen von Instanzen des zweiten Nicht-Daten-Symbols einstellen), sobald
das erste Nicht-Daten-Symbol an einem Ausgang des Entzerrungspuffers 404 in
jeder Lane der Verbindung aufgetreten ist.
-
Die
Funktionsweise des ersten Teils des Entzerrungsprozesses mit Hilfe
der Hardware der 4A–4B als
Beispiel ist in dem Zeitablaufdiagramm der 5 dargestellt.
Dieses Zeitablaufdiagramm zeigt Wellenformen, die zu zwei verschiedenen
Lanes der Verbindung gehören,
wobei Lane 0 die erste sein kann, die das erste Nicht-Daten-Symbol COM
empfängt,
und Lane 1 die letzte ist, die ein COM empfängt.
-
Es
ist zu beachten, wie der Schreibzeiger wrptr bei jedem Zyklus von
lgclk inkrementiert wird (und in Zyklus 8 auf 0 zurückspringt).
Der Eingang des Puffers 404 wird durch ebuff_out[7:0] dargestellt, während sein
Ausgang durch FIFO_dataout dargestellt wird. Der Hinweis dskew_char
ist ein Flag, das auch am Eingang des Puffers 404 (vom
EB 234, siehe 2) ankommt. Dieses Flag wird
mit dem eintreffenden COM-Symbol ausgerichtet, wie in Zyklus 2 sichtbar.
-
Wenn
dieses COM am Ausgang des Puffers 404 erkannt wird, und
insbesondere in Zyklus 3, wird das Flag FIFO_dskew_char ausgegeben,
was sofort bewirkt, daß das
Flag gen_skp ebenfalls ausgegeben wird. Dies bedeutet, daß das rdptr
bei seinem gegenwärtigen
Wert 001 gestoppt wird, während
in dskw_data[7:0] eine Instanz des zweiten Nicht-Daten-Symbols SKP
erzeugt wird (beginnend mit Zyklus 3). Die Situation in Zyklus 3
dauert fort, bis die letzte Lane der Verbindung ein COM am Eingang
ihres Puffers 404 empfangen hat. Somit ist, nunmehr mit
Bezug auf das Zeitablaufdiagramm für Lane 1, diese Lane die letzte
Lane, die ein COM empfangen hat, was hier zufällig in Zyklus 5 von lgclk
geschieht. Diese Erscheinung wird dann decodiert, sodaß im nächsten Zyklus
das Flag gi_gp_dskewchar_all_detect ausgegeben wird (oder gi_gp_all_com_det
durch die Verbindungsinitialisierungseinheit 308, siehe 3).
Somit leitet in Zyklus 6 Lane 0 das gepufferte COM, statt des erzeugten SKP,
an seinem Ausgang dskw_data[7:0] weiter. Das Signal gi_gp_dskewchar_all_detect,
wenn es ausgegeben ist, bedeutet, daß alle Lanes der Verbindung das
erste Nicht-Daten-Symbol „gesehen" haben, sodaß der rdptr
für jede
Lane nun aus seinem gestoppten Zustand freigegeben werden kann.
-
Es
ist anzumerken, daß alle
Schreibzeiger für
alle Lanes weiterhin in jedem Zyklus des lgclk inkrementiert werden,
es sei denn, das zweite Nicht-Daten-Symbol (hier SKP) wird am Eingang
des Puffers 404 erkannt. Bei der PCI-Express-Ausführungsform
sucht der Vorgang nach dem COM am Eingang des Puffers 404,
wobei dieses COM nicht das eines geordneten SPK-Satzes ist. Der
geordnete SPK-Satz ist, wie oben erläutert, ein Beispiel einer Nicht-Daten-Sequenz, die nach
PCI Express so definiert ist, daß sie aus einem einzigen COM,
gefolgt von eine bis fünf
Instanzen des SKP, besteht. Um einen geordneten SPK-Satz zu illustrieren,
muß man sich
vorstellen, daß in
dem Zeitablaufdiagramm der 5 DATA1,
DATA2 und DATA3 (die eigentlich auf COM „folgen") stattdessen jeweils eine Instanz des Nicht-Daten-Symbols
sind.
-
Der
erste Teil des Entzerrungsvorgangs, als Entzerrung unter Verwendung
von COM für
die PCI-Express-Ausführungsform
bezeichnet, führt
zu einer Ausrichtung des COM in allen Lanes einer Verbindung, indem
eine oder mehr Instanzen von SPK, das dem COM vorausgeht, eingefügt werden.
Dies wird in 5 ersichtlich, indem die entzerrten
Ausgangsdaten für
Lane 0 (dskw_data[7:0]) mit dem jeweiligen entzerrten Ausgang für Lane 1
verglichen werden. Es ist zu beachten, wie die COMs in Zyklus 6
des lgclk ausgerichtet sind, was erreicht wurde, indem drei Instanzen
von SPK, die dem COM vorausgehen, in die Taktzyklen 3–5 eingefügt wurden.
-
Der
oben beschriebene erste Teil des Entzerrungsvorgangs (Entzerrung
unter Verwendung von COM) kann während
des Einrichtens, vor der Initialisierung der Verbindung durchgeführt werden.
Dem ersten Teil kann der zweite Teil folgen, von dem ein Beispiel
in 6A–6B dargestellt
ist. Bei der PCI-Express-Ausführungsform
wird der zweite Teil des Entzerrungsvorgangs auch als Entzerrung
unter Verwendung von SKP bezeichnet. Dieser zweite Teil kann nur
durchgeführt
werden, wenn die Verbindungsinitialisierungseinheit oder eine Symbolverarbeitungseinheit
einer höheren
Ebene ein weiteres Aktivierungssymbol gi_gp_skpdskew_en (siehe 4A–4B)
ausgibt. Die Schaltung der Entzerrungslogik, wie in 4A–4B dargestellt,
halt nun beispielsweise nach einem Hinweis auf eine Instanz des
ersten Nicht-Daten-Symbols (z.B. COM), gefolgt von einer Instanz
des zweiten Nicht-Daten-Symbols (z.B. SKP), Ausschau. Diese beiden Symbole
sind ein Beispiel des geordneten SPK-Satz des PCI Express, obschon
im allgemeinen auch andere Nicht-Daten-Sequenzen funktionieren.
In der Ausführungsform
der 4A–4B wird
dieser Hinweis durch die Ausgabe des eb_dskw_skpdet, das vom EB 234 gewonnen
wurde, gegeben. Dieser Hinweis kann auch ein Flag setzen, das anzeigt,
daß ein
geordneter SPK-Satz verarbeitet wird. Wird dieses Flag gesetzt und
ein Nicht-SPK-Daten-Symbol nach einem SKP erkannt, so würde dies
das Ende des geordneten SPK-Satzes signalisieren. Siehe die Logik
zur Erkennung des letzten SPK 418, die Signal gibt, wenn
der letzte geordnete SPK-Satz erkannt wurde. Zwischenzeitlich wird
die Datensymbolsequenz in den Entzerrungspuffer 404 geladen,
während
gleichzeitig das Attribut dskew_char gesetzt wird. In dieser Ausführungsform
werden jedoch alle SKP-Zwischensymbole, vom Beginn des geordneten SPK-Satzes
bis zu seinem Ende, nicht in den Entzerrungspuffer 404 geschrieben.
-
Nun
in Bezug auf den Ausgang des Entzerrungspuffers 404, wird,
wenn das Attribut dskew_char gesetzt wird, der Lesezeiger an seiner aktuellen
Position gestoppt (wiederum über
die Steuerlogik 416 und die Zeigerlogik 412).
Dies wird aus dem Zeitablaufdiagramm der 6A für Lane 0
ersichtlich, wo der rdptr mit Beginn bei Taktzyklus 4 gestoppt wurde.
Es ist auch zu beachten, wie der Ausgang des Entzerrungspuffers,
d.h. FIFO_dataout, in den Zyklen 3 und 4 unsicher ist, während der
Ausgang für
die Lane (dskw_data[7:0]) zeigt, daß zwei Instanzen des SPK erzeugt
wurden. Dies ist so, weil die SPK-Symbole, die in den Zyklen 2 und
3 erscheinen, am Ausgang des EB 234, nicht in den Entzerrungspuffer 404 geschrieben
werden.
-
6B zeigt
Lane 1, die in diesem Fall ein Beispiel einer Lane ist, die keine
Instanzen des SPK in dem, was ein geordneter SPK-Satz war, vor dem elastischen
Puffer EB 234 (2) empfangen hat. Die Nicht-Daten-Sequenz
besteht in diesem Fall aus einer einzigen Instanz des COM, das aus
dem elastischen Puffer (Zyklus 1) eintrifft. Dieses Symbol würde trotzdem
als ein geordneter SPK-Satz betrachtet (weil es mit der entsprechenden
Sequenz in Lane 0 ausgerichtet ist). Dementsprechend wird der Hinweis ep_dskw_skpdet
auch gesetzt, wenn das COM in Zyklus 1 empfangen wird. Wird eine
Instanz von SPK in anderen Lanes (hier beispielsweise Lane 0) erkannt, wird
der Hinweis skp_detect_vld wie in Zyklus 2 gesetzt, was anzeigt,
daß es
mindestens ein SKP gibt, das für
den Ausgang der Lane 1 eingefügt
werden muß.
Dementsprechend wird am Anfang des Zyklus 3 eine Instanz von SPK
am Ausgang (dskw_data) erzeugt. Es werden weiter zusätzliche
Instanzen von SPK für
Lane 1 erzeugt, solange das betreffende Entzerrungszeichen, in diesem
Fall die letzte Instanz von SPK im längsten geordneten Satz der
Verbindung, nicht am Eingang eines Entzerrungspuffers einer beliebigen
Lane der Verbindung erkannt wurde. Beispielsweise in 6A–6B ist
das Flag gi_gp_dskewchar_all_detect mit Beginn des Zyklus 5 gesetzt,
was das Ende des längsten
geordneten SPK-Satzes anzeigt. Dies führt dazu, daß der Lesezeiger
in Lane 1 mit Zyklus 5 freigegeben wird, sodaß das Datensymbol im Entzerrungspuffer
für Lane
1 (hier DATA1) am Ausgang für
Lane 1 bereitgestellt wird. Es ist daher ersichtlich, daß die Symbolsequenz DATA0,
COM, SKP, SKP, DATA1, DATA2, DATA3,... alle in Lane 0 und in Lane
1 (als dskw_data) ausgerichtet sind.
-
Das
Folgende wiederholt einige der Regeln zum Betreiben des Lese- und
des Schreibzeigers, gemäß bestimmten
Ausführungsformen
der Erfindung. Hinsichtlich des Schreibzeigers kann dieser Zeiger
aktiviert werden, z.B. entsprechend lgclk inkrementiert werden,
sobald eine Einrichtungssitzung für die Verbindung initiiert
wurde. Der Schreibzeiger kann unter allen Umständen außer den folgenden inkrementiert
werden (wobei der Schreibzeiger bei seinem gegenwärtigen Wert
anhält
oder gestoppt wird): a) das zweite Nicht-Daten-Symbol (z.B. SPK)
wurde am Eingang des entsprechenden Entzerrungspuffers erkannt;
oder b) die Verbindung befindet sich in der X1-Konfigurierung, d.h.
mit einer einzelnen Lane.
-
Nun
mit Bezug auf den Lesezeiger kann dieser Zeiger aktiviert werden,
sobald der Schreibzeiger aktiviert wurde. Die folgenden sind Bedingungen,
unter denen der Leseschreiber nicht inkrementiert werden kann, d.h.
er wird gestoppt: a) der Leseschreiber ist gleichauf mit dem Schreibzeiger
(auch als Zeigerkollision bezeichnet, was bedeutet, daß der Entzerrungsvorgang
nicht durchgeführt
werden kann); b) ein Hinweis am Ausgang des Entzerrungspuffers, daß ein Entzerrungszeichen
oder -symbol (z.B. COM oder SPK) erkannt wurde, daß aber ein
solches Symbol nicht an allen Lanes der Verbindung erkannt wurde;
oder c) die Verbindung befindet sich in der Einzel-Lane-Konfigurierung.
Es ist anzumerken, daß das
Signal gp_gi_dskewchar_detect (5 und 6) ein einzelnes Symbol ist, das benutzt
werden kann, um das Vorliegen einer der beiden Arten von Entzerrungszeichen,
z.B. entweder COM oder SKP, anzuzeigen.
-
Andere Systemausführungsformen
-
Die
oben beschriebene Verbindungsschnittstellenschaltung und -verfahrensweise
kann auch in IC-Geräten
realisiert werden, die für
die Kommunikation über
eine serielle Punkt-zu-Punkt-Verbindungstechnolgie
ausgelegt sind, die isochrone Unterstützung für Multimedia bereitstellen.
Isochrone Unterstützung
ist eine spezielle Art von Dienstgütegarantie, daß die Daten
mit Hilfe eines deterministischen und zeitabhängigen Verfahrens geliefert
werden. Plattform-basierte, isochrone Unterstützung stützt sich auf eine dokumentierte
Systemdesignverfahrensweise, die eine Anwendung zuläßt, welche
ein konstantes oder fest zugewiesenes Zugriffniveau auf Systemressourcen
erfordert, um die erforderliche Bandbreite in einem gegebenen Zeitraum
zu erzielen.
-
Ein
Beispiel ist jenes, bei dem eine Rundsendung für die Angestellten, die vom
Geschäftsführer der
Firma stammt, auf dem Desktopcomputer betrachtet wird, während an
einem Bericht gearbeitet wird, wie in 7 dargestellt.
Daten werden vom Intranet in den Hauptspeicher des Desktopcomputers geleitet,
wobei die Anwendung die Daten benutzt, um einen Audiostrom zu erzeugen,
der über
eine Add-In-Karte auf die Kopfhörer
des Benutzers gesendet wird, sowie einen Videostrom, der über eine
Grafiksteuerung zum Anzeigegerät
gesendet wird. Treten in dem Desktop-PC gleichzeitige Operationen auf,
wie etwa das Lesen einer CD, Daten, die aus dem Internet kommen,
Textverarbeitung, E-Mail usw., gibt es keine Garantie, daß der Audio-
und der Videostrom wirklich genau zueinander passen. Daten werden
lediglich nach einem Verfahren des „besten Bemühens" geliefert. Der Benutzer
kann möglicherweise
Sprünge
oder Stockungen wahrnehmen, während
die Anwendungen um dieselben Ressourcen konkurrieren. Isochronie
unter PCI Express löst
dieses Problem, indem ein Mechanismus eingerichtet wird, der garantiert,
daß zeitsensitive
Anwendungen in der Lage sind, adäquate
Systemressourcen sicherzustellen. In 7 beispielsweise
würden
den zeitsensitiven Daten adäquate
Bandbreite zugesichert, um Sprünge
auf Kosten nicht-kritischer Daten wie etwa E-Mail zu verhindern.
-
Die
oben beschriebene Verbindungsschnittstellenschaltung und -verfahrensweise
kann auch in IC-Geräten
realisiert werden, die für
die Kommunikation über
eine serielle Punkt-zu-Punkt-Verbindungstechnolgie
ausgelegt sind, welche in Kommunikationsanlagen benutzt wird, von
eingebetteten Anwendungen zu chassis-basierten Switching-Systemen. Bei
dem Advanced Switching sind Mechanismen bereitgestellt, um Pakete
Peer-zu-Peer durch das Weichennetz zu senden. Diese Märkte profitieren
auch von der hardware-basierten Fehlererkennung der Serverklasse,
die mit PCI Express verfügbar
ist. Es kann zwei Hauptarten von Verwendungen in Kommunikationsanlagen,
in der Verarbeitung der Steuerebene und in der Verarbeitung der Datenebene
geben. Steuerebene bezieht sich auf die Steuerung und Konfiguration
des Systems. Die serielle Verbindung kann als die Schnittstelle
verwendet werden, um Prozessoren und Karten in einer großen Anzahl
von Systemen zu steuern und zu konfigurieren. Chassis-basierte Weichen
können
Feld-Aufrüstbarkeit
bieten. Die meisten Switching-Systeme bieten die Fähigkeit, anfänglich nur
die Hälfte
des Chassis zu bestücken und
Karten mit zusätzlichen
Ports und schnelleren Verbindungen hinzuzufügen, wenn sich der Bedarf oder
die Anzahl der Benutzer erhöht.
Die serielle Verbindungstechnologie kann als Verbindung auf der Steuerebene
verwendet werden, um die verschiedenen Arten von Karten, die in
dem System installiert sind, zu konfigurieren und zu überwachen.
Das Protokoll zur Enumeration und der eingerichteten Konfigurierung
unter PCI Express eignet sich beispielsweise für eine Schnittstelle mit geringer
Pin-Anzahl und einer hohen Bandbreite, um Karten und Dienste zu
konfigurieren.
-
Die
Datenebene bezieht sich auf den tatsächlichen Pfad, auf dem die
Daten fließen.
Auf der Datenebene kann eine ausgereifte Switching-Erweiterung Mechanismen
definieren, um PCI-Express-Datenpakete
einzukapseln und über Peer-zu-Peer-Verbindungen
durch das Weichennetz zu senden.
-
Die
PCI-Express-Kernarchitektur kann eine solide Grundlage zur Erfüllung neuer
Verbindungsbedürfnisse
schaffen. Die Advanced-Switching(AS)-Architektur liegt über diesem
Kern und baut ein effizientes, skalierbares und erweiterbares Weichennetz durch
die Verwendung eines speziellen AS-Headers auf, der vor dem PCI-Express-Datenpaket
auf der Transaktionsschicht eingefügt wird. AS-Weichen prüfen lediglich
die Inhalte der Header, die die Routing-Informationen (wohin das Paket gesendet
werden soll), die Kennung der Datenverkehrsklasse (Dienstgüteinformationen),
Stauvermeidung (zur Verhinderung von Datenverkehrsstaus), Paketgröße und Protokolleinkapselung
bereitstellen. Durch die Abtrennung der Routinginformationen werden
die Weichendesigns einfacher und kostengünstig. Außerdem ermöglicht das Hinzufügen eines
externen Headers zu dem Paket dem Weichennetz, jede Anzahl existierender
Protokolle einzukapseln.
-
Die
oben beschriebene Verbindungsschnittstellenschaltung und -verfahrensweise
kann auch in IC-Geräten
realisiert werden, die für
die Kommunikation über
eine serielle Punkt-zu-Punkt-Verbindungstechnolgie
ausgelegt sind, die für
Netzwerkverbindungen verwendet wird (beispielsweise statt GigabitEthernet).
Die Netzwerkverbindung kann für
mobile und Desktop-PCs
einer Firma zur gemeinsamen Nutzung von Daten, zum Senden von E-Mails
und zum Browsen im Internet gedacht sein. Von Servern sowie von
Kommunikationsanlagen kann erwartet werden, daß sie solche Netzwerkverbindungen
realisieren. Ein Beispiel einer solchen Netzwerkverbindung innerhalb
eines Firmennetzwerks ist in 8 dargestellt.
-
Obschon
die obenstehenden Beispiele Ausführungsformen
der Erfindung im Zusammenhang mit kombinatorischen oder sequentiellen
logischen Schaltungen beschreiben mögen, können andere Ausführungsformen
der Erfindung als Software realisiert werden. Beispielsweise können einige
Ausführungsformen
als ein Computerprogrammprodukt oder als Software bereitgestellt
werden, das/die ein maschinen- oder computerlesbares Medium umfassen
kann, auf dem Anleitungen gespeichert sind, die verwendet werden
können,
um einen Computer (oder ein anderes elektronisches Gerät) zur Durchführung eines
Vorgangs gemäß einer
Ausführungsform
der Erfindung zu programmieren. In anderen Ausführungsformen können Operationen
von spezifischen Hardwarekomponenten, die Mikrocode enthalten, von
verbindungsprogrammierter Logik oder von jeder Kombination aus programmierten
Computerkomponenten und üblichen
Hardwarekomponenten ausgeführt
werden.
-
Ferner
kann ein Design mehrere Stufen von der Erstellung über die
Simulation bis zur Fertigung durchlaufen. Daten, die ein Design
darstellen, können
das Design in vielerlei Weise darstellen. Erstens kann, wie es in
Simulationen nützlich
ist, die Hardware mit Hilfe einer Hardwarebeschreibungssprache oder
einer anderen funktionalen Beschreibungssprache dargestellt werden.
Zusätzlich
kann ein Schaltungsebenenmodell mit logischen und/oder Transistorgattern
auf einigen Stufen des Designprozesses erstellt werden. Außerdem erreichen
die meisten Designs auf einer bestimmten Stufe ein Datenniveau, das
die physikalische Anordnung verschiedener Geräte in dem Hardwaremodell darstellt.
In dem Fall, daß herkömmliche
Halbleiterfertigungstechniken verwendet werden, können die
Daten, die ein Hardwaremodell darstellen, Daten sein, die das Vorhandensein oder
Fehlen verschiedener Merkmale auf verschiedenen Maskenschichten
angeben, welche zur Fertigung des integrierten Schaltkreises verwendet
werden. Bei jeder Darstellung des Designs können die Daten in einer beliebigen
Form eines maschinenlesbaren Mediums gespeichert werden. Das maschinenlesbare
Medium kann eine optische oder elektrische Welle sein, die zur Übertragung
solcher Informationen moduliert oder anderweitig erzeugt wird, oder
ein optischer oder magnetischer Speicher wie etwa eine CD. Jedes
dieser Medien kann die Design- oder Softwareinformationen „tragen" oder „angeben". Wird eine elektrische
Trägerwelle,
die den Code oder das Design trägt
oder angibt, in dem Maß übertragen, daß das Kopieren,
Puffern oder Neuübertragen
des elektrischen Signals erfolgt, wird eine neue Kopie erstellt.
Somit kann ein Kommunikationsdienstleister oder ein Netzwerkanbieter
Kopien eines Artikels (einer Trägerwelle)
anfertigen, der eine Ausführungsform
der Erfindung trägt.
-
Zusammenfassend
wurden verschiedene Ausführungsformen
eines Verfahrens und von Vorrichtungen zur Lane-zu-Lane-Entzerrung
des Signalversatzes einer seriellen Punkt-zu-Punkt-Verbindung beschrieben.
In der vorangegangenen Beschreibung wurde die Erfindung anhand spezifischer
Ausführungsbeispiele
beschrieben. Es ist jedoch offensichtlich, daß daran verschiedene Modifikationen
und Änderungen
vorgenommen werden können,
ohne von dem weiteren Sinn und Geltungsbereich der Erfindung, wie
sie in den beigefügten
Ansprüchen
festgelegt ist, abzuweichen. Beispielsweise kann die Entzerrungstechnik,
obschon die Systemausführungsform
unter Verwendung einer seriellen Punkt-zu-Punkt-Verbindung als eine Chip-zu-Chip-Verbindung zwischen
zwei Geräten
auf einer Platine wie etwa in einem Desktopcomputer, Server oder
Notebook beschrieben wurde, auch mit seriellen Punkt-zu-Punkt-Verbindungen
verwendet werden, die Teil eines externen Busses zum Verbinden des
Computers mit einem Peripheriegerät wie einer Tastatur, einem
Monitor, einem externen Massenspeichergerät oder einer Kamera sind. Die Punkt-zu-Punkt-Verbindung
kann nicht nur in Computersystemen verwendet werden, sondern auch
in fest eingerichteten Kommunikationsprodukten wie Mobiltelefoneinheiten,
Telekommunikationsweichen und Datennetzwerkroutern. Die Beschreibung
und die Zeichnungen sind dementsprechend im illustrativen und nicht
im einschränkenden
Sinne zu verstehen.
-
ZUSAMMENFASSUNG
-
Es
werden mehrere Symbolsequenzen empfangen, die parallel unter Benutzung
desselben Sendetakts über
eine serielle Punkt-zu-Punkt-Verbindung gesendet wurden. Jede Symbolsequenz
umfaßt
eine Instanz eines ersten Nicht-Daten-Symbols. Die mehreren Symbolsequenzen
werden gepuffert, und die Anzahl der Häufigkeit, mit der eine Instanz
eines zweiten Nicht-Daten-Symbols in einer der Symbolsequenzen auftritt,
wird verändert.
Ein erster Vorgang zur Entzerrung des Signalversatzes wird durchgeführt, gefolgt
von einem zweiten Entzerrungsvorgang. Der erste Entzerrungsvorgang
richtet eine Instanz des ersten Nicht-Daten-Symbols in jeder der gepufferten Symbolsequenzen
aus. Der zweite Entzerrungsvorgang gleicht die Anzahl der Instanz
des zweiten Nicht-Daten-Symbols aus, die einer Instanz des ersten
Nicht-Daten-Symbols in jeder der Symbolsequenzen folgen. Es werden
auch andere Ausführungsformen
beschrieben und beansprucht.