-
GEBIET
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das Gebiet der Computerentwicklung und insbesondere auf Softwareentwicklung, die die Koordination von gegenseitig abhängigen eingeschränkten Systemen beinhaltet.
-
HINTERGRUND
-
Fortschritte in der Halbleiterverarbeitung und Logikkonstruktion haben eine Erhöhung der Menge an Logik ermöglicht, die in integrierten Schaltungsvorrichtungen vorhanden sein kann. Als Begleiterscheinung haben sich Computersystemkonfigurationen aus einer einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardwareabläufen und mehreren logischen Prozessoren, die in individuellen integrierten Schaltungen vorhanden sind, sowie anderen Schnittstellen, die in solche Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physikalischen Prozessorchip, wobei der Prozessorchip irgendeine Anzahl von Kernen, Hardwareabläufen, logischen Prozessoren, Schnittstellen, einen Speicher, Steuereinheitsknotenpunkte usw. umfassen kann.
-
Infolge der größeren Fähigkeit, mehr Verarbeitungsleistung in kleinere Bausteine einzufügen, haben kleinere Rechenvorrichtungen an Popularität zugenommen. Smartphones, Tablets, ultradünne Notebooks und eine andere Benutzerausrüstung haben exponentiell zugenommen. Diese kleineren Vorrichtungen beruhen jedoch auf Servern sowohl für die Datenspeicherung als auch für komplexe Verarbeitung, die den Formfaktor überschreitet. Folglich hat der Bedarf auf dem Hochleistungsrechenmarkt (d. h. Serverplatz) auch zugenommen. In modernen Servern ist beispielsweise typischerweise nicht nur ein einzelner Prozessor mit mehreren Kernen vorhanden, sondern auch mehrere physikalische Prozessoren (auch als mehrere Sockel bezeichnet), um die Rechenleistung zu erhöhen. Da jedoch die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Rechensystem zunimmt, wird die Kommunikation zwischen Sockeln und anderen Vorrichtungen kritischer.
-
Tatsächlich sind Zusammenschaltungen von herkömmlicheren Mehrpunktbussen, die hauptsächlich elektrische Kommunikationen gehandhabt haben, zu voll entfalteten Zusammenschaltungsarchitekturen gewachsen, die eine schnelle Kommunikation erleichtern. Als Bedarf, dass zukünftige Prozessoren mit noch höheren Raten verbrauchen, wird leider den Fähigkeiten von existierenden Zusammenschaltungsarchitekturen ein entsprechender Bedarf auferlegt.
-
Aus
US 7327754 B2 ist bekannt, dass eine PHY-Schicht zur Signalisierung eines IDLE-Zustandes ein Datenpaket mit einem unverwürfelten Header und einer verwürfelten Nutzinformation verwendet.
-
Aus
US 2009/0323722 A1 ist ein Codierverfahren für ein LAN bekannt, welches auch Datenpakete unterstützt, die einen unverwürfelten Header und eine verwürfelte Nutzinformation aufweisen.
-
Aus
US 2009/0252326 A1 ist bekannt, dass Daten mit einem Schieberegister mit linearer Rückkopplung verwürfelt werden.
-
Figurenliste
-
- 1 stellt ein vereinfachtes Blockdiagramm eines Systems mit einer seriellen Punkt-zu-Punkt-Zusammenschaltung, um E/A-Vorrichtungen in einem Computersystem zu verbinden, gemäß einer Ausführungsform dar;
- 2 stellt ein vereinfachtes Blockdiagramm eines Schichtenprotokollstapels gemäß einer Ausführungsform dar;
- 3 stellt eine Ausführungsform eines Transaktionsdeskriptors dar.
- 4 stellt eine Ausführungsform einer seriellen Punkt-zu-Punkt-Verbindung dar.
- 5 stellt Ausführungsformen von potentiellen Hochleistungs-Zusammenschaltungs-Systemkonfigurationen (HPI-Systemkonfigurationen) dar.
- 6 stellt eine Ausführungsform eines Schichtenprotokollstapels dar, der HPI zugeordnet ist.
- 7 stellt eine Darstellung einer Beispielzustandsmaschine dar.
- 8 stellt Beispielsteuersupersequenzen dar.
- 9 stellt ein Ablaufdiagramm dar, das einen Beispieleintritt in einen Teilbreitenübertragungszustand darstellt.
- 10 stellt eine Beispielanlaufsequenz dar.
- 11 stellt eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkern-Prozessor dar.
- 12 stellt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkern-Prozessor dar.
- 13 stellt eine Ausführungsform eines Blockdiagramms für einen Prozessor dar.
- 14 stellt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Prozessor dar.
- 15 stellt eine Ausführungsform eines Blocks für ein Rechensystem mit mehreren Prozessorsockeln dar.
- 16 stellt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem dar.
-
Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie z. B. Beispiele von spezifischen Typen von Prozessoren und Systemkonfigurationen, spezifischen Hardwarestrukturen, spezifischen Architektur- und Mikroarchitekturdetails, spezifischen Registerkonfigurationen, spezifischen Befehlstypen, spezifischen Systemkomponenten, spezifischen Prozessorpipelinestufen, spezifischen Zusammenschaltungsschichten, spezifischen Paket/Transaktions-Konfigurationen, spezifischen Transaktionsnamen, spezifischen Protokollaustauschvorgängen, spezifischen Verbindungsbreiten, spezifischen Implementierungen und einer Operation usw., um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Für einen Fachmann auf dem Gebiet kann jedoch ersichtlich sein, dass diese spezifischen Details nicht notwendigerweise verwendet werden müssen, um den Gegenstand der vorliegenden Offenbarung auszuführen. In anderen Fällen wurde eine gut detaillierte Beschreibung von bekannten Komponenten oder Verfahren vermieden, wie z. B. spezifischen und alternativen Prozessorarchitekturen, spezifischen Logikschaltungen/eines spezifischen Codes für beschriebene Algorithmen, eines spezifischen Firmwarecodes, einer Zusammenschaltungsoperation niedriger Ebene, spezifischen Logikkonfigurationen, spezifischen Herstellungstechniken und Materialien, spezifischen Kompiliererimplementierungen, eines spezifischen Ausdrucks von Algorithmen im Code, spezifischen Ausschalt- und Torsteuertechniken/Logik und anderen spezifischen Betriebsdetails eines Computersystems, um es zu vermeiden, die vorliegende Offenbarung unnötig unklar zu machen.
-
Obwohl die folgenden Ausführungsformen mit Bezug auf eine Energieeinsparung, Energieeffizienz, Verarbeitungseffizienz und so weiter in spezifischen integrierten Schaltungen wie z. B. in Rechenplattformen oder Mikroprozessoren beschrieben werden können, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren der hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die auch von solchen Merkmalen profitieren können. Die offenbarten Ausführungsformen sind beispielsweise nicht auf ein Servercomputersystem, Desktop-Computersysteme, Laptops, Ultrabooks™ begrenzt, sondern können auch in anderen Vorrichtungen wie z. B. in der Hand gehaltenen Vorrichtungen, Smartphones, Tablets, anderen dünnen Notebooks, Vorrichtungen mit Systemen auf einem Chip (SOC) und eingebetteten Anwendungen verwendet werden. Einige Beispiele von in der Hand gehaltenen Vorrichtungen umfassen Mobiltelefone, Internet-Protokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und in der Hand gehaltene PCs. Hier können ähnliche Techniken für eine Hochleistungszusammenschaltung angewendet werden, um in einer leistungsarmen Zusammenschaltung die Leistung zu erhöhen (oder sogar Leistung zu sparen). Eingebettete Anwendungen umfassen typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Digitalempfänger, Netzknotenpunkte, Schalter eines weiträumigen Netzes (WAN) oder irgendein anderes System, das die nachstehend gelehrten Funktionen und Operationen durchführen kann. Überdies sind die hier beschriebenen Geräte, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen begrenzt, sondern können sich auch auf Softwareoptimierungen für Energieeinsparung und Energieeffizienz beziehen. Wie in der nachstehenden Beschreibung leicht ersichtlich werden kann, können die hier beschriebenen Ausführungsformen von Verfahren, Geräten und Systemen (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) als für eine Zukunft einer „grünen Technologie“ unerlässlich betrachtet werden, die mit Leistungserwägungen im Gleichgewicht ist.
-
Da Rechensysteme fortschreiten, werden die Komponenten darin komplexer. Die Zusammenschaltungsarchitektur zum Koppeln und zur Kommunikation zwischen den Komponenten hat auch in der Komplexität zugenommen, um sicherzustellen, dass der Bandbreitenbedarf für einen optimalen Komponentenbetrieb erfüllt wird. Ferner verlangen verschiedene Marktsegmente verschiedene Aspekte von Zusammenschaltungsarchitekturen zur Anpassung an den jeweiligen Markt. Server erfordern beispielsweise eine höhere Leistung, während das mobile Ökosystem manchmal die Gesamtleistung für Leistungseinsparungen opfern kann. Dennoch ist es ein einzigartiger Zweck der meisten Gebilde, die höchstmögliche Leistung mit maximaler Leistungseinsparung bereitzustellen. Ferner kann eine Vielfalt von verschiedenen Zusammenschaltungen potentiell vom hier beschriebenen Gegenstand profitieren.
-
Die Peripheriekomponenten-Zusammenschaltungs- (PCI) Express- (PCIe) Zusammenschaltungsgebildearchitektur und die QuickPath-Zusammenschaltungs-(QPI) Gebildearchitektur unter anderen Beispielen können gemäß einem oder mehreren hier beschriebenen Prinzipien unter anderen Beispielen potentiell verbessert werden. Ein Hauptziel von PCIe besteht beispielsweise darin, zu ermöglichen, dass Komponenten und Vorrichtungen von verschiedenen Verkäufern in einer offenen Architektur zusammenarbeiten, die sich über mehrere Marktsegmente erstreckt; Clients (Desktops und Mobilgerät) Server (Standard und Unternehmen) und eingebettete und Kommunikationsvorrichtungen. PCI-Express ist eine universelle Hochleistungs-E/A-Zusammenschaltung, die für eine breite Vielfalt von zukünftigen Rechen- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute wie z. B. ihr Verwendungsmodell, Lade-Speicher-Architektur und Softwareschnittstellen wurden durch ihre Überarbeitungen aufrechterhalten, wohingegen vorherige parallele Busimplementierungen durch eine stark skalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die jüngeren Versionen von PCI-Express nutzen Fortschritte in Punkt-zu-Punkt- Zusammenschaltungen, der Technologie auf Schalterbasis und des paketisierten Protokolls, um neue Leistungsebenen und Merkmale zu liefern. Leistungsmanagement, Dienstqualität (QoS), Unterstützung von Einbau/Austausch im laufenden Betrieb, Datenintegrität und Fehlerhandhabung befinden sich unter einigen der fortschrittlichen Merkmale, die von PCI-Express unterstützt werden. Obwohl die primäre Erörterung hier in Bezug auf eine neue Hochleistungs-Zusammenschaltungsarchitektur (HPI-Architektur) stattfindet, können Aspekte der hier beschriebenen Erfindung auf andere Zusammenschaltungsarchitekturen angewendet werden, wie z. B. eine mit PCIe kompatible Architektur, eine mit QPI kompatible Architektur, eine mit MIPI kompatible Architektur, eine Hochleistungsarchitektur oder eine andere bekannte Zusammenschaltungsarchitektur.
-
Mit Bezug auf 1 ist eine Ausführungsform eines Gebildes, das aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten zusammenschalten, dargestellt. Das System 100 umfasst einen Prozessor 105 und einen Systemspeicher 110, der mit einem Steuereinheitsknotenpunkt 115 gekoppelt ist. Der Prozessor 105 kann irgendein Verarbeitungselement wie z. B. einen Mikroprozessor, einen Hauptrechnerprozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor umfassen. Der Prozessor 105 ist mit dem Steuereinheitsknotenpunkt 115 durch einen Vorderseitenbus (FSB) 106 gekoppelt. In einer Ausführungsform ist der FSB 106 eine serielle Punkt-zu-Punkt-Zusammenschaltung, wie nachstehend beschrieben. In einer anderen Ausführungsform umfasst die Verbindung 106 eine serielle, differentielle Zusammenschaltungsarchitektur, die mit einem unterschiedlichen Zusammenschaltungsstandard kompatibel ist.
-
Der Systemspeicher 110 umfasst irgendeine Speichervorrichtung wie z. B. einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen (NV) Speicher oder einen anderen Speicher, auf den von Vorrichtungen im System 100 zugegriffen werden kann. Der Systemspeicher 110 ist mit dem Steuereinheitsknotenpunkt 115 durch eine Speicherschnittstelle 116 gekoppelt. Beispiele einer Speicherschnittstelle umfassen eine Speicherschnittstelle mit doppelter Datenrate (DDR), eine Doppelkanal-DDR-Speicherschnittstelle und eine Speicherschnittstelle eines dynamischen RAM (DRAM).
-
In einer Ausführungsform kann der Steuereinheitsknotenpunkt 115 einen Wurzelknotenpunkt, einen Wurzelkomplex oder eine Wurzelsteuereinheit wie z. B. in einer PCIe-Zusammenschaltungshierarchie umfassen. Beispiele des Steuereinheitsknotenpunkts 115 umfassen einen Chipsatz, einen Speichersteuereinheitsknotenpunkt (MCH), eine Northbridge, einen Zusammenschaltungssteuereinheitsknotenpunkt (ICH), eine Southbridge und eine Wurzelsteuereinheit/einen Wurzelknotenpunkt. Häufig bezieht sich der Begriff Chipsatz auf zwei physikalisch separate Steuereinheitsknotenpunkte, z. B. einen Speichersteuereinheitsknotenpunkt (MCH), der mit einem Zusammenschaltungssteuereinheitsknotenpunkt (ICH) gekoppelt ist. Es ist zu beachten, dass aktuelle Systeme häufig den MCH umfassen, der mit dem Prozessor 105 integriert ist, während die Steuereinheit 115 mit E/A-Vorrichtungen kommunizieren soll, in einer ähnlichen Weise, wie nachstehend beschrieben. In einigen Ausführungsformen wird eine Peer-to-Peer-Leitweglenkung durch den Wurzelkomplex 115 optional unterstützt.
-
Hier ist der Steuereinheitsknotenpunkt 115 mit dem Schalter/der Brücke 120 durch eine serielle Verbindung 119 gekoppelt. Eingabe/Ausgabe-Module 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, können einen Schichtenprotokollstapel umfassen/implementieren, um eine Kommunikation zwischen dem Steuereinheitsnetzknoten 115 und dem Schalter 120 zu schaffen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Schalter 120 gekoppelt sein.
-
Der Schalter/die Brücke 120 leitet Pakete/Nachrichten von der Vorrichtung 125 stromaufwärts, d. h. eine Hierarchie aufwärts in Richtung eines Wurzelkomplexes, zum Steuereinheitsknotenpunkt 115 und stromabwärts, d. h. eine Hierarchie hinab weg von einer Wurzelsteuereinheit, vom Prozessor 105 oder Systemspeicher 110 weg zur Vorrichtung 125. Der Schalter 120 wird in einer Ausführungsform als logische Anordnung von mehreren virtuellen PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 umfasst eine beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, wie z. B. eine E/A-Vorrichtung, eine Netzschnittstellensteuereinheit (NIC), eine Zusatzkarte, einen Audioprozessor, einen Netzprozessor, ein Festplattenlaufwerk, eine Speichervorrichtung, einen CD/DVD-ROM, einen Monitor, ein Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Vorrichtung eines universellen seriellen Busses (USB), einen Scanner und andere Eingabe/Ausgabe-Vorrichtungen. Häufig wird in der PCIe-Fachsprache eine solche Vorrichtung als Endpunkt bezeichnet. Obwohl nicht spezifisch gezeigt, kann die Vorrichtung 125 eine Brücke (z. B. eine PCIe-zu-PCI/PCI-X-Brücke) umfassen, um veraltete oder andere Versionen von Vorrichtungen zu unterstützen oder Gebilde, die von solchen Vorrichtungen unterstützt werden, zusammenzuschalten.
-
Ein Graphikbeschleuniger 130 kann auch mit dem Steuereinheitsknotenpunkt 115 über eine serielle Verbindung 132 gekoppelt sein. In einer Ausführungsform ist der Graphikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Schalter 120 und folglich die E/A-Vorrichtung 125 ist dann mit dem ICH gekoppelt. E/A-Module 131 und 118 sollen auch einen Schichtenprotokollstapel implementieren, um zwischen dem Graphikbeschleuniger 130 und dem Steuereinheitsknotenpunkt 115 zu kommunizieren. Ähnlich zur obigen MCH-Erörterung kann eine Graphiksteuereinheit oder der Graphikbeschleuniger 130 selbst in den Prozessor 105 integriert sein.
-
Wenn man sich 2 zuwendet, ist eine Ausführungsform eines Schichtenprotokollstapels dargestellt. Der Schichtenprotokollstapel 200 kann irgendeine Form von Schichtenkommunikationsstapel umfassen, wie z. B. einen QPI-Stapel, einen PCIe-Stapel, einen Hochleistungs-Rechenzusammenschaltungsstapel (HPI-Stapel) der nächsten Generation oder einen anderen Schichtenstapel. In einer Ausfiihrungsform kann der Protokollstapel 200 eine Transaktionsschicht 205, eine Sicherungsschicht 210 und eine Bitübertragungsschicht 220 umfassen. Eine Schnittstelle wie z. B. die Schnittstellen 117, 118, 121, 122, 126 und 131 in 1 können als Kommunikationsprotokollstapel 200 dargestellt werden. Die Darstellung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle, die einen Protokollstapel implementiert/umfasst, bezeichnet werden.
-
Pakete können verwendet werden, um Informationen zwischen Komponenten zu übermitteln. Pakete können in der Transaktionsschicht 205 und der Datensicherungsschicht 210 gebildet werden, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu übertragen. Wenn die übertragenen Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die verwendet werden, um Pakete in diesen Schichten zu bearbeiten. An der empfangenden Seite findet der umgekehrte Prozess statt und Pakete werden von ihrer Darstellung der Bitübertragungsschicht 220 zur Darstellung der Datensicherungsschicht 210 transformiert und schließlich (für Transaktionsschichtpakete) in die Form, die von der Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann.
-
In einer Ausführungsform kann die Transaktionsschicht 205 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zusammenschaltungsarchitektur bereitstellen, wie z. B. eine Datensicherungsschicht 210 und eine Bitübertragungsschicht 220. In dieser Hinsicht kann eine Hauptverantwortung der Transaktionsschicht 205 die Zusammensetzung und Zerlegung von Paketen (d. h. Transaktionsschichtpaketen oder TLPs) umfassen. Die Translationsschicht 205 kann auch die Flussteuerung auf Punktebasis für TLPs managen. In einigen Implementierungen können geteilte Transaktionen verwendet werden, d. h. Transaktionen mit zeitlich getrennter Anforderung und Antwort, was ermöglicht, dass unter anderen Beispielen eine Verbindung anderen Verkehr trägt, während die Zielvorrichtung Daten für die Antwort sammelt.
-
Die Flusssteuerung auf Punktebasis kann verwendet werden, um virtuelle Kanäle und Netze unter Verwendung des Zusammenschaltungsgebildes zu verwirklichen. In einem Beispiel kann eine Vorrichtung eine anfängliche Menge an Punkten für jeden der Empfangspuffer in der Transaktionsschicht 205 ankündigen. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung wie z. B. der Steuereinheitsknotenpunkt 115 in 1 kann die Anzahl von Punkten, die von jedem TLP verbraucht werden, zählen. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Punktgrenze nicht überschreitet. Beim Empfangen einer Antwort wird eine Punktmenge wiederhergestellt. Ein Beispiel eines Vorteils eines solchen Punktschemas besteht unter anderen potentiellen Vorteilen darin, dass die Latenz der Punktrückgabe die Leistung nicht beeinflusst, vorausgesetzt, dass die Punktgrenze nicht angetroffen wird.
-
In einer Ausführungsform können vier Transaktionsadressenräume einen Konfigurationsadressenraum, einen Speicheradressenraum, einen Eingabe/Ausgabe-Adressenraum und einen Nachrichtenadressenraum umfassen. Speicherraumtransaktionen umfassen eine oder mehrere von Leseanforderungen und Schreibanforderungen, um Daten zu/von einer auf den Speicher abgebildeten Stelle zu übertragen. In einer Ausführungsform können Speicherraumtransaktionen zwei verschiedene Adressenformate verwenden, z. B. ein kurzes Adressenformat wie z. B. eine 32-Bit-Adresse oder ein langes Adressenformat wie z. B. eine 64-Bit-Adresse. Konfigurationsraumtransaktionen können verwendet werden, um auf den Konfigurationsraum von verschiedenen Vorrichtungen zuzugreifen, die mit der Zusammenschaltung verbunden sind. Transaktionen zum Konfigurationsraum können Leseanforderungen und Schreibanforderungen umfassen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) können auch definiert sein, um eine bandinterne Kommunikation zwischen Zusammenschaltungsagenten zu unterstützen. Daher kann in einer Beispielausführungsform die Transaktionsschicht 205 Paketkopf/Nutzinformationen 206 zusammensetzen.
-
Mit schnellem Bezug auf 3 wird eine Beispielausführungsform eines Transaktionsschicht-Paketdeskriptors dargestellt. In einer Ausführungsform kann der Transaktionsdeskriptor 300 ein Mechanismus zum Übertragen von Transaktionsinformationen sein. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 300 die Identifikation von Transaktionen in einem System. Andere potentielle Verwendungen umfassen die Verfolgung von Modifikationen einer Vorgabetransaktionsordnung und Zuordnung der Transaktion zu Kanälen. Der Transaktionsdeskriptor 300 kann beispielsweise ein Feld 302 eines globalen Identifizierers, ein Attributfeld 304 und ein Kanalidentifiziererfeld 306 umfassen. Im dargestellten Beispiel ist das Feld 302 des globalen Identifizierers mit einem Feld 308 eines lokalen Transaktionsidentifizierers und einem Quellenidentifiziererfeld 310 dargestellt. In einer Ausführungsform ist der globale Transaktionsidentifizierer 302 für alle ausstehenden Anforderungen eindeutig.
-
Gemäß einer Implementierung ist das Feld 308 des lokalen Transaktionsidentifizierers ein Feld, das durch einen Anforderungsagenten erzeugt wird, und kann für alle ausstehenden Anforderungen eindeutig sein, die eine Vollendung für diesen Anforderungsagenten erfordern. In diesem Beispiel identifiziert der Quellenidentifizierer 310 ferner eindeutig den Anforderungsagenten innerhalb einer Zusammenschaltungshierarchie. Folglich schafft zusammen mit der Quellen-ID 310 das Feld des lokalen Transaktionsidentifizierers 308 eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne.
-
Das Attributfeld 304 legt Eigenschaften und Beziehungen der Transaktion fest. In dieser Hinsicht wird das Attributfeld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die die Modifikation der Vorgabehandhabung von Transaktionen ermöglichen. In einer Ausführungsform umfasst das Attributfeld 304 ein Prioritätsfeld 312, ein reserviertes Feld 314, ein Ordnungsfeld 316 und ein Keine-Spionage-Feld 318. Hier kann das Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 314 wird für die Zukunft oder für die vom Verkäufer definierte Verwendung reserviert gelassen. Mögliche Verwendungsmodelle unter Verwendung von Prioritäts- und Sicherheitsattributen können unter Verwendung des reservierten Attributfelds implementiert werden.
-
In diesem Beispiel wird das Ordnungsattributfeld 316 verwendet, um optionale Informationen zu liefern, die den Typ von Ordnung übermitteln, der Vorgabeordnungsregeln modifizieren kann. Gemäß einer Beispielimplementierung bezeichnet ein Ordnungsattribut von „0“, dass Vorgabeordnungsregeln anzuwenden sind, wobei ein Ordnungsattribut von „1“ eine gelockerte Ordnung bezeichnet, wobei Schreibvorgänge Schreibvorgänge in derselben Richtung überholen können und Lesevollendungen Schreibvorgänge in derselben Richtung überholen können. Das Spionageattributfeld 318 wird verwendet, um festzustellen, ob Transaktionen abgehört werden. Wie gezeigt, identifiziert das Kanal-ID-Feld 306 einen Kanal, dem eine Transaktion zugeordnet ist.
-
Mit Rückkehr zur Erörterung von 2 kann eine Sicherungsschicht 210, die auch als Datensicherungsschicht 210 bezeichnet wird, als Zwischenstufe zwischen der Transaktionsschicht 205 und der Bitübertragungsschicht 220 wirken. In einer Ausführungsform schafft eine Verantwortung der Datensicherungsschicht 210 einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten auf einer Verbindung. Eine Seite der Datensicherungsschicht 210 nimmt TLPs an, die durch die Transaktionsschicht 205 zusammengesetzt werden, wendet einen Paketsequenzidentifizierer 211 an, d. h. eine Identifikationsnummer oder Paketnummer, berechnet und wendet einen Fehlerdetektionscode an, d. h. CRC 212, und übermittelt die modifizierten TLPs zur Bitübertragungsschicht 220 für die Übertragung über eine physikalische zu einer externen Vorrichtung.
-
In einem Beispiel umfasst die Bitübertragungsschicht 220 einen logischen Unterblock 221 und einen elektrischen Unterblock 222, um physikalisch ein Paket zu einer externen Vorrichtung zu übertragen. Hier ist der logische Unterblock 221 für die „digitalen“ Funktionen der Bitübertragungsschicht 221 verantwortlich. In dieser Hinsicht kann der logische Unterblock einen Sendeabschnitt, um abgehende Informationen für die Sendung durch den physikalischen Unterblock 222 vorzubereiten, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie zur Sicherungsschicht 210 übergeben werden, umfassen.
-
Der physikalische Block 222 umfasst einen Sender und einen Empfänger. Der Sender wird vom logischen Unterblock 221 mit Symbolen beliefert, die der Sender serialisiert und zu einer externen Vorrichtung weitersendet. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung beliefert und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird entserialisiert und zum logischen Unterblock 221 geliefert. In einer Beispielausführungsform wird ein 8b/10b-Übertragungscode verwendet, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu umrahmen. Außerdem liefert der Empfänger in einem Beispiel auch einen Symboltakt, der vom ankommenden seriellen Strom wiederhergestellt wird.
-
Wie vorstehend angegeben, ist, obwohl die Transaktionsschicht 205, die Sicherungsschicht 210 und die Bitübertragungsschicht 220 in Bezug auf eine spezifische Ausführungsform eines Protokollstapels (wie z. B. eines PCIe-Protokollstapels) erörtert sind, ein Schichtenprotokollstapel nicht so begrenzt. Tatsächlich kann irgendein Schichtenprotokoll enthalten sein/implementiert werden und hier erörterte Merkmale übernehmen. Als Beispiel kann ein Port/eine Schnittstelle, die als Schichtenprotokoll dargestellt ist, umfassen: (1) eine erste Schicht zum Zusammensetzen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Sicherungsschicht; und eine dritte Schicht zum Übertragen der Pakete, d. h. eine Bitübertragungsschicht. Als spezifisches Beispiel wird ein Hochleistungs-Zusammenschaltungs-Schichtenprotokoll, wie hier beschrieben, verwendet.
-
Mit Bezug als nächstes auf 4 wird eine Beispielausführungsform eines seriellen Punkt-zu-Punkt-Gebildes erläutert. Eine serielle Punkt-zu-Punkt-Verbindung kann irgendeinen Übertragungspfad zum Übertragen von seriellen Daten umfassen. In der gezeigten Ausführungsform kann eine Verbindung zwei differentiell angesteuerte Signalpaare mit niedriger Spannung umfassen: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Folglich umfasst die Vorrichtung 405 eine Sendelogik 406, um Daten zur Vorrichtung 410 zu senden, und eine Empfangslogik 407, um Daten von der Vorrichtung 410 zu empfangen. Mit anderen Worten, zwei Sendepfade, d. h. Pfade 416 und 417, und zwei Empfangspfade, d. h. Pfade 418 und 419, sind in einigen Implementierungen einer Verbindung enthalten.
-
Ein Übertragungspfad bezieht sich auf irgendeinen Pfad zum Übertragen von Daten, wie z. B. eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarotkommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Anbindung zwischen zwei Vorrichtungen wie z. B. der Vorrichtung 405 und der Vorrichtung 410 wird als Verbindung wie z. B. Verbindung 415 bezeichnet. Eine Verbindung kann eine Bahn unterstützen - wobei jede Bahn einen Satz von differentiellen Signalpaaren darstellt (ein Paar für das Senden, ein Paar für den Empfang). Um die Bandbreite zu skalieren, kann eine Verbindung mehrere Bahnen vereinigen, die mit xN bezeichnet sind, wobei N irgendeine unterstützte Verbindungsbreite wie z. B. 1, 2, 4, 8, 12, 16, 32, 64 oder breiter ist.
-
Ein differentielles Paar kann sich auf zwei Übertragungspfade beziehen, wie z. B. Leitungen 416 und 417, um differentielle Signale zu übertragen. Als Beispiel, wenn die Leitung 416 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. eine ansteigende Flanke, steuert die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel, d. h. eine fallende Flanke. Differentielle Signale demonstrieren potentiell bessere elektrische Eigenschaften wie z. B. eine bessere Signalintegrität, d. h. Kreuzkopplung, Spannungsüberschwingen/-unterschwingen, Rufzeichen unter anderen Beispielvorteilen. Dies ermöglicht ein besseres Zeitsteuerfenster, was schnellere Übertragungsfrequenzen ermöglicht.
-
In einer Ausführungsform wird eine neue Hochleistungs-Zusammenschaltung (HPI) geschaffen. HPI kann eine Cache-kohärente Zusammenschaltung auf Verbindungsbasis der nächsten Generation umfassen. Als ein Beispiel kann HPI in Hochleistungs-Rechenplattformen wie z. B. Arbeitsplatzrechnern oder Servern, einschließlich in Systemen, in denen PCIe oder ein anderes Zusammenschaltungsprotokoll typischerweise verwendet wird, um Prozessoren, Beschleuniger E/A-Vorrichtungen und dergleichen zu verbinden, verwendet werden. HPI ist jedoch nicht so begrenzt. Stattdessen kann HPI in irgendeinem der hier beschriebenen Systeme oder Plattformen verwendet werden. Ferner können die entwickelten individuellen Ideen auf andere Zusammenschaltungen und Plattformen wie z. B. PCIe, MIPI, QPI usw. angewendet werden.
-
Um mehrere Vorrichtungen zu unterstützen, kann HPI in einer Beispielimplementierung eine Befehlssatzarchitektur-Agnostik (ISA-Agnostik) umfassen (d. h. HPI kann in mehreren verschiedenen Vorrichtungen implementiert werden). In einem anderen Szenario kann HPI auch verwendet werden, um Hochleistungs-E/A-Vorrichtungen zu verbinden, nicht nur Prozessoren oder Beschleuniger. Eine Hochleistungs-PCIe-Vorrichtung kann beispielsweise mit HPI durch eine geeignete Umsetzungsbrücke (d. h. HPI zu PCIe) gekoppelt werden. Überdies können die HPI-Verbindungen von vielen Vorrichtungen auf HPI-Basis wie z. B. Prozessoren in verschiedenen Weisen verwendet werden (z. B. Sterne, Ringe, Netze usw.). 5 stellt Beispielimplementierungen von mehreren potentiellen Konfigurationen mit mehreren Sockeln dar. Eine Konfiguration 505 mit zwei Sockeln, wie dargestellt, kann zwei HPI-Verbindungen umfassen; in anderen Implementierungen kann jedoch eine HPI-Verbindung verwendet werden. Für größere Topologien kann irgendeine Konfiguration verwendet werden, solange ein Identifizierer (ID) zuweisbar ist und unter anderen zusätzlichen oder Ersatzmerkmalen eine gewisse Form von virtuellem Pfad besteht. Wie gezeigt, weist in einem Beispiel eine Konfiguration 510 mit vier Sockeln eine HPI-Verbindung von jedem Prozessor zu einem anderen auf. Aber in der Implementierung mit acht Sockeln, die in der Konfiguration 515 gezeigt ist, ist nicht jeder Sockel direkt mit jedem anderen über eine HPI-Verbindung verbunden. Wenn jedoch ein virtueller Pfad oder Kanal zwischen den Prozessoren existiert, wird die Konfiguration unterstützt. Ein Bereich von unterstützten Prozessoren umfasst 2-32 in einer nativen Domäne. Hohe Zahlen von Prozessoren können durch die Verwendung von mehreren Domänen oder anderen Zusammenschaltungen zwischen Knotensteuereinheiten unter anderen Beispielen erreicht werden.
-
Die HPI-Architektur umfasst eine Definition einer Schichtenprotokollarchitektur, einschließlich in einigen Beispielen Protokollschichten (kohärent, nicht kohärent und wahlweise andere Protokolle auf Speicherbasis), einer Leitweglenkungsschicht, einer Sicherungsschicht und einer Bitübertragungsschicht. Ferner kann HPI weiter Verbesserungen in Bezug auf Leistungsmanager (wie z. B. Leistungssteuereinheiten (PCUs)) Konstruktion für Test und Fehlersuche (DFT), Fehlerhandhabung, Register, Sicherheit unter anderen Beispielen umfassen. 5 stellt eine Ausführungsform eines Beispiel-HPI-Schichtenprotokollstapels dar. In einigen Implementierungen können zumindest einige der in 5 dargestellten Schichten optional sein. Jede Schicht behandelt ihre eigene Ebene von Granularität oder Informationsmenge (die Protokollschicht 605a,b mit Paketen 630, die Sicherungsschicht 610a,b mit Flits 635 und die Bitübertragungsschicht 605a,b mit Phits 640). Es ist zu beachten, dass ein Paket in einigen Ausführungsformen teilweise Flits, ein einzelnes Flit oder mehrere Flits auf der Basis der Implementierung umfassen kann.
-
Als erstes Beispiel umfasst eine Breite eines Phits 640 eine 1-zu-1-Abbildung der Verbindungsbreite von Bits (z. B. umfasst eine 20 Bit-Verbindungsbreite ein Phit von 20 Bits usw.). Flits können eine größere Größe aufweisen, wie z. B. 184, 192 oder 200 Bits. Es ist zu beachten, dass, wenn das Phit 640 20 Bits breit ist und die Größe des Flits 635 184 Bits ist, dann es eine Bruchzahl von Phits 640 erfordert, um ein Flit 635 zu übertragen (z. B. 9,2 Phits bei 20 Bits zum Übertragen eines Flits 635 mit 184 Bits oder 9,6 bei 20 Bits, um ein Flit mit 192 Bits zu übertragen, unter anderen Beispielen). Es ist zu beachten, dass Breiten der grundlegenden Verbindung auf der Bitübertragungsschicht variieren können. Die Anzahl von Bahnen pro Richtung kann beispielsweise 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 usw. umfassen. In einer Ausführungsform ist die Sicherungsschicht 610a,b in der Lage, mehrere Teile von verschiedenen Transaktionen in einem einzelnen Flit einzubetten und ein oder mehrere Köpfe (z. B. 1, 2, 3, 4) können in das Flit eingebettet sein. In einem Beispiel teilt HPI die Köpfe in entsprechende Schlitze auf, um mehrere Nachrichten im Flit zu ermöglichen, die für verschiedene Knoten bestimmt sind.
-
Die Bitübertragungsschicht 605a,b kann in einer Ausführungsform für die schnelle Übertragung von Informationen auf dem physikalischen Medium (elektrisch oder optisch usw.) verantwortlich sein. Die physikalische Verbindung kann Punkt-zu-Punkt zwischen zwei Sicherungsschichtentitäten wie z. B. Schicht 605a und 605b sein. Die Sicherungsschicht 610a,b kann die Bitübertragungsschicht 605a,b von den oberen Schichten abstrahieren und schafft die Fähigkeit, Daten (sowie Anforderungen) zuverlässig zu übertragen und die Flusssteuerung zwischen zwei direkt verbundenen Entitäten zu managen. Die Sicherungsschicht kann auch für die Virtualisierung des physikalischen Kanals in mehrere virtuelle Kanäle und Nachrichtenklassen verantwortlich sein. Die Protokollschicht 620a,b verlässt sich auf die Sicherungsschicht 610a,b, um Protokollnachrichten in die geeigneten Nachrichtenklassen und virtuellen Kanäle abzubilden, bevor sie zur Bitübertragungsschicht 605a,b zur Übertragung über die physikalischen Verbindungen übergeben werden. Die Sicherungsschicht 610a,b kann mehrere Nachrichten unterstützen, wie z. B. Anforderung, Spionage, Antwort, Zurückschreiben, nicht kohärente Daten unter anderen Beispielen.
-
Die Bitübertragungsschicht 605a,b (oder PHY) von HPI kann über der elektrischen Schicht (d. h. elektrischen Leitern, die zwei Komponenten verbinden) und unter der Sicherungsschicht 610a,b implementiert werden, wie in 6 dargestellt. Die Bitübertragungsschicht und die entsprechende Logik kann sich an jedem Agenten befinden und verbindet die Sicherungsschichten an zwei Agenten (A und B), die voneinander getrennt sind (z. B. an Vorrichtungen auf beiden Seiten einer Verbindung). Die lokalen und entfernten elektrischen Schichten sind durch physikalische Medien (z. B. Drähte, Leiter, optisch usw.) verbunden. Die Bitübertragungsschicht 605a,b weist in einer Ausführungsform zwei Hauptphasen, Initialisierung und Betrieb, auf. Während der Initialisierung ist die Verknüpfung für die Sicherungsschicht opak und die Signalgebung kann eine Kombination von zeitlich gesteuerten Zuständen und Quittungsaustauschereignissen beinhalten. Während des Betriebs ist die Verknüpfung für die Sicherungsschicht transparent und die Signalisierung geschieht mit einer Geschwindigkeit, wobei alle Bahnen zusammen als einzige Verbindung arbeiten. Während der Betriebsphase transportiert die Bitübertragungsschicht Flits vom Agenten A zum Agenten B und vom Agenten B zum Agenten A. Die Verknüpfung wird auch als Verbindung bezeichnet und abstrahiert einige physikalische Aspekte, einschließlich Medien, Breite und Geschwindigkeit von den Sicherungsschichten, während Flits und Steuerung/Status der aktuellen Konfiguration (z. B. Breite) mit der Sicherungsschicht ausgetauscht werden. Die Initialisierungsphase umfasst nebensächliche Phasen, z. B. Abfrage, Konfiguration. Die Betriebsphase umfasst auch nebensächliche Phasen (z. B. Verbindungsleistungsmanagementzustände).
-
In einer Ausführungsform kann die Sicherungsschicht 610a,b implementiert werden, um eine zuverlässige Datenübertragung zwischen zwei Protokoll- oder Leitweglenkungsentitäten zu schaffen. Die Sicherungsschicht kann die Bitübertragungsschicht 605a,b von der Protokollschicht 620a,b abstrahieren und kann für die Flussteuerung zwischen zwei Protokollagenten (A, B) verantwortlich sein und virtuelle Kanaldienste für die Protokollschicht (Nachrichtenklassen) und Leitweglenkungsschicht (virtuelle Netze) bereitstellen. Die Schnittstelle zwischen der Protokollschicht 620a,b und der Sicherungsschicht 610a,b kann typischerweise auf der Paketebene liegen. In einer Ausführungsform wird die kleinste Übertragungseinheit auf der Sicherungsschicht als Flit bezeichnet, das eine festgelegte Anzahl von Bits ist, wie z. B. 192 Bits, oder irgendeine andere Bezeichnung. Die Sicherungsschicht 610a,b beruht auf der Bitübertragungsschicht 605a,b, um die Übertragungseinheit (Phit) der Bitübertragungsschicht 605a,b in die Übertragungseinheit (Flit) der Sicherungsschicht 610a,b einzurahmen. Außerdem kann die Sicherungsschicht 610a,b logisch in zwei Teile unterteilt werden, einen Sender und einen Empfänger. Ein Sender/Empfänger-Paar an einer Entität kann mit einem Empfänger/Sender-Paar an einer anderen Entität verbunden sein. Die Flusssteuerung wird häufig sowohl auf einer Flit- als auch Paketbasis durchgeführt. Fehlerdetektion und Fehlerkorrektur werden auch potentiell auf einer Flitebenenbasis durchgeführt.
-
In einer Ausführungsform kann die Leitweglenkungsschicht 615a,b ein flexibles und verteiltes Verfahren bereitstellen, um HPI-Transaktionen von einer Quelle zu einem Ziel zu leiten. Das Schema ist flexibel, da Leitweglenkungsalgorithmen für mehrere Topologien durch programmierbare Leitweglenkungstabellen an jedem Router festgelegt werden können (die Programmierung in einer Ausführungsform wird durch Firmware, Software oder eine Kombination davon durchgeführt). Die Leitweglenkungsfunktionalität kann verteilt sein; die Leitweglenkung kann durch eine Reihe von Leitweglenkungsschritten durchgeführt werden, wobei jeder Leitweglenkungsschritt durch einen Nachschlag einer Tabelle entweder an den Quellen-, Zwischen- oder Zielroutern definiert ist. Das Nachschlagen an einer Quelle kann verwendet werden, um ein HPI-Paket in das HPI-Gebilde einzuleiten. Das Nachschlagen an einem Zwischenrouter kann verwendet werden, um ein HPI-Paket von einem Eingangsport zu einem Ausgangsport zu leiten. Das Nachschlagen an einem Zielport kann verwendet werden, um auf den Ziel-HPI-Protokollagenten abzuzielen. Es ist zu beachten, dass die Leitweglenkungsschicht in einigen Implementierungen dünn sein kann, da die Leitweglenkungstabellen und daher die Leitweglenkungsalgorithmen nicht speziell durch die Spezifikation definiert sind. Dies ermöglicht Flexibilität und dass eine Vielfalt von Verwendungsmodellen, einschließlich flexibler Plattformarchitekturtopologien, durch die Systemimplementierung definiert wird. Die Leitweglenkungsschicht 615a,b beruht auf der Sicherungsschicht 610a,b zum Schaffen der Verwendung von bis zu drei (oder mehr) virtuellen Netzen (VNs) - in einem Beispiel zwei blockierungsfreie VNs, VN0 und VN1 mit mehreren Nachrichtenklassen, die in jedem virtuellen Netz definiert sind. Ein gemeinsam genutztes adaptives virtuelles Netz (VNA) kann in der Sicherungsschicht definiert sein, aber dieses adaptive Netz kann nicht direkt in Leitweglenkungskonzepten freigelegt sein, da jede Nachrichtenklasse und jedes virtuelles Netz zweckgebundene Ressourcen und einen garantierten Vorwärtsfortschritt unter anderen Merkmalen und Beispielen aufweisen kann.
-
In einigen Implementierungen kann HPI einen eingebetteten Takt verwenden. Ein Taktsignal kann in Daten eingebettet werden, die unter Verwendung der Zusammenschaltung übertragen werden. Mit dem in die Daten eingebetteten Taktsignal können unterschiedliche und zweckgebundene Taktbahnen weggelassen werden. Dies kann beispielsweise nützlich sein, da es ermöglichen kann, dass mehr Anschlussstifte einer Vorrichtung für die Datenübertragung zweckgebunden werden, insbesondere in Systemen, in denen Raum für Anschlussstifte heiß begehrt ist.
-
Eine Verbindung kann zwischen zwei Agenten auf beiden Seiten einer Zusammenschaltung hergestellt werden. Ein Agent, der Daten sendet, kann ein lokaler Agent sein, und der Agent, der die Daten empfängt, kann ein entfernter Agent sein. Zustandsmaschinen können von beiden Agenten verwendet werden, um verschiedene Aspekte der Verbindung zu managen. In einer Ausführungsform kann der Bitübertragungsschicht-Datenpfad Flits von der Sicherungsschicht zum elektrischen Vorderende übertragen. Der Steuerpfad umfasst in einer Implementierung eine Zustandsmaschine (auch als Verbindungstrainings-Zustandsmaschine oder dergleichen bezeichnet). Die Handlungen und Austritte aus Zuständen der Zustandsmaschine hängen von internen Signalen, Zeitgebern, externen Signalen oder anderen Informationen ab. Tatsächlich können einige der Zustände wie z. B. einige Initialisierungszustände Zeitgeber aufweisen, um einen Zeitüberschreitungswert zu liefern, um einen Zustand zu verlassen. Es ist zu beachten, dass sich eine Detektion in einigen Ausführungsformen auf das Detektieren eines Ereignisses auf beiden Zweigen einer Bahn bezieht; aber nicht notwendigerweise gleichzeitig. In anderen Ausführungsformen bezieht sich jedoch eine Detektion auf die Detektion eines Ereignisses durch einen Referenzagenten. Entprellen bezieht sich als ein Beispiel auf die aufrechterhaltene Aktivierung eines Signals. In einer Ausführungsform unterstützt HPI den Betrieb im Fall von nicht funktionierenden Bahnen. Hier können Bahnen in spezifischen Zuständen fallen gelassen werden.
-
Zustände, die in der Zustandsmaschine definiert werden, können Rücksetzzustände, Initialisierungszustände und Betriebszustände unter anderen Kategorien und Unterkategorien umfassen. In einem Beispiel können einige Initialisierungszustände einen sekundären Zeitgeber aufweisen, der verwendet wird, um den Zustand bei einer Zeitüberschreitung zu verlassen (im Wesentlichen ein Abbruch aufgrund eines Misslingens, im Zustand Fortschritt zu machen). Ein Abbruch kann die Aktualisierung von Registern wie z. B. eines Statusregisters umfassen. Einige Zustände können auch (einen) primäre(n) Zeitgeber aufweisen, die verwendet werden, um die primären Funktionen im Zustand zeitlich zu steuern. Andere Zustände können definiert sein, so dass interne oder externe Signale (wie z. B. Quittungsaustauschprotokolle) den Übergang vom Zustand in einen anderen Zustand unter anderen Beispielen treiben.
-
Eine Zustandsmaschine kann auch die Fehlersuche durch einen einzigen Schritt, Einfrieren beim Initialisierungsabbruch und die Verwendung von Testern unterstützen. Hier können Zustandsaustritte verschoben/gehalten werden, bis die Fehlersuchsoftware bereit ist. In einem gewissen Fall kann der Austritt bis zur sekundären Zeitüberschreitung verschoben/gehalten werden. Handlungen und Austritte können in einer Ausführungsform auf dem Austausch von Anlaufsequenzen basieren. In einer Ausführungsform soll die Verbindungszustandsmaschine im lokalen Agententaktbereich laufen und der Übergang von einem Zustand zum nächsten soll mit einer Senderanlaufsequenzgrenze zusammenfallen. Statusregister können verwendet werden, um den aktuellen Zustand widerzuspiegeln.
-
7 stellt eine Darstellung zumindest eines Abschnitts einer Zustandsmaschine dar, die von Agenten in einer Beispielimplementierung von HPI verwendet wird. Es sollte erkannt werden, dass die in der Zustandstabelle von 7 enthaltenen Zustände eine nicht erschöpfende Auflistung von möglichen Zuständen umfassen. Einige Übergänge sind beispielsweise weggelassen, um das Diagramm zu vereinfachen. Einige Zustände können auch kombiniert, aufgeteilt oder weggelassen werden, während andere hinzugefügt werden könnten. Solche Zustände können umfassen:
- Ereignisrücksetzzustand: in diesen wird bei einem warmen oder kalten Rücksetzereignis eingetreten. Stellt Vorgabewerte wieder her. Initialisieren von Zählern (z. B. Synchronzählern). Kann in einen anderen Zustand austreten, wie z. B. einen anderen Rücksetzzustand.
-
Zeitlich gesteuerter Rücksetzzustand: zeitlich gesteuerter Zustand für bandinterne Rücksetzung. Kann einen vordefinierten elektrischen geordneten Satz (EOS) steuern, so dass entfernte Empfänger in der Lage sind, den EOS zu detektieren und ebenso in das zeitlich gesteuerte Rücksetzen einzutreten. Der Empfänger weist Bahnen auf, die elektrische Einstellungen halten. Kann zu einem Rücksetzzustand zum Kalibrieren des Agenten austreten.
-
Kalibrierungsrücksetzzustand: Kalibrierung ohne Signalisierung auf der Bahn (z. B. Empfängerkalibrierungszustand) oder Ausschalten von Treibern. Kann eine vorbestimmte Menge an Zeit im Zustand auf der Basis eines Zeitgebers sein. Kann eine Betriebsgeschwindigkeit festlegen. Kann als Wartezustand wirken, wenn ein Port nicht freigegeben ist. Kann minimale Verweilzeit umfassen. Empfängerkonditionierung oder Empfängerstaffelung kann auf der Basis der Konstruktion stattfinden. Kann in einen Empfängerdetektionszustand nach einer Zeitüberschreitung und/oder der Vollendung der Kalibrierung austreten.
-
Empfängerdetektionszustand: Detektieren der Anwesenheit eines Empfängers auf (einer) Bahn(en). Kann nach Empfängerabschluss (z. B. Empfänger-Pulldown-Einfügung) suchen. Kann in den Kalibrierungsrücksetzzustand austreten, wenn ein festgelegter Wert gesetzt wird oder wenn ein anderer festgelegter Wert nicht gesetzt wird. Kann in den Senderkalibrierungszustand austreten, wenn ein Empfänger detektiert wird oder eine Zeitüberschreitung erreicht wird.
-
Senderkalibrierungszustand: für Senderkalibrierungen. Kann ein zeitlich gesteuerter Zustand sein, der für Senderkalibrierungen zugewiesen ist. Kann Signalisierung auf einer Bahn umfassen. Kann kontinuierlich einen EOS treiben, wie z. B. einen elektrisch inaktiven geordneten Austrittssatz (EIEOS). Kann in den Kompatibilitätszustand austreten, wenn eine Kalibrierung durchgeführt wird, oder beim Ablauf eines Zeitgebers. Kann in den Senderdetektionszustand austreten, wenn ein Zähler abgelaufen ist oder eine sekundäre Zeitüberschreitung aufgetreten ist.
-
Senderdetektionszustand: qualifiziert gültige Signalisierung. Kann ein Quittungsaustauschzustand sein, wobei ein Agent Handlungen vollendet und in einen nächsten Zustand austritt auf der Basis von entfernter Agentensignalgebung. Der Empfänger kann eine gültige Signalgebung vom Sender qualifizieren. Der Empfänger sucht in einer Ausführungsform nach einer wachen Detektion und sucht bei Entprellen auf einer oder mehreren Bahnen auf den anderen Bahnen danach. Der Sender treibt ein Detektionssignal. Kann in einen Abfragezustand in Reaktion darauf austreten, dass das Entprellen für alle Bahnen vollendet wird, und/oder eine Zeitüberschreitung oder wenn Entprellen auf allen Bahnen nicht vollständig ist und eine Zeitüberschreitung besteht. Hier können eine oder mehrere Überwachungsbahnen wach gehalten werden, um ein waches Signal zu entprellen. Und wenn entprellt, dann werden die anderen Bahnen potentiell entprellt. Dies kann Leistungseinsparungen in leistungsarmen Zuständen ermöglichen.
-
Abfragezustand: Der Empfänger passt einen Driftpuffer an, initialisiert ihn und kontrolliert Bits/Bytes (z. B. identifiziert er Symbolgrenzen). Bahnen können entzerrt werden. Ein entfernter Agent kann einen Austritt in einen nächsten Zustand (z. B. einen Verbindungsbreitenzustand) in Reaktion auf eine Bestätigungsnachricht verursachen. Die Abfrage kann zusätzlich eine Anlaufsequenzverriegelung durch Verriegeln auf einen EOS und einen Anlaufsequenzkopf umfassen. Die Verzerrung von Bahn zu Bahn am entfernten Sender kann bei einer ersten Länge für oberste Geschwindigkeit und einer zweiten Länge für langsame Geschwindigkeit gedeckelt werden. Die Entzerrung kann in einem langsamen Modus sowie einem Betriebsmodus durchgeführt werden. Der Empfänger kann ein spezifisches Maximum aufweisen, um eine Verzerrung von Bahn zu Bahn zu entzerren, wie z. B. 8, 16 oder 32 Intervalle von Verzerrung. Empfängerhandlungen können Latenzfixierung umfassen. Empfängerhandlungen können in einer Ausführungsform bei erfolgreicher Entzerrung einer gültigen Bahnabbildung vollendet werden. Ein erfolgreicher Quittungsaustausch kann in einem Beispiel erreicht werden, wenn eine Anzahl von aufeinander folgenden Anlaufsequenzköpfen mit Bestätigungen empfangen werden und eine Anzahl von Anlaufsequenzen mit einer Bestätigung übertragen werden, nachdem der Empfänger seine Handlungen vollendet hat.
-
Verbindungsbreitenzustand: Der Agent übermittelt die endgültige Bahnabbildung zum entfernten Sender. Der Empfänger empfängt die Informationen und decodiert sie. Der Empfänger kann eine konfigurierte Bahnabbildung in einer Struktur nach einem Prüfpunkt eines vorherigen Bahnabbildungswerts in einer zweiten Struktur aufzeichnen. Der Empfänger kann auch mit einer Bestätigung („ACK“) antworten. Kann ein bandinternes Rücksetzen einleiten. Als ein Beispiel ein erster Zustand zum Einleiten eines bandinternen Rücksetzens. In einer Ausführungsform wird ein Austritt in einen nächsten Zustand, wie z. B. einen Flit-Konfigurationszustand, in Reaktion auf die ACK durchgeführt. Vor dem Eintritt in einen leistungsarmen Zustand kann auch ein Rücksetzsignal erzeugt werden, wenn die Frequenz eines wachen Detektionssignalsauftretens unter einen festgelegten Wert fällt (z. B. 1 jede Anzahl von Einheitsintervallen (UIs) wie z. B. 4K UI). Der Empfänger kann aktuelle und vorherige Bahnabbildungen halten. Der Sender kann verschiedene Gruppen von Bahnen auf der Basis von Anlaufsequenzen mit verschiedenen Werten verwenden. Die Bahnabbildung kann einige Statusregister in einigen Ausführungsformen nicht modifizieren.
-
Flitlock-Konfigurationszustand: in diesen wird von einem Sender eingetreten, aber der Zustand wird als verlassen betrachtet (d. h. sekundärer Zeitüberschreitungsstreit), wenn sowohl der Sender als auch der Empfänger in einen Blockierungsverbindungszustand oder einen anderen Verbindungszustand ausgetreten sind. Der Senderaustritt in einen Verbindungszustand umfasst in einer Ausführungsform einen Start einer Datensequenz (SDS) und einer Anlaufsequenz- (TS) Grenze nach dem Empfangen eines planetaren Ausrichtungssignals. Hier kann der Empfängeraustritt auf dem Empfangen eines SDS von einem entfernten Sender basieren. Dieser Zustand kann eine Brücke von einem Agenten zum Verbindungszustand sein. Der Empfänger identifiziert den SDS. Der Empfänger kann in einen Blockierungsverbindungszustand (BLS) (oder ein Steuerfenster) austreten, wenn der SDS empfangen wird, nachdem ein Entwürfler initialisiert ist. Wenn eine Zeitüberschreitung auftritt, kann der Austritt in den Rücksetzzustand sein. Der Sender steuert Bahnen mit einem Konfigurationssignal an. Der Senderaustritt kann in den Rücksetz-, BLS- oder andere Zustände auf der Basis der Bedingungen oder Zeitüberschreitungen sein.
-
Übertragungsverbindungszustand: Ein Verbindungszustand. Flits werden zu einem entfernten Agenten gesendet. In diesen kann von einem Blockierungsverbindungszustand eingetreten werden und zu einem Blockierungsverbindungszustand bei einem Ereignis zurückkehren wie z. B. eine Zeitüberschreitung. Der Sender sendet Flits. Der Empfänger empfängt Flits. Kann auch in einen leistungsarmen Verbindungszustand austreten. In einigen Implementierungen kann der Übertragungsverbindungszustand (TLS) als L0-Zustand bezeichnet werden.
-
Blockierungsverbindungszustand: ein Verbindungszustand. Sender und Empfänger arbeiten in einer vereinheitlichten Weise. Kann ein zeitlich gesteuerter Zustand sein, während dessen die Sicherungsschicht-Flits ferngehalten werden, während Bitübertragungsschicht-Informationen zum entfernten Agenten übermittelt werden. Kann in einen leistungsarmen Verbindungszustand (oder anderen Verbindungszustand auf der Basis der Konstruktion) austreten. Ein Blockierungsverbindungszustand (BLS) tritt in einer Ausführungsform periodisch auf. Die Periode wird als BLS-Intervall bezeichnet und kann zeitlich gesteuert werden ebenso wie sie sich zwischen langsamer Geschwindigkeit und Betriebsgeschwindigkeit unterscheiden kann. Es ist zu beachten, dass die Sicherungsschicht periodisch vom Senden von Flits blockiert werden kann, so dass eine Bitübertragungsschicht-Steuersequenz einer Länge gesendet werden kann, wie z. B. während eines Übertragungsverbindungszustandes oder eines Teilbreiten-Übertragungsverbindungszustandes. In einigen Implementierungen kann ein Blockierungsverbindungszustand (BLS) als L0-Steuer- oder L0c-Zustand bezeichnet werden.
-
Teilbreiten-Übertragungsverbindungszustand: Verbindungszustand. Kann Leistung sparen durch Eintritt in einen Teilbreitenzustand. In einer Ausführungsform bezieht sich eine asymmetrische Teilbreite auf jede Richtung einer Verbindung mit zwei Richtungen mit verschiedenen Breiten, die in einigen Konstruktionen unterstützt werden können. Ein Beispiel eines Initiators wie z. B. eines Senders, der eine Teilbreitenangabe sendet, um in einen Teilbreiten-Übertragungsverbindungszustand einzutreten, ist in dem Beispiel von 9 gezeigt. Hier wird eine Teilbreitenangabe gesendet, während auf einer ersten Verbindung mit einer ersten Breite übertragen wird, um die Verbindung zum Übertragen mit einer zweiten, neuen Breite zu überführen. Eine Fehlanpassung kann sich bei einer Rücksetzung ergeben. Es ist zu beachten, dass Geschwindigkeiten nicht geändert werden können, aber die Breite. Daher werden Flits potentiell mit verschiedenen Breiten gesendet. Kann zu einem Übertragungsverbindungszustand logisch ähnlich sein; da eine kleinere Breite besteht, kann es jedoch länger dauern, um Flits zu übertragen. Kann in andere Verbindungszustände austreten, wie z. B. einen leistungsarmen Verbindungszustand auf der Basis von bestimmten empfangenen und gesendeten Nachrichten, oder einen Austritt des Teilbreiten-Übertragungsverbindungszustandes oder einen Verbindungsblockierungszustand auf der Basis von anderen Ereignissen. In einer Ausführungsform kann ein Senderport inaktive Bahnen in einer versetzten Weise ausschalten, um eine bessere Signalintegrität (d. h. Rauschmilderung) zu schaffen. Hier können Flits ohne Neuversuchsfähigkeit wie z. B. Null-Flits verwendet werden während Perioden, in denen sich die Verbindungsbreite ändert. Ein entsprechender Empfänger kann diese Null-Flits fallen lassen und inaktive Bahnen in einer versetzten Weise ausschalten sowie die aktuellen und vorherigen Bahnabbildungen in einer oder mehreren Strukturen aufzeichnen. Es ist zu beachten, dass ein Status und ein zugehöriges Statusregister unverändert bleiben können. In einigen Implementierungen kann der Teilbreiten-Übertragungsverbindungszustand als teilweiser L0- oder L0p-Zustand bezeichnet werden.
-
Austritt aus dem Teilbreiten-Übertragungsverbindungszustand: Austritt aus dem Teilbreitenzustand. Kann einen Blockierungsverbindungszustand in einigen Implementierungen verwenden oder nicht. Der Sender leitet den Austritt in einer Ausführungsform durch Senden von Teilbreiten-Austrittsmustern auf den inaktiven Bahnen ein, um sie zu trainieren und zu entzerren. Als ein Beispiel ein Austrittsmusterstart mit EIEOS, der detektiert und entprellt wird, um zu signalisieren, dass die Bahn bereit ist, den Eintritt in einen vollen Übertragungsverbindungszustand zu starten, und kann mit einem SDS oder einer schnellen Anlaufsequenz (FTS) auf inaktiven Bahnen enden. Irgendein Ausfall während der Austrittssequenz (Empfängerhandlungen, wie z. B. Entzerrung nicht vollendet vor der Zeitüberschreitung) stoppt Flit-Übertragungen zur Sicherungsschicht und aktiviert ein Rücksetzen, das durch Zurücksetzen der Verbindung beim nächsten Auftreten eines Blockierungsverbindungszustandes behandelt wird. Der SDS kann auch den Verwürfler/Entwürfler auf den Bahnen auf geeignete Werte initialisieren.
-
Leistungsarmer Verbindungszustand: ist ein leistungsarmer Zustand. In einer Ausführungsform ist es niedrigere Leistung als der Teilbreiten-Verbindungszustand, da die Signalgebung in dieser Ausführungsform auf allen Bahnen und in beiden Richtungen gestoppt wird. Sender können einen Blockierungsverbindungszustand zum Anfordern eines leistungsarmen Verbindungszustandes verwenden. Hier kann der Empfänger die Anforderung decodieren und mit einer ACK oder einer NAK antworten; ansonsten kann Rücksetzen ausgelöst werden. In einigen Implementierungen kann der leistungsarme Verbindungszustand als L1-Zustand bezeichnet werden.
-
In einigen Implementierungen können Zustandsübergänge erleichtert werden, um zu ermöglichen, dass Zustände umgangen werden, beispielsweise wenn Zustandshandlungen der Zustände wie z. B. bestimmte Kalibrierungen und Konfigurationen bereits vollendet wurden. Vorherige Zustandsergebnisse und Konfigurationen einer Verbindung können gespeichert und in anschließenden Initialisierungen und Konfigurationen einer Verbindung wiederverwendet werden. Anstatt der Wiederholung von solchen Konfigurationen und Zustandshandlungen können entsprechende Zustände umgangen werden. Herkömmliche Systeme, die Zustandsumgehungen implementieren, implementieren jedoch häufig komplexe Konstruktionen und teure Validierungsauswege. Anstelle der Verwendung einer herkömmlichen Umgehung kann in einem Beispiel HPI kurze Zeitgeber in bestimmten Zuständen verwenden, wie z. B. wenn die Zustandshandlungen nicht wiederholt werden müssen. Dies kann potentiell gleichmäßigere und synchronisierte Zustandsmaschinenübergänge unter anderen potentiellen Vorteilen ermöglichen.
-
In einem Beispiel kann eine Steuereinheit auf Softwarebasis (z. B. durch einen externen Steuerpunkt für die Bitübertragungsschicht) einen kürzeren Zeitgeber für einen oder mehrere spezielle Zustände ermöglichen. Für einen Zustand, für den Handlungen bereits durchgeführt und gespeichert wurden, kann der Zustand beispielsweise kurzzeitig sein, um einen schnellen Austritt aus dem Zustand in einen nächsten Zustand zu erleichtern. Wenn jedoch die vorherige Zustandshandlung misslingt oder nicht innerhalb der kurzen Zeitgeberdauer angewendet werden kann, kann ein Zustandsaustritt durchgeführt werden. Ferner kann die Steuereinheit den kurzen Zeitgeber beispielsweise deaktivieren, wenn die Zustandshandlungen erneut durchgeführt werden sollten. Ein langer oder Vorgabezeitgeber kann für jeden jeweiligen Zustand festgelegt werden. Wenn Konfigurationshandlungen am Zustand nicht innerhalb des langen Zeitgebers vollendet werden können, kann ein Zustandsaustritt stattfinden. Der lange Zeitgeber kann auf eine angemessene Dauer gesetzt werden, um die Vollendung der Zustandshandlungen zu ermöglichen. Der kurze Zeitgeber kann dagegen beträchtlich kürzer sein, was es in einigen Fällen unmöglich macht, die Zustandshandlungen ohne Rückbezug auf vorher durchgeführte Zustandshandlungen unter anderen Beispielen durchzuführen.
-
In einigen Implementierungen von HPI können Supersequenzen definiert werden, wobei jede Supersequenz einem jeweiligen Zustand oder Eintritt/Austritt in den/aus dem jeweiligen Zustand entspricht. Eine Supersequenz kann eine sich wiederholende Sequenz von Datensätzen und Symbolen umfassen. Die Sequenzen können sich in einigen Fällen bis zur Vollendung eines Zustandes oder Zustandsübergangs oder Übermittlung eines entsprechenden Ereignisses unter anderen Beispielen wiederholen. In einigen Fällen kann sich die sich wiederholende Sequenz einer Supersequenz gemäß einer definierten Frequenz wie z. B. einer definierten Anzahl von Einheitsintervallen (UIs) wiederholen. Ein Einheitsintervall (UI) kann dem Zeitintervall zum Übertragen eines einzelnen Bits auf einer Bahn einer Verbindung oder eines Systems entsprechen. In einigen Implementierungen kann die sich wiederholende Sequenz mit einem elektrisch geordneten Satz (EOS) beginnen. Folglich kann erwartet werden, dass sich eine Instanz des EOS gemäß der vordefinierten Frequenz wiederholt. Solche geordneten Sätze können unter anderen Beispielen als definierte 16-Byte-Codes implementiert werden, die in einem Hexadezimalformat dargestellt werden können. In einem Beispiel kann der EOS einer Supersequenz ein elektrisch inaktiver geordneter Satz (oder EIEIOS) sein. In einem Beispiel kann ein EIEOS einem Taktsignal mit niedriger Frequenz (z. B. einer vordefinierten Anzahl von sich wiederholenden FF00- oder FFF000-Hexadezimalsymbolen usw.) ähneln. Ein vordefinierter Satz von Daten kann dem EOS folgen, wie z. B. eine vordefinierte Anzahl von Anlaufsequenzen oder anderen Daten. Solche Supersequenzen können in Zustandsübergängen, einschließlich Verbindungszustandsübergängen sowie Initialisierung unter anderen Beispielen verwendet werden.
-
Wie vorstehend eingeführt, kann die Initialisierung in einer Ausführungsform anfänglich mit langsamer Geschwindigkeit, gefolgt von einer Initialisierung mit schneller Geschwindigkeit durchgeführt werden. Die Initialisierung mit langsamer Geschwindigkeit verwendet die Vorgabewerte für die Register und Zeitgeber. Die Software verwendet dann die Verbindung mit langsamer Geschwindigkeit, um die Register, Zeitgeber und elektrischen Parameter einzurichten, und löscht die Kalibrierungssemaphoren, um den Weg für die Initialisierung mit schneller Geschwindigkeit zu bereiten. Als ein Beispiel kann die Initialisierung aus solchen Zuständen oder Aufgaben wie Rücksetzen, Detektion, Abfrage und Konfiguration unter potentiell anderen bestehen.
-
In einem Beispiel kann eine Sicherungsschicht-Blockierungssteuersequenz (d. h. ein Blockierungsverbindungszustand (BLS) oder L0c-Zustand) einen zeitlich gesteuerten Zustand umfassen, während dessen die Sicherungsschicht-Flits femgehalten werden, während die PHY-Informationen zum entfernten Agenten übermittelt werden. Hier können der Sender und der Empfänger einen Blockierungssteuersequenz-Zeitgeber starten. Und beim Ablauf der Zeitgeber können der Sender und der Empfänger den Blockierungszustand verlassen und können andere Handlungen unternehmen, wie z. B. Austritt in das Rücksetzen, Austritt in einen anderen Verbindungszustand (oder anderen Zustand), einschließlich Zuständen, die das Senden von Flits über die Verbindung ermöglichen.
-
In einer Ausführungsform kann das Verbindungstraining bereitgestellt werden und das Senden von einer oder mehreren verwürfelten Anlaufsequenzen, geordneten Sätzen und Steuersequenzen wie z. B. in Verbindung mit einer definierten Supersequenz umfassen. Ein Anlaufsequenzsymbol kann einen oder mehrere eines Kopfs, reservierter Abschnitte, einer Ziellatenz, einer Paarnummer, von physikalischen Bahnabbildungscode-Referenzbahnen oder einer Gruppe von Bahnen und eines Initialisierungszustandes umfassen. In einer Ausführungsform kann der Kopf mit einer ACK oder NAK unter anderen Beispielen gesendet werden. Als Beispiel können Anlaufsequenzen als Teil von Supersequenzen gesendet werden und können verwürfelt werden.
-
In einer Ausführungsform werden geordnete Sätze und Steuersequenzen nicht verwürfelt oder versetzt und werden identisch, gleichzeitig und vollständig auf allen Bahnen übertragen. Ein gültiger Empfang eines geordneten Satzes kann das Prüfen zumindest eines Abschnitts des geordneten Satzes (oder des ganzen geordneten Satzes für teilweise geordnete Sätze) umfassen. Geordnete Sätze können einen elektrisch geordneten Satz (EOS) wie z. B. einen elektrisch inaktiven geordneten Satz (EIOS) oder einen EIEOS umfassen. Eine Supersequenz kann einen Start einer Datensequenz (SDS) oder eine schnelle Anlaufsequenz (FTS) umfassen. Solche Sätze und Steuersupersequenzen können vordefiniert sein und können irgendein Muster oder eine hexadezimale Darstellung sowie irgendeine Länge aufweisen. Geordnete Sätze und Supersequenzen können beispielsweise eine Länge von 8 Bytes, 16 Bytes oder 32 Bytes usw. sein. FTS kann als Beispiel zusätzlich für schnelle Bitverriegelung während des Austritts aus einem Teilbreiten-Übertragungsverbindungszustand verwendet werden. Es ist zu beachten, dass die FTS-Definition pro Bahn sein kann und eine gedrehte Version der FTS verwenden kann.
-
Supersequenzen können in einer Ausführungsform das Einfügen eines EOS wie z. B. eines EIEOS in einen Anlaufsequenzstrom umfassen. Wenn die Signalisierung startet, schalten Bahnen in einer Implementierung in einer versetzten Weise ein. Dies kann jedoch dazu führen, dass anfängliche Supersequenzen am Empfänger auf einigen Bahnen abgeschnitten gesehen werden. Supersequenzen können jedoch über kurze Intervalle (z. B. ungefähr eintausend Einheitsintervalle (oder ~1KUI)) wiederholt werden. Die Anlaufsupersequenzen können außerdem für eine oder mehrere von Entzerrung, Konfiguration und zur Übermittlung eines Initialisierungsziels, Bahnabbildung usw. verwendet werden. Der EIEOS kann für eine oder mehrere des Übergangs einer Bahn von einem inaktiven in einen aktiven Zustand, Überprüfen auf gute Bahnen, Identifizieren von Symbol- und TS-Grenzen unter anderen Beispielen verwendet werden.
-
Wenn man sich 8 zuwendet, sind Darstellungen von Beispielsupersequenzen gezeigt. Eine beispielhafte Detektionssupersequenz 805 kann beispielsweise definiert werden. Die Detektionssupersequenz 805 kann eine sich wiederholende Sequenz eines einzelnen EIEOS (oder anderen EOS), gefolgt von einer vordefinierten Anzahl von Instanzen einer speziellen Anlaufsequenz (TS) umfassen. In einem Beispiel kann der EIEOS übertragen werden, unmittelbar gefolgt von sieben wiederholten Instanzen einer TS. Wenn die letzte der sieben TSs gesendet wird, kann der EIEOS wieder gesendet werden, gefolgt von sieben zusätzlichen Instanzen einer TS, und so weiter. Diese Sequenz kann gemäß einer speziellen vordefinierten Frequenz wiederholt werden. In dem Beispiel von 8 kann der EIEOS erneut auf den Bahnen ungefähr einmal alle eintausend UIs (~ 1KUI) erscheinen, gefolgt vom Rest der Detektionssupersequenz 805. Ein Empfänger kann Bahnen auf die Anwesenheit einer sich wiederholenden Detektionssupersequenz 805 überwachen und kann bei der Validierung der Supersequenz 705 schlussfolgern, dass ein entfernter Agent vorhanden ist, auf den Bahnen hinzugefügt wurde (z. B. im laufenden Betrieb eingebaut), aufgewacht ist oder neu initialisiert usw.
-
In einem anderen Beispiel kann eine andere Supersequenz 810 definiert werden, um eine Abfrage-, Konfigurations- oder Prüfschleifenbedingung oder einen solchen Zustand anzugeben. Wie bei der Beispiel-Detektionssupersequenz 805 können Bahnen einer Verbindung durch einen Empfänger auf eine solche Abfrage/Konfiguration/Schleifen-Supersequenz 810 überwacht werden, um einen Abfragezustand, einen Konfigurationszustand oder einen Prüfschleifenzustand oder eine solche Bedingung zu identifizieren. In einem Beispiel kann eine Abfrage/Konfiguration/Schleifen-Supersequenz 810 mit einem EIEOS beginnen, gefolgt von einer vordefinierten Anzahl von wiederholten Instanzen einer TS. In einem Beispiel können dem EIEOS beispielsweise einunddreißig (31) Instanzen der TS folgen, wobei sich der EIEOS ungefähr alle viertausend UI (z. B. ~ 4KUI) wiederholt.
-
In einem anderen Beispiel kann ferner eine Teilbreiten-Übertragungszustands-Austrittssupersequenz (PWTS-Austrittssupersequenz) 815 definiert werden. In einem Beispiel kann eine PWTS-Austrittssupersequenz einen anfänglichen EIEOS umfassen, der sich wiederholen soll, um Vorbedingungsbahnen vor dem Senden der ersten vollständigen Sequenz in der Supersequenz vorzukonditionieren. Die zu wiederholende Sequenz in der Supersequenz 815 kann beispielsweise mit einem EIEOS beginnen (der sich ungefähr einmal alle 1KUI wiederholen soll). Ferner können schnelle Anlaufsequenzen (FTS) anstelle von anderen Anlaufsequenzen (TS) verwendet werden, wobei die FTS dazu konfiguriert ist, bei einer schnelleren Bitverriegelung, Byteverriegelung und Entzerrung zu unterstützen. In einigen Implementierungen kann eine FTS unverwürfelt sein, um weiter dabei zu unterstützen, inaktive Bahnen so schnell und unterbrechungsfrei wie möglich auf aktiv zurückzubringen. Wie bei anderen Supersequenzen, die einem Eintritt in einen Verbindungsübertragungszustand vorangehen, kann die Supersequenz 815 unterbrochen und beendet werden durch das Senden eines Starts einer Datensequenz (SDS). Ferner kann eine teilweise FTS (FTSp) gesendet werden, um beim Synchronisieren der neuen Bahnen mit den aktiven Bahnen zu unterstützen, wie z. B. durch Ermöglichen, dass Bits subtrahiert (oder addiert) werden von (zu) den FTSp, unter anderen Beispielen.
-
Supersequenzen wie z. B. die Detektionssupersequenz 705 und Abfrage/Konfiguration/Schleifen-Supersequenz 710 usw. können potentiell während der ganzen Initialisierung oder erneuten Initialisierung einer Verbindung gesendet werden. Ein Empfänger kann beim Empfangen und Detektieren einer speziellen Supersequenz in einigen Fällen durch Wiederholen derselben Supersequenz zum Sender über die Bahnen antworten. Der Empfang und die Validierung einer speziellen Supersequenz durch den Sender und Empfänger kann als Quittungsaustausch dienen, um einen Zustand oder eine Bedingung, die über die Supersequenz übermittelt wird, zu bestätigen. Ein solcher Quittungsaustausch (z. B. unter Verwendung einer Detektionssupersequenz 705) kann beispielsweise verwendet werden, um die erneute Initialisierung einer Verbindung zu identifizieren. In einem anderen Beispiel kann ein solcher Quittungsaustausch unter anderen Beispielen verwendet werden, um das Ende eines elektrischen Rücksetz- oder leistungsarmen Zustandes anzugeben, was dazu führt, dass entsprechende Bahnen wieder aufgebracht werden. Das Ende des elektrischen Rücksetzens kann beispielsweise aus einem Quittungsaustausch zwischen dem Sender und dem Empfänger, die jeweils eine Supersequenz 705 übertragen, identifiziert werden.
-
In einem anderen Beispiel können Bahnen auf Supersequenzen und die Verwendung der Supersequenzen in Verbindung mit dem Überprüfen von Bahnen auf Detektions-, wache, Zustandsaustritte und Zustandseintritte unter anderen Ereignissen überwacht werden. Die vordefinierte und vorhersagbare Art und Form von Supersequenzen kann ferner verwendet werden, um solche Initialisierungsaufgaben wie Bitverriegelung, Byteverriegelung, Entprellen, Entwürfeln, Entzerren, Anpassung, Latenzfixierung, verhandelte Verzögerungen und andere potentielle Verwendungen durchzuführen. Tatsächlich können Bahnen im Wesentlichen kontinuierlich auf solche Ereignisse überwacht werden, um die Fähigkeit des Systems, auf solche Bedingungen zu reagieren und diese zu verarbeiten, zu beschleunigen.
-
10 stellt eine Beispielanlaufsequenz (TS) gemäß einem Beispiel dar. In 10 kann eine Anlaufsequenz 1005 einen Kopf 1010 und verschiedene Felder umfassen, die verwendet werden können, um Informationen in Verbindung mit einer Initialisierung einer Verbindung zu übermitteln. In einem Beispiel können beispielsweise Felder für Ziellatenz 1015, Zustand 1012, Bahnpaarnummer 1025, Bahnabbildung 1028 unter anderen Feldern enthalten sein. Ein Verwürflersynchronisationsfeld 1030 kann beispielsweise zusätzlich vorgesehen sein, um unter anderen Funktionen beim Synchronisieren von Schieberegistern mit linearer Rückkopplung (LFSR) an einer Vorrichtung zu unterstützen, um das Entwürfeln von TS-Feldern zu ermöglichen. Andere reservierte Felder (z. B. 1055, 1060) können auch in einer Anlaufsequenz (z. B. 1005) enthalten sein.
-
Ein TS-Kopf 1010 kann zusätzliche Felder umfassen, die verwendet werden können, um den Anlaufsequenztyp (z. B. von dem der Initialisierungszustand bestimmt oder abgeleitet werden kann) 1035, ACK/NAK-Felder 1040 (z. B. zur Verwendung beim Quittungsaustausch), Bahnidentifiziererfelder (z. B. Identifizieren einer Bahn durch ihr niedrigstwertiges Bit, durch Bahnumkehr usw.) 1045 und andere Felder, einschließlich reservierter Felder, zu übermitteln. In einigen Implementierungen können Abschnitte einer TS verwürfelt werden beispielsweise durch eine zufällige oder pseudozufällige binäre Sequenz (PRBS). In einem Beispiel kann der TS-Kopf 1010 im Klartext bewahrt werden, während der Rest (oder Körper (z. B. 1050)) der TS verwürfelt wird, beispielsweise, indem unter anderen Beispielen jene Abschnitte der TS mit einer PRBS einer Exklusiv-ODER-Operation unterzogen werden.
-
In einer Implementierung kann eine TS sechzehn (16) Bytes lang sein und der TS-Kopf kann das erste Byte (d. h. Byte 0) der TS belegen. Die TS-Nutzinformationen können verwürfelt werden und die restlichen fünfzehn Bytes belegen. In einer Beispielimplementierung kann ein TS-Ende oder TS-Suffix die letzten paar Bytes der TS umfassen. In einem Beispiel kann beispielsweise ein Verwürfelungssynchronisationsfeld 1030 mindestens drei Bytes der TS belegen, beispielsweise die Bytes 6-8 der TS. Die Endbits der TS (z. B. Bytes 9-15) können in dieser speziellen Implementierung als reservierte Bits (z. B. 1055) aufrechterhalten werden. Die Bits in den Bytes 6-15 können alle auf 0 gesetzt werden.
-
In einigen Implementierungen kann HPI die Verwendung eines TS-Kopfs (z. B. 1010) unterstützen, kann anstelle von oder zusätzlich zu TS-Nutzinformationen für Schlüsselinitialisierungsparameter verwendet werden. In einigen Implementierungen können TS-Nutzinformationen verwendet werden, um Initialisierungsparameter wie ACKs und Bahnnummern auszutauschen. Gleichstrompegel zur Übermittlung der Bahnpolarität können auch verwendet werden. In einigen Implementierungen kann jedoch HPI gleichstromausgeglichene Codes im TS-Kopf (z. B. 1010) für Schlüsselparameter implementieren. In Fällen, in denen ein TS-Kopf unverwürfelt ist, können beispielsweise verfügbare TS-Kopfcodes so definiert sein, dass die Anzahl von „1"-en im Wesentlichen gleich der Anzahl von „0“-en ist, die in den TS-Kopffeldern erscheinen (z. B. 1035, 1040, 1045). Der Gleichstromausgleich kann über den ganzen Rest der TS (z. B. die TS-Nutzinformationen) durch Verwürfeln von Bits der TS-Nutzinformationen durch Exklusiv-ODER-Operation an den Bits gegen eine zufällige oder pseudozufällige binäre Sequenz verwirklicht werden.
-
In einer Beispielimplementierung kann eine PRBS-Sequenz mit mindestens 23 Bits (PRBS23) verwendet werden. Die PRBS kann gemäß einem speziellen ausgewählten Polynom erzeugt werden. In einem Beispiel kann die PRBS durch ein selbst gesetztes Speicherelement mit ähnlicher Bitgröße wie z. B. ein Schieberegister mit linearer Rückkopplung (LFSR) erzeugt werden. Das LFSR kann ein 23-Bit-Fibonacci-LFSR sein, das zum Erzeugen einer PRBS-Sequenz von bis zu 8 Mb in der Länge in der Lage ist. Die PRBS kann sich nach dem Ende der Sequenz wiederholen. In einigen Implementierungen kann die Gesamtheit der PRBS23-Sequenz beim Verwürfeln von Anlaufsequenzen, die in Supersequenzen enthalten sind, die beispielsweise bei der Initialisierung der Verbindung in HPI verwendet werden, verwendet werden.
-
Obwohl die volle Länge einer PRBS-Sequenz verwendet werden kann, kann in einigen Implementierungen HPI das Ermöglichen der Verwendung von variierenden Längen der verfügbaren PRBS-Sequenz unterstützen (z. B. die Verwendung nur eines Abschnitts der PRBS23-Sequenz). In einigen Beispielen kann eine Steuereinheit einer Vorrichtung festlegen, dass nur ein Abschnitt der vollen Länge einer PRBS-Sequenz verwendet wird. Dies kann unter potentiell anderen Anwendungen beispielsweise in Testanwendungen erwünscht sein, in denen die Wiederholbarkeit von Bitsequenzen erwünscht ist. Eine Steuereinheit auf Softwarebasis kann Festlegen, dass variierende Längen der PRBS angewendet werden. Das BIOS einer Vorrichtung kann beispielsweise die PRBS-Länge, die auf die Verbindung angewendet werden soll, festlegen. In einigen Implementierungen kann die Verwendung der vollen Länge der PRBS-Sequenz die Vorgabeeinstellung sein, beispielsweise um die Vorteile der langen PRBS-Sequenz zu maximieren.
-
Der Bahnverkehr in einem Übertragungsverbindungszustand (TLS) und Anlaufsequenzen können mit einer PRBS einer speziellen minimalen Länge (z. B. 23 Bits) verwürfelt werden. Der auf einen Strom angewendete Startkeim kann zwischen den Bahnen verändert werden, um die elektrischen Vorteile der PRBS auf der Verbindung zu verbessern. In einer Beispielimplementierung kann die PRBS durch ein 23-Bit-Fibonacci-LFSR erzeugt werden, das ein Generatorpolynom mit 6 Verzweigungen implementiert, wie z. B. (x23+x21+x16+x8+x5+x2+1).
-
Die Startkeimwerte (bei der Verwürfler/Entwürfler-Initialisierung) für die Bahnnummer modulo 8 können ein beliebiger Wert, beispielsweise 8 Hexadezimalwerte, sein, wobei jeder 2 oder 3 der Bahnen in einer Verbindung zugeordnet ist. Die Verwendung von solchen Keimen kann zum Drehen (oder Versetzen) der PRBS zwischen den Bahnen führen. Die Anzahl von LFSRs kann unter Verwendung der Eigenschaft verringert werden, dass eine gerade Bahn-PRBS von einem Exklusiv-ODER der PRBS von ungeraden Bahnen abgeleitet werden kann. Der EIEOS und der Kopf der Anlaufsequenzen werden nicht verwürfelt. Der Eintrittspunkt einer Supersequenz auf jeder Bahn kann an einem anderen Punkt auf jeder Bahn an einem unterschiedlichen Punkt auf jeder Bahn eingeleitet werden (z. B. wenn der Sender die Ansteuerung beginnt). Dies kann ermöglichen, dass die Bahnen in einer versetzten Weise eingeschaltet werden, um Rauschen im Leistungszufuhrsystem zu verringern. Tatsächlich kann jede Bahn ihre eigene Instanz eines LFSR aufweisen. Die Versetzungszeiten können durch die Anzahl von Bahnen, die eingeschaltet werden, variieren und können während der Initialisierung von der Implementierung abhängen. Diese können in den Zeitablaufdiagrammen und Zeitgeberprofilen für den Teilübertragungsbreitenzustandsaustritt festgelegt werden. Ferner können schnelle Anlaufsequenzen (FTS) (auch nachstehend erörtert) auch durch die Bahn gedreht werden.
-
In einigen Fällen kann das Verwürfeln das Leistungsversorgungsrauschen am Sender verringern und ein reicheres Frequenzspektrum am Empfänger bereitstellen. Der Verwürfler kann durch den ersten übertragenen EIEOS initialisiert werden.
-
Der Entwürfler kann mit dem Verwürfler beispielsweise durch Selbstsetzen synchronisiert werden. Das empfangene 23-Bit-Muster kann in ein Feld der TS eingebettet werden als Keim. In einem Beispiel kann der 23-Bit-Keim aus dem Verwürfein der Bits des Verwürfelungssynchronisationsfeldes (z. B. 1050) identifiziert werden. Der Empfänger kann den Keimwert verwenden, um den spezifischen Ort der PRBS zu identifizieren, der verwendet wird, um die empfangene TS zu verwürfeln. Ein Empfänger kann beispielsweise den Keim identifizieren und den Keim in sein eigenes LFSR laden, um mit der PRBS zu synchronisieren, die vom Sender verwendet wird. In einigen Fällen kann ein Empfänger mehrere Verwürfelungssynchronisationsfelder oder mehrere TSs in einer Supersequenz lesen, um sein eigenes LFSR zu setzen. Beim Detektieren und Synchronisieren mit der PRBS des Senders kann jedoch ein Empfänger den Rest der TSs sowie alle anschließenden TS, die in Supersequenzen gesendet werden, während der Initialisierung der Verbindung unter anderen Beispielen entwürfeln.
-
Supersequenzen können verwendet werden, um die Bitverriegelung und Bitsynchronisation auf einer Bahn zu erleichtern. Wie vorstehend erörtert, kann zumindest ein Teil der Supersequenzen verwürfelt werden. Mit Rückkehr zur Erörterung von 8 kann eine Detektionssupersequenz vom Empfänger verwendet werden, um die Bit- und Bytekanten des empfangenen Bitstroms zu detektieren oder zu verriegeln und zu identifizieren, welche Bytes in der Supersequenz gesendet werden. Der EIEOS und TS-Kopf können beispielsweise unverwürfelt belassen werden, um den Empfänger zu unterstützen, schneller auf die Supersequenz zu verriegeln. Außerdem kann die Supersequenz definiert werden, um zu ermöglichen, dass der EIEOS (und der Beginn der Supersequenz) sich mit einer relativ kurzen Frequenz wiederholt (z. B. um schneller dem Empfänger eine weitere Chance zu ermöglichen, den EIEOS in dem Fall zu detektieren, dass der erste EIEOS nicht genau detektiert wurde). In einem Beispiel kann eine Supersequenz beispielsweise als sich alle 1 KUI oder kürzer wiederholend definiert sein. Solche Supersequenzen können ferner randomisiertere Übergänge während der Initialisierung sowie Vereinfachung von TS-Verriegelung, Latenzfixierung und andere Handlungen ermöglichen.
-
Außerdem kann das unverwürfelte Belassen des EIEOS und TS-Kopfs ermöglichen, dass die Byte-Verriegelung stattfindet, und ermöglichen, dass der Empfänger den Ort von anschließenden Bytes und Symbolen (einschließlich verwürfelter TS-Symbole) identifizieren kann. Die Kante des unverwürfelten TS-Kopfs kann beispielsweise identifiziert werden und dadurch auch der Start des Verwürfelungssynchronisationsfeldes (z. B. 1050) (z. B. durch einfaches Zählen der Anzahl von Bytes von der Kante des TS-Kopfs zum Symbol). Beim Detektieren des PRBS-Keims im Verwürfelungssynchronisationsfeld kennt der Empfänger die folgenden PRBS-Musterwerte und kann auch die Werte von anschließenden Werten des Verwürfelungssynchronisationsfeldes (z. B. 1050) vorhersagen. Folglich kann der Empfänger beim Verriegeln auf die PRBS ferner die Werte des Verwürfelungssynchronisationsfeldes (z. B. 1050) verwenden, um andere Konfigurationsaufgaben wie z. B. Anpassung, Entzerrung und anderen Aufgaben zu erleichtern.
-
Auf Verbindungen mit mehreren Bahnen können Symbole gleichzeitig auf allen Bahnen durch einen Sender gesendet werden, es kann sich jedoch bei einigen Symbolen eine Verzerrung von Verbindung zu Verbindung zeigen, die nicht am Empfänger gleichzeitig ankommen. Quellen von Verzerrung können beispielsweise Chipdifferentialtreiber und Empfänger, Impedanzvariationen einer gedruckten Leiterplatte, Bahndrahtlängenfehlanpassungen unter anderen Beispielen umfassen. In einer Ausführungsform schafft HPI eine fortschrittliche Logik, um Bahnen zu entzerren. Als Beispiel kann die TS-Grenze nach der TS-Verriegelung verwendet werden, um die Bahnen zu entzerren. Die TS- Verriegelung kann beispielsweise verwendet werden, um die Verzerrung zu detektieren (z. B. dass eine TS auf einer Bahn später ankommt als eine andere TS auf einer anderen der Bahnen der Verbindung). Ein EIEOS kann auch verwendet werden, um die Verzerrung zu detektieren. Unter Verwendung der Vorhersagbarkeit eines synchronisierten PRBS-Musters können außerdem einige Implementierungen von HPI durch Vergleichen von Bahn-PRBS-Mustern im LFSR während spezifischer Punkte in den Nutzinformationen entzerren. Ferner kann in einigen Fällen die Verwürfelung von Anlaufsequenzen erneut initialisiert werden und die Entzerrung kann unter anderen Beispielen durchgeführt werden, indem ein Tabellennachschlag von PRBS-Werten während des erneuten Setzens der Anlaufsequenz durchgeführt wird. Eine solche Entzerrung kann in Testchips nützlich sein, denen unter anderen Beispielen beispielsweise die Fähigkeit fehlen kann, TS oder Zustandsmaschinen zu detektieren, um die Entzerrung zu managen.
-
Beim Detektieren einer Verzerrung kann die HPI-Logik (z. B. durch eine durch Software unterstützte Steuereinheit vorgesehen) die Verzerrung auf jeder Bahn relativ zu anderen Bahnen in einer Verbindung identifizieren und die Bahnen einstellen, um zu versuchen, die Verzerrung zu beseitigen. „Schnellere“ Bahnen können beispielsweise künstlich verlangsamt werden (oder alternativ können langsamere Bahnen beschleunigt werden (z. B. durch Verringern der Latenz im Datenpfad)) auf der Basis der in einer Verzerrung von Bahn zu Bahn detektierten Verzögerung, um den Symbolen der „langsameren“ Bahnen Rechnung zu tragen, die im Wesentlichen gleichzeitig mit den verzögerten „schnelleren“ Bahnen ankommen, unter anderen Beispielen.
-
Im Fall von Anpassung können elektrische Eigenschaften einer Bahn zwischen einem Sender und einem Empfänger beispielsweise auf der Basis von Abtastdaten, die zwischen dem Sender und dem Empfänger übertragen werden, eingestellt werden. Die Empfängeranpassung kann beispielsweise umfassen, dass der Sender ein Datenmuster zum Empfänger sendet, wobei die Logik am Empfänger elektrische Eigenschaften am Empfänger einstellt, um die Bahn für die Verbindung anzupassen. Die Senderanpassung kann beinhalten, dass der Sender Abtastdaten zum Empfänger sendet und der Empfänger eine Rückmeldung zum Sender sendet, die vom Sender verwendet werden kann, um Einstellungen am Sender durchzuführen, um die Bahn anzupassen. Der Empfänger kann weiterhin eine Rückmeldung zum Sender auf der Basis der Einstellungen senden, die am Sender durchgeführt werden.
-
In einem Beispiel können Anpassungsabtastdaten durch verwürfelte TS-Daten verkörpert sein. Als ein Beispiel kann ein festes UI-Muster verwendet werden, um mit einer Umgehung in einen Anpassungszustand zu verwürfeln. Aber durch Verwürfeln von TS mit PRBS23 kann die Empfängeranpassung ohne die Umgehung durchgeführt werden. Außerdem können Versatz und andere Fehler während der Taktwiderherstellung und Abtastung verringert werden. Die Zufälligkeit, die durch die lange PRBS-Sequenz (z. B. PRBS23) bereitgestellt wird, kann sich als effektiver Abtaststrom für die Anpassung erweisen. In einigen Implementierungen kann ferner eine Bahn zum Arbeiten in einem langsamen Modus festgelegt werden, um die Logik beim Analysieren und Anpassen an Abtastdaten, die auf der Bahn empfangen werden, zu unterstützen. Beim Bewilligen der Eigenschaften der Bahn durch Anpassung können die angepassten Eigenschaften festgelegt werden und auf die Initialisierung der Verbindung angewendet werden.
-
Sobald die Verbindung erfolgreich kalibriert und konfiguriert wurde, kann die Initialisierung enden und in den Übertragungsverbindungszustand (TLS), in dem Flits beginnen übertragen zu werden, übergehen. In einigen Implementierungen von HPI können Übergänge auf den TLS auf der planetaren Ausrichtung im System basieren. Ein planetares Ausrichtungssignal kann beispielsweise eine Gelegenheit zum Übergang auf den TLS angeben. Anstatt des Übergangs an einer Kante einer Supersequenz, eines EIEOS oder TLS können einige Implementierungen von HPI ein Symbol des Starts einer Datensequenz (SDS) verwenden, das gemäß der planetaren Ausrichtung gesendet wird, um die Initialisierung und den Übergang in TLS zu beenden. In einem Beispiel kann ein SDS irgendwo in einem Initialisierungsbitstrom gesendet werden. Folglich kann ein Empfänger kontinuierlich empfangene Bits für den SDS abtasten, um das Beenden der Initialisierung gemäß einer planetaren Ausrichtung zu beschleunigen.
-
In einem Beispiel kann ein Beispiel-EIEOS ein Niederfrequenz-Taktsignal wie z. B. ein sich wiederholendes FF00-Signal emulieren. Ein Beispiel-SDS kann ein sich wiederholendes F0-Signal in einigen Implementierungen umfassen. In solchen Fällen kann folglich das Detektieren eines SDS, der in der Mitte eines EIEOS gesendet wird, relativ einfach zu identifizieren sein, da das Risiko von Aliasing innerhalb des EIEOS minimal sein kann. Die Verwürfelung von TS-Nutzinformationen und die resultierende Zufälligkeit der TS-Daten kann jedoch das Risiko von Aliasing von einigen Formen eines SDS einführen. In einigen Implementierungen kann eine PRBS erzeugt werden, der niemals eine SDS über irgendeine spezielle Spanne einer Anzahl von Bits verzerrt. Ferner kann ein Ende oder Suffix an einer TS vorgesehen sein, wie z. B. unter Verwendung der letzten Bytes der TS, um zu bewirken, dass die PRBS Exklusiv-ODER-0-Werte im Suffix ist und effektiv die PRBS unverwürfelt am Ende der TS darstellt. Wenn das Suffix ausreichend lang ist, können es die PRBS-Werte, die im verwürfelten Suffix widergespiegelt sind, unmöglich machen, dass ein SDS in den verwürfelten Nutzinformationen einer TS verzerrt wird. In einem Beispiel kann der SDS beispielsweise als zehn aufeinander folgende Bytes des Werts F0 (d. h. 1111000011110000...) definiert sein. Ferner kann ein Suffix von sieben reservierten Bytes in einer TS vorgesehen sein, der beispielsweise unmittelbar drei Bytes eines Verwürfelungssynchronisationsfeldes (z. B. 1050) folgen, wie beispielsweise in dem Beispiel von 10 gezeigt. Folglich kann die Länge des genullten TS-Suffix (z. B. zehn gesamte Bytes) dem gewählten SDS-Wert (z. B. zehn Bytes von F0) entsprechen, der unter anderen Beispielen als nicht innerhalb der ausgewählten Verwürfelungs-PRBS (z. B. PRBS23) erscheinend ausgewählt wurde. Auf der Basis des Polynoms, das in einer Implementierung von PRBS23 (oder einer anderen PRBS) verwendet wird, ist beispielsweise keine Zehn-Byte-Sequenz in PRBS23 jemals gleich dem ausgewählten SDS-Wert unter anderen Beispielen.
-
In einigen Implementierungen können beim Austritt aus einem Konfigurationszustand in den TLS die Sende- und Empfangs-LFSRs durch den SDS erneut initialisiert werden, die zwischen dem Sender und dem Empfänger ausgetauscht wird.
-
Acht Start-PRBS-Keime können beispielsweise auf die Bahnen 0..7, 12..19 und 8..11 (z. B. nur erste vier) jeweils angewendet werden. Ferner kann eine Bahnumkehr einer Verbindung und Polaritätsinversion einer Bahn auch beispielsweise durch Vergleichen des unverwürfelten ersten Bytes der TS (z. B. des TS-Kopfs) nach dem EIEOS mit einem Satz von möglichen Werten unter anderen Beispielen bestimmt werden.
-
In einer Ausführungsform kann der Takt in die Daten eingebettet werden, so dass keine separaten Taktbahnen vorhanden sind. Flits können gemäß dem eingebetteten Takt gesendet werden. Ferner können die über die Bahnen gesendeten Flits verwürfelt werden, um die Taktrückgewinnung zu erleichtern. Die Empfängertaktrückgewinnungseinheit kann als ein Beispiel Abtasttakte zu einem Empfänger liefern (d. h. der Empfänger gewinnt den Takt aus den Daten zurück und verwendet ihn, um die ankommenden Daten abzutasten). Empfänger passen in einigen Implementierungen kontinuierlich an einen ankommenden Bitstrom an. Durch Einbetten des Takts kann eine Kontaktbelegung potentiell verringert werden. Das Einbetten des Takts in die bandinternen Daten kann jedoch die Weise ändern, in der ein bandinternes Rücksetzen angenähert wird. In einer Ausführungsform kann ein Blockierungsverbindungszustand (BLS) nach der Initialisierung verwendet werden. Supersequenzen eines elektrisch geordneten Satzes können auch während der Initialisierung verwendet werden, um das Rücksetzen zu erleichtern, unter anderen Erwägungen. Der eingebettete Takt kann zwischen den Vorrichtungen auf einer Verbindung gemeinsam sein und der gemeinsame Betriebstakt kann während der Kalibrierung und Konfiguration der Verbindung festgelegt werden. HPI-Verbindungen können beispielsweise auf einen gemeinsamen Takt mit Driftpuffern Bezug nehmen. Eine solche Implementierung kann eine niedrigere Latenz verwirklichen als elastische Puffer, die in nicht gemeinsamen Referenztakten verwendet werden, unter anderen potentiellen Vorteilen. Ferner können die Referenztakt-Verteilungssegmente innerhalb festgelegter Grenzen angepasst werden.
-
Wie vorstehend angegeben, kann eine HPI-Verbindung zum Arbeiten mit mehreren Geschwindigkeiten in der Lage sein, einschließlich eines „langsamen Modus“ für Vorgabehochfahren, Initialisierung usw. Die Betriebsgeschwindigkeit (oder „schnelle“ Geschwindigkeit) oder der Betriebsmodus jeder Vorrichtung kann durch das BIOS statisch festgelegt werden. Der gemeinsame Takt auf der Verbindung kann auf der Basis der jeweiligen Betriebsgeschwindigkeiten jeder Vorrichtung auf beiden Seiten der Verbindung konfiguriert werden. Die Verbindungsgeschwindigkeit kann beispielsweise auf der langsameren der zwei Vorrichtungsbetriebsgeschwindigkeiten unter anderen Beispielen basieren. Irgendeine Betriebsgeschwindigkeitsänderung kann von einem warmen oder kalten Rücksetzen begleitet sein.
-
In einigen Beispielen initialisiert beim Einschalten die Verbindung auf den langsamen Modus mit einer Übertragungsrate von beispielsweise 100 MT/s. Die Software richtet dann die zwei Seiten für die Betriebsgeschwindigkeit der Verbindung ein und beginnt die Initialisierung. In anderen Fällen kann ein Seitenbandmechanismus verwendet werden, um eine Verbindung mit dem gemeinsamen Takt auf der Verbindung beispielsweise bei Abwesenheit oder Nicht-Verfügbarkeit eines langsamen Modus aufzubauen.
-
Eine Initialisierungsphase des langsamen Modus kann in einer Ausführungsform dieselbe Codierung, Verwürfelung, Anlaufsequenzen (TS), Zustände usw. wie die Betriebsgeschwindigkeit, jedoch mit potentiell weniger Merkmalen (z. B. keine elektrische Parametereinrichtung, keine Anpassung usw.), verwenden. Die Betriebsphase des langsamen Modus kann auch potentiell dieselbe Codierung, Verwürfelung usw. verwenden (obwohl dies andere Implementierungen nicht können), aber kann weniger Zustände und Merkmale im Vergleich zur Betriebsgeschwindigkeit (z. B. keine leistungsarmen Zustände) aufweisen.
-
Ferner kann der langsame Modus unter Verwendung der nativen Phasenregelkreis-Taktfrequenz (PLL-Taktfrequenz) der Vorrichtung implementiert werden. HPI kann beispielsweise einen emulierten langsamen Modus ohne Ändern der PLL-Taktfrequenz unterstützen. Obwohl einige Konstruktionen separate PLLs für langsame und schnelle Geschwindigkeit verwenden können, kann in einigen Implementierungen von HPI ein emulierter langsamer Modus erreicht werden durch Ermöglichen, dass der PLL-Takt mit derselben schnellen Betriebsgeschwindigkeit während des langsamen Modus läuft. Ein Sender kann beispielsweise ein langsameres Taktsignal durch mehrmaliges Wiederholen von Bits emulieren, um ein langsames hohes Taktsignal und dann ein langsames niedriges Taktsignal zu emulieren. Der Empfänger kann dann das empfangene Signal überabtasten, um Kanten aufzufinden, die durch die sich wiederholenden Bits emuliert werden, und das Bit zu identifizieren. In solchen Implementierungen können Ports, die sich einen PLL teilen, gemeinsam bei langsamen und schnellen Geschwindigkeiten existieren.
-
In einigen Implementierungen von HPI kann die Anpassung von Bahnen auf einer Verbindung unterstützt werden. Die Bitübertragungsschicht kann sowohl Empfängeranpassung als auch Übermittler- oder Senderanpassung unterstützen. Bei der Empfängeranpassung kann der Sender auf einer Bahn Abtastdaten zum Empfänger senden, die die Empfängerlogik verarbeiten kann, um Mängel in den elektrischen Eigenschaften der Bahn und die Qualität des Signals zu identifizieren. Der Empfänger kann dann Einstellungen an der Kalibrierung der Bahn durchführen, um die Bahn auf der Basis der Analyse der empfangenen Abtastdaten zu optimieren. Im Fall der Senderanpassung kann der Empfänger wieder Abtastdaten empfangen und Metriken entwickeln, die die Qualität der Bahn beschreiben, aber in diesem Fall die Metriken zum Sender übermitteln (z. B. unter Verwendung eines Rückkanals wie z. B. eines Software-, Hardware-, eingebetteten, Seitenband- oder anderen Kanals), um zu ermöglichen, dass der Sender Einstellungen an der Bahn auf der Basis der Rückmeldung durchführt.
-
Da beide Vorrichtungen auf einer Verbindung anhand desselben Referenztakts (z. B. ref clk) laufen können, können Elastizitätspuffer weggelassen werden (beliebige elastische Puffer können umgangen oder als Driftpuffer mit geringstmöglicher Latenz verwendet werden). Phaseneinstellungs- oder Driftpuffer können jedoch auf jeder Bahn verwendet werden, um den jeweiligen Empfängerbitstrom von der entfernten Taktdomäne zur lokalen Taktdomäne zu übertragen. Die Latenz der Driftpuffer kann ausreichen, um die Summe von Drift von allen Quellen in der elektrischen Spezifikation zu handhaben (z. B. Spannung, Temperatur, die restliche SSC, die durch Referenztakt-Leitweglenkungsfehlanpassungen eingeführt wird, und so weiter), aber so klein wie möglich sein, um die Transportverzögerung zu verringern. Wenn der Driftpuffer zu flach ist, können sich Driftfehler ergeben und als Reihe von CRC-Fehlern zeigen. In einigen Implementierungen kann folglich unter anderen Beispielen ein Driftalarm vorgesehen sein, der ein Bitübertragungsschichtrücksetzen einleiten kann, bevor ein tatsächlicher Driftfehler auftritt.
-
Einige Implementierungen von HPI können die zwei Seiten unterstützen, die mit derselben nominalen Referenztaktfrequenz laufen, jedoch mit einer ppm-Differenz. In diesem Fall können Frequenzeinstellungspuffer (oder Elastizitätspuffer) erforderlich sein und können während eines erweiterten BLS-Fensters oder während spezieller Sequenzen unter anderen Beispielen erneut eingestellt werden, die periodisch auftreten würden.
-
Der Betrieb der HPI-PHY-Logikschicht kann von den zugrundeliegenden Übertragungsmedien unabhängig sein, vorausgesetzt, dass die Latenz unter anderen Erwägungen nicht zu Latenzfixierungsfehlern oder Zeitüberschreitungen an der Sicherungsschicht führt.
-
Externe Schnittstellen können in HPI vorgesehen sein, um das Management der Bitübertragungsschicht zu unterstützen. Externe Signale (von Anschlussstiften, Sicherungen, anderen Schichten), Zeitgeber, Steuer- und Statusregister können beispielsweise vorgesehen sein. Die Eingangssignale können sich jederzeit relativ zum PHY-Zustand ändern, sollen jedoch durch die Bitübertragungsschicht an spezifischen Punkten in einem jeweiligen Zustand überwacht werden. Ein sich änderndes Ausrichtungssignal (wie nachstehend eingeführt) kann beispielsweise empfangen werden, aber keine Auswirkung haben, nachdem die Verbindung in einen Übertragungsverbindungszustand eingetreten ist, unter anderen Beispielen. Ebenso können Befehlsregisterwerte durch Bitübertragungsschichtentitäten nur zu spezifischen Zeitpunkten beobachtet werden. Die Bitübertragungsschichtlogik kann beispielsweise einen Schnappschuss des Werts aufnehmen und ihn in anschließenden Operationen verwenden. In einigen Implementierungen können folglich Aktualisierungen an Befehlsregistern einer begrenzten Teilmenge von spezifischen Perioden (z. B. in einem Übertragungsverbindungszustand oder beim Halten in der Rücksetzkalibrierung, im Übertragungsverbindungszustand des langsamen Modus) zugeordnet sein, um ein anomales Verhalten zu vermeiden.
-
Da Statuswerte Hardwareänderungen verfolgen, können die gelesenen Werte davon abhängen, wann sie gelesen werden. Einige Statuswerte, wie z. B. Verbindungsabbildung, Latenz, Geschwindigkeit, usw., können sich jedoch nach der Initialisierung nicht ändern. Eine erneute Initialisierung (oder ein Austritt aus dem leistungsarmen Verbindungszustand (LPLS) oder L1-Zustand) ist beispielsweise das Einzige, das verursachen kann, dass sich diese ändern (z. B. kann ein harter Bahnausfall in einem TLS nicht zur Umkonfiguration der Verbindung führen, bis eine erneute Initialisierung ausgelöst wird, unter anderen Beispielen).
-
Schnittstellensignale können Signale umfassen, die außerhalb des Bitübertragungsschichtverhaltens liegen, sich jedoch darauf auswirken. Solche Schnittstellensignale können als Beispiele Codierungs- und Zeitsteuersignale umfassen. Schnittstellensignale können konstruktionsspezifisch sein. Diese Signale können eine Eingabe oder Ausgabe sein. Einige Schnittstellensignale, wie z. B. unter anderen Beispielen Semaphoren und vorangestelltes EO genannt, können einmal pro Aktivierungsflanke aktiv sein, d. h. sie können deaktiviert und dann reaktiviert werden, um wieder wirksam zu werden, unter anderen Beispielen. Tabelle 1 umfasst beispielsweise eine Beispielauflistung von Beispielfunktionen: TABELLE 1
Funktion |
Eingangsstiftrücksetzen (auch bekannt als warmes Rücksetzen) |
Eingangsstiftrücksetzen (auch bekannt als kaltes Rücksetzen) |
bandinterner Eingangsrücksetzimpuls; verursacht, dass ein Semaphor gesetzt wird; Semaphor wird gelöscht, wenn bandinternes Rücksetzen stattfindet |
Eingang ermöglicht leistungsarme Zustände |
Eingangsprüfschleifenparameter; für Prüfschleifenmuster angewendet |
Eingabe, um in PWLTS einzutreten |
Eingabe, um PWLTS zu verlassen |
Eingabe, um in LPLS einzutreten |
Eingabe, um LPLS zu verlassen |
Eingabe von inaktiver Austrittsdetektion (auch bekannt als Rauschsperrenunterbrechung) |
Eingabe ermöglicht Verwendung von CPhyInitBegin |
Eingabe von lokaler oder planetarer Ausrichtung für Sender, um Initialisierung zu verlassen |
Ausgabe, wenn NAKs LPLS-Anforderung vom entfernten Agenten |
Ausgabe, wenn Agent in LPLS eintritt |
Ausgabe an Sicherungsschicht, um nicht zum Neuversuch fähige Flits zu erzwingen |
Ausgabe an Sicherungsschicht, um NULL-Flits zu erzwingen |
Ausgabe, wenn sich Sender in Teilbreiten-Verbindungsübertragungszustand (PWLTS) befindet |
Ausgabe, wenn sich Empfänger in PWLTS befindet |
-
CSR-Zeitgebervorgabewerte können in Paaren vorgesehen sein - einer für langsamen Modus und einer für Betriebsgeschwindigkeit. In einigen Fällen deaktiviert der Wert 0 den Zeitgeber (d. h. eine Zeitüberschreitung tritt niemals auf). Zeitgeber können die in der nachstehenden Tabelle 2 gezeigten umfassen. Primäre Zeitgeber können verwendet werden, um erwartete Handlungen in einem Zustand zeitlich zu steuern. Sekundäre Zeitgeber werden zum Abbrechen von Initialisierungen, die nicht fortschreiten, oder zum Durchführen von Vorwärtszustandsübergängen zu genauen Zeitpunkten in einem Modus einer automatisierten Testausrüstung (oder ATE) verwendet. In einigen Fällen können sekundäre Zeitgeber in einem Zustand viel größer sein als die primären Zeitgeber. Exponentiellen Zeitgebersätzen kann exp beigefügt werden und der Zeitgeberwert ist 2 potenziert zum Feldwert. Für lineare Zeitgeber ist der Zeitgeberwert der Feldwert. Beide Zeitgeber könnten verschiedene Granularitäten verwenden. Außerdem können einige Zeitgeber im Leistungsmanagementabschnitt sich in einem Satz befinden, der Zeitsteuerprofil genannt wird. Diese können einem Zeitsteuerdiagramm desselben Namens zugeordnet sein. TABELLE 2
Zeitgeber |
Tabellen-Tpriexp-Satz |
Aufenthalt zum Ansteuern von EIEOS zurücksetzen |
Empfängerkalibrierungs-Minimalzeit; für Senderstaffelung aus |
Senderkalibrierungs-Minimalzeit; für Staffelung ein |
|
Tsecexp-Satz |
Zeitgesteuerte Empfängerkalibrierung |
Zeitgesteuerte Senderkalibrierung |
Rauschsperrenaustritt - Detektion/Entprellen |
DetectAtRx-Überhang für Quittungsaustausch |
Anpassung + Bitverriegelung/Byteverriegelung/Entzerrung |
Verbindungsbreiten konfigurieren |
Auf planetare ausgerichtete einwandfreie Flit-Grenze warten |
Erneute Byteverriegelung/Entzerrung |
|
Tdebugexp-Satz |
Für Einbau im laufenden Betrieb; von 0 verschiedener Wert zur Fehlersuche hängt |
|
TBLSentrv-Satz |
BLS-Eintrittsverzögerung - fein |
BLS-Eintrittsverzögerung - grob |
|
TBLS-Satz |
BLS-Dauer für Sender |
BLS-Dauer für Empfänger |
Einwandfreies BLS-Flit-Intervall für Sender |
Einwandfreies TBLS-Flit-Intervall für Empfänger |
-
Befehls- und Steuerregister können vorgesehen sein. Steuerregister können eine späte Handlung sein und können in einigen Fällen kontinuierlich beim Rücksetzen durch Software gelesen oder geschrieben werden. Werte für späte Handlung können wirksam werden (z. B. von einer der Software zugewandten zu einer der Hardware zugewandten Stufe durchlaufen). Steuer-Semaphoren (vorangestellter CP) sind RW1S und können durch Hardware gelöscht werden. Steuerregister können verwendet werden, um irgendeinen der hier beschriebenen Punkte durchzuführen. Sie können durch Hardware, Software, Firmware oder eine Kombination davon modifizierbar und zugänglich sein.
-
Statusregister können vorgesehen sein, um Hardwareänderungen (geschrieben und verwendet von Hardware) zu verfolgen, und können nur für Lesen sein (aber die Fehlersuchsoftware kann auch in sie schreiben können). Solche Register können sich nicht auf die Zusammenarbeitsfähigkeit auswirken und können typischerweise mit vielen privaten Statusregistern ergänzt werden. Statussemaphoren (vorangestellter SP) können beauftragt werden, da sie durch Software gelöscht werden können, um die Handlungen, die den Status setzen, erneut durchzuführen. Vorgabe bedeutet anfängliche (beim Rücksetzen) Werte können als Teilmenge dieser Statusbits in Bezug auf Initialisierung geliefert werden. Bei einem Initialisierungsabbruch kann dieses Register in eine Speicherstruktur kopiert werden.
-
Werkzeugkastenregister können vorgesehen sein. Testfähigkeitswerkzeugkastenregister in der Bitübertragungsschicht können beispielsweise Mustererzeugungs-, Musterprüfungs- und Prüfschleifensteuermechanismen bereitstellen. Anwendungen höherer Ebene können beispielsweise von diesen Registern zusammen mit elektrischen Parametern Gebrauch machen, um Toleranzen zu bestimmen. Ein eingebauter Zusammenschaltungstest kann beispielsweise diesen Werkzeugkasten verwenden, um Toleranzen zu bestimmen. Für die Senderanpassung können diese Register in Verbindung mit den in vorherigen Abschnitten beschriebenen spezifischen Registern unter anderen Beispielen verwendet werden.
-
In einigen Implementierungen unterstützt HPI Zuverlässigkeits-, Verfügbarkeits- und Dienstfähigkeits- (RAS) Fähigkeiten unter Verwendung der Bitübertragungsschicht. In einer Ausführungsform unterstützt HPI Einbau und Entfernung im laufenden Betrieb mit einer oder mehreren Schichten, die Software umfassen können. Entfernen im laufenden Betrieb kann das Stilllegen der Verbindung umfassen und ein Initialisierungsanfangs-Zustand/Signal kann für den zu entfernenden Agenten gelöscht werden. Ein entfernter Agent (d. h. einer, der nicht entfernt wird (z. B. der Hauptrechneragent)) kann auf langsame Geschwindigkeit gesetzt werden und sein Initialisierungssignal kann auch gelöscht werden. Ein bandinternes Rücksetzen (z. B. durch BLS) kann verursachen, dass beide Agenten in einem Rücksetzzustand warten, wie z. B. einem Kalibrierungsrücksetzzustand (CRS); und der zu entfernende Agent kann entfernt werden (oder kann in gezieltem Anschlussstiftrücksetzen abgeschaltet gehalten werden), unter anderen Beispielen und Merkmalen. Tatsächlich können einige der obigen Ereignisse weggelassen werden und zusätzliche Ereignisse können hinzugefügt werden.
-
Hinzufügen im laufenden Betrieb kann umfassen, dass die Initialisierungsgeschwindigkeit auf langsam vorgegeben wird, und ein Initialisierungssignal kann am hinzuzufügenden Agenten festgelegt werden. Die Software kann die Geschwindigkeit auf langsam setzen und kann das Initialisierungssignal am entfernten Agenten löschen. Die Verbindung kann im langsamen Modus hochkommen und die Software kann eine Betriebsgeschwindigkeit bestimmen. In einigen Fällen wird an diesem Punkt keine PLL-Wiederverriegelung eines entfernten durchgeführt. Die Betriebsgeschwindigkeit kann an beiden Agenten festgelegt werden und eine Freigabe kann zur Anpassung gesetzt werden (wenn nicht vorher durchgeführt). Der Initialisierungsbeginnindikator kann an beiden Agenten gelöscht werden und ein bandinternes BLS-Rücksetzen kann verursachen, dass beide Agenten im CRS warten. Die Software kann ein warmes Rücksetzen (z. B. ein gezieltes oder Selbstrücksetzen) eines (hinzuzufügenden) Agenten aktivieren, was verursachen kann, dass ein PLL erneut verriegelt. Die Software kann auch das Initialisierungsbeginnsignal durch irgendeine bekannte Logik setzen und ferner am entfernten setzen (was es folglich in den Empfängerdetektionszustand (RDS) vorbringt). Die Software kann das warme Rücksetzen des Hinzufügungsagenten deaktivieren (was es folglich in den RDS vorbringt). Die Verbindung kann dann mit der Betriebsgeschwindigkeit in einen Übertragungsverbindungszustand (TLS) unter anderen Beispielen initialisieren (oder auf Prüfschleife, wenn das Anpassungssignal gesetzt wird). Einige der obigen Ereignisse können tatsächlich weggelassen werden und zusätzliche Ereignisse können hinzugefügt werden.
-
Eine Datenbahnausfallrückgewinnung kann unterstützt werden. Eine Verbindung in HPI kann in einer Ausführungsform robust gegen einen harten Fehler auf einer einzigen Bahn durch Selbstkonfigurieren auf weniger als die volle Breite (z. B. weniger als die halbe volle Breite) sein, was dadurch die fehlerhafte Bahn ausschließen kann. Als Beispiel kann die Konfiguration durch die Verbindungszustandsmaschine durchgeführt werden und unbenutzte Bahnen können im Konfigurationszustand ausgeschaltet werden. Folglich kann das Flit mit einer schmäleren Breite unter anderen Beispielen darüber gesendet werden.
-
In einigen Implementierungen von HPI kann eine Bahnumkehr auf einigen Verbindungen unterstützt werden. Die Bahnumkehr kann sich beispielsweise auf die Bahnen 0/1/2... eines Senders beziehen, der mit den Bahnen n/n-1/n-2... eines Empfängers verbunden ist (z. B. kann n gleich 19 oder 7 usw. sein). Die Bahnumkehr kann am Empfänger detektiert werden, wie in einem Feld eines TS-Kopfs identifiziert. Der Empfänger kann die Bahnumkehr durch Starten in einem Abfragezustand unter Verwendung der physikalischen Bahn n...0 für die logische Bahn 0..n handhaben. Daher können sich Bezugnahmen auf eine Bahn auf eine logische Bahnnummer beziehen. Daher können Platinenkonstrukteure effizienter die physikalische oder elektrische Konstruktion verlegen und HPI kann mit virtuellen Bahnzuweisungen arbeiten, wie hier beschrieben. Überdies kann in einer Ausführungsform die Polarität umgekehrt werden (d. h. wenn ein differentieller Sender +/- mit einem Empfänger -/+ verbunden ist. Die Polarität kann auch an einem Empfänger aus einem oder mehreren TS-Kopffeldem detektiert und in einer Ausführungsform im Abfragezustand gehandhabt werden.
-
Mit Bezug auf 11 ist eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkernprozessor dargestellt. Der Prozessor 1100 umfasst irgendeinen Prozessor oder eine Verarbeitungsvorrichtung wie z. B. einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzprozessor, einen in der Hand gehaltenen Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SOC) oder eine andere Vorrichtung zum Ausführen eines Codes. Der Prozessor 1100 umfasst in einer Ausführungsform mindestens zwei Kerne - Kern 1101 und 1102, die asymmetrische Kerne oder symmetrische Kerne (die dargestellte Ausführungsform) umfassen können. Der Prozessor 1100 kann jedoch eine beliebige Anzahl von Verarbeitungselementen umfassen, die symmetrisch oder asymmetrisch sein können.
-
In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Softwareablaufs. Beispiele von Hardwareverarbeitungselementen umfassen: eine Ablaufeinheit, einen Ablaufschlitz, einen Ablauf, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardwareablauf, einen Kern und/oder irgendein anderes Elements, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie z. B. einen Ausführungszustand oder Architekturzustand. Mit anderen Worten, ein Verarbeitungselement bezieht sich in einer Ausführungsform auf irgendeine Hardware, die unabhängig einem Code zugeordnet werden kann, wie z. B. Softwareablauf, Betriebssystem, Anwendung oder anderer Code. Ein physikalischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die potentiell irgendeine Anzahl von anderen Verarbeitungselementen wie z. B. Kerne oder Hardwareabläufe umfasst.
-
Ein Kern bezieht sich häufig auf eine Logik, die in einer integrierten Schaltung angeordnet ist, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jeder unabhängig aufrechterhaltene Architekturzustand mindestens einigen zweckgebundenen Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardwareablauf typischerweise auf irgendeine Logik, die in einer integrierten Schaltung angeordnet ist, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei die unabhängig aufrechterhaltenen Architekturzustände sich den Zugriff auf Ausführungsressourcen teilen. Wie zu sehen ist, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere für einen Architekturzustand zweckgebunden sind, überlappt die Linie zwischen der Nomenklatur eines Hardwareablaufs und eines Kerns. Dennoch werden häufig ein Kern und ein Hardwareablauf durch ein Betriebssystem als individuelle logische Prozessoren betrachtet, wobei das Betriebssystem Operationen an jedem logischen Prozessor individuell planen kann.
-
Der physikalische Prozessor 1100, wie in 11 dargestellt, umfasst zwei Kerne - Kern 1101 und 1102. Hier werden der Kern 1101 und 1102 als symmetrische Kerne betrachtet, d. h. Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. In einer anderen Ausführungsform umfasst der Kern 1101 einen Prozessorkern außer der Reihe, während der Kern 1102 einen Prozessorkern in der Reihe umfasst. Die Kerne 1101 und 1102 können jedoch individuell aus irgendeinem Typ von Kern ausgewählt sein, wie z. B. einem nativen Kern, einem durch Software gemanagten Kern, einem Kern, der dazu ausgelegt ist, eine native Befehlssatzarchitektur (ISA) auszuführen, einem Kern, der dazu ausgelegt ist, eine umgesetzte Befehlssatzarchitektur (ISA) auszuführen, einem mitgestalteten Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine gewisse Form von Umsetzung wie z. B. binäre Umsetzung verwendet werden, um einen Code an einem oder beiden Kernen zu planen oder auszuführen. Um die Erörterung noch zu fördern, werden die Funktionseinheiten, die im Kern 1101 dargestellt sind, nachstehend genauer beschrieben, da die Einheiten im Kern 1102 in der dargestellten Ausführungsform in einer ähnlichen Weise arbeiten.
-
Wie dargestellt, umfasst der Kern 1101 zwei Hardwareabläufe 1101a und 1101b, die auch als Hardwareablaufschlitze 1101a und 1101b bezeichnet werden können. Daher betrachten Softwareentitäten wie z. B. ein Betriebssystem in einer Ausführungsform potentiell den Prozessor 1100 als vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, gleichzeitig vier Softwareabläufe auszuführen. Wie vorstehend angesprochen, ist ein erster Ablauf Architekturzustandsregistern 1101a zugeordnet, ein zweiter Ablauf ist Architekturzustandsregistern 1101b zugeordnet, ein dritter Ablauf kann Architekturzustandsregistern 1102a zugeordnet sein und ein vierter Ablauf kann Architekturzustandsregistern 1102b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (1101a, 1101b, 1102a und 1102b) als Verarbeitungselemente, Ablaufschlitze oder Ablaufeinheiten bezeichnet werden, wie vorstehend beschrieben. Wie dargestellt, sind die Architekturzustandsregister 1101a in die Architekturzustandsregister 1101b kopiert, so dass individuelle Architekturzustände/-kontexte für den logischen Prozessor 1101a und logischen Prozessor 1101b gespeichert werden können. Im Kern 1101 können andere kleinere Ressourcen wie z. B. Befehlszeiger und Umbenennungslogik im Zuweisungs- und Umbenennungsblock 1130 auch für die Abläufe 1101a und 1101b kopiert sein. Einige Ressourcen wie z. B. Umordnungspuffer in der Umordnungs-/Rückzugseinheit 1135, ILTB 1120, Lade/Speicher-Puffer und Warteschlangen können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen wie z. B. interne Universalregister, (ein) Seiten-Tabellen-Basis-Register, Datencache und Daten-TLB 1115 niedriger Ebene, (eine) Ausführungseinheit(en) 1140 und Abschnitte einer Einheit 1135 außer der Reihe werden potentiell vollständig gemeinsam genutzt.
-
Der Prozessor 1100 umfasst häufig andere Ressourcen, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch/für Verarbeitungselemente zweckgebunden sein können. In 11 ist eine Ausführungsform eines rein beispielhaften Prozessors mit erläuternden logischen Einheiten/Ressourcen eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor irgendeine dieser Funktionseinheiten umfassen oder weglassen kann, sowie beliebige andere bekannte Funktionseinheiten, Logik oder Firmware, die nicht dargestellt sind, umfassen kann. Wie dargestellt, umfasst der Kern 1101 einen vereinfachten, repräsentativen Prozessorkern außer der Reihe (OOO). Aber ein Prozessor in der Reihe kann in verschiedenen Ausführungsformen verwendet werden. Der OOO-Kern umfasst einen Zweigzielpuffer 1120, um auszuführende/zu nehmende Zweige vorherzusagen, und einen Befehlsumsetzungspuffer (I-TLB) 1120, um Adressenumsetzungseinträge für Befehle zu speichern.
-
Der Kern 1101 umfasst ferner ein Decodiermodul 1125, das mit einer Abrufeinheit 1120 gekoppelt ist, um abgerufene Elemente zu decodieren. Die Abruflogik umfasst in einer Ausführungsform individuelle Sequenzer, die jeweils den Ablaufschlitzen 1101a, 1101b zugeordnet sind. Gewöhnlich ist der Kern 1101 einer ersten ISA zugeordnet, die Befehle definiert/festlegt, die auf dem Prozessor 1100 ausführbar sind. Häufig umfassen Maschinencodebefehle, die ein Teil der ersten ISA sind, einen Abschnitt des Befehls (als Operationscode bezeichnet), der auf einen durchzuführenden Befehl oder eine durchzuführende Operation Bezug nimmt/diese angibt. Die Decodierlogik 1125 umfasst eine Schaltungsanordnung, die diese Befehle aus ihren Operationscodes erkennt und die decodierten Befehle in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert. Wie nachstehend genauer erörtert, umfassen beispielsweise Decodierer 1125 in einer Ausführungsform eine Logik, die dazu entworfen oder ausgelegt ist, spezifische Befehle zu erkennen, wie z. B. einen Transaktionsbefehl. Infolge der Erkennung durch die Decodierer 1125 unternimmt die Architektur oder der Kern 1101 spezifische, vordefinierte Handlungen, um Aufgaben durchzuführen, die dem geeigneten Befehl zugeordnet sind. Es ist wichtig zu beachten, dass irgendeine der Aufgaben, Blöcke, Operationen und Verfahren, die hier beschrieben sind, in Reaktion auf einen einzelnen oder mehrere Befehle durchgeführt werden können; von denen einige neue oder alte Befehle sein können. Es ist zu beachten, dass die Decodierer 1126 in einer Ausführungsform dieselbe ISA (oder eine Teilmenge davon) erkennen. Alternativ erkennen in einer heterogenen Kemumgebung die Decodierer 1126 eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine unterschiedliche ISA).
-
In einem Beispiel umfasst der Zuweisungs- und Umbenennungsblock 1130 eine Zuweisungseinrichtung, um Ressourcen zu reservieren, wie z. B. Registerdateien, um Befehlsverarbeitungsergebnisse zu speichern. Die Abläufe 1101a und 1101b sind jedoch potentiell in der Lage zur Ausführung außer der Reihe, wobei der Zuweisungs- und Umbenennungsblock 1130 auch andere Ressourcen reserviert, wie z. B. Umordnungspuffer, um Befehlsergebnisse zu verfolgen. Die Einheit 1130 kann auch eine Registerumbenennungseinrichtung umfassen, um Programm/Befehls-Referenzregister in andere Register innerhalb des Prozessors 1100 umzubenennen. Die Umordnungs/Rückzugseinheit 1135 umfasst Komponenten wie z. B. die vorstehend erwähnten Umordnungspuffer, Ladepuffer und Speicherpuffer, um die Ausführung außer der Reihe und den späteren Rückzug in der Reihe von Befehlen, die außer der Reihe ausgeführt werden, zu unterstützen.
-
Der Planungs- und Ausführungseinheitsblock 1140 umfasst in einer Ausführungsform eine Planungseinheit, um Befehle/Betrieb an Ausführungseinheiten zu planen. Ein Gleitkommabefehl wird beispielsweise an einem Port einer Ausführungseinheit geplant, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind auch enthalten, um Informationsbefehlsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkomma-Ausfiihrungseinheit, eine Ganzzahlen-Ausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausfuhrungseinheit und andere bekannte Ausführungseinheiten.
-
Ein Datencache niedrigerer Ebene und ein Datenumsetzungspuffer (D-TLB) 1150 sind mit der (den) Ausführungseinheit(en) 1140 gekoppelt. Der Datencache soll kürzlich verwendete/bearbeitete Elemente wie z. B. Datenoperanden speichern, die potentiell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll neue Umsetzungen von virtueller/linearer in physikalische Adresse speichern. Als spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur umfassen, um den physikalischen Speicher in mehrere virtuelle Seiten aufzuteilen.
-
Hier teilen sich die Kerne 1101 und 1102 den Zugriff auf einen Cache höherer Ebene oder weiter draußen, wie z. B. einen Cache zweiter Ebene, der einer Schnittstelle 1110 auf dem Chip zugeordnet ist. Es ist zu beachten, dass sich höhere Ebene oder weiter draußen auf Cacheebenen bezieht, die von der (den) Ausführungseinheiten) zunehmen oder weiter weg gelangen. In einer Ausführungsform ist ein Cache höherer Ebene ein Datencache der letzten Ebene - der letzte Cache in der Speicherhierarchie im Prozessor 1100 - wie z. B. ein Datencache zweiter oder dritter Ebene. Der Cache höherer Ebene ist jedoch nicht so begrenzt, da er einem Befehlscache zugeordnet sein kann oder diesen umfassen kann. Ein Spurencache - ein Typ eines Befehlscaches - kann stattdessen nach dem Decodierer 1125 gekoppelt sein, um kürzlich decodierte Spuren zu speichern. Hier bezieht sich ein Befehl potentiell auf einen Makrobefehl (d. h. einen allgemeinen Befehl, der von den Decodierern erkannt wird), der in eine Anzahl von Mikrobefehlen (Mikrooperationen) decodieren kann.
-
In der dargestellten Konfiguration umfasst der Prozessor 1100 auch ein Schnittstellenmodul 1110 auf dem Chip. Historisch wurde eine Speichersteuereinheit, die nachstehend genauer beschrieben wird, in ein Rechensystem außerhalb des Prozessors 1100 aufgenommen. In diesem Szenario soll die Schnittstelle 111 auf dem Chip mit Vorrichtungen außerhalb des Prozessors 1100 wie z. B. dem Systemspeicher 1175, einem Chipsatz (häufig mit einem Speichersteuereinheitsknotenpunkt, um mit dem Speicher 1175 zu verbinden, und einem E/A-Steuereinheitsknotenpunkt, um Peripheriegeräte zu verbinden), einem Speichersteuereinheitsknotenpunkt, einer Northbridge oder einer integrierten Schaltung kommunizieren. Und in diesem Szenario kann der Bus 1105 irgendeine bekannte Zusammenschaltung wie z. B. einen Multidrop-Bus, eine Punkt-zu-Punkt-Zusammenschaltung, eine serielle Zusammenschaltung, einen parallelen Bus, einen kohärenten (z. B. Cache-kohärenten) Bus, eine Schichtenprotokollarchitektur, einen differentiellen Bus und einen GTL-Bus umfassen.
-
Der Speicher 1175 wurde für den Prozessor 1100 zweckgebunden oder mit anderen Vorrichtungen in einem System gemeinsam genutzt. Übliche Beispiele von Typen von Speicher 1175 umfassen DRAM, SRAM, einen nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 1180 einen Graphikbeschleuniger, einen Prozessor oder eine Karte, die mit einem Speichersteuereinheitsknotenpunkt gekoppelt ist, einen Datenspeicher, der mit einem E/A-Steuereinheitsknotenpunkt gekoppelt ist, einen drahtlosen Sender/Empfänger, eine Flash-Vorrichtung, eine Audiosteuereinheit, eine Netzsteuereinheit oder eine andere bekannte Vorrichtung umfassen kann.
-
Da jedoch in letzter Zeit mehr Logik und Vorrichtungen auf einem einzelnen Chip integriert werden, wie z. B. SOC, kann jede dieser Vorrichtungen in den Prozessor 1100 integriert sein. In einer Ausführungsform befindet sich beispielsweise ein Speichersteuereinheitsknotenpunkt auf demselben Baustein und/oder Chip mit dem Prozessor 1100. Hier umfasst ein Abschnitt des Kerns (ein Abschnitt am Kern) 1110 eine oder mehrere Steuereinheit(en) zum Koppeln mit anderen Vorrichtungen wie z. B. dem Speicher 1175 oder einer Graphikvorrichtung 1180 über eine Schnittstelle. Die Konfiguration mit einer Zusammenschaltung und Steuereinheiten zum Koppeln mit solchen Vorrichtungen über eine Schnittstelle wird häufig als am Kern (oder Uncore-Konfiguration) bezeichnet. Als Beispiel umfasst die Schnittstelle 1110 auf dem Chip eine Ringzusammenschaltung für die Kommunikation auf dem Chip und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 1105 für die Kommunikation außerhalb des Chips. Dennoch können in der SOC-Umgebung noch mehr Vorrichtungen wie z. B. die Netzschnittstelle, Coprozessoren, der Speicher 1175, der Graphikprozessor 1180 und beliebige bekannte Computervorrichtungen/eine beliebige Schnittstelle auf einem einzelnen Chip oder einer integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Leistungsverbrauch zu schaffen.
-
In einer Ausführungsform ist der Prozessor 1100 in der Lage, einen Kompilierer, eine Optimierung und/oder einen Übersetzercode 1177 auszuführen, um einen Anwendungscode 1176 zu kompilieren, zu übersetzen und/oder zu optimieren, um die Geräte und Verfahren, die hier beschrieben sind, zu unterstützen oder damit über eine Schnittstelle zu koppeln. Ein Kompilierer umfasst häufig ein Programm oder einen Satz von Programmen, um einen Quellentext/Quellencode in einen Zieltext/Zielcode zu übersetzen. Gewöhnlich wird eine Kompilierung eines Programms/Anwendungscodes mit einem Kompilierer in mehreren Phasen und Durchgängen durchgeführt, um einen Programmiersprachencode hoher Ebene in einen Maschinen- oder Assemblersprachencode niedriger Ebene zu transformieren. Dennoch können Kompilierer mit einzigem Durchgang immer noch für eine einfache Kompilierung verwendet werden. Ein Kompilierer kann beliebige bekannte Kompilierungstechniken verwenden und beliebige bekannte Kompiliereroperationen durchführen, wie z. B. lexikalische Analyse, Vorverarbeitung, syntaktische Analyse, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
-
Größere Kompilierer umfassen häufig mehrere Phasen, aber am häufigsten sind diese Phasen innerhalb zwei allgemeinen Phasen enthalten: (1) ein Vorderende, d. h. wo im Allgemeinen eine syntaktische Verarbeitung, semantische Verarbeitung und eine gewisse Transformation/Optimierung stattfinden können, und (2) ein Hinterende, d. h. wo im Allgemeinen Analyse, Transformationen, Optimierungen und Codeerzeugung stattfinden. Einige Kompilierer beziehen sich auf eine Mitte, die die Unschärfe der Abgrenzung zwischen einem Vorderende und Hinterende eines Kompilierers darstellt. Folglich kann eine Bezugnahme auf Einfügung, Zuordnung, Erzeugung oder eine andere Operation eines Kompilierers in irgendeiner der vorstehend erwähnten Phasen oder Durchgänge sowie irgendwelchen anderen bekannten Phasen oder Durchgängen eines Kompilierers stattfinden. Als erläuterndes Beispiel fügt ein Kompilierer potentiell Operationen, Aufrufe, Funktionen usw. in einer oder mehreren Kompilierungsphasen ein, wie z. B. Einfügung von Aufrufen/Operationen in einer Vorderendphase der Kompilierung und dann Transformation der Aufrufe/Operationen in einen Code niedrigerer Ebene während einer Transformationsphase. Es ist zu beachten, dass während der dynamischen Kompilierung der Kompilierercode oder dynamische Optimierungscode solche Operationen/Aufrufe einfügen sowie den Code für die Ausführung während der Laufzeit optimieren kann. Als spezifisches erläuterndes Beispiel kann der binäre Code (bereits kompilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den binären Code oder eine Kombination davon umfassen.
-
Ähnlich zu einem Kompilierer übersetzt ein Übersetzer wie z. B. ein binärer Übersetzer den Code entweder statisch oder dynamisch, um den Code zu optimieren und/oder zu übersetzen. Daher kann sich eine Bezugnahme auf die Ausführung eines Codes, Anwendungscodes, Programmcodes oder einer anderen Softwareumgebung beziehen auf: (1) die Ausführung eines Kompiliererprogramms (von Kompiliererprogrammen), eines Optimierungscodeoptimierers oder Übersetzers entweder dynamisch oder statisch, um einen Programmcode zu kompilieren, Softwarestrukturen aufrechtzuerhalten, andere Operationen durchzuführen, den Code zu optimieren oder den Code zu übersetzen; (2) Ausführung eines Hauptprogrammcodes mit Operationen/Aufrufen, wie z. B. eines Anwendungscodes, der optimiert/kompiliert wurde; (3) Ausführung eines anderen Programmcodes wie z. B. Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Softwarestrukturen aufrechtzuerhalten, andere auf Software bezogene Operationen durchzuführen oder den Code zu optimieren; oder (4) eine Kombination davon.
-
Mit Bezug auf 12 ist ein Blockdiagramm einer Ausführungsform eines Mehrkern-Prozessors gezeigt. Wie in der Ausführungsform von 12 gezeigt, umfasst der Prozessor 1200 mehrere Domänen. Insbesondere umfasst eine Kerndomäne 1230 mehrere Kerne 1230A-1230N, eine Graphikdomäne 1260 umfasst eine oder mehrere Graphikmaschinen mit einer Medienmaschine 1265 und eine Systemagentendomäne 1210.
-
In verschiedenen Ausführungsformen behandelt die Systemagentendomäne 1210 Leistungssteuerereignisse und Leistungsmanagement, so dass individuelle Einheiten der Domänen 1230 und 1260 (z. B. Kerne und/oder Graphikmaschinen) unabhängig steuerbar sind, um dynamisch in einem geeigneten Leistungsmodus/einer geeigneten Ebene zu arbeiten (z. B. einem aktiven, Turbo-, Schlaf-, Winterschlaf-, Tiefschlaf- oder anderen Zustand nach Art einer fortschrittlichen Konfigurationsleistungsschnittstelle) angesichts der Aktivität (oder Inaktivität), die in der gegebenen Einheit stattfindet. Jede der Domänen 1230 und 1260 kann mit unterschiedlicher Spannung und/oder Leistung arbeiten und ferner arbeiten die individuellen Einheiten innerhalb der Domänen jeweils potentiell mit einer unabhängigen Frequenz und Spannung. Es ist zu beachten, dass, obwohl nur mit drei Domänen ge- zeigt, selbstverständlich der Schutzbereich der vorliegenden Erfindung nicht in dieser Hinsicht begrenzt ist und zusätzliche Domänen in anderen Ausführungsformen vorhanden sein können.
-
Wie gezeigt, umfasst jeder Kern 1230 ferner Caches niedriger Ebene zusätzlich zu verschiedenen Ausführungseinheiten und zusätzliche Verarbeitungselemente. Hier sind die verschiedenen Kerne miteinander und mit einem gemeinsam genutzten Cache-Speicher, der aus mehrere Einheiten oder Stücken eines Caches letzter Ebene (LLC) 1240A-1240N ausgebildet ist, gekoppelt; diese LLCs umfassen häufig eine Speicher- und Cache-Steuereinheitsfunktionalität und werden unter den Kernen sowie potentiell auch unter der Graphikmaschine gemeinsam genutzt.
-
Wie zu sehen, koppelt eine Ringzusammenschaltung 1250 die Kerne miteinander und schafft eine Zusammenschaltung zwischen der Kerndomäne 1230, der Graphikdomäne 1260 und der Systemagentenschaltungsanordnung 1210 über mehrere Ringstopps 1252A-1252N jeweils an einer Kopplung zwischen einem Kern und LLC-Stück. Wie in 12 zu sehen ist, wird die Zusammenschaltung 1250 verwendet, um verschiedene Informationen zu übertragen, einschließlich Adresseninformationen, Dateninformationen, Bestätigungsinformationen und Spionage/ungültige Informationen. Obwohl eine Ringzusammenschaltung dargestellt ist, kann irgendeine bekannte Zusammenschaltung auf dem Chip oder Gebilde verwendet werden. Als erläuterndes Beispiel können einige der vorstehend erörterten Gebilde (z. B. eine andere Zusammenschaltung auf dem Chip, ein Systemgebilde auf dem Chip (OSF), eine fortschrittliche Mikrocontrollerbusarchitektur-Zusammenschaltung (AMBA-Zusammenschaltung), ein mehrdimensionales Netzgebilde oder eine andere bekannte Zusammenschaltungsarchitektur) in einer ähnlichen Weise verwendet werden.
-
Wie weiter dargestellt, umfasst die Systemagentendomäne 1210 eine Anzeigemaschine 1212, die eine Steuerung von und eine Schnittstelle zu einer zugehörigen Anzeige bereitstellen soll. Die Systemagentendomäne 1210 kann andere Einheiten umfassen, wie z. B.: eine integrierte Speichersteuereinheit 1220, die eine Schnittstelle zu einem Systemspeicher bereitstellt (z. B. einem DRAM, der mit mehreren DIMMs implementiert wird); eine Kohärenzlogik 1222, um Speicherkohärenzoperationen durchzuführen. Mehrere Schnittstellen können vorhanden sein, um eine Zusammenschaltung zwischen dem Prozessor und einer anderen Schaltungsanordnung zu ermöglichen. In einer Ausführungsform ist beispielsweise mindestens eine direkte Medienschnittstelle (DMI) 1216 sowie eine oder mehrere PCIe™-Schnittstellen 1214 vorgesehen. Die Anzeigemaschine und diese Schnittstellen koppeln typischerweise mit einem Speicher über eine PCIe™-Brücke 1218. Um Kommunikationen zwischen anderen Agenten zu schaffen, wie z. B. zusätzlichen Prozessoren oder einer anderen Schaltungsanordnung, können noch ferner eine oder mehrere andere Schnittstellen vorgesehen sein.
-
Mit Bezug auf 13 ist ein Blockdiagramm eines repräsentativen Kerns gezeigt; insbesondere logische Blöcke eines Hinterendes eines Kerns wie z. B. des Kerns 1230 von 12. Im Allgemeinen umfasst die in 13 gezeigte Struktur einen Prozessor außer der Reihe, der eine Vorderendeinheit 1370 aufweist, die verwendet wird, um ankommende Befehle abzurufen, eine unterschiedliche Verarbeitung (z. B. Cachen, Decodieren, Zweigvorhersage usw.) durchzuführen, und Befehle/Operationen entlang einer Maschine 1380 außer der Reihe (OOO) zu leiten. Die OOO-Maschine 1380 führt eine weitere Verarbeitung an decodierten Befehlen durch.
-
Insbesondere umfasst in der Ausführungsform von 13 die Maschine 1380 außer der Reihe eine Zuweisungseinheit 1382, um decodierte Befehle, die in Form von einem oder mehreren Mikrobefehlen oder uops vorliegen können, von der Vorderendeinheit 1370 zu empfangen und sie geeigneten Ressourcen wie z. B. Registern und so weiter zuzuweisen. Als nächstes werden die Befehle zu einer Reservierungsstation 1384 geliefert, die Ressourcen reserviert und sie für die Ausführung an einer von mehreren Ausführungseinheiten 1386A-1386N plant. Verschiedene Typen von Ausführungseinheiten können vorhanden sein, einschließlich unter anderen beispielsweise arithmetischen Logikeinheiten (ALUs), Lade- und Speichereinheiten, Vektorverarbeitungseinheiten (VPUs), Gleitkomma-Ausführungseinheiten. Die Ergebnisse von diesen verschiedenen Ausführungseinheiten werden zu einem Umordnungspuffer (ROB) 1388 geliefert, der ungeordnete Ergebnisse annimmt und sie in der korrekten Programmreihenfolge zurückgibt.
-
Immer noch mit Bezug auf 13 ist zu beachten, dass sowohl die Vorderendeinheit 1370 als auch die Maschine 1380 außer der Reihe mit verschiedenen Ebenen einer Speicherhierarchie gekoppelt sind. Insbesondere ist ein Befehlsebenencache 1372 gezeigt, der wiederum mit einem Cache 1376 mittlerer Ebene koppelt, der wiederum mit einem Cache 1395 letzter Ebene koppelt. In einer Ausführungsform wird der Cache 1395 letzter Ebene in einer Einheit 1390 auf dem Chip (manchmal als Uncore bezeichnet) implementiert. Als Beispiel ist die Einheit 1390 ähnlich zum Systemagenten 1210 von 12. Wie vorstehend erörtert, kommuniziert der Uncore 1390 mit dem Systemspeicher 1399, der in der dargestellten Ausführungsform über einen ED-RAM implementiert wird. Es ist auch zu beachten, dass die verschiedenen Ausführungseinheiten 1386 innerhalb der Maschine 1380 außer der Reihe mit einem Cache 1374 erster Ebene in Kommunikation stehen, der auch mit einem Cache 1376 mittlerer Ebene in Kommunikation steht. Es ist auch zu beachten, dass zusätzliche Kerne 1330N-2 - 1330N mit LLC 1395 koppeln können. Obwohl in der Ausführungsform von 13 auf dieser hohen Ebene gezeigt, können selbstverständlich verschiedene Änderungen und zusätzliche Komponenten vorhanden sein.
-
Wenn man sich 14 zuwendet, ist ein Blockdiagramm eines beispielhaften Computersystems, das mit einem Prozessor ausgebildet ist, der Ausführungseinheiten umfasst, um einen Befehl auszuführen, wobei eine oder mehrere der Zusammenschaltungen ein oder mehrere Merkmale gemäß einer Ausführungsform der vorliegenden Erfindung implementieren, dargestellt. Das System 1400 umfasst eine Komponente wie z. B. einen Prozessor 1402, um Ausführungseinheiten mit einer Logik zu verwenden, um Algorithmen für Prozessdaten gemäß der vorliegenden Erfindung durchzuführen, wie z. B. in der hier beschriebenen Ausführungsform. Das System 1400 ist für Verarbeitungssysteme auf der Basis der Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™ repräsentativ, obwohl andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Konstruktionsarbeitsplatzrechner, Digitalempfänger und dergleichen) auch verwendet werden können. In einer Ausführungsform führt das Mustersystem 1400 eine Version des WINDOWS™-Betriebssystems aus, das von Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl andere Betriebssysteme (beispielsweise UNIX und Linux), eingebettete Software und/oder graphische Benutzerschnittstellen auch verwendet werden können. Folglich sind die Ausführungsformen der vorliegenden Erfindung nicht auf irgendeine spezifische Kombination einer Hardwareschaltungsanordnung und Software begrenzt.
-
Ausführungsformen sind nicht auf Computersysteme begrenzt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen verwendet werden, wie z. B. in der Hand gehaltenen Vorrichtungen und eingebetteten Anwendungen. Einige Beispiele von in der Hand gehaltenen Vorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und in der Hand gehaltene PCs. Eingebettete Anwendungen können einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Digitalempfänger, Netzknotenpunkte, Schalter eines weiträumigen Netzes (WAN) oder irgendein anderes System, das einen oder mehrere Befehle gemäß mindestens einer Ausführungsform durchführen kann, umfassen.
-
In dieser dargestellten Ausfuhrungsform umfasst der Prozessor 1402 eine oder mehrere Ausführungseinheiten 1408, um einen Algorithmus zu implementieren, der mindestens einen Befehl durchführen soll. Eine Ausfuhrungsform kann im Zusammenhang mit einem Einzel-Prozessor-Desktop- oder Serversystem beschrieben werden, aber alternative Ausführungsformen können in einem Mehrprozessorsystem enthalten sein. Das System 1400 ist ein Beispiel einer „Knotenpunkt“-Systemarchitektur. Das Computersystem 1400 umfasst einen Prozessor 1402, um Datensignale zu verarbeiten. Der Prozessor 1402 umfasst als ein erläuterndes Beispiel einen Computermikroprozessor mit komplexem Befehlssatz (CISC-Mikroprozessor), einen Rechenmikroprozessor mit verringertem Befehlssatz (RISC-Mikroprozessor), einen Mikroprozessor für sehr lange Befehlsworte (VLIW-Mikroprozessor), einen Prozessor, der eine Kombination von Befehlssätzen implementiert, oder irgendeine andere Prozessorvorrichtung wie beispielsweise einen Digitalsignalprozessor. Der Prozessor 1402 ist mit einem Prozessorbus 1410 gekoppelt, der Datensignale zwischen dem Prozessor 1402 und anderen Komponenten im System 1400 überträgt. Die Elemente des Systems 1400 (z. B. Graphikbeschleuniger 1412, Speichersteuereinheitsknotenpunkt 1416, Speicher 1420, E/A-Steuereinheitsknotenpunkt 1424, drahtloser Sender/Empfänger 1426, Flash-BIOS 1428, Netzsteuereinheit 1434, Audiosteuereinheit 1436, serieller Erweiterungsport 1438, E/A-Steuereinheit 1440 usw.) führen ihre herkömmlichen Funktionen durch, die dem Fachmann auf dem Gebiet gut bekannt sind.
-
In einer Ausführungsform umfasst der Prozessor 1402 einen internen Cachespeicher 1404 der Ebene 1 (L1). In Abhängigkeit von der Architektur kann der Prozessor 1402 einen einzelnen internen Cache oder mehrere Ebenen von internen Caches aufweisen. Andere Ausführungsformen umfassen eine Kombination von sowohl internen als auch externen Caches in Abhängigkeit von der speziellen Implementierung und den Bedürfnissen. Die Registerdatei 1406 soll verschiedene Typen von Daten in verschiedenen Registern speichern, einschließlich Ganzzahlenregistern, Gleitkommaregistern, Vektorregistern, überhöhten Registern, Schattenregistern, Prüfpunktregistern, Statusregistern und Befehlszeigerregistern.
-
Die Ausführungseinheit 1408 mit einer Logik, um Ganzzahlen- und Gleitkommaoperationen durchzuführen, befindet sich auch im Prozessor 1402. Der Prozessor 1402 umfasst in einer Ausführungsform einen Mikrocode-ROM (µCode-ROM), um einen Mikrocode zu speichern, der, wenn er ausgeführt wird, Algorithmen für bestimmte Makrobefehle durchführen oder komplexe Szenarios handhaben soll. Hier ist der Mikrocode potentiell aktualisierungsfähig, um Logikfehler/Logikdilemmas für den Prozessor 1402 zu handhaben. Für eine Ausführungsform umfasst die Ausführungseinheit 1408 eine Logik, um einen gepackten Befehlssatz 1409 zu handhaben. Durch Einschließen des gepackten Befehlssatzes 1409 in den Befehlssatz eines Universalprozessors 1402 zusammen mit einer zugehörigen Schaltungsanordnung zum Ausführen der Befehle können die von vielen Multimediaanwendungen verwendeten Operationen unter Verwendung von gepackten Daten in einem Universalprozessor 1402 durchgeführt werden. Folglich werden viele Multimediaanwendungen beschleunigt und effizienter ausgeführt unter Verwendung der vollen Breite des Datenbusses eines Prozessors zum Durchführen von Operationen an gepackten Daten. Dies beseitigt potentiell den Bedarf, kleinere Einheiten von Daten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen, ein Datenelement auf einmal durchzuführen.
-
Alternative Ausführungsformen einer Ausführungseinheit 1408 können auch in Mikrocontrollern, eingebetteten Prozessoren, Graphikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. Das System 1400 umfasst einen Speicher 1420. Der Speicher 1420 umfasst eine Vorrichtung eines dynamischen Direktzugriffsspeichers (DRAM), eine Vorrichtung eines statischen Direktzugriffsspeichers (SRAM), eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung. Der Speicher 1420 speichert Befehle und/oder Daten, die durch Datensignale dargestellt werden, die durch den Prozessor 1402 ausgeführt werden sollen.
-
Es ist zu beachten, dass beliebige der vorstehend erwähnten Merkmale oder Aspekte der Erfindung an einer oder mehreren Zusammenschaltungen, die in 14 dargestellt sind, verwendet werden können. Eine Zusammenschaltung auf dem Chip (ODI), die nicht gezeigt ist, zum Koppeln von internen Einheiten des Prozessors 1402 implementiert beispielsweise einen oder mehrere Aspekte der vorstehend beschriebenen Erfindung. Oder die Erfindung ist einem Prozessorbus 1410 (z. B. andere bekannte Hochleistungs-Rechenzusammenschaltung), einem Speicherpfad 1418 mit hoher Bandbreite zum Speicher 1420, einer Punkt-zu-Punkt-Verbindung zum Graphikbeschleuniger 1412 (z. B. einem mit Peripheriekomponenten-Zusammenschaltungsexpress (PCIe) kompatiblen Gebilde), einer Steuereinheitsknotenpunkt-Zusammenschaltung 1422, einer E/A oder anderen Zusammenschaltung (z. B. USB, PCI, PCIe) zum Koppeln der anderen dargestellten Komponenten zugeordnet. Einige Beispiele von solchen Komponenten umfassen die Audiosteuereinheit 1436, einen Firmware-Knotenpunkt (Flash-BIOS) 1428, einen drahtlosen Sender/Empfänger 1426, einen Datenspeicher 1424, eine veraltete E/A-Steuereinheit 1410, die Benutzereingabe- und Tastaturschnittstellen 1442 umfasst, einen seriellen Erweiterungsport 1438 wie z. B. einen universellen seriellen Bus (USB) und eine Netzsteuereinheit 1434. Die Datenspeichervorrichtung 1424 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
-
Mit Bezug auf 15 ist ein Blockdiagramm eines zweiten Systems 1500 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 15 gezeigt, ist das Mehrprozessorsystem 1500 ein Punkt-zu-Punkt-Zusammenschaltungssystem und umfasst einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Zusammenschaltung 1550 gekoppelt sind. Jeder der Prozessoren 1570 und 1580 kann eine gewisse Version eines Prozessors sein. In einer Ausführungsform sind 1552 und 1554 ein Teil eines seriellen, kohärenten Punkt-zu-Punkt-Zusammenschaltungsgebildes wie z. B. einer Hochleistungsarchitektur. Folglich kann die Erfindung innerhalb der QPI-Architektur implementiert werden.
-
Obwohl nur mit zwei Prozessoren 1570, 1580 gezeigt, ist der Schutzbereich der vorliegenden Erfindung selbstverständlich nicht so begrenzt. In anderen Ausführungsformen können einer oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
-
Die Prozessoren 1570 und 1580 sind mit integrierten Speichersteuereinheiten 1572 bzw. 1582 gezeigt. Der Prozessor 1570 umfasst auch als Teil seiner Bussteuereinheiten Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1576 und 1578; ebenso umfasst der zweite Prozessor 1580 P-P-Schnittstellen 1586 und 1588. Die Prozessoren 1570, 1580 können Informationen über eine Punkt-zu-Punkt-Schnittstelle (P-P-Schnittstelle) 1550 unter Verwendung von P-P-Schnittstellenschaltungen 1578, 1588 austauschen. Wie in 15 gezeigt, koppeln IMCs 1572 und 1582 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1532 und einem Speicher 1534, die Abschnitte eines Hauptspeichers sein können, der an den jeweiligen Prozessoren lokal angebracht ist.
-
Die Prozessoren 1570, 1580 tauschen jeweils Informationen mit einem Chipsatz 1590 über individuelle P-P-Schnittstellen 1552, 1554 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1576, 1594, 1586, 1598 aus. Der Chipsatz 1590 tauscht auch Informationen mit einer Hochleistungs-Graphikschaltung 1538 über eine Schnittstellenschaltung 1592 entlang einer Hochleistungs-Graphikzusammenschaltung 1539 aus.
-
Ein gemeinsam genutzter Cache (nicht dargestellt) kann entweder im Prozessor oder außerhalb beider Prozessoren enthalten sein; dennoch mit den Prozessoren über eine P-P-Zusammenschaltung verbunden sein, so dass lokale Cache-Informationen von einem oder beiden Prozessoren im gemeinsam genutzten Cache gespeichert werden können, wenn ein Prozessor in einen leistungsarmen Modus gesetzt wird.
-
Der Chipsatz 1590 kann mit einem ersten Bus 1516 über eine Schnittstelle 1596 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1516 ein Peripheriekomponenten-Zusammenschaltungsbus (PCI-Bus) oder ein Bus wie z. B. ein PCI-Expressbus oder ein anderer E/A-Zusammenschaltungsbus der dritten Generation sein, obwohl der Schutzbereich der vorliegenden Erfindung nicht so begrenzt ist.
-
Wie in 15 gezeigt, sind verschiedene E/A-Vorrichtungen 1514 mit dem ersten Bus 1516 zusammen mit einer Busbrücke 1518 gekoppelt, die den ersten Bus 1516 mit einem zweiten Bus 1520 koppelt. In einer Ausführungsform umfasst der zweite Bus 1520 einen Bus mit niedriger Anschlussstiftzahl (LPC). Verschiedene Vorrichtungen sind mit dem zweiten Bus 1520 gekoppelt, einschließlich beispielsweise in einer Ausführungsform einer Tastatur und/oder einer Maus 1522, Kommunikationsvorrichtungen 1527 und einer Speichereinheit 1528 wie z. B. eines Plattenlaufwerks oder einer anderer Massenspeichervorrichtung, die häufig Befehle/Code und Daten 1530 umfasst. Ferner ist ein Audio-E/A 1524 mit dem zweiten Bus 1520 gekoppelt gezeigt. Es ist zu beachten, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zusammenschaltungsarchitekturen variieren. Anstelle der Punkt-zu-Punkt-Architektur von 15 kann ein System beispielsweise einen Multidrop-Bus oder eine andere solche Architektur implementieren.
-
Wenn man sich als nächstes 16 zuwendet, ist eine Ausführungsform einer Konstruktion eines Systems auf einem Chip (SOC) gemäß den Erfindungen dargestellt. Als spezifisches erläuterndes Beispiel ist ein SOC 1600 in einer Benutzerausrüstung (UE) enthalten. In einer Ausfuhrungsform bezieht sich die UE auf irgendeine Vorrichtung, die von einem Endbenutzer verwendet werden soll, um zu kommunizieren, wie z. B. ein in der Hand gehaltenes Telefon, ein Smartphone, ein Tablet, ein ultradünnes Notebook, ein Notebook mit einem Breitbandadapter oder irgendeine andere ähnliche Kommunikationsvorrichtung. Häufig verbindet eine UE mit einer Basisstation oder einem Knoten, der potentiell in der Art einer Mobilstation (MS) in einem GSM-Netz entspricht.
-
Hier umfasst das SOC 1600 2 Kerne - 1606 und 1607. Ähnlich zur obigen Erörterung können die Kerne 1606 und 1607 einer Befehlssatzarchitektur entsprechen, wie z. B. einem Prozessor auf der Basis von Intel® Architecture Core™, einem Prozessor von Advanced Micro Devices, Inc. (AMD), einem Prozessor auf MIPS-Basis, einer Prozessorkonstruktion auf ARM-Basis oder einem Kunden davon, sowie ihren Lizenznehmern oder Erstanwendern. Die Kerne 1606 und 1607 sind mit einer Cachesteuerung 1608 gekoppelt, die der Busschnittstelleneinheit 1609 und dem L2-Cache 1611 zugeordnet ist, um mit anderen Teilen des Systems 1600 zu kommunizieren. Die Zusammenschaltung 1610 umfasst eine Zusammenschaltung auf dem Chip wie z. B. ein IOSF, AMBA oder eine andere vorstehend erörterte Zusammenschaltung, die potentiell einen oder mehrere hier beschriebene Aspekte implementiert.
-
Die Zusammenschaltung 1610 schafft Kommunikationskanäle für die anderen Komponenten wie z. B. ein Teilnehmeridentitätsmodul (SIM) 1630, um mit einer SIM-Karte über eine Schnittstelle zu koppeln, einen Boot-ROM 1635, um den Boot-Code für die Ausführung durch die Kerne 1606 und 1607 zu halten, um das SOC 1600 zu initialisieren und zu booten, eine SDRAM-Steuereinheit 1640, um mit einem externen Speicher (z. B. DRAM 1660) zu koppeln, eine Flash-Steuereinheit 1645, um mit einem nichtflüchtigen Speicher (z. B. Flash 1665) über eine Schnittstelle zu koppeln, eine periphere Steuerung (1650 (z. B. serielle periphere Schnittstelle), um mit Peripheriegeräten über eine Schnittstelle zu koppeln, Video-Codecs 1620 und eine Videoschnittstelle 1625, um eine Eingabe anzuzeigen und zu empfangen (z. B. eine berührungsfähige Eingabe), GPU 1615, um auf Graphik bezogene Anwendungen durchzuführen, usw. Beliebige dieser Schnittstellen können Aspekte der hier beschriebenen Erfindung beinhalten.
-
Außerdem stellt das System Peripheriegeräte für die Kommunikation dar, wie z. B. ein Bluetooth-Modul 1670, ein 3G-Modem 1675, GPS 1685 und WiFi 1685. Es ist zu beachten, wie vorstehend angegeben, dass eine UE einen Funk zur Kommunikation umfasst. Folglich sind diese peripheren Kommunikationsmodule nicht alle erforderlich. In einer UE soll jedoch eine gewisse Form von Funk für die externe Kommunikation enthalten sein.
-
Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, erkennt der Fachmann auf dem Gebiet zahlreiche Modifikationen und Variationen davon. Es ist beabsichtigt, dass die beigefügten Ansprüche alle solchen Modifikationen und Variationen, die in den wahren Gedanken und Schutzbereich dieser vorliegenden Erfindung fallen, abdecken.
-
Eine Konstruktion kann verschiedene Stufen durchlaufen von der Erzeugung bis zur Simulation bis zur Herstellung. Daten, die eine Konstruktion darstellen, können die Konstruktion in einer Anzahl von Weisen darstellen. Erstens kann, wie in Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen Funktionsbeschreibungssprache dargestellt werden. Außerdem kann ein Schaltungsebenenmodell mit einer Logik und/oder Transistorgates in einigen Stufen des Konstruktionsprozesses erzeugt werden. Ferner erreichen die meisten Konstruktionen in einer gewissen Stufe eine Ebene von Daten, die die physikalische Anordnung von verschiedenen Vorrichtungen im Hardwaremodell darstellen. In dem Fall, in dem herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die die Anwesenheit oder Abwesenheit von verschiedenen Merkmalen an verschiedenen Maskenschichten für Masken festlegen, die verwendet werden, um die integrierte Schaltung herzustellen. In irgendeiner Darstellung der Konstruktion können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Speicher wie z. B. eine Platte kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über eine optische oder elektrische Welle übertragen werden, die moduliert oder anderweitig erzeugt wird, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder die Konstruktion angibt oder trägt, übertragen wird, wird in dem Umfang, in dem Kopieren, Puffern oder Neuübertragung des elektrischen Signals durchgeführt wird, eine neue Kopie erstellt. Folglich kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem konkreten, maschinenlesbaren Medium zumindest vorübergehend einen Gegenstand wie z. B. Informationen speichern, die in einer Trägerwelle codiert sind, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpert.
-
Ein Modul, wie hier verwendet, bezieht sich auf irgendeine Kombination von Hardware, Software und/oder Firmware. Als Beispiel umfasst ein Modul Hardware wie z. B. einen Mikrocontroller, der einem nichtflüchtigen Medium zugeordnet ist, um einen Code zu speichern, der so ausgelegt ist, dass er durch den Mikrocontroller ausgeführt wird. Daher bezieht sich eine Bezugnahme auf ein Modul in einer Ausfuhrungsform auf die Hardware, die spezifisch konfiguriert ist, um den Code zu erkennen und/oder auszuführen, der auf einem nichtflüchtigen Medium gehalten werden soll. Ferner bezieht sich in einer anderen Ausführungsform die Verwendung eines Moduls auf das nichtflüchtige Medium mit dem Code, der spezifisch so ausgelegt ist, dass er vom Mikrocontroller ausgeführt wird, um vorbestimmte Operationen durchzuführen. Und wie abgeleitet werden kann, kann sich in noch einer weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nichtflüchtigen Mediums beziehen. Modulgrenzen, die als separat dargestellt sind, variieren üblicherweise häufig und überlappen potentiell. Ein erstes und ein zweites Modul kann sich beispielsweise Hardware, Software, Firmware oder eine Kombination davon teilen, während eine gewisse unabhängige Hardware, Software oder Firmware potentiell aufrechterhalten wird. In einer Ausführungsform umfasst die Verwendung des Begriffs Logik Hardware wie z. B. Transistoren, Register oder eine andere Hardware wie z. B. programmierbare Logikvorrichtungen.
-
Die Verwendung des Ausdrucks „dazu konfiguriert“ bezieht sich in einer Ausführungsform auf das Anordnen, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Konstruieren eines Geräts, einer Hardware, einer Logik oder eines Elements, um eine festgelegte oder bestimmte Aufgabe durchzuführen. In diesem Beispiel ist ein Gerät oder ein Element davon, das nicht arbeitet, immer noch „dazu konfiguriert“, eine festgelegte Aufgabe durchzuführen, wenn es entworfen, gekoppelt und/oder zusammengeschaltet ist, um die festgelegte Aufgabe durchzuführen. Als rein erläuterndes Beispiel kann ein Logikgatter eine 0 oder eine 1 während des Betriebs liefern. Aber ein Logikgatter, das „dazu konfiguriert“ ist, ein Freigabesignal für einen Takt zu liefern, umfasst nicht jedes potentielle Logikgatter, das eine 1 oder eine 0 liefern kann. Stattdessen ist das Logikgatter eines, das in gewisser Weise gekoppelt ist, damit während des Betriebs die 1- oder 0-Ausgabe den Takt freigeben soll. Wiederum ist zu beachten, dass die Verwendung des Begriffs „dazu konfiguriert“ keine Operation erfordert, sondern stattdessen auf den latenten Zustand eines Geräts, einer Hardware und/oder eines Elements gerichtet ist, wobei im latenten Zustand das Gerät, die Hardware und/oder das Element dazu ausgelegt ist, eine spezielle Aufgabe durchzuführen, wenn das Gerät, die Hardware und/oder das Element arbeitet.
-
Ferner bezieht sich die Verwendung der Ausdrücke „zu“, „in der Lage zum“ und/oder „betriebsfähig zum“ in einer Ausfuhrungsform auf irgendein Gerät, irgendeine Logik, irgendeine Hardware und/oder irgendein Element, das in einer solchen Weise ausgelegt ist, dass die Verwendung des Geräts, der Logik, der Hardware und/oder des Elements in einer festgelegten Weise ermöglicht wird. Es ist wie vorstehend zu beachten, dass die Verwendung von zu, in der Lage zum oder betriebsfähig zum in einer Ausführungsform sich auf den latenten Zustand eines Geräts, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei das Gerät, die Logik, die Hardware und/oder das Element nicht arbeiten, aber in einer solchen Weise konstruiert sind, dass die Verwendung eines Geräts in einer festgelegten Weise ermöglicht wird.
-
Ein Wert, wie hier verwendet, umfasst irgendeine bekannte Darstellung einer Zahl, eines Zustandes, eines logischen Zustandes oder eines binären logischen Zustandes. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1-en und 0-en bezeichnet, die einfach binäre Logikzustände darstellen. Eine 1 bezieht sich beispielsweise auf einen hohen Logikpegel und 0 bezieht sich auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle wie z. B. eine Transistor- oder Flash-Zelle in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Die Dezimalzahl zehn kann beispielsweise auch als binärer Wert von 1010 und hexadezimaler Buchstabe A dargestellt werden. Daher umfasst ein Wert irgendeine Darstellung von Informationen, die in einem Computersystem gehalten werden können.
-
Überdies können Zustände durch Werte oder Teile von Werten dargestellt werden. Als Beispiel kann ein erster Wert wie z. B. eine logische Eins einen Vorgabe- oder anfänglichen Zustand darstellen, während ein zweiter Wert wie z. B. eine logische Null einen Nicht-Vorgabe-Zustand darstellen kann. Außerdem beziehen sich die Begriffe Rücksetzen und Setzen in einer Ausführungsform auf einen Vorgabe- bzw. einen aktualisierten Wert oder Zustand. Ein Vorgabewert umfasst beispielsweise potentiell einen hohen logischen Wert, d. h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert, d. h. Setzen, umfasst. Es ist zu beachten, dass irgendeine Kombination von Werten verwendet werden kann, um irgendeine Anzahl von Zuständen darzustellen.
-
Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder eines Codes, die vorstehend dargelegt sind, können über Befehle oder einen Code, der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert ist, die von einem Verarbeitungselement ausführbar sind, implementiert werden. Ein nichtflüchtiges maschinenzugängliches/maschinenlesbares Medium umfasst irgendeinen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die von einer Maschine wie z. B. einem Computer oder elektronischen System lesbar ist. Ein nichtflüchtiges maschinenzugängliches Medium umfasst beispielsweise einen Direktzugriffsspeicher (RAM), wie z. B. einen statischen RAM (SRAM) oder dynamischen RAM (DRAM); einen ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die von vorübergehenden (ausgebreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von den nichtflüchtigen Medien unterschieden werden sollen, die Informationen davon empfangen können.
-
Befehle, die verwendet werden, um eine Logik zu programmieren, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers im System gespeichert sein, wie z. B. DRAM, Cache, Flash-Speicher oder anderer Speicher. Ferner können die Befehle über ein Netz oder durch andere computerlesbare Medien verteilt werden. Folglich kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form umfassen, die von einer Maschine (z. B. einem Computer) lesbar ist, ist jedoch nicht begrenzt auf Disketten, optische Platten, Kompaktdisk, Festwertspeicher (CD-ROMs), und magnetoptische Platten, einen Festwertspeicher (ROMs), Direktzugriffsspeicher (RAM), löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, einen Flash-Speicher oder einen konkreten, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von ausgebreiteten Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) verwendet wird. Folglich umfasst das computerlesbare Medium irgendeinen Typ von konkretem maschinenlesbarem Medium, das zum Speichern oder Übertragen von elektronischen Befehlen oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form geeignet ist.
-
Die folgenden Beispiele betreffen Ausführungsformen gemäß dieser Patentbeschreibung. Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um einen Satz von Anlaufsequenzen zu erzeugen, wobei jede Anlaufsequenz einen jeweiligen Anlaufsequenzkopf umfassen soll und der Anlaufsequenzkopf über den Satz von Anlaufsequenzen gleichstromausgeglichen sein soll.
-
In mindestens einem Beispiel soll der Satz von Anlaufsequenzen in einer Supersequenz enthalten sein.
-
In mindestens einem Beispiel umfasst die Supersequenz eine sich wiederholende Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von mehreren Anlaufsequenzen.
-
In mindestens einem Beispiel ist die Supersequenz ein spezieller von mehreren Supersequenztypen, wobei jeder Supersequenztyp einem oder mehreren jeweiligen Zuständen einer seriellen Datenverbindung entspricht.
-
In mindestens einem Beispiel umfassen die mehreren Supersequenztypen eine Detektionssupersequenz, die einem Detektionszustand entspricht, eine zweite Supersequenz, die einem von einem Satz von Zuständen mit einem Prüfschleifenzustand, einem Konfigurationszustand und einem Abfragezustand entspricht, und eine Teilbreitenaustritts-Supersequenz, die einem Austritt aus einem Teilbreiten-Übertragungszustand entspricht.
-
In mindestens einem Beispiel umfasst die sich wiederholende Sequenz der Detektionssupersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von sieben aufeinander folgenden Instanzen einer Anlaufsequenz, wobei die Sequenz ungefähr einmal alle eintausend Einheitsintervalle wiederholt werden soll.
-
In mindestens einem Beispiel umfasst die sich wiederholende Sequenz der zweiten Supersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von einunddreißig aufeinander folgenden Instanzen einer Anlaufsequenz, wobei die Sequenz ungefähr einmal alle viertausend Einheitsintervalle wiederholt werden soll.
-
In mindestens einem Beispiel umfasst die sich wiederholende Sequenz der Teilbreitenaustritts-Supersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von sieben aufeinander folgenden Instanzen einer schnellen Anlaufsequenz, wobei die Sequenz ungefähr einmal alle eintausend Einheitsintervalle wiederholt werden soll.
-
In mindestens einem Beispiel, in dem die Anlaufsequenzen jeweils Anlaufsequenz-Nutzinformationen umfassen, sollen die Anlaufsequenz-Nutzinformationen verwürfelt werden und der Anlaufsequenzkopf soll unverwürfelt sein.
-
In mindestens einem Beispiel soll der EOS unverwürfelt sein.
-
In mindestens einem Beispiel sollen die Anlaufsequenz-Nutzinformationen unter Verwendung einer pseudozufälligen binären Sequenz (PRBS) verwürfelt werden.
-
In mindestens einem Beispiel umfasst der Kopf ein ACK/NAK-Feld und ein Anlaufsequenztyp-Feld.
-
In mindestens einem Beispiel soll das Anlaufsequenztyp-Feld codiert werden, um einen Anlaufsequenztyp zu identifizieren, der einem jeweiligen Zustand einer seriellen Datenverbindung entspricht.
-
Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um einen Satz von Anlaufsequenzen zu empfangen, wobei jede Anlaufsequenz einen jeweiligen Anlaufsequenzkopf umfassen soll, wobei der Anlaufsequenzkopf über den Satz von Anlaufsequenzen gleichstromausgeglichen sein soll, und die Bitübertragungsschichtlogik ferner Grenzen von einem oder mehreren der Anlaufsequenzköpfe des Satzes von Anlaufsequenzköpfen detektieren soll.
-
In mindestens einem Beispiel soll der Satz von Anlaufsequenzen als Abschnitt einer Supersequenz empfangen werden, und die Supersequenz umfasst eine sich wiederholende Sequenz mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von mehreren der Anlaufsequenzen, die verwendet werden, um einen Zustand der Datenverbindung auf der Basis der Supersequenz zu bestimmen.
-
In mindestens einem Beispiel soll der Zustand zumindest teilweise aus einer Frequenz bestimmt werden, mit der die Sequenz in der Supersequenz wiederholt ist.
-
In mindestens einem Beispiel soll der Zustand zumindest teilweise aus einer Anzahl von Anlaufsequenzen in der Vielzahl bestimmt werden.
-
In mindestens einem Beispiel soll der Zustand zumindest teilweise aus Anlaufsequenzkopf-Feldinformationen bestimmt werden.
-
Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um eine jeweilige Supersequenz auf jeder von mehreren Bahnen zu empfangen, wobei die Supersequenz einen elektrisch geordneten Satz, gefolgt von mehreren Anlaufsequenzen umfassen soll und eine Verzerrung von Bahn zu Bahn zwischen mindestens einer ersten der mehreren Bahnen und einer zweiten der mehreren Bahnen auf der Basis der Supersequenz detektieren soll.
-
In mindestens einem Beispiel umfasst jede Anlaufsequenz einen Anlaufsequenzkopf.
-
In mindestens einem Beispiel soll die Verzerrung zumindest teilweise auf der Basis einer Kante des Anlaufsequenzkopfs detektiert werden.
-
In mindestens einem Beispiel soll die Verzerrung auf der Basis einer Identifikation, dass die Kante später auf der zweiten Bahn als auf der ersten Bahn ankommt, detektiert werden.
-
In mindestens einem Beispiel soll der Anlaufsequenzkopf unverwürfelt gesendet werden und der Rest der Anlaufsequenz soll verwürfelt sein.
-
In mindestens einem Beispiel sollen zumindest Nutzinformationen der Anlaufsequenz verwürfelt sein.
-
In mindestens einem Beispiel sollen die Nutzinformationen unter Verwendung einer pseudozufälligen binären 23-Bit-Sequenz (PRBS) mit einem 23-Bit-Keim verwürfelt werden.
-
In mindestens einem Beispiel kann der Keim der PRBS aus der Supersequenz detektiert werden.
-
In mindestens einem Beispiel kann die Verzerrung von Bahn zu Bahn behoben werden.
-
Eine oder mehrere Vorrichtungen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um eine Supersequenz mit zwei oder mehr aufeinander folgenden Instanzen einer Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen, zu erzeugen, wobei zumindest ein Abschnitt jeder Anlaufsequenz durch einen jeweiligen Verwürfelungswert verwürfelt werden soll.
-
In mindestens einem Beispiel ist ein Keim der PRBS aus dem Verwürfelungssynchronisationsfeld identifizierbar.
-
In mindestens einem Beispiel gibt der Keim einen speziellen Abschnitt der PRBS an, die beim Verwürfeln verwendet wird.
-
In mindestens einem Beispiel umfasst das Verwürfelungssynchronisationsfeld drei Bytes der Nutzinformationen.
-
In mindestens einem Beispiel soll die Gesamtheit der PRBS beim Verwürfeln verwendet werden.
-
In mindestens einem Beispiel soll weniger als die Gesamtheit der PRBS beim Verwürfeln verwendet werden.
-
Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um ein Abtastsignal für die Anpassung einer Bahn einer Verbindung zu empfangen, die eine erste Vorrichtung und eine zweite Vorrichtung verbindet, wobei das Signal eine Supersequenz umfasst und zumindest ein Abschnitt der Supersequenz durch eine Pseudozufallssequenz verwürfelt werden soll, und mindestens eine Anpassungsaufgabe auf der Basis des Abtastsignals durchzuführen.
-
Gerät nach Anspruch 68, wobei die Supersequenz einen elektrisch geordneten Satz (EOS), gefolgt von mehreren aufeinander folgenden Anlaufsequenzen, umfassen soll.
-
In mindestens einem Beispiel umfasst die mindestens eine Anpassungsaufgabe das Bestimmen der Qualität der Bahn aus dem Abtastsignal.
-
In mindestens einem Beispiel umfasst die mindestens eine Anpassungsaufgabe ferner das Liefern einer Rückmeldung zu einem Sender des Abtastsignals auf der Basis der Bestimmung der Qualität der Bahn.
-
In mindestens einem Beispiel umfasst die mindestens eine Anpassungsaufgabe ferner das Modifizieren von Eigenschaften der Bahn auf der Basis der Bestimmung der Qualität der Bahn.
-
Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um Supersequenzen in einem Initialisierungszustand zu erzeugen, wobei jede Supersequenz eine Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen, umfasst, wobei jede Anlaufsequenz ein Suffix umfasst, und einen Start einer Datensequenz (SDS) zu senden, um einen Übergang vom Initialisierungszustand zu einen Übertragungsverbindungszustand anzugeben.
-
In mindestens einem Beispiel soll das Suffix Aliasing des SDS durch den Pseudozufallswert verhindern.
-
In mindestens einem Beispiel ist der Wert des SDS nicht im Pseudozufallswert enthalten.
-
In mindestens einem Beispiel umfasst der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS), die durch ein Schieberegister mit linearer Rückkopplung (LFSR) erzeugt wird.
-
In mindestens einem Beispiel emuliert der EIEOS ein Taktsignal mit niedriger Frequenz und der SDS emuliert ein Taktsignal mit einer Frequenz, die höher ist als das Taktsignal mit niedriger Frequenz.
-
In mindestens einem Beispiel soll der SDS gesendet werden, um die Supersequenz zu unterbrechen.
-
In mindestens einem Beispiel soll der SDS innerhalb einer speziellen der Anlaufsequenzen gesendet werden.
-
In mindestens einem Beispiel soll der SDS innerhalb einer speziellen Instanz des SDS gesendet werden.
-
In mindestens einem Beispiel soll der SDS auf der Basis eines deterministischen Ausrichtungssteuersignals gesendet werden.
-
Eine oder mehrere Ausführungsformen können ein Gerät, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren schaffen, um Supersequenzen in einem Initialisierungszustand zu empfangen, wobei jede Supersequenz eine Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen umfasst, wobei jede Anlaufsequenz ein Suffix umfasst, und einen Start einer Datensequenz (SDS) zu empfangen, um den Übergang vom Initialisierungszustand in einen Übertragungsverbindungszustand anzugeben.
-
In mindestens einem Beispiel soll der SDS auf der Basis eines deterministischen Ausrichtungssteuersignals gesendet werden.
-
Ein oder mehrere Beispiele können ferner eine Bitübertragungsschicht (PHY) schaffen, die so konfiguriert ist, dass sie mit einer Verbindung gekoppelt ist, wobei die Verbindung eine erste Anzahl von Bahnen umfasst, wobei die PHY ein selbstgesetztes Speicherelement umfassen soll, um eine pseudozufällige Bitsequenz (PRBS) mit 23 Bits zu erzeugen, wobei die PHY eine Anlaufsequenz übertragen soll, die auf der Basis der 23-Bit-PRBS verwürfelt ist.
-
In dieser ganzen Patentbeschreibung bedeutet die Bezugnahme auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“, dass ein spezielles Merkmal, eine spezielle Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Folglich beziehen sich die Erscheinungen der Ausdrücke „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in dieser ganzen Patentbeschreibung nicht notwendigerweise alle auf dieselbe Ausführungsform. Ferner können die speziellen Merkmale, Strukturen oder Eigenschaften in irgendeiner geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
-
In der vorangehenden Patentbeschreibung wurde eine ausführliche Beschreibung in Bezug auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch ersichtlich, dass verschiedene Modifikationen und Änderungen daran durchgeführt werden können, ohne vom breiteren Gedanken und Schutzbereich der Erfindung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen. Die Patentbeschreibung und die Zeichnungen sollen folglich vielmehr in einer erläuternden Hinsicht als in einer einschränkenden Hinsicht betrachtet werden. Ferner bezieht sich die vorangehende Verwendung von Ausführungsform und einer anderen beispielhaften Sprache nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich auf verschiedene und unterschiedliche Ausführungsformen sowie potentiell dieselbe Ausführungsform beziehen.
-
Weitere Ausführungsformen fallen unter den Rahmen der folgenden Definitionen:
- 1. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik einen Satz von Anlaufsequenzen erzeugen soll, wobei jede Anlaufsequenz einen jeweiligen Anlaufsequenzkopf umfassen soll, und der Anlaufsequenzkopf über den Satz von Anlaufsequenzen gleichstromausgeglichen sein soll.
- 2. Gerät nach Anspruch 1, wobei der Satz von Anlaufsequenzen in einer Supersequenz enthalten sein soll.
- 3. Gerät nach Anspruch 2, wobei die Supersequenz eine sich wiederholende Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von mehreren Anlaufsequenzen umfasst.
- 4. Gerät nach Anspruch 3, wobei die Supersequenz ein spezieller von mehreren Supersequenztypen ist, wobei jeder Supersequenztyp einem oder mehreren jeweiligen Zuständen einer seriellen Datenverbindung entspricht.
- 5. Gerät nach Anspruch 4, wobei die mehreren Supersequenztypen eine Detektionssupersequenz, die einem Detektionszustand entspricht, eine zweite Supersequenz, die einem von einem Satz von Zuständen mit einem Prüfschleifenzustand, einem Konfigurationszustand und einem Abfragezustand entspricht, und eine Teilbreitenaustritts-Supersequenz, die einem Austritt aus einem Teilbreiten-Übertragungszustand entspricht, umfassen.
- 6. Gerät nach Anspruch 5, wobei die sich wiederholende Sequenz der Detektionssupersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von sieben aufeinander folgenden Instanzen einer Anlaufsequenz umfasst, wobei die Sequenz ungefähr einmal alle eintausend Einheitsintervalle wiederholt werden sollen.
- 7. Gerät nach Anspruch 5, wobei die sich wiederholende Sequenz der zweiten Supersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS) umfasst, gefolgt von einunddreißig aufeinander folgenden Instanzen einer Anlaufsequenz, wobei die Sequenz ungefähr einmal alle viertausend Einheitsintervalle wiederholt werden soll.
- 8. Gerät nach Anspruch 5, wobei die sich wiederholende Sequenz der Teilbreitenaustritts-Supersequenz einen EOS mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von sieben aufeinander folgenden Instanzen einer schnellen Anlaufsequenz umfasst, wobei die Sequenz ungefähr einmal alle eintausend Einheitsintervalle wiederholt werden soll.
- 9. Gerät nach Anspruch 3, wobei die Anlaufsequenzen jeweils Anlaufsequenz-Nutzinformationen umfassen, wobei die Anlaufsequenz-Nutzinformationen verwürfelt werden sollen, und der Anlaufsequenzkopf unverwürfelt sein soll.
- 10. Gerät nach Anspruch 9, wobei der EOS unverwürfelt sein soll.
- 11. Gerät nach Anspruch 9, wobei die Anlaufsequenz-Nutzinformationen unter Verwendung einer pseudozufälligen binären Sequenz (PRBS) verwürfelt werden sollen.
- 12. Gerät nach Anspruch 1, wobei der Kopf ein ACK/NAK-Feld und ein Anlaufsequenztyp-Feld umfasst.
- 13. Gerät nach Anspruch 12, wobei das Anlaufsequenztyp-Feld codiert werden soll, um einen Anlaufsequenztyp zu identifizieren, der einem jeweiligen Zustand einer seriellen Datenverbindung entspricht.
- 14. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik einen Satz von Anlaufsequenzen empfangen soll, wobei jede Anlaufsequenz einen jeweiligen Anlaufsequenzkopf umfassen soll, wobei der Anlaufsequenzkopf über den Satz von Anlaufsequenzen gleichstromausgeglichen sein soll, und die Bitübertragungsschichtlogik ferner Grenzen von einem oder mehreren der Anlaufsequenzköpfe des Satzes von Anlaufsequenzköpfen detektieren soll.
- 15. Gerät nach Anspruch 14, wobei der Satz von Anlaufsequenzen als Abschnitt einer Supersequenz empfangen werden soll und die Supersequenz eine sich wiederholende Sequenz mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS), gefolgt von mehreren der Anlaufsequenzen umfasst.
- 16. Gerät nach Anspruch 15, wobei die Bitübertragungsschichtlogik einen Zustand der Datenverbindung auf der Basis der Supersequenz bestimmen soll.
- 17. Gerät nach Anspruch 16, wobei der Zustand zumindest teilweise aus einer Frequenz bestimmt werden soll, mit der die Sequenz in der Supersequenz wiederholt ist.
- 18. Gerät nach Anspruch 16, wobei der Zustand zumindest teilweise aus einer Anzahl von Anlaufsequenzen in den mehreren bestimmt werden soll.
- 19. Gerät nach Anspruch 16, wobei der Zustand zumindest teilweise aus Anlaufsequenzkopf-Feldinformationen bestimmt werden soll.
- 20. Gerät nach Anspruch 15, wobei der EIEOS und die Anlaufsequenzköpfe unverwürfelt sein sollen und die Anlaufsequenz-Nutzinformationen verwürfelt sein sollen.
- 21. Gerät nach Anspruch 16, wobei die Anlaufsequenz-Nutzinformationen unter Verwendung einer pseudozufälligen binären Sequenz (PRBS) verwürfelt werden sollen.
- 22. Gerät nach Anspruch 14, wobei der Kopf ein ACK/NAK-Feld und ein Anlaufsequenztyp-Feld umfasst.
- 23. Verfahren, das Folgendes umfasst:
- Versuchen, in einen speziellen Zustand einzutreten, der in mehreren Zuständen einer Zustandsmaschine für eine serielle Datenverbindung enthalten ist; und
- Senden einer Supersequenz über die Datenverbindung zu einer anderen Vorrichtung, um den Zustand anzugeben, wobei die Supersequenz eine sich wiederholende Sequenz umfasst, die mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS) beginnt, gefolgt von einer vorbestimmten Anzahl von Anlaufsequenzen, und jede der Anlaufsequenzen einen gleichstromausgeglichenen Kopf umfasst.
- 24. Verfahren nach Anspruch 23, das ferner das Verwürfeln zumindest eines Abschnitts der Supersequenz umfasst.
- 25. Verfahren nach Anspruch 24, wobei eine pseudozufällige binäre Sequenz (PRBS) verwendet werden soll, um den Abschnitt der Supersequenz zu verwürfeln.
- 26. Verfahren nach Anspruch 25, wobei die Anlaufsequenzköpfe und der EI-EIOS als unverwürfelt gesendet werden sollen.
- 27. Verfahren nach Anspruch 26, wobei der Abschnitt der Supersequenz Nutzinformationen der Anlaufsequenzen umfasst.
- 28. System, das Folgendes umfasst:
- eine erste Vorrichtung; und
- eine zweite Vorrichtung, die mit der ersten Vorrichtung unter Verwendung einer seriellen Datenverbindung kommunikativ gekoppelt ist, wobei die zweite Vorrichtung ein Bitübertragungsschichtmodul umfasst, das von mindestens einem Prozessor ausgeführt wird, um:
- zu versuchen, in einen speziellen Zustand einzutreten, der in mehreren Zuständen einer Zustandsmaschine für die Datenverbindung enthalten ist; und
- eine Supersequenz über die Datenverbindung zur ersten Vorrichtung zu senden, um den Zustand anzugeben, wobei die Supersequenz eine sich wiederholende Sequenz umfasst, die mit einem elektrisch inaktiven geordneten Austrittssatz (EIEOS) beginnt, gefolgt von einer vorbestimmten Anzahl von Anlaufsequenzen, und jede der Anlaufsequenzen einen gleichstromausgeglichenen Kopf umfasst.
- 29. System nach Anspruch 28, wobei die erste Vorrichtung einen Mikroprozessor umfasst.
- 30. System nach Anspruch 29, wobei die zweite Vorrichtung einen zweiten Mikroprozessor umfasst.
- 31. System nach Anspruch 29, wobei die zweite Vorrichtung einen Graphikbeschleuniger umfasst.
- 32. System nach Anspruch 28, wobei die erste Vorrichtung ein Bitübertragungsschichtmodul umfasst, um:
- die Supersequenz zu validieren; und
- den Zustand auf der Basis zumindest teilweise der Supersequenz zu identifizieren.
- 33. System nach Anspruch 32, wobei das Bitübertragungsschichtmodul der ersten Vorrichtung ferner verwürfelte Abschnitte der Supersequenz entwürfeln soll.
- 34. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik:
- eine jeweilige Supersequenz auf jeder von mehreren Bahnen empfangen soll, wobei die Supersequenz einen elektrisch geordneten Satz, gefolgt von mehreren Anlaufsequenzen umfassen soll; und
eine Verzerrung von Bahn zu Bahn zwischen mindestens einer ersten der mehreren Bahnen und einer zweiten der mehreren Bahnen auf der Basis der Supersequenz detektieren soll. - 35. Gerät nach Anspruch 34, wobei jede Anlaufsequenz einen Anlaufsequenzkopf umfasst.
- 36. Gerät nach Anspruch 35, wobei die Verzerrung zumindest teilweise auf der Basis einer Kante des Anlaufsequenzkopfs detektiert werden soll.
- 37. Gerät nach Anspruch 36, wobei die Verzerrung auf der Basis einer Identifikation, dass die Kante auf der zweiten Bahn später ankommt als auf der ersten Bahn, detektiert werden soll.
- 38. Gerät nach Anspruch 36, wobei der Anlaufsequenzkopf unverwürfelt gesendet werden soll und der Rest der Anlaufsequenz verwürfelt werden soll.
- 39. Gerät nach Anspruch 34, wobei zumindest Nutzinformationen der Anlaufsequenz verwürfelt werden sollen.
- 40. Gerät nach Anspruch 39, wobei die Nutzinformationen unter Verwendung einer pseudozufälligen binären 23-Bit-Sequenz (PRBS) mit einem 23-Bit-Keim verwürfelt werden sollen.
- 41. Gerät nach Anspruch 40, wobei die Bitübertragungsschichtlogik ferner den Keim der PRBS identifizieren soll.
- 42. Gerät nach Anspruch 40, wobei die Verzerrung zumindest teilweise aus der PRBS-Verwürfelung detektiert werden soll.
- 43. Gerät nach Anspruch 42, wobei die PRBS aus der Supersequenz detektiert werden soll.
- 44. Gerät nach Anspruch 34, wobei die Bitübertragungsschichtlogik ferner die Verzerrung von Bahn zu Bahn beheben soll.
- 45. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik eine Supersequenz mit zwei oder mehr aufeinander folgenden Instanzen einer Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen erzeugen soll, wobei zumindest ein Abschnitt jeder Anlaufsequenz durch einen jeweiligen Verwürfelungswert verwürfelt werden soll.
- 46. Gerät nach Anspruch 45, wobei der EOS einen elektrisch inaktiven geordneten Austrittssatz (EIEOS) umfasst.
- 47. Gerät nach Anspruch 45, wobei der Verwürfelungswert einen Pseudozufallswert umfasst.
- 48. Gerät nach Anspruch 47, wobei der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS) umfasst, die durch ein Schieberegister (LFSR) mit linearer Rückkopplung erzeugt wird.
- 49. Gerät nach Anspruch 48, wobei das LSFR ein Fibonacci-LSFR umfasst.
- 50. Gerät nach Anspruch 48, wobei die Anlaufsequenz einen Kopf und Nutzinformationen umfasst, wobei die Nutzinformationen im verwürfelten Abschnitt enthalten sein sollen und der Kopf unverwürfelt gelassen werden soll.
- 51. Gerät nach Anspruch 50, wobei die Nutzinformationen ein Verwürfelungssynchronisationsfeld umfassen.
- 52. Gerät nach Anspruch 51, wobei ein Keim der PRBS aus dem Verwürfelungssynchronisationsfeld identifizierbar ist.
- 53. Gerät nach Anspruch 52, wobei der Keim einen speziellen Abschnitt der PRBS, der beim Verwürfeln verwendet wird, angibt.
- 54. Gerät nach Anspruch 51, wobei das Verwürfelungssynchronisationsfeld drei Bytes der Nutzinformationen umfasst.
- 55. Gerät nach Anspruch 48, wobei die Gesamtheit der PRBS beim Verwürfeln verwendet werden soll.
- 56. Gerät nach Anspruch 48, wobei weniger als die Gesamtheit der PRBS beim Verwürfeln verwendet werden soll.
- 57. Gerät nach Anspruch 56, wobei die Supersequenz in einem Testkontext erzeugt wird.
- 58. Gerät nach Anspruch 45, wobei der EOS unverwürfelt belassen werden soll.
- 59. Gerät nach Anspruch 45, wobei jede Anlaufsequenz einen jeweiligen Anlaufsequenzkopf umfasst und der Anlaufsequenzkopf unverwürfelt belassen werden soll und gleichstromausgeglichen sein soll.
- 60. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik:
- eine Supersequenz mit zwei oder mehr aufeinander folgenden Instanzen einer Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen empfangen soll, wobei zumindest ein Abschnitt jeder Anlaufsequenz verwürfelt ist; und
- die Anlaufsequenzen auf der Basis der Identifikation eines Pseudozufallswerts, der beim Verwürfeln verwendet wird, entwürfeln soll.
- 61. Gerät nach Anspruch 60, wobei der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS) umfasst, die durch ein Schieberegister (LFSR) mit linearer Rückkopplung erzeugt wird.
- 62. Gerät nach Anspruch 61, wobei die PRBS aus einem Verwürfelungssynchronisationsfeld in einem Kopf von mindestens einer des Satzes von Anlaufsequenzen identifiziert werden soll.
- 63. Gerät nach Anspruch 62, wobei die PRBS aus einem Keim identifiziert wird, der im Verwürfelungssynchronisationsfeld identifiziert ist.
- 64. Gerät nach Anspruch 63, wobei die Bitübertragungsschichtlogik den Keim in ein lokales LFSR laden und mit der PRBS synchronisieren soll.
- 65. Gerät nach Anspruch 62, wobei der Anlaufsequenzkopf unverwürfelt ist und das Verwürfelungssynchronisationsfeld in verwürfelten Nutzinformationen der Anlaufsequenz enthalten ist und die Bitübertragungsschichtlogik das Verwürfelungssynchronisationsfeld aus einer Kante des Anlaufsequenzkopfs identifizieren soll.
- 66. Gerät nach Anspruch 61, wobei das LSFR ein 23-Bit-Fibonacci-LSFR umfasst.
- 67. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik:
- ein Abtastsignal für die Anpassung einer Bahn einer Verbindung empfangen soll, die eine erste Vorrichtung und eine zweite Vorrichtung verbindet, wobei das Signal eine Supersequenz umfasst und mindestens ein Abschnitt der Supersequenz durch eine Pseudozufallssequenz verwürfelt werden soll;
- mindestens eine Anpassungsaufgabe auf der Basis des Abtastsignals durchführen soll.
- 68. Gerät nach Anspruch 67, wobei die Supersequenz einen elektrisch geordneten Satz (EOS), gefolgt von mehreren aufeinander folgenden Anlaufsequenzen umfassen soll.
- 69. Gerät nach Anspruch 68, wobei der EOS einen elektrisch inaktiven geordneten Austrittssatz (EIEOS) umfasst.
- 70. Gerät nach Anspruch 68, wobei jede der Anlaufsequenzen einen Anlaufsequenzkopf und Anlaufsequenz-Nutzinformationen umfassen soll.
- 71. Gerät nach Anspruch 70, wobei jeder Anlaufsequenzkopf unverwürfelt sein soll und alle Anlaufsequenz-Nutzinformationen verwürfelt sein sollen.
- 72. Gerät nach Anspruch 71, wobei der EOS unverwürfelt gelassen werden soll.
- 73. Gerät nach Anspruch 67, wobei der im Wesentlichen zufällige Wert einen Pseudozufallswert umfasst.
- 74. Gerät nach Anspruch 73, wobei der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS) umfasst, die durch ein Schieberegister mit linearer Rückkopplung (LFSR) erzeugt wird.
- 75. Gerät nach Anspruch 74, wobei das LSFR ein 23-Bit-Fibonacci-LSFR umfasst.
- 76. Gerät nach Anspruch 73, wobei die mindestens eine Anpassungsaufgabe das Bestimmen der Qualität der Bahn aus dem Abtastsignal umfasst.
- 77. Gerät nach Anspruch 76, wobei die mindestens eine Anpassungsaufgabe ferner das Liefern einer Rückmeldung zu einem Sender des Abtastsignals auf der Basis der Bestimmung der Qualität der Bahn umfasst.
- 78. Gerät nach Anspruch 76, wobei die mindestens eine Anpassungsaufgabe ferner das Modifizieren von Eigenschaften der Bahn auf der Basis der Bestimmung der Qualität der Bahn umfasst.
- 79. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik:
- Supersequenzen in einem Initialisierungszustand erzeugen soll, wobei jede Supersequenz eine Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen umfasst, wobei jede Anlaufsequenz ein Suffix umfasst; und
- einen Start einer Datensequenz (SDS) senden soll, um den Übergang vom Initialisierungszustand in einen Übertragungsverbindungszustand anzugeben.
- 80. Gerät nach Anspruch 79, wobei zumindest ein Abschnitt jeder Anlaufsequenz durch einen jeweiligen Pseudozufallswert verwürfelt werden soll.
- 81. Gerät nach Anspruch 80, wobei das Suffix Aliasing des SDS durch den Pseudozufallswert verhindern soll.
- 82. Gerät nach Anspruch 81, wobei der Wert des SDS nicht im Pseudozufallswert enthalten ist.
- 83. Gerät nach Anspruch 80, wobei der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS) umfasst, die durch ein Schieberegister mit linearer Rückkopplung (LFSR) erzeugt wird.
- 84. Gerät nach Anspruch 83, wobei das LSFR ein 23-Bit-Fibonacci-LSFR umfasst.
- 85. Gerät nach Anspruch 79, wobei der EOS einen elektrisch inaktiven geordneten Austrittssatz (EIEOS) umfasst.
- 86. Gerät nach Anspruch 85, wobei der EIEOS ein Taktsignal mit niedriger Frequenz emuliert.
- 87. Gerät nach Anspruch 86, wobei der SDS ein Taktsignal mit einer Frequenz emuliert, die höher ist als das Taktsignal mit niedriger Frequenz.
- 88. Gerät nach Anspruch 79, wobei der SDS gesendet werden soll, um die Supersequenz zu unterbrechen.
- 89. Gerät nach Anspruch 88, wobei der SDS innerhalb einer speziellen der Anlaufsequenzen gesendet werden soll.
- 90. Gerät nach Anspruch 88, wobei der SDS innerhalb einer speziellen Instanz des EOS gesendet werden soll.
- 91. Gerät nach Anspruch 88, wobei der SDS auf der Basis eines deterministischen Ausrichtungssteuersignals gesendet werden soll.
- 92. Gerät, das Folgendes umfasst:
- einen Schichtenstapel mit einer Bitübertragungsschichtlogik, einer Sicherungsschichtlogik und einer Protokollschichtlogik, wobei die Bitübertragungsschichtlogik:
- Supersequenzen in einem Initialisierungszustand empfangen soll, wobei jede Supersequenz eine Sequenz mit einem elektrisch geordneten Satz (EOS), gefolgt von einem Satz von Anlaufsequenzen umfasst, wobei jede Anlaufsequenz ein Suffix umfasst; und
- einen Start einer Datensequenz (SDS) empfangen soll, um den Übergang vom Initialisierungszustand in einen Übertragungsverbindungszustand anzugeben.
- 93. Gerät nach Anspruch 92, wobei zumindest ein Abschnitt jeder Anlaufsequenz durch einen jeweiligen Pseudozufallswert verwürfelt werden soll.
- 94. Gerät nach Anspruch 93, wobei das Suffix Aliasing des SDS durch den Pseudozufallswert verhindern soll.
- 95. Gerät nach Anspruch 94, wobei der Wert des SDS nicht im Pseudozufallswert enthalten ist.
- 96. Gerät nach Anspruch 93, wobei der Pseudozufallswert eine pseudozufällige binäre Sequenz (PRBS) umfasst, die durch ein Schieberegister mit linearer Rückkopplung (LFSR) erzeugt wird.
- 97. Gerät nach Anspruch 96, wobei das LSFR ein 23-Bit-Fibonacci-LSFR umfasst.
- 98. Gerät nach Anspruch 92, wobei der EOS einen elektrisch inaktiven geordneten Austrittsatz (EIEOS) umfasst.
- 99. Gerät nach Anspruch 98, wobei der EIEOS ein Taktsignal mit niedriger Frequenz emuliert.
- 100. Gerät nach Anspruch 99, wobei der SDS ein Taktsignal mit einer Frequenz emuliert, die höher ist als das Taktsignal mit niedriger Frequenz.
- 101. Gerät nach Anspruch 92, wobei der SDS gesendet werden soll, um die Supersequenz zu unterbrechen.
- 102. Gerät nach Anspruch 101, wobei der SDS innerhalb einer speziellen der Anlaufsequenzen gesendet werden soll.
- 103. Gerät nach Anspruch 101, wobei der SDS innerhalb einer speziellen Instanz des EOS gesendet werden soll.
- 104. Gerät nach Anspruch 101, wobei der SDS auf der Basis eines deterministischen Ausrichtungssteuersignals gesendet werden soll.
- 105. Gerät, das Folgendes umfasst:
- eine Bitübertragungsschicht (PHY), die so konfiguriert ist, dass sie mit einer Verbindung gekoppelt ist, wobei die Verbindung eine erste Anzahl von Bahnen umfasst, wobei die PHY ein selbstgesetztes Speicherelement umfassen soll, um eine pseudozufällige Bitsequenz (PRBS) mit 23 Bits zu erzeugen, wobei die PHY eine Anlaufsequenz übertragen soll, die auf der Basis der 23-Bit-PRBS verwürfelt wird.