DE112004002567T5 - Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung - Google Patents

Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung Download PDF

Info

Publication number
DE112004002567T5
DE112004002567T5 DE112004002567T DE112004002567T DE112004002567T5 DE 112004002567 T5 DE112004002567 T5 DE 112004002567T5 DE 112004002567 T DE112004002567 T DE 112004002567T DE 112004002567 T DE112004002567 T DE 112004002567T DE 112004002567 T5 DE112004002567 T5 DE 112004002567T5
Authority
DE
Germany
Prior art keywords
equalization
symbol
data symbol
instance
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112004002567T
Other languages
English (en)
Inventor
Lyonel Gilbert Renaud
David M. Tempe Puffer
Sarath Chandler Kotamreddy
Daren J. Chandler Schmidt
Suneel G. Phoenix Mitbander
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112004002567T5 publication Critical patent/DE112004002567T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

Verfahren, das Folgendes umfaßt:
a) das parallele Empfangen mehrerer Symbolsequenzen in einem ersten Gerät mit integriertem Schaltkreis (IC-Gerät), wobei die Symbolsequenzen von einem zweiten IC-Gerät über eine serielle Punkt-zu-Punkt-Verbindung gesendet wurden, wobei jede Symbolsequenz eine Instanz eines ersten Nicht-Daten-Symbols umfaßt,
b) das Puffern der mehreren Symbolsequenzen, um Toleranzen zu kompensieren, die für einen Sendetakt des zweiten IC-Geräts und einen Empfangstakt des ersten IC-Geräts berücksichtigt werden, und
c) das Reduzieren von Signalversatz unter den mehreren gepufferten Symbolsequenzen durch Einfügen einer Instanz eines zweiten anderen Nicht-Daten-Symbols in eine, aber nicht in alle der mehreren gepufferten Symbolsequenzen unmittelbar vor einer Instanz des ersten Nicht-Daten-Symbols.

Description

  • 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.
  • 4A4B 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.
  • 6A6B 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 208214 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 4A4B 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 4A4B 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 6A6B 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 4A4B) ausgibt. Die Schaltung der Entzerrungslogik, wie in 4A4B 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 4A4B 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 6A6B 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.

Claims (28)

  1. Verfahren, das Folgendes umfaßt: a) das parallele Empfangen mehrerer Symbolsequenzen in einem ersten Gerät mit integriertem Schaltkreis (IC-Gerät), wobei die Symbolsequenzen von einem zweiten IC-Gerät über eine serielle Punkt-zu-Punkt-Verbindung gesendet wurden, wobei jede Symbolsequenz eine Instanz eines ersten Nicht-Daten-Symbols umfaßt, b) das Puffern der mehreren Symbolsequenzen, um Toleranzen zu kompensieren, die für einen Sendetakt des zweiten IC-Geräts und einen Empfangstakt des ersten IC-Geräts berücksichtigt werden, und c) das Reduzieren von Signalversatz unter den mehreren gepufferten Symbolsequenzen durch Einfügen einer Instanz eines zweiten anderen Nicht-Daten-Symbols in eine, aber nicht in alle der mehreren gepufferten Symbolsequenzen unmittelbar vor einer Instanz des ersten Nicht-Daten-Symbols.
  2. Verfahren nach Anspruch 1, wobei in c) der Signalversatz reduziert wird, indem eine weitere Instanz des zweiten Nicht-Daten-Symbols in eine andere, aber nicht in alle der mehreren, gepufferten Symbolsequenzen eingefügt wird, unmittelbar vor einer anderen Instanz des ersten Nicht-Daten-Symbols.
  3. Verfahren nach Anspruch 1, das nach c) ferner Folgendes umfaßt: d) das Erkennen einer Instanz des ersten Nicht-Daten-Symbols in einer anderen, aber nicht in allen der mehreren Symbolsequenzen, wobei bei c) und d) das Nicht-Daten-Symbol in allen der mehreren Symbolsequenzen erkannt wurde, sodaß keine weitere Instanz des zweiten Nicht-Daten-Symbols in die mehreren, gepufferten Symbolsequenzen eingefügt wird.
  4. Verfahren nach Anspruch 1 wobei in c) die Instanz des ersten Nicht-Daten-Symbols in den mehreren, gepufferten Symbolsequenzen in einem Zyklus eines lokalen Takts des ersten IC-Geräts erkannt und die Instanz des zweiten Nicht-Daten-Symbols dann im nächsten Zyklus des lokalen Takts eingefügt wird.
  5. Verfahren nach Anspruch 1, wobei das erste Nicht-Daten-Symbol ein PCI-Express-COM und das zweite Nicht-Daten-Symbol ein PCI-Express-SKP ist.
  6. Verfahren nach Anspruch 3, wobei die mehreren Symbolsequenzen Einrichtungssequenzen sind.
  7. Verfahren nach Anspruch 3, das ferner vor c) das Bestätigen eines ersten Steuersignals zur Aktivierung der Signalentzerrung und nach c) das Reduzieren des Signalversatzes zwischen den mehreren, gepufferten Symbolsequenzen umfaßt durch: – das Ausgeben eines zweiten, anderen Steuersignals zur Aktivierung der Signalentzerrung und dann – das Einfügen einer Instanz des zweiten Nicht-Daten-Symbols in eine der mehreren, gepufferten Symbolsequenzen, die unmittelbar auf eine Instanz des ersten Nicht-Daten-Symbols folgen, nachdem die Kombination aus einer Instanz des ersten Nicht-Daten-Symbols, gefolgt von einer Instanz des zweiten Nicht-Daten-Symbols, in einer, aber nicht in allen der mehreren Symbolsequenzen erkannt wurde.
  8. Verfahren, das Folgendes umfaßt: a) das Empfangen mehrerer Symbolsequenzen in einem ersten Gerät mit integriertem Schaltkreis (IC-Gerät), wobei die Symbolsequenzen parallel von einem zweiten IC-Gerät, das denselben Sendetakt verwendet, über eine serielle Punkt-zu-Punkt-Verbindung, die das erste und das zweite IC-Gerät koppelt, gesendet wurden, wobei jede Symbolsequenz eine Instanz eines ersten Nicht-Daten-Symbols umfaßt, b) das Puffern der mehreren Symbolsequenzen und das Ändern der Anzahl der Häufigkeit, mit der eine Instanz eines zweiten Nicht-Daten-Symbols in einer der mehreren Symbolsequenzen auftritt, und c) das Durchführen eines ersten Entzerrungsvorgangs und dann eines zweiten Entzerrungsvorgangs, – wobei der erste Entzerrungsvorgang das Ausrichten einer ersten Instanz des ersten Nicht-Daten-Symbols in jeder der mehreren, gepufferten Symbolsequenzen umfaßt, und – der zweite Entzerrungsvorgang das Ausgleichen der Anzahl der INsatades zweiten Nicht-Daten-Symbols, das einer Instanz des ersten Nicht-Daten-Symbols folgt, in jeder der mehreren Symbolsequenzen umfaßt.
  9. Verfahren nach Anspruch 8, wobei das Ausrichten im ersten Entzerrungsvorgang das Einfügen einer ersten Instanz des zweiten Nicht-Daten-Symbols in eine ausgewählte der mehreren, gepufferten Symbolsequenzen umfaßt, die die Instanz des ersten Nicht-Daten-Symbols in der ausgewählten Sequenz führt.
  10. Verfahren nach Anspruch 9, wobei das erste Nicht-Daten-Symbol ein PCI-Express-COM und das zweite Nicht-Daten-Symbol ein PCI-Express-SKP ist.
  11. Verfahren nach Anspruch 8, wobei der erste Entzerrungsvorgang während einer Einrichtungssitzung für die Verbindung und nicht während des nachfolgenden normalen Betriebs der Verbindung durchgeführt wird, und der zweite Entzerrungsvorgang während des normalen Betriebs für jede von mehreren Instanzen einer vorbestimmten Nicht-Daten-Sequenz wiederholt wird, die mit dem ersten Nicht-Daten-Symbol beginnt, gefolgt von dem zweiten Nicht-Daten-Symbol.
  12. Verfahren nach Anspruch 10, wobei der erste Entzerrungsvorgang die COM-Instanz, das nicht Bestandteil eines geordneten PCI-Express-SPK-Satzes ist, in den mehreren, gepufferten Symbolsequenzen ausrichtet.
  13. Gerät mit integriertem Schaltkreis (IC-Gerät), umfassend: – einen elastischen Puffer mit einem Eingang, um mehrere Symbolsequenzen zu empfangen, die von einem anderen IC-Gerät über eine serielle Punkt-zu-Punkt-Verbindung gesendet wurden, wobei der elastische Puffer mehrere, gepufferte Symbolsequenzen bereitstellen soll, und – Entzerrungsschaltung mit einem Eingang, der an den Ausgang des elastischen Puffers gekoppelt ist, wobei die Entzerrungsschaltung als Reaktion auf die Bestätigung eines Aktivierungssteuersignals die mehreren, gepufferten Symbol sequenzen mit reduziertem Signalversatz weiterleiten soll, wobei die Entzerrungsschaltung umfaßt: – mehrere Entzerrungspuffer, – Schreibzeigerlogik, um die mehreren, gepufferten Symbolsequenzen in die mehreren Entzerrungspuffer zu laden, – Lesezeigerlogik, um mehrere Lesezeiger zum Entladen der mehreren, gepufferten Symbolsequenzen aus den mehreren Entzerrungspuffern bereitzustellen, – Steuerlogik mit einem Ausgang, der an die Lesezeigerlogik gekoppelt ist, wobei die Steuerlogik dazu dient, als Reaktion auf die erste Instanz eines ersten vorbestimmten Nicht-Daten-Symbols, das an einem Ausgang eines der mehreren Entzerrungspuffer seit Bestätigung des Aktivierungssteuersignals erscheint, a) den Lesezeiger für diesen Entzerrungspuffer zu stoppen und b) eine Instanz eines zweiten, anderen vorbestimmten Nicht-Daten-Symbols an einem Ausgang der Entzerrungsschaltung zu erzeugen, durch den die gepufferte Symbolsequenz für diesen Entzerrungspuffer weitergeleitet wird.
  14. IC-Gerät nach Anspruch 13, wobei der Lesezeiger bei einem Eintrag gestoppt werden soll, der eine Instanz des ersten Nicht-Daten-Symbols enthält.
  15. IC-Gerät nach Anspruch 13, wobei die Steuerlogik dazu dient, a) den Lesezeiger freizugeben und b) das Erzeugen von Instanzen des zweiten vorbestimmten Nicht-Daten-Symbols einzustellen, wenn eine Instanz des ersten vorbestimmten Nicht-Daten-Symbols an einem Ausgang jeder der mehreren Entzerrungspuffer erschienen ist.
  16. IC-Gerät nach Anspruch 15, wobei die Steuerlogik dazu dient, als Reaktion auf das Erkennen, daß auf eine erste Instanz des ersten Nicht-Daten-Symbols eine Instanz des zweiten Nicht-Daten-Symbols folgt, die in einen der mehreren Entzerrungspuffer geladen werden sollen, a) den Lesezeiger für einen weiteren der mehreren Entzerrungspuffer zu stoppen, nachdem eine zweite Instanz des ersten Nicht-Daten-Symbols geladen wurde, das taktmäßig an der ersten Instanz ausgerichtet ist, und b) eine Instanz des zweiten Nicht-Daten-Symbols an einem Ausgang der Entzerrungsschaltung zu erzeugen, durch den die gepufferte Symbolsequenz für diesen anderen Entzerrungspuffer weitergeleitet wird, während diese Instanz des zweiten Nicht-Daten-Symbols, das erkannt wurde, daran gehindert wird, in einen der mehreren Entzerrungspuffer geladen zu werden.
  17. IC-Gerät nach Anspruch 16, wobei der Lesezeiger für diesen weiteren Entzerrungspuffer bei einem Eintrag, der ein Datensymbol enthält, gestoppt werden soll.
  18. IC-Gerät nach Anspruch 13, wobei das erste Nicht-Daten-Symbol ein PCI-Express-COM und das zweite Nicht-Daten-Symbol ein PCI-Express-SKP ist.
  19. System, das Folgendes umfaßt: – einen Prozessor, – einen Hauptspeicher und – ein Gerät mit integriertem Schaltkreis (IC-Gerät), das kommunikativ an den Prozessor und den Hauptspeicher gekoppelt ist und dem Prozessor I/O-Zugriff bereitstellt, wobei das IC-Gerät eine Verbindungsschnittstellenschaltung aufweist, die eine serielle Punkt-zu-Punkt-Verbindung unterstützt, wobei die Schaltung umfaßt – einen elastischen Puffer mit einem Eingang, um mehrere Symbolsequenzen zu empfangen, die von einem anderen Gerät über eine serielle Punkt-zu-Punkt-Verbindung gesendet wurden, wobei der elastische Puffer dazu dient, mehrere, gepufferte Symbolsequenzen bereitzustellen, und – eine Entzerrungsschaltung mit einem Eingang, der an einen Ausgang des elastischen Puffers gekoppelt ist, wobei die Entzerrungsschaltung die mehreren, gepufferten Symbolsequenzen als Reaktion auf die Bestätigung eines Aktivierungssteuersignals mit reduziertem Signalversatz weiterleiten soll, wobei die Entzerrungslogik umfaßt: – mehrere Entzerrungspuffer, – eine Schreibzeigerlogik, um die mehreren, gepufferten Symbolsequenzen in die mehreren Entzerrungspuffer zu laden, – Lesezeigerlogik, um mehrere Lesezeiger zum Entladen der mehreren, gepufferten Symbolsequenzen aus den mehreren Entzerrungspuffern bereitzustellen, – Steuerlogik mit einem Ausgang, der an die Lesezeigerlogik gekoppelt ist, wobei die Steuerlogik dazu dient, als Reaktion auf die erste Instanz eines ersten vorbestimmten Nicht-Daten-Symbols, das an einem Ausgang eines der mehreren Entzerrungspuffer seit Bestätigung des Aktivierungssteuersignals erscheint, a) den Lesezeiger für diesen Entzerrungspuffer zu stoppen und b) eine Instanz eines zweiten, anderen vorbestimmten Nicht-Daten-Symbols an einem Ausgang der Entzerrungsschaltung zu erzeugen, durch den die gepufferte Symbolsequenz für diesen Entzerrungspuffer weitergeleitet wird.
  20. System nach Anspruch 19, wobei der Lesezeiger bei einem Eintrag gestoppt werden soll, der eine Instanz des ersten Nicht-Daten-Symbols enthält.
  21. System nach Anspruch 20, wobei die Steuerlogik dazu dient, a) den Lesezeiger freizugeben und b) das Erzeugen von Instanzen des zweiten vorbestimmten Nicht-Daten-Symbols einzustellen, wenn eine Instanz des ersten vorbestimmten Nicht-Daten-Symbols an einem Ausgang jedes der mehreren Entzerrungspuffer erschienen ist.
  22. System nach Anspruch 19, wobei die Steuerlogik dazu dient, den Lesezeiger freizugeben und b) das Erzeugen von Instanzen des zweiten vorbestimmten Nicht-Daten-Symbols einzustellen, wenn eine Instanz des ersten vorbestimmten Nicht-Daten-Symbols an einem Ausgang jedes der mehreren Entzerrungspuffer erschienen ist.
  23. System nach Anspruch 22, wobei die Steuerlogik dazu dient, als Reaktion auf den Hinweis, daß in Kürze eine vorbestimmte Nicht-Daten-Symbolsequenz in einen der mehreren Entzerrungspuffer geladen werden soll, den Lesepuffer für einen weiteren der mehreren Entzerrungspuffer zu stoppen und eine Instanz des zweiten Nicht-Daten-Symbols an einem Ausgang der Entzerrungslogik zu erzeugen, durch den die gepufferte Symbolsequenz für diesen weiteren Entzerrungspuffer weitergeleitet wird.
  24. System nach Anspruch 23, wobei der Lesezeiger für diesen weiteren Entzerrungspuffer bei einem Eintrag gestoppt werden soll, der ein Datensymbol enthält.
  25. System nach Anspruch 19, wobei das erste Nicht-Daten-Symbol ein PCI-Express-COM und das zweite Nicht-Daten-Symbol ein PCI-Express-SKP ist.
  26. System nach Anspruch 19, ferner ein Grafikelement umfassend und wobei das IC-Gerät ein Memory-Controller-Hub (MCH) ist, der den Prozessor kommunikativ mit dem Hauptspeicher und dem Grafikelement koppelt.
  27. System nach Anspruch 19, wobei das IC-Gerät ein I/O-Controller-Hub ist, der den Prozessor kommunikativ mit Peripheriegeräten koppelt.
  28. System nach Anspruch 23, wobei die vorbestimmte Nicht-Daten-Symbolsequenz eine Instanz des ersten Nicht-Daten-Symbols, gefolgt von einer Instanz des zweiten Nicht-Daten-Symbols, umfaßt, wobei die Instanz des ersten Symbols, nicht aber des zweiten Symbols in den einen der mehreren Entzerrungspuffer geladen wird.
DE112004002567T 2003-12-31 2004-12-22 Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung Withdrawn DE112004002567T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/749,721 2003-12-31
US10/749,721 US7631118B2 (en) 2003-12-31 2003-12-31 Lane to lane deskewing via non-data symbol processing for a serial point to point link
PCT/US2004/043526 WO2005066816A1 (en) 2003-12-31 2004-12-22 Lane to lane deskewing via non-data symbol processing for a serial point to point link

Publications (1)

Publication Number Publication Date
DE112004002567T5 true DE112004002567T5 (de) 2006-12-14

Family

ID=34701088

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004002567T Withdrawn DE112004002567T5 (de) 2003-12-31 2004-12-22 Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung

Country Status (6)

Country Link
US (3) US7631118B2 (de)
CN (1) CN1902613B (de)
DE (1) DE112004002567T5 (de)
GB (1) GB2423171B (de)
TW (1) TWI320529B (de)
WO (1) WO2005066816A1 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI249681B (en) * 2003-07-02 2006-02-21 Via Tech Inc Circuit and method for aligning data transmitting timing of a plurality of lanes
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7500131B2 (en) * 2004-09-07 2009-03-03 Intel Corporation Training pattern based de-skew mechanism and frame alignment
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US20060146967A1 (en) * 2004-12-31 2006-07-06 Adarsh Panikkar Keep-out asynchronous clock alignment scheme
KR20060081522A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기
EP1856869B1 (de) * 2005-01-20 2017-09-13 Rambus Inc. Hochgeschwindigkeits-kommunikationssystem mit adaptierbarer vorverzerrung und entzerrung
US7392437B2 (en) * 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7929577B2 (en) * 2005-10-13 2011-04-19 Via Technologies, Inc. Method and apparatus for packet error detection
TWI290284B (en) * 2005-10-13 2007-11-21 Via Tech Inc Method and electronic device of packet error detection on PCI express bus link
PL1955470T3 (pl) * 2005-11-22 2015-02-27 Ericsson Telefon Ab L M Odbiornik synchronizowany
JP5194014B2 (ja) * 2006-09-06 2013-05-08 トムソン ライセンシング データワードストリーム処理装置
US8199782B2 (en) 2009-02-20 2012-06-12 Altera Canada Co. Method of multiple lane distribution (MLD) deskew
JP5266164B2 (ja) * 2009-08-25 2013-08-21 ルネサスエレクトロニクス株式会社 データ受信装置
JP5426326B2 (ja) * 2009-11-09 2014-02-26 ルネサスエレクトロニクス株式会社 データ受信装置、データ受信方法、及びプログラム
US9531646B1 (en) * 2009-12-07 2016-12-27 Altera Corporation Multi-protocol configurable transceiver including configurable deskew in an integrated circuit
US8358658B2 (en) * 2010-03-19 2013-01-22 International Business Machines Corporation Implementing ordered and reliable transfer of packets while spraying packets over multiple links
TW201142613A (en) * 2010-05-31 2011-12-01 Jmicron Technology Corp Timing aligning circuit and timing aligning method for aligning data transmitting timing of a plurality of lanes
CN102270011A (zh) * 2010-06-04 2011-12-07 智微科技股份有限公司 校准多个数据信道的数据传输时序的时序校准电路及时序校准方法
US20120030438A1 (en) * 2010-07-29 2012-02-02 Sarance Technologies Inc. Method and Apparatus for Performing Skew Removal in the Receiver of a Multi-Lane Communication Link
US8488729B1 (en) * 2010-09-10 2013-07-16 Altera Corporation Deskew across high speed data lanes
CN102111329A (zh) * 2010-12-24 2011-06-29 合肥昊特信息科技有限公司 基于嵌入式高速收发器的校准逻辑系统
US8886856B1 (en) * 2011-06-21 2014-11-11 Altera Corporation Methods and apparatus for communicating low-latency word category over multi-lane link
KR101876418B1 (ko) * 2012-04-05 2018-07-10 한국전자통신연구원 Pci 익스프레스 디스큐 장치 및 그 방법
US8437343B1 (en) 2012-05-22 2013-05-07 Intel Corporation Optimized link training and management mechanism
US8549205B1 (en) 2012-05-22 2013-10-01 Intel Corporation Providing a consolidated sideband communication channel between devices
US8446903B1 (en) * 2012-05-22 2013-05-21 Intel Corporation Providing a load/store communication protocol with a low power physical unit
US8972640B2 (en) 2012-06-27 2015-03-03 Intel Corporation Controlling a physical link of a first protocol using an extended capability structure of a second protocol
US8913705B2 (en) * 2012-08-27 2014-12-16 Oracle International Corporation Dynamic skew correction in a multi-lane communication link
KR101772037B1 (ko) 2012-10-22 2017-08-28 인텔 코포레이션 고성능 상호연결 물리 계층
US9600431B2 (en) 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US10348821B2 (en) * 2012-12-21 2019-07-09 Dropbox, Inc. Prioritizing structural operations and distributing changes in a synced online content management system
US9261934B2 (en) 2013-03-15 2016-02-16 Intel Corporation Dynamic response improvement of hybrid power boost technology
US9118457B2 (en) 2013-03-15 2015-08-25 Qualcomm Incorporated Multi-wire single-ended push-pull link with data symbol transition based clocking
JP6221328B2 (ja) * 2013-04-30 2017-11-01 富士通株式会社 受信装置、情報処理装置及びデータ受信方法
US10031547B2 (en) * 2013-12-18 2018-07-24 Qualcomm Incorporated CCIe receiver logic register write only with receiver clock
US9426082B2 (en) 2014-01-03 2016-08-23 Qualcomm Incorporated Low-voltage differential signaling or 2-wire differential link with symbol transition clocking
US9612643B2 (en) 2014-03-29 2017-04-04 Intel Corporation Controlling the CPU slew rates based on the battery state of charge
US9331724B2 (en) * 2014-09-15 2016-05-03 Xilinx, Inc. Lane-to-lane de-skew for transmitters
US9710406B2 (en) 2014-12-15 2017-07-18 Intel Corporation Data transmission using PCIe protocol via USB port
US9946683B2 (en) * 2014-12-24 2018-04-17 Intel Corporation Reducing precision timing measurement uncertainty
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
CN105933244B (zh) * 2016-04-14 2018-11-27 浪潮电子信息产业股份有限公司 一种通道对齐去偏斜的装置和方法
CN105955915B (zh) * 2016-04-21 2018-10-26 浪潮电子信息产业股份有限公司 一种并行数据去偏斜的方法、装置及系统
US20180329855A1 (en) 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
JP3403076B2 (ja) 1998-06-30 2003-05-06 株式会社東芝 半導体装置及びその製造方法
US6326667B1 (en) 1999-09-09 2001-12-04 Kabushiki Kaisha Toshiba Semiconductor devices and methods for producing semiconductor devices
US6766464B2 (en) * 2001-02-13 2004-07-20 Sun Microsystems, Inc. Method and apparatus for deskewing multiple incoming signals
US6625675B2 (en) 2001-03-23 2003-09-23 International Business Machines Corporation Processor for determining physical lane skew order
US6654824B1 (en) 2001-08-28 2003-11-25 Crossroads Systems, Inc. High-speed dynamic multi-lane deskewer
US6985502B2 (en) 2001-11-19 2006-01-10 Hewlett-Packard Development Company, L.P. Time-division multiplexed link for use in a service area network
US20030112827A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
TWI249681B (en) * 2003-07-02 2006-02-21 Via Tech Inc Circuit and method for aligning data transmitting timing of a plurality of lanes
US7295639B1 (en) * 2003-07-18 2007-11-13 Xilinx, Inc. Distributed adaptive channel bonding control for improved tolerance of inter-channel skew

Also Published As

Publication number Publication date
WO2005066816A1 (en) 2005-07-21
US20090307394A1 (en) 2009-12-10
GB2423171A (en) 2006-08-16
TW200532457A (en) 2005-10-01
US7631118B2 (en) 2009-12-08
GB2423171B (en) 2007-07-25
GB0608721D0 (en) 2006-06-14
CN1902613B (zh) 2011-03-09
US7913001B2 (en) 2011-03-22
US20110066771A1 (en) 2011-03-17
TWI320529B (en) 2010-02-11
US20050141661A1 (en) 2005-06-30
CN1902613A (zh) 2007-01-24
US7979608B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
DE112004002567T5 (de) Lane-zu-Lane-Entzerrung über Nicht-Daten-Symbolverarbeitung für eine serielle Punkt-zu-Punkt-Verbindung
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE69827124T2 (de) Bitübertragungsschichtvorrichtung mit medienunabhängiger schnittstelle zur verbindung and entweder einer mediumzugriffsteuerungseinheit oder anderer bitübertragungsschichtvorrichtungen
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE60313780T2 (de) Multiport serielles hochgeschwindigkeits-vermittlungsquerverbindungschip in einer vermaschten konfiguration
DE60219047T2 (de) Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zum aufbau virtueller kanäle darin
DE60215573T2 (de) Programmierbare Logikschaltung mit einer seriellen Hochgeschwindigkeitsschnittstelle
DE69734182T2 (de) Datenübertragungsverfahren, elektronisches Gerät und integrierte Bitübertragungsschichtsteuerschaltung
DE112017003209T5 (de) Multiprotokoll-Neusynchronisierer mit geringer Latenz
DE102018128569A1 (de) Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE112015006944T5 (de) Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe
DE112007002619T5 (de) Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi
DE102006029742A1 (de) Halbleiterspeichersystem
DE112007002605T5 (de) Speichersystem mit seriellem Hochgeschwindigkeitspuffer
EP2745459B1 (de) Schaltungsanordnung und verfahren zum uebertragen von signalen
DE112020003973T5 (de) Ethernet-schnittstelle und zugehörige systeme, verfahren und vorrichtungen
DE19730159A1 (de) Kommunikationsverfahren und System
DE602004011828T2 (de) Empfänger-corporation
DE102020134479A1 (de) Senden von Displayport 2.0-Informationen unter Verwendung von USB4
EP1370952B1 (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem
DE69735546T2 (de) Paketvermittelte leitweglenkung-architektur für mehrere gleichzeitige verbindungen
EP1261905A2 (de) Verfahren zum synchronisieren von computeruhren in netzwerken für die informationsübertragung, einrichtung zur durchführung dieses verfahrens sowie für die synchronisation von computeruhren geeignetes datenpaket
DE10336121B4 (de) Serielle asynchrone Schnittstelle mit SLIP-Kodierung/Dekodierung und CRC-Prüfung im Sende- und Empfangspfad
DE112018007392T5 (de) Techniken für serielle kommunikation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 112004002567

Country of ref document: DE

Date of ref document: 20061214

Kind code of ref document: P

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee