-
GEBIET DER ERFINDUNG
-
Ausführungsformen der vorliegenden Erfindung betreffen das Gebiet der Schnittstellen für Computersysteme. Insbesondere betreffen Ausführungsformen der vorliegenden Erfindung Neusynchronisierer, die konfiguriert werden können, Daten gemäß mehreren Protokollen zu übermitteln.
-
HINTERGRUND DER ERFINDUNG
-
Da die Häufigkeit externer Schnittstellen in Computersystemen zunimmt und die Kanalverbesserung unter Aufrechterhaltung von Abwärtskompatibilität weiterhin mäßig ausfällt, wächst die Notwendigkeit der Verwendung von Neusynchronisierern in Schnittstellen. Beispielsweise benötigt die Peripheral Component Interface Express (PCIe) der 4. Generation, bei der die Schnittstelle mit 16,0 GT/s arbeitet, für die meisten Serverkanäle, bei denen es sich typischerweise um 20"-FR4 mit zwei Verbindungssteckern handelt, einen Neusynchronisierer. Der Universal Serial Bus (USB) der Version 3.1 arbeitet mit 10 GT/s und benötigt bereits für die meisten Plattformen einen Neusynchronisierer. Andere Schnittstellen benötigen für manche der mit 10,4 GT/s arbeitenden Plattformen irgendeine Form von Erweiterungseinrichtung.
-
Bei jeder dieser Schnittstellen bestehen verschiedene Schwierigkeiten. Bei Cachekohärenzprotokollen wie beispielsweise Ultra Path Interconnect (UPI) führt eine zusätzliche Latenz von etwa 30 ns pro Neusynchronisierer-Hop aufgrund der inakzeptablen Leistungseinbuße bereits zu dessen Untragbarkeit. Schon bei PCIe ist die Latenz bei einigen Speicheranwendungen ein Problem, das sich voraussichtlich mit der nächsten Generation nichtflüchtiger Speicher- (NVM-) Technologien verschärfen wird, welche höhere Bandbreite und geringere Latenz bereitstellen, wodurch die Lücke zu synchronen dynamischen Wahlzugriffsspeichern mit doppelter Datenrate (DDR-SDRAM) geschlossen wird. Bei einem analogen Neutreiber besteht das Latenzproblem nicht. Da dieser jedoch nicht an der Verbindungsinitialisierungs- und -entzerrungsphase beteiligt ist, führt der analoge Neutreiber anders als die Neusynchronisierer keinen Neuaufbau des Senderentzerrungsraums durch und findet daher nur begrenzt Anwendung, insbesondere bei Systemen mit offenen Slots/Verbindungssteckern.
-
Eine weitere Schwierigkeit liegt in der Multiprotokollunterstützung durch verschiedene physikalische Schichten (PHYs), wie es sie in einem Verbindungsstecker des C-Typs gibt. Das Vorsehen eines separaten Neusynchronisierers mit einem physikalischen Multiplexer zum Trennen zwischen den verschiedenen PHYs kann eine mögliche Lösung sein, ist jedoch teuer und kann wertvollen Platz auf der Platine und eine höhere Leistung erfordern.
-
Eine dritte Schwierigkeit besteht darin, dass mehrere verschiedene Neusynchronisierer auf bestimmten Plattformen unterstützt werden müssen, sowie die hiermit verbundene Validierung, welche Schwierigkeiten in Bezug auf Interoperabilität bereiten.
-
Figurenliste
-
Ein umfassenderes Verständnis der vorliegenden Erfindung wird durch die nachfolgende ausführliche Beschreibung sowie die beiliegenden Zeichnungen verschiedener Ausführungsformen der Erfindung vermittelt, welche jedoch nicht als die Erfindung auf die konkreten Ausführungsformen einschränkend zu verstehen sind, sondern lediglich der Erläuterung und dem Verständnis dienen.
- 1A veranschaulicht eine Verbindung ohne Neusynchronisierer.
- 1B veranschaulicht eine Verbindung mit einem oder mehreren Neusynchronisierern.
- 1C veranschaulicht ein weiteres Element einer Verbindung mit mehreren Synchronisierern.
- 2 ist ein Blockdiagramm einer Ausführungsform eines Neusynchronisierers.
- 3 ist ein weiteres Blockdiagramm einer Ausführungsform eines Neusynchronisierers, das einen Datenpfad zur Trainingsverwendung zeigt.
- 4 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Übermitteln von Daten zwischen zwei Einrichtungen unter Verwendung mindestens eines Neusynchronisierers.
- 5 veranschaulicht eine Ausführungsform eines Systemebenendiagramms.
-
AUSFÜHRLICHE BESCHREIBUNG DER VORLIEGENDEN ERFINDUNG
-
In der nachfolgenden Beschreibung werden zahlreiche Einzelheiten angegeben, um die vorliegende Erfindung genauer zu erläutern. Ein Fachmann versteht jedoch, dass die vorliegende Erfindung auch ohne diese konkreten Einzelheiten umgesetzt werden kann. In anderen Fällen werden allgemein bekannte Strukturen und Einrichtungen nicht im Einzelnen, sondern in Blockdiagrammform gezeigt, um die Erfindung deutlicher hervorzuheben.
-
Offenbart sind ein multiprotokollfähiger Neusynchronisierer und ein Verfahren zum Verwenden desselben. In einer Ausführungsform kann eine Verbindung wie beispielsweise eine PCIe-konforme Verbindung einen oder mehrere solche Neusynchronisierer oder andere Erweiterungseinrichtungen beinhalten. Der Neusynchronisierer beinhaltet aktive elektronische Elemente, die digitale Signale empfangen und weitergeben (neu synchronisieren).
-
In einer Ausführungsform beinhaltet der Multiprotokoll-Neusynchronisierer zwei Datenpfade für jede Teilverbindung. Beim ersten Datenpfad handelt es sich um einen Umgehungspfad mit geringer Latenz für normalen Datenverkehr. In einer Ausführungsform wird dieser erste Datenpfad in einem Gleichtaktbetrieb verwendet. Der zweite Datenpfad weist eine längere Latenz auf als der erste Datenpfad. In einer Ausführungsform wird dieser zweite Datenpfad in einem Nicht-Gleichtaktbetrieb oder während eines Trainings (z.B. Verbindungstraining und/oder -initialisierung) verwendet. Dies ist typischerweise dann der Fall, wenn die Latenz nicht kritisch ist.
-
In einer Ausführungsform setzt der Neusynchronisierer mit Multiprotokollerkennung einen gemeinsamen Datenpfad zusammen mit einer konvergierten Verbindungstrainings- und Statuszustandsmaschine (LTSSM) ein, die für die Initialisierung und das Verbindungstraining für mehrere Protokolle, für die der Neusynchronisierer konfiguriert werden kann, wesentlich ist. In einer Ausführungsform identifiziert die LTSSM das auf der Verbindung laufende Protokoll zu Beginn aus der Datenrate sowie den Bitmustern. In einer Ausfiihrungsform kann diese Information durch einen Seitenbandmechanismus wie beispielsweise einen Strap oder Joint Test Action Group (JTAG) oder System Management Bus (SMBUS) dargestellt werden. In einer Ausführungsform umfasst das Training eine Verbindungsentzerrungsprozedur, wie beispielsweise die Verbindungsentzerrungsprozedur von PCIe. In einer Ausführungsform beinhaltet der Neusynchronisierer einen Umgehungspfad zur Verwendung mit geringer Latenz, nachdem ein etwaiges erforderliches Verbindungstraining (z.B. ein Entzerrungsprozess zum Erzeugen von Sender- und/oder Empfängerentzerrungsparametern (z.B. Koeffizienten)) durchgeführt wurde.
-
In einer Ausführungsform ist der Neusynchronisierer in der Lage, zwischen den beiden Pfaden umzuschalten. In einer Ausführungsform stellen Protokollverbesserungen während des Trainings sicher, dass der Neusynchronisierer zwischen diesen zwei Datenpfaden hin und her schalten kann. Diese Protokollverbesserungen werden weiter unten näher beschrieben.
-
In einer Ausführungsform setzt der Neusynchronisierer mit Multiprotokollerkennung Schaltungen ein, um die PHY bzw. das Protokoll, die/das für die Datenübermittlung verwendet wird, zu bestimmen. In einer Ausführungsform sind die Schaltungen gekoppelt, um eine Strap-Option oder einen anderen Seitenbandmechanismus zu empfangen, der die PHY anzeigt. In einer weiteren Ausführungsform erfolgt die Bestimmung der PHY durch Erfassen einer Trainingsmengenmodifikation an einer zum Verbindungstraining verwendeten Trainingsmenge.
-
Der vorliegend beschriebene Neusynchronisierer weist eine geringe Latenz auf und kann über mehrere Zwischenverbindungen hinweg verwendet werden. Dies stellt gegenüber separaten Neusynchronisierern für separate Zwischenverbindungen mit hohen Latenzen eine deutliche Verbesserung dar.
-
1A veranschaulicht eine Verbindung ohne Neusynchronisierer. Gemäß 1A sind eine Einrichtung 1 und eine Einrichtung 2 über eine Verbindung A und eine Verbindung B zusammengekoppelt. Im Unterschied hierzu veranschaulicht 1B eine Verbindung mit einem oder mehreren Neusynchronisierern. Gemäß 1B sind die Einrichtung 1 und die Einrichtung 12 an den einen oder die mehreren Neusynchronisierer 101 gekoppelt. Bei dem oder den Neusynchronisierern 101 kann es sich um eine Komponente für alle Leitungen der Verbindung oder um mehrere Neusynchronisierer handeln, von denen sich jeder um einen eigenen Satz von Leitungen in der Verbindung kümmert. In einer Ausführungsform gibt es in einer Verbindung mehrere Neusynchronisierer, wie beispielsweise in 1C gezeigt. Im Falle eines einzigen Neusynchronisierers ist der Neusynchronisierer 101 durch eine Teilverbindung A1 und eine Teilverbindung B2 an die Einrichtung 1 und durch eine Teilverbindung A2 und eine Teilverbindung B1 an die Einrichtung 2 gekoppelt. Diese Teilverbindungen folgen einem Protokoll und der (die) Neusynchronisierer 101 ist konfigurierbar, unter diesem Protokoll (d.h. einem aus einer Vielzahl von Protokollen) zu arbeiten, welchem die Teilverbindungen folgen, um Kommunikation zwischen der Einrichtung 1 und der Einrichtung 2 zu ermöglichen.
-
2 ist ein Blockdiagramm einer Ausführungsform eines Neusynchronisierers. In einer Ausführungsform führt der Neusynchronisierer eine Neusynchronisierung zwischen zwei Einrichtungen durch und ist für beliebige (jeweils eines) einer Vielzahl von Protokollen konfigurierbar.
-
Gemäß 2 empfängt ein Empfänger 201 Daten von einer ersten Einrichtung zur Übermittlung an eine zweite Einrichtung über einen Sender 202. Der Empfänger 201 und der Sender 202 sind über einen ersten Datenpfad 203, einen zweiten Datenpfad 204 und einen Multiplexer (Mux) 206 zusammengekoppelt. In einer Ausführungsform wird der Datenpfad 204 verwendet, um während eines protokollspezifischen Trainings (z.B. Verbindungstraining) vom Empfänger 201 empfangene Daten an den Sender 202 zu übermitteln. Das protokollspezifische Training versetzt den Sender 202 und den Empfänger 201 in die Lage, Daten zwischen den zwei Einrichtungen gemäß dem Protokoll der Verbindung zwischen diesen zu übermitteln. Der Datenpfad 203 wird verwendet, um Daten zwischen dem Empfänger 201 und dem Sender 202 zu übermitteln, nachdem das protokollspezifische Training erfolgt ist. In einer Ausführungsform weist der Datenpfad 203 eine geringere Latenz auf als der Datenpfad 204. In einer Ausfiihrungsform wird der Datenpfad 203 während eines Gleichtaktbetriebs verwendet, während der Datenpfad 204 zur Verwendung während eines Nicht-Gleichtaktbetriebs und während eines Trainings vorgesehen ist.
-
In einer Ausführungsform ist der Datenpfad 204 an den Controller 205 (z.B. Steuerschaltsystem) gekoppelt. Der Controller 205 führt das protokollspezifische Training des Senders 202 und/oder des Empfängers 201 durch. In einer Ausführungsform umfasst das protokollspezifische Training Verbindungstraining und -initialisierung. In einer Ausführungsform umfasst ein solches Verbindungstraining ein Durchführen einer Entzerrungsprozedur. In einer Ausführungsform erzeugt der Entzerrungsprozess Senderentzerrungskoeffizienten, um eine durch den Sender 202 durchgeführte Entzerrung zu steuern, wie beispielsweise Cursor-Koeffizienten, um den Pegel der Nachentzerrung und Vorschwingung zu bestimmen. In einer Ausführungsform erzeugt der Entzerrungsprozess Empfängerentzerrungskoeffizienten zur empfangsseitigen Entzerrung in Form kontinuierlicher zeitlinearer Entzerrung (CTLE) und Entscheidungsrückkopplungsentzerrung (DFE). Es ist zu beachten, dass in einer Ausführungsform während des Trainings des Empfängers 201 auch der Datenpfad 204 verwendet wird.
-
In einer Ausführungsform beinhaltet der Datenpfad 204 einen oder mehrere Verbindungstrainings-Zustandsmaschinen für die Vielzahl von Protokollen, wobei die eine oder die mehreren Verbindungstrainings-Zustandsmaschinen durch den Controller 205 ausgeführt werden, um ein Verbindungstraining gemäß dem durch die Protokollanzeige 210 spezifizierten Protokoll durchzuführen. In einer Ausführungsform ist eine Zustandsmaschine in der Lage, ein Training (z.B. Verbindungstraining) für mehrere Protokolle durchzuführen. In einer weiteren Ausführungsform gibt es separate Zustandsmaschinen für jedes der verschiedenen Protokolle. In einer Ausführungsform umfassen die Verbindungstrainings-Zustandsmaschinen eine Verbindungstrainings- und Statuszustandsmaschine (LTSSM). Die Zustandsmaschine ist im Speicher gespeichert und der Zugriff erfolgt durch den Controller 205. In einer Ausführungsform erzeugt der Controller 205 beim Ausführen der LTSSM jedem der Vielzahl von Protokollen zugehörige geordnete Mengen (OSs) für das Verbindungstraining.
-
In einer Ausführungsform spricht der Controller 205 auf eine Protokollanzeige 210 an (z.B. ein oder mehrere Signale), die ein Protokoll (der mehreren Protokolle) spezifiziert, das zum Übermitteln von Daten zwischen den zwei Einrichtungen verwendet wird. Die Protokollanzeige 210 wird durch einen Protokoll-/PHY-Determinator 207 (z.B. eine Bestimmungsschaltung) bereitgestellt, der die Protokollanzeige 210 in Reaktion auf eine Strap-Option und/oder ein Seitenbandsignal 212 und/oder eine Anzeige 213 einer Trainingsmengenmodifikation bereitstellt, die er vom Datenpfad 204 empfängt. Die Trainingsmengenmodifikation wird üblicherweise durch jedes Protokoll spezifiziert, welches eine definierte Trainingsmengen-Modifikationsspezifikation für den Neusynchronisierer aufweist.
-
In einer Ausführungsform erfolgt in Reaktion auf ein Empfangen einer vorab definierten Trainingsmenge ein Umschalten von der Verwendung des Datenpfads 203 auf den Datenpfad 204. In einem solchen Fall kann eine Trainingsmengen-Modifikationsanzeige 213 vom Datenpfad 204 an den Protokoll-/PHY-Determinator 207 gehen, die dem Controller 205 eine Protokollanzeige 210 liefert, um zu spezifizieren, dass eine neue Verbindungstrainings-(z.B. Entzerrungs-) Prozedur durchgeführt werden muss. Es ist zu beachten, dass ein solches Umschalten zur Verwendung entweder des Datenpfads 203 oder des Datenpfads 204 teilweise durch den Multiplexer 206 implementiert wird. Ein vom Controller 205 kommendes Datenpfad-Auswahlsignal 211 bewirkt, dass entweder Daten vom Datenpfad 203 oder 204 an den Sender 202 zur Übertragung ausgegeben werden.
-
3 ist ein weiteres Blockdiagramm einer Ausführungsform eines Neusynchronisierers, das einen Datenpfad zur Trainingsverwendung zeigt. Es ist zu beachten, dass der Controller und dessen Funktion in 3 nicht gezeigt werden, wie dies in 2 geschah. Nichtsdestotrotz versteht ein Fachmann, dass der Controller die Funktion erfüllt, den vorliegend beschriebenen Neusynchronisierungsvorgang zu implementieren.
-
Gemäß 3 beinhaltet der Neusynchronisierer einen Empfänger 301 (z.B. Empfangsschaltungen) und einen Sender 302 (z.B. Sendeschaltungen). In einer Ausführungsform führt der Empfänger 301 in im Stand der Technik bekannter Weise eine kontinuierliche zeitlineare Entzerrung (CTLE) oder eine Entscheidungsrückkopplungsentzerrung (DFE) durch. An den Empfänger 301 ist eine Takt- und Datenrückgewinnungs- (CDR-) Schaltung 340 gekoppelt, die in im Stand der Technik bekannter Weise arbeitet.
-
Der Neusynchronisierer beinhaltet zwei Datenpfade zwischen dem Empfänger 301 und dem Sender 302. Beide sind an den Ausgang des Empfängers 301 und zwei Eingänge eines Multiplexers (Mux) 326 gekoppelt, dessen Ausgang an einen Eingang des Senders 302 gekoppelt ist. Einer der Datenpfade, nämlich der Datenpfad 351, ist zur Verwendung während des Trainings vorgesehen, während der andere Datenpfad, nämlich der Umgehungspfad 350, nach dem Training verwendet wird.
-
Der Datenpfad 351 beinhaltet mehrere Komponenten. Ein Seriell-Parallel- (S2P-) Umsetzer 320 wandelt Daten von seriell in parallel um. Da der Empfänger 301 analog arbeitet, wandelt der S2P-Umsetzer die empfangenen Daten in ein Parallelformat um, so dass die Daten in digitalem Format verarbeitet werden können.
-
Auf Grundlage des den Daten zugehörigen Protokolls durchlaufen die parallelen Daten nötigenfalls Ausrichtung, Decodierung und Entwürfelung durch den Datenprozessor 301. Konkret müssen die Daten entwirrt werden. Dies kann der Geschwindigkeit geschuldet sein, mit der die Daten empfangen werden. Die Bits müssen möglicherweise auch decodiert werden. Beispielsweise müssen die Daten möglicherweise eine 8b/10b-Decodierung oder eine andere Art der Decodierung durchlaufen. Ferner müssen die Daten möglicherweise eine Ausrichtung durchlaufen, um zu bestimmen, wo Zeichen im Bitstrom beginnen. Diese Optionen werden in im Stand der Technik bekannter Weise durchgeführt, um die verschiedenen unterstützten Protokolle zu erfassen. Es ist zu beachten, dass, wenn Ausrichtung, Decodierung und/oder Entwürfelung nicht erforderlich sind, solche Funktionen auch nicht verwendet werden. Die resultierenden Daten werden in einem elastischen Zwischenspeicher 322 gespeichert.
-
In einer Ausführungsform handelt es sich bei dem elastischen Zwischenspeicher 322 um einen gemeinsamen elastischen Zwischenspeicher, der auch als Driftzwischenspeicher für Protokolle (wie beispielsweise UPI, USB, Thunderbolt etc.) fungieren kann, welche diesen benötigen. Der elastische Zwischenspeicher 322 kompensiert auch Bitströme, die gemäß Takten eines Taktbereichs übertragen werden, die nicht den Takten des Taktbereichs entsprechen, an den die Daten übertragen werden.
-
Die Daten aus dem elastischen Zwischenspeicher 322 werden an den Staging-Zwischenspeicher und den Multiplexer (Mux) 324 und den Multiprotokoll-Trainingssteuerblock 323 gesendet.
-
In einer Ausführungsform beinhaltet der Multiprotokoll-Trainingssteuerblock 323 eine gemeinsame Menge von für jedes Protokoll benötigten Verbindungstrainings- und Statuszustandsmaschinen- (LTSSM-) Teilmengen zusammen mit der zugehörigen, für jedes Protokoll benötigten Bitstromerfassung/-modifikation. Falls es sich beispielsweise bei einem der Protokolle um PCIe handelt, dann ist die PCIe-LTSSM als Teilmenge in der gemeinsamen Menge enthalten, und der Multiprotokoll-Trainingssteuerblock 323 ist in der Lage, dem PCIe-Standard zugehörige Bitstromerfassung, Erzeugung einer geordneten Menge (die während des Verbindungstrainings verwendet wird) und Bitstrommodifikation durchzuführen, was im Stand der Technik allgemein bekannt ist. In einer Ausführungsform beinhaltet der Multiprotokoll-Trainingssteuerblock 323 eine gemeinsame Menge von Verbindungstrainings- und Statuszustandsmaschinen- (LTSSM-) Teilmengen für USB, Display Port, Thunderbolt und/oder Kohärenzprotokolle wie beispielsweise UPI.
-
Jegliche vom Multiprotokoll-Trainingssteuerblock 323 zur Übertragung durch den Sender 302 ausgegebenen Daten sowie Daten aus dem elastischen Zwischenspeicher 322 werden durch Eingänge des Mux des Staging-Zwischenspeichers und des Mux 324 empfangen, welcher abhängig von der durch den Mux empfangenen Steuerauswahl (z.B. Signal) eines von beiden ausgibt.
-
Schließlich durchlaufen aus dem Staging-Zwischenspeicher und dem Mux 324 ausgegebene Daten eine etwaige durch das zur Übermittlung der Daten verwendete Protokoll vorgegebene Verwürfelung und Codierung sowie eine Umwandlung in ein serielles Format unter Verwendung des Umsetzers 325. Die seriellen Daten werden an einen Eingang des Mux 326 ausgegeben, welcher die seriellen Daten oder die Daten vom Umgehungspfad 350 an den Sender 325 bereitstellt.
-
Es ist zu beachten, dass in einer Ausführungsform die verschiedenen analogen Steuerschaltsysteme, wie beispielsweise die des Empfängers 301 und des Senders 302, mit allen Datenraten der unterstützten Protokolle arbeiten können.
-
Ein Phasenregelkreis (PLL) oder ein anderer Takterzeuger 311 stellt Taktsignale für die Komponenten des Neusynchronisierers bereit.
-
Der Datenpfad 351 weist somit eine gemeinsame Menge von Verarbeitungsblöcken auf und das vorstehend genannte gemeinsame Schaltsystem weist eine gemeinsame Menge und ein zugehöriges Steuerschaltsystem auf, das die protokoll- und datenratenbezogenen Steuerungen bilden kann, die für den Betrieb zur Übermittlung von Daten gemäß mehr als einem Protokoll benötigt werden. In einer Ausführungsform verwendet der Datenpfad einen Strap oder ein Seitenbandsignal, um die/das verwendete PHY/Protokoll zu bestimmen. Alternativ kann die Logikschicht nach den anfänglichen Trainingsmengen suchen und bestimmen, welche PHY bzw. welches Protokoll verwendet wird. In einer Ausführungsform befindet sich diese Logikschicht im Multiprotokoll-Trainingssteuerblock 323.
-
Der Umgehungspfad 350 ist der zur Verwendung nach dem Verbindungstraining vorgesehene zweite Datenpfad. In einer Ausführungsform ist der Umgehungspfad 350 für Bitübertragung mit geringer Latenz vorgesehen und für reguläre Bitstromübertragung in einem Gleichtaktbetrieb freigegeben.
-
In einer Ausführungsform überwacht die Logikschicht im regulären Pfad 351 auch im Umgehungsbetrieb den Datenverkehr, um zu bestimmen, ob ein Bitstrom modifiziert werden muss. In einer Ausführungsform werden für Übergänge zwischen dem Pfad 351 und dem Umgehungspfad 350 die folgenden Mechanismen verwendet.
-
In einer Ausführungsform ist während des Verbindungstrainings der Pfad 351 am Tx-Entzerrungsmechanismus auf beiden Seiten beteiligt, wie durch die entsprechende PHY-Protokoll-Spezifikation vorgegeben. Die Tx-Entzerrungseinstellung bleibt für diese Geschwindigkeit bestehen, bis eine Neuentzerrungsprozedur erfolgt. Es ist zu beachten, dass in einer Ausführungsform eine Neuentzerrungsprozedur erfolgen kann, wenn eine Komponente gemäß Bestimmung durch die Fehlerrate erfasst, dass die zuvor vorgenommene Entzerrung nicht korrekt funktioniert. In einer weiteren Ausführungsform kann die Neuentzerrungsprozedur erfolgen, wenn Software auf Grundlage ähnlicher Metriken, wie beispielsweise einer über einem Schwellenwert liegenden Fehlerrate, eine Verbindung anweist, eine Entzerrung erneut durchzuführen.
-
In einer Ausführungsform verwendet die PHY-Spezifikation einen oder mehrere spezielle Trainingsmengen (TSs), welche die über die vorliegend beschriebenen Neusynchronisierer (oder andere Erweiterungseinrichtungen) zusammengekoppelten Einrichtungen (z.B. Einrichtung 1 oder Einrichtung 2 der 1B) nach Abschluss der Tx-Entzerrung senden, um dem oder den Neusynchronisierer(n) zu gestatten, in den Umgehungsbetrieb zu schalten, in welchem der Umgehungspfad 350 verwendet wird. Beim Umschalten verlieren der oder die Neusynchronisierer die Bits, die gerade im regulären Datenpfad 351 verarbeitet werden. Somit verpasst die empfangende Einrichtung (z.B. der Einrichtung 2 der 1B) einen Abschnitt des Bitstroms. In einer Ausführungsform wird dieser Situation begegnet wie folgt.
-
Die erste einzelne geordnete Menge (OS) (vorliegend bezeichnet als „Regulär-zu-Umgehung markierende geordnete Menge“) liefert dem oder den Neusynchronisierer(n) die Anweisung, den Pfad vom regulären Pfad 351 auf den Umgehungspfad 350 umzuschalten, nachdem die einzelne geordnete Menge übertragen wurde, was gleichzeitig als Indikator an die Einrichtung fungiert, die Block/Zeichen-Grenze neu festzulegen. In einer Ausführungsform erfolgt das Umschalten nach einer vorab bestimmten Zeit, welche alle Komponenten befolgen. Der Neusynchronisierer stellt sicher, dass die Latenz diese vorab bestimmte Zeit nicht übersteigt, um eine vollständige Übertragung der „Regulär-zu-Umgehung markierenden geordneten Menge“ zu ermöglichen, ohne dass diese abgeschnitten oder fallen gelassen wird.
-
Einige Zeit nach der markierenden geordneten Menge wird eine nachfolgende geordnete Menge gesendet. In einer Ausführungsform ist die verstrichene Zeit länger als die durch die Spezifikation auf dem Pfad maximal gestattete Anzahl an Neusynchronisierern (typischerweise 2) multipliziert mit der vorab bestimmten Zeit, nachdem der Neusynchronisierer auf den Umgehungspfad 350 umschaltet. Diese wird durch die Empfängereinrichtung (z.B. die Einrichtung 2 der 1B) genutzt, um ihre Zeichen/Block-Grenze neu festzulegen, nachdem sie aufgrund des Umschaltens einige Bits verpasst hat.
-
Für Protokolle wie beispielsweise PCI-Express ist eine solche geordnete Menge nicht notwendig, da die geordneten Mengen von TS1 sowie die EIEOS nach Durchführung der Entzerrung fortgesetzt werden. Die Einrichtung (z.B. Einrichtung 2) kann sich bei entsprechender Aufforderung durch eine Spezifikationsmodifikation einfach neu trainieren und eine Blockausrichtung erhalten.
-
Es treten Fälle auf (wie beispielsweise die Neuentzerrung), in denen der Neusynchronisierer vom Umgehungskanal 350 auf den normalen Kanal 351 wechseln muss. Wenn dies eintritt, wiederholt sich ein Teil des Bitstroms. Dies kann dadurch erfolgen, dass auf die gleiche markierende geordnete Menge Trainingsmengen folgen, ähnlich wie vorstehend beschrieben.
-
In einer Ausführungsform erfolgt, wenn eine Verbindung in elektrischen Leerlauf gehen muss, das Senden der anzeigenden geordneten Menge (z.B. geordnete Menge für elektrischen Leerlauf in PCIe) einige Zeit, bevor die Verbindung wirklich in den elektrischen Leerlauf geht. Es ist zu beachten, dass bei PCIe die EIOS lang genug ist und schon nach wenigen ersten Zeichen identifiziert werden kann, was bedeutet, dass je nach Codierung/Geschwindigkeit noch 20 UI bis 96 UI verbleiben, bevor die Verbindung in den elektrischen Leerlauf geht. Auf diese anzeigende geordnete Menge folgt ein gültiger Bitstrom, der fallen gelassen werden kann. Dies gestattet es dem Neusynchronisierer, auf die geordnete Menge zu reagieren (im regulären Pfad 351) und seine Tx-Leitungen in den elektrischen Leerlauf zu schicken. In einer alternativen Ausführungsform erfolgen keine Änderungen und es wird erwartet, dass sich die Einrichtungsseite (z.B. die Einrichtung 2 aus 1B) nach dem Verlassen des elektrischen Leerlaufs neu trainiert (was sie nach dem Verlassen von L1 ohnehin tut).
-
4 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Übermitteln von Daten zwischen zwei Einrichtungen unter Verwendung mindestens eines Neusynchronisierers. In einer Ausführungsform wird der Prozess durch Verarbeitungslogik durchgeführt, die Hardware (Schaltsysteme, Speziallogik etc.), Software (wie sie auf einem Universalcomputersystem oder einer Spezialmaschine läuft), Firmware oder eine Kombination aus diesen dreien umfassen kann.
-
Der Prozess beginnt damit, dass Verarbeitungslogik den Typ (z.B. PCIe, USB, Display Port etc.) der physikalischen Schicht (PHY) zum Übertragen von Daten vom Empfänger an den Sender bestimmt (Verarbeitungsblock 401). In einer Ausführungsform basiert das Bestimmen des PHY-Typs auf einer Strap-Option. In einer weiteren Ausführungsform basiert das Bestimmen des PHY-Typs auf einem Seitenbandsignal. In einer weiteren Ausführungsform basiert das Bestimmen des PHY-Typs auf einem Überwachen der Trainingsmenge zum Abstimmen des PHY-Typs.
-
In Reaktion auf das Bestimmen des Typs der physikalischen Schicht (PHY) zum Übertragen von Daten vom Empfänger zum Sender stellt Verarbeitungslogik dann eine Protokollanzeige des Protokolls bereit, gemäß welchem die Daten übertragen werden (Verarbeitungsblock 402).
-
In Reaktion auf die Protokollanzeige konfiguriert Verarbeitungslogik wahlweise den Sendeempfänger und/oder den Empfänger (Verarbeitungsblock 403). Die Konfigurierung kann ein Training (z.B. Verbindungstraining) umfassen. In einer Ausführungsform beinhaltet das protokollspezifische Training ein Durchführen eines Entzerrungsprozesses. In einer Ausführungsform umfasst das Durchführen des Entzerrungsprozesses ein Erzeugen von Senderentzerrungskoeffizienten, um eine durch den Sender durchgeführte Entzerrung zu steuern.
-
Anschließend empfängt Verarbeitungslogik mit einem Empfänger eines Multiprotokoll-Neusynchronisierers Daten, wobei die Daten gemäß einem aus einer Vielzahl von Protokollen übermittelt wurden (Verarbeitungsblock 404), und überträgt Daten zwischen dem Empfänger und dem Sender des Neusynchronisierers unter Verwendung eines an den Empfänger und den Sender gekoppelten ersten Datenpfads, falls die Übermittlung der durch den Empfänger empfangenen Daten während eines oder vor einem protokollspezifischen Training des Senders und/oder Empfängers über ein Steuerschaltsystem in Reaktion auf eine Anzeige eines Protokolls der Vielzahl von Protokollen erfolgt, oder eines an den Empfänger und den Sender gekoppelten zweiten Datenpfads, falls die Übermittlung der durch den Empfänger empfangenen Daten nach dem protokollspezifischen Training erfolgt, wobei der zweite Datenpfad eine geringere Latenz aufweist als der erste Datenpfad (Verarbeitungsblock 405).
-
In einer Ausführungsform umfasst das Verwenden des ersten Datenpfads ein Laufenlassen einer Verbindungstrainings-Zustandsmaschine, um ein Verbindungstraining gemäß dem durch die Anzeige spezifizierten Protokoll durchzuführen. In einer Ausführungsform umfasst das Laufenlassen einer Verbindungstrainings-Zustandsmaschine zum Durchführen eines Verbindungstrainings ein Durchführen einer Erzeugung einem Protokoll zugehöriger geordneter Mengen für das Verbindungstraining.
-
In einer Ausführungsform wird der zweite Datenpfad während eines Gleichtaktbetriebs verwendet und der erste Datenpfad zur Verwendung während eines Nicht-Gleichtaktbetriebs und während eines protokollspezifischen Trainings vorgesehen ist. In einer Ausführungsform beinhaltet die Verwendung des ersten oder zweiten Datenpfads ein Senden eines Steuersignals an einen Multiplexer, der einen an den ersten Datenpfad gekoppelten ersten Eingang und einen an den zweiten Datenpfad gekoppelten zweiten Eingang aufweist, um einen an den Sender gekoppelten Ausgang zu erzeugen.
-
Zu einer späteren Zeit schaltet Verarbeitungslogik in Reaktion auf ein Empfangen einer vorab definierten Trainingsmenge wahlweise von der Verwendung des zweiten Datenpfads auf den ersten Datenpfad (Verarbeitungsblock 406).
-
Bei 5 handelt es sich um eine Ausführungsform eines Systemebenendiagramms 500, das die vorstehend beschriebenen Methoden beinhalten kann. Beispielsweise können die vorstehend beschriebenen Methoden in eine Zwischenverbindung oder Schnittstelle im System 500 integriert sein.
-
Gemäß 5 beinhaltet das System 500, ohne hierauf eingeschränkt zu sein, einen Desktop-Computer, einen Laptop-Computer, ein Netbook, ein Tablet, einen Notebook-Computer, einen persönlichen digitalen Assistenten (PDA), einen Server, eine Workstation, ein Mobiltelefon, eine mobile Datenverarbeitungseinrichtung, ein Smartphone, ein internetfähiges Gerät oder jedweden anderen Typ von Datenverarbeitungseinrichtung. In einer anderen Ausführungsform implementiert das System 500 die vorliegend offenbarten Verfahren und kann ein Ein-Chip-System (SOC) sein.
-
In einer Ausführungsform weist der Prozessor 510 einen oder mehrere Prozessorkerne 512 bis 512N auf, wobei 512N den N-ten Prozessorkern innerhalb des Prozessors 510 repräsentiert, wobei N eine positive Ganzzahl ist. In einer Ausführungsform beinhaltet das System 500 mehrere Prozessoren, darunter die Prozessoren 510 und 505, wobei der Prozessor 505 eine ähnliche oder identische Logik wie der Prozessor 510 aufweist. In einer Ausführungsform beinhaltet das System 500 mehrere Prozessoren, darunter die Prozessoren 510 und 505, derart, dass der Prozessor 505 eine Logik aufweist, die von der Logik des Prozessors 510 vollkommen unabhängig ist. In einer solchen Ausführungsform handelt es sich bei einem Multi-Package-System 500 um ein heterogenes Multi-Package-System, da die Prozessoren 505 und 510 verschiedene Logikeinheiten aufweisen. In einer Ausführungsform umfasst der Verarbeitungskern 512, ohne hierauf eingeschränkt zu sein, Vorabzugriffslogik, um auf Anweisungen zuzugreifen, Decodierlogik, um die Anweisungen zu decodieren, Ausführungslogik, um Anweisungen auszuführen, und dergleichen. In einer Ausführungsform weist der Prozessor 510 einen Cachespeicher 516 auf, um Anweisungen und/oder Daten des Systems 500 im Cache zu speichern. In einer weiteren Ausführungsform der Erfindung beinhaltet der Cachespeicher 516 Level-1-, Level-2- und Level-3-Cachespeicher oder eine beliebige andere Ausbildung des Cachespeichers innerhalb des Prozessors 510.
-
In einer Ausführungsform beinhaltet der Prozessor 510 eine Memory Control Hub (MCH) 514, die betriebsfähig ist, Funktionen auszuführen, die es dem Prozessor 510 ermöglichen, auf einen Speicher 530, der einen flüchtigen Speicher 532 und/oder einen nichtflüchtigen Speicher 534 beinhaltet, zuzugreifen und mit diesem zu kommunizieren. In einer Ausführungsform ist die Memory Control Hub (MCH) 514 als unabhängige integrierte Schaltung außerhalb des Prozessors 510 positioniert.
-
In einer Ausführungsform ist der Prozessor 510 betriebsfähig, mit dem Speicher 530 und einem Chipsatz 520 zu kommunizieren. In einer solchen Ausführungsform führt die SSD 580 die Computer-ausführbaren Anweisungen aus, wenn die SSD 580 hochgefahren ist.
-
In einer Ausführungsform ist der Prozessor 510 ferner an eine Funkantenne 578 gekoppelt, um mit einer beliebigen Einrichtung zu kommunizieren, die konfiguriert ist, Funksignale zu senden und/oder zu empfangen. In einer Ausführungsform arbeitet die Schnittstelle der Funkantenne 578, ohne hierauf eingeschränkt zu sein, gemäß dem IEEE 802.11-Standard und dessen Familie, HomePlug AV (HPAV), Ultrabreitband (UWB), Bluetooth, WiMAX oder einer beliebigen Form von Funkkommunikationsprotokoll.
-
In einer Ausführungsform beinhaltet der flüchtige Speicher 532, ohne hierauf eingeschränkt zu sein, einen synchronen dynamischen Wahlzugriffsspeicher (SDRAM), dynamischen Wahlzugriffsspeicher (DRAM), dynamischen RAMBUS-Wahlzugriffsspeicher (RDRAM) und/oder einen beliebigen anderen Typ von Wahlzugriffsspeichereinrichtung. Der nichtflüchtige Speicher 534 beinhaltet, ohne hierauf eingeschränkt zu sein, einen Flashspeicher (z.B. NAND, NOR), Phasenwechselspeicher (PCM), Nur-Lese-Speicher (ROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) oder einen beliebigen anderen Typ von nichtflüchtiger Speichereinrichtung.
-
Der Speicher 530 speichert Informationen und durch den Prozessor 510 auszuführende Anweisungen. In einer Ausführungsform ist der Chipsatz 520 mit dem Prozessor 510 über Punkt-zu-Punkt- (PtP- oder P-P-) Schnittstellen 517 und 522 verbunden. In einer Ausführungsform ermöglicht der Chipsatz 520 dem Prozessor 510 eine Verbindung mit weiteren Modulen im System 500. In einer Ausführungsform arbeiten die Schnittstellen 517 und 522 gemäß einem PtP-Kommunikationsprotokoll wie beispielsweise dem Intel QuickPath Interconnect (QPI) oder dergleichen.
-
In einer Ausführungsform ist der Chipsatz 520 betriebsfähig, mit dem Prozessor 510, 505, der Anzeigeeinrichtung 540 und weiteren Einrichtungen 572, 576, 574, 560, 562, 564, 566, 577 etc. zu kommunizieren. In einer Ausführungsform ist der Chipsatz 520 auch an eine Funkantenne 578 gekoppelt, um mit einer beliebigen Einrichtung zu kommunizieren, die konfiguriert ist, Funksignale zu übertragen und/oder zu empfangen.
-
In einer Ausführungsform ist der Chipsatz 520 über eine Schnittstelle 526 mit einer Anzeigeeinrichtung 540 verbunden. In einer Ausführungsform beinhaltet die Anzeigeeinrichtung 540, ohne hierauf eingeschränkt zu sein, eine Flüssigkristallanzeige (LCD), eine Plasmaanzeige, eine Kathodenstrahlröhren- (CRT-) Anzeige oder eine beliebige andere Form von optischer Anzeigeeinrichtung. Zudem ist der Chipsatz 520 mit einem oder mehreren Bussen 550 und 555 verbunden, die verschiedene Module 574, 560, 562, 564 und 566 miteinander verbinden. In einer Ausführungsform können die Busse 550 und 555 über eine Busbrücke 572 zusammengeschaltet werden, falls es eine Diskrepanz bezüglich der Busgeschwindigkeit oder des Kommunikationsprotokolls gibt. In einer Ausführungsform ist der Chipsatz 520, ohne hierauf eingeschränkt zu sein, über die Schnittstelle 524 mit einem nichtflüchtigen Speicher 560, einer Massenspeichereinrichtung(en) 562, einer Tastatur/Maus 564 und einer Netzwerkschnittstelle 566, einem Smart-TV 576, Konsumelektronik 577 etc. verbunden.
-
In einer Ausführungsform beinhaltet die Massenspeichereinrichtung 562, ohne hierauf eingeschränkt zu sein, ein Solid State Drive, eine Festplatte, ein „Universal Serial Bus“-Flashspeicherlaufwerk oder eine beliebige andere Form von Computerdatenspeichermedium. In einer Ausführungsform ist die Netzwerkschnittstelle 566 durch einen beliebigen Typ eines allgemein bekannten Netzwerkschnittstellenstandards implementiert, darunter, ohne hierauf eingeschränkt zu sein, eine Ethernet-Schnittstelle, eine „Universal Serial Bus“- (USB-) Schnittstelle, eine „Peripheral Component Interconnect (PCI) Express“-Schnittstelle, eine Funkschnittstelle und/oder ein beliebiger anderer Schnittstellentyp.
-
Zwar sind die in 5 gezeigten Module als separate Blöcke innerhalb des Systems 500 dargestellt, jedoch können die durch einige dieser Blöcke ausgeführten Funktionen in eine einzige Halbleiterschaltung integriert oder unter Verwendung zweier oder mehrerer separater integrierter Schaltungen implementiert sein.
-
In einer ersten beispielhaften Ausführungsform umfasst eine Vorrichtung zum Durchführen einer Neusynchronisierung zwischen einer ersten und einer zweiten Einrichtung gemäß einer Vielzahl von Protokollen Folgendes: einen Empfänger, der betriebsfähig ist, Daten zu empfangen, einen Sender, um Daten zu senden, einen an den Empfänger und den Sender gekoppelten ersten Datenpfad, der betriebsfähig ist, vom Empfänger empfangene Daten während eines protokollspezifischen Trainings an den Sender zu übermitteln, wobei der erste Datenpfad ein Steuerschaltsystem umfasst, um in Reaktion auf eine Anzeige eines Protokolls der Vielzahl von Protokollen ein protokollspezifisches Training des Senders und/oder des Empfängers zu steuern, und einen an den Empfänger und den Sender gekoppelten zweiten Datenpfad, wobei der zweite Datenpfad eine geringere Latenz als der erste Datenpfad aufweist und zur Verwendung beim Übermitteln von vom Empfänger empfangenen Daten an den Sender nach dem protokollspezifischen Training vorgesehen ist.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise beinhalten, dass das protokollspezifische Training ein Durchführen eines Entzerrungsprozesses umfasst. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass der Entzerrungsprozess Senderentzerrungskoeffizienten erzeugt, um eine durch den Sender durchgeführte Entzerrung zu steuern.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise beinhalten, dass der zweite Datenpfad während eines Gleichtaktbetriebs verwendet wird und der erste Datenpfad zur Verwendung während eines Nicht-Gleichtaktbetriebs und während eines Trainings vorgesehen ist.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise beinhalten, dass in Reaktion auf ein Empfangen einer vorab definierten Trainingsmenge ein Umschalten von der Verwendung des zweiten Datenpfads auf den ersten Datenpfad erfolgt.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise eine Schaltung beinhalten, um in Reaktion auf ein Bestimmen der physikalischen Schicht (PHY) zum Übermitteln von Daten vom Empfänger an den Sender die Anzeige bereitzustellen. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass die Schaltung betriebsfähig ist, die PHY auf Grundlage einer Strap-Option zu bestimmen, dass die Schaltung betriebsfähig ist, die PHY auf Grundlage eines Seitenbandsignals zu bestimmen oder dass die Schaltung betriebsfähig ist, die PHY auf Grundlage einer Trainingsmengenmodifikation zu bestimmen.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise einen Multiplexer beinhalten, der einen an den ersten Datenpfad gekoppelten ersten Eingang und einen an den zweiten Datenpfad gekoppelten zweiten Eingang und einen an den Sender gekoppelten Ausgang aufweist.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise beinhalten, dass der erste Datenpfad ferner eine oder mehrere Verbindungstrainings-Zustandsmaschinen für die Vielzahl von Protokollen umfasst, wobei die eine oder die mehreren Verbindungstrainings-Zustandsmaschinen vom Steuerschaltsystem verwendet werden, um ein Verbindungstraining gemäß dem durch die Anzeige spezifizierten Protokoll durchzuführen. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass das Steuerschaltsystem betriebsfähig ist, für ein Verbindungstraining eine Erzeugung jedem der Vielzahl von Protokollen zugehöriger geordneter Mengen durchzuführen.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der ersten beispielhaften Ausführungsform wahlweise beinhalten, dass der erste Datenpfad ferner Folgendes umfasst: einen Seriell-Parallel- (S2P-) Umsetzer, der gekoppelt ist, um durch den Empfänger empfangene erste serielle Daten in erste parallele Daten umzuwandeln, erste Logik, die an den S2P-Umsetzer gekoppelt ist, um nötigenfalls Ausrichtung, Decodierung und Entwürfelung durchzuführen, einen elastischen Zwischenspeicher, der an die erste Logik gekoppelt ist, um nach etwaiger Ausrichtung, Decodierung und Entwürfelung Daten zu speichern, ein Staging-Zwischenspeicher-Schaltsystem, das an den elastischen Zwischenspeicher und das Steuerschaltsystem gekoppelt ist, wobei das Staging-Zwischenspeicher-Schaltsystem einen Multiplexer umfasst, der auf ein oder mehrere Steuersignale anspricht, um dem Sender Daten aus dem elastischen Zwischenspeicher oder Trainingsdaten bereitzustellen, und einen Parallel-Seriell- (P2S-) Umsetzer, der gekoppelt und betriebsfähig ist, vom Staging-Zwischenspeicher-Schaltsystem zweite parallele Daten zu empfangen und die zweiten parallelen Daten in zweite serielle Daten umzuwandeln.
-
In einer zweiten beispielhaften Ausführungsform umfasst ein Verfahren ein Empfangen von Daten mit einem Empfänger eines Multiprotokoll-Neusynchronisierers, wobei die Daten gemäß einem aus einer Vielzahl von Protokollen übermittelt wurden, und ein Übertragen von Daten zwischen dem Empfänger und dem Sender des Neusynchronisierers unter Verwendung eines an den Empfänger und den Sender gekoppelten ersten Datenpfads, falls die Übermittlung der durch den Empfänger empfangenen Daten während eines oder vor einem protokollspezifischen Training des Senders und/oder Empfängers über ein Steuerschaltsystem in Reaktion auf eine Anzeige eines Protokolls der Vielzahl von Protokollen erfolgt, oder eines an den Empfänger und den Sender gekoppelten zweiten Datenpfads, falls die Übermittlung der durch den Empfänger empfangenen Daten nach dem protokollspezifischen Training erfolgt, wobei der zweite Datenpfad eine geringere Latenz aufweist als der erste Datenpfad.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise beinhalten, dass das protokollspezifische Training ein Durchführen eines Entzerrungsprozesses umfasst. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass das Durchführen des Entzerrungsprozesses ein Erzeugen von Senderentzerrungskoeffizienten umfasst, um eine durch den Sender durchgeführte Entzerrung zu steuern.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise beinhalten, dass der zweite Datenpfad während eines Gleichtaktbetriebs verwendet wird der erste Datenpfad zur Verwendung während eines Nicht-Gleichtaktbetriebs und während eines protokollspezifischen Trainings vorgesehen ist.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise ein Umschalten von der Verwendung des zweiten Datenpfads auf den ersten Datenpfad in Reaktion auf ein Empfangen einer vorab definierten Trainingsmenge beinhalten.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise ein Bereitstellen der Anzeige in Reaktion auf ein Bestimmen der physikalischen Schicht (PHY) zum Übermitteln von Daten vom Empfänger an den Sender beinhalten. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass das Bestimmen des PHY-Typs auf einer Strap-Option, einem Seitenbandsignal oder einer Trainingsmengenmodifikation basiert.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise ein Auswählen eines Steuersignals eines Multiplexers beinhalten, der einen an den ersten Datenpfad gekoppelten ersten Eingang und einen an den zweiten Datenpfad gekoppelten zweiten Eingang aufweist, um einen an den Sender gekoppelten Ausgang zu erzeugen.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise ein Laufenlassen einer Verbindungstrainings-Zustandsmaschine beinhalten, um ein Verbindungstraining gemäß dem durch die Anzeige spezifizierten Protokoll durchzuführen. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise ein Durchführen einer Erzeugung einem Protokoll zugehöriger geordneter Mengen für das Verbindungstraining beinhalten.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise beinhalten: Speichern von Daten in einem elastischen Zwischenspeicher während eines Trainings, und Steuern eines Ausgangs eines an den elastischen Zwischenspeicher gekoppelten Multiplexers, um an den Sender Daten vom elastischen Zwischenspeicher oder beim Durchführen des Verbindungstrainings erzeugte Trainingsdaten zu senden, wobei ein Parallel-Seriell- (P2S-) Umsetzer gekoppelt und betriebsfähig ist, zweite parallele Daten vom Staging-Zwischenspeicher-Schaltsystem zu empfangen und die zweiten parallelen Daten in zweite serielle Daten umzuwandeln.
-
In einer dritten beispielhaften Ausführungsform umfasst ein System ein Paar von Einrichtungen, einen zwischen das Paar von Einrichtungen gekoppelten Neusynchronisierer, um einen Datenfluss in beiden Richtungen zwischen dem Paar von Einrichtungen bereitzustellen, wobei der Datenfluss in jeder Richtung durchgeführt wird durch einen Empfänger, der betriebsfähig ist, Daten zu empfangen, einen Sender, um Daten zu senden, einen an den Empfänger und den Sender gekoppelten ersten Datenpfad, der betriebsfähig ist, vom Empfänger empfangene Daten während eines protokollspezifischen Trainings an den Sender zu übermitteln, wobei der erste Datenpfad ein Steuerschaltsystem umfasst, um in Reaktion auf eine Anzeige eines Protokolls der Vielzahl von Protokollen ein protokollspezifisches Training des Senders und/oder des Empfängers zu steuern, und einen an den Empfänger und den Sender gekoppelten zweiten Datenpfad, wobei der zweite Datenpfad eine geringere Latenz als der erste Datenpfad aufweist und zur Verwendung beim Übermitteln von vom Empfänger empfangenen Daten an den Sender nach dem protokollspezifischen Training vorgesehen ist. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass das protokollspezifische Training ein Durchführen eines Entzerrungsprozesses umfasst. In einer weiteren beispielhaften Ausführungsform kann der Gegenstand dieser beispielhaften Ausführungsform wahlweise beinhalten, dass der Entzerrungsprozess Senderentzerrungskoeffizienten erzeugt, um eine durch den Sender durchgeführte Entzerrung zu steuern.
-
In einer weiteren beispielhaften Ausführungsform kann der Gegenstand der zweiten beispielhaften Ausführungsform wahlweise beinhalten, dass der zweite Datenpfad während eines Gleichtaktbetriebs verwendet wird und der erste Datenpfad zur Verwendung während eines Nicht-Gleichtaktbetriebs und während eines Trainings vorgesehen ist.
-
Einige Abschnitte der vorstehenden ausführlichen Beschreibungen wurden im Sinne von Algorithmen und symbolischen Darstellungen von Vorgängen an Datenbits in einem Computerspeicher vorgestellt. Bei diesen algorithmischen Beschreibungen und Darstellungen handelt es sich um das vom Fachmann auf dem Gebiet der Datenverarbeitung verwendete Mittel, um den Inhalt seiner Arbeit einem anderen Fachmann am effektivsten zu vermitteln. Ein Algorithmus wird hier wie auch im Allgemeinen verstanden als eine in sich schlüssige Abfolge von Schritten, die zu einem gewünschten Ergebnis führen. Bei den Schritten handelt es sich um solche, die eine physikalische Manipulation physikalischer Größen erfordern. Üblicherweise, jedoch nicht notwendigerweise, liegen diese Größen in Form elektrischer oder magnetischer Signale vor, die gespeichert, übermittelt, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich zuzeiten, vornehmlich aus Gründen des allgemeinen Gebrauchs, als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen.
-
Es sei jedoch daran erinnert, dass all diese und ähnliche Ausdrücke den geeigneten physikalischen Größen zuzuordnen sind und lediglich zweckmäßige Kennzeichnungen darstellen, die auf diese Größen angewandt werden. Soweit nicht ausdrücklich anders angegeben, wie aus der nachfolgenden Erörterung ersichtlich, versteht es sich, dass in der gesamten Beschreibung Erörterungen, die Ausdrücke wie „Verarbeiten“ oder „Datenverarbeitung“ oder „Berechnen“ oder „Bestimmen“ oder „Anzeigen“ oder dergleichen verwenden, sich auf Handeln und Prozesse eines Computersystems oder einer ähnlichen elektronischen Datenverarbeitungseinrichtung beziehen, die als physikalische (elektronische) Größen innerhalb der Register und Speicher des Computersystems repräsentierte Daten manipuliert und in andere in ähnlicher Weise als physikalische Größen innerhalb der Speicher oder Register oder anderer solcher Informationsspeicherungs-, Übertragungs- oder Anzeigeeinrichtungen des Computersystems repräsentierte Daten umwandelt.
-
Die vorliegende Erfindung betrifft auch eine Vorrichtung zum Durchführen der vorliegenden Arbeitsschritte. Diese Vorrichtung kann für die erforderlichen Zwecke speziell konstruiert sein oder sie kann einen Universalcomputer umfassen, der durch ein im Computer gespeichertes Computerprogramm gezielt aktiviert oder neu konfiguriert wird. Ein solches Computerprogramm kann auf einem computerlesbaren Speichermedium gespeichert sein, beispielsweise, ohne hierauf eingeschränkt zu sein, einer beliebigen Art von Platten, darunter Floppy Disks, optische Platten, CD-ROMs und magnetisch-optische Platten, Nur-Lese-Speicher (ROMs), Speicher mit wahlfreiem Zugriff (RAMs), EPROMs, EEPROMs, Magnet- oder optische Karten oder eine beliebige Art von Medien, die sich zum Speichern elektronischer Anweisungen eignen, die jeweils an einen Computersystembus gekoppelt sind.
-
Die vorliegend vorgestellten Algorithmen und Anzeigen betreffen nicht inhärent einen bestimmten Computer oder eine andere bestimmte Einrichtung. Es können verschiedene Universalsysteme mit Programmen gemäß den vorliegenden Lehren verwendet werden oder es kann sich als zweckmäßig erweisen, speziellere Vorrichtungen zu konstruieren, um die erforderlichen Verfahrensschritte durchzuführen. Die erforderliche Struktur für eine Vielfalt dieser Systeme geht aus der nachfolgenden Beschreibung hervor. Zudem wird die vorliegende Erfindung nicht mit Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es versteht sich, dass eine Vielfalt an Programmiersprachen verwendet werden kann, um die Lehren der Erfindung wie vorliegend beschrieben zu implementieren.
-
Unter ein maschinenlesbares Medium fällt jedweder Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z.B. einen Computer) lesbaren Form. Beispielsweise fallen unter ein maschinenlesbares Medium ein Nur-Lese-Speicher („ROM“), Speicher mit wahlfreiem Zugriff („RAM“), Magnetplatten-Speichermedien, optische Speichermedien, Flashspeichermedien etc.
-
Für einen Durchschnittsfachmann des Fachgebiets sind nach Lektüre der vorstehenden Beschreibung zweifellos viele Änderungen und Modifikationen der vorliegenden Erfindung denkbar, und es versteht sich, dass bestimmte veranschaulichend gezeigte und beschriebene Ausführungsformen keinesfalls als einschränkend anzusehen sind. Bezugnahmen auf Einzelheiten verschiedener Ausführungsformen sollen daher nicht den Umfang der Ansprüche einschränken, welche an sich nur die Merkmale angeben, die als erfindungswesentlich angesehen werden.