-
GEBIET
-
Die vorliegende Offenbarung bezieht sich allgemein auf das Gebiet der Computerentwicklung und insbesondere auf die Softwareentwicklung, die die Koordination voneinander abhängiger eingeschränkter Systeme umfasst.
-
HINTERGRUND
-
Fortschritte der Halbleiterverarbeitung und des Logikentwurfs lassen eine Zunahme der Menge an Logik zu, die auf integrierten Schaltungsvorrichtungen vorhanden sein kann. Als Folge haben sich Computersystemkonfigurationen von einer einzelnen integrierten Schaltung oder von mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren, die in einzelnen integrierten Schaltungen vorhanden sind, sowie zu anderen Schnittstellen, die innerhalb solcher Prozessoren integriert sind, entwickelt. Üblicherweise umfasst ein Prozessor oder eine integrierte Schaltung einen einzelnen physikalischen Prozessoreinzelchip, wobei der Prozessoreinzelchip irgendeine Anzahl von Kernen, Hardware-Threads, logischen Prozessoren, Schnittstellen, Speicher, Controller-Hubs usw. enthalten kann.
-
Im Ergebnis der größeren Fähigkeit, mehr Verarbeitungsleistung in kleinere Baugruppen einzubauen, hat die Beliebtheit kleinerer Computervorrichtungen zugenommen. Smartphones, Tablets, ultradünne Notebooks und andere Benutzereinrichtung haben exponentiell zugenommen. Allerdings stützen sich diese kleineren Vorrichtungen sowohl für die Datenspeicherung als auch für eine komplexe Verarbeitung, die den Formfaktor übersteigt, auf Server. Folglich hat der Bedarf auf dem Hochleistungscomputermarkt (d. h. Serverraum) ebenfalls zugenommen. Zum Beispiel gibt es in modernen Servern üblicherweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern ebenfalls mehrere physikalische Prozessoren (auch als Mehrfach-Sockel bezeichnet), um die Rechenleistung zu erhöhen. Da aber die Rechenleistung zusammen mit der Anzahl der Vorrichtungen in einem Computersystem wächst, wird die Kommunikation zwischen Sockeln und anderen Vorrichtungen entscheidender.
-
Tatsächlich sind Verdrahtungen von eher herkömmlichen Mehrpunktbussen, die hauptsächlich elektrische Kommunikationen behandelten, zu vollständig ausgerüsteten Verdrahtungsarchitekturen, die die schnelle Kommunikation ermöglichen, gewachsen. Da der Bedarf an den Verbrauch künftiger Prozessoren mit noch höheren Raten zunimmt, wird den Fähigkeiten der vorhandenen Verdrahtungsarchitektur leider ein entsprechender Bedarf auferlegt.
-
US 2006/0034295 A1 offenbart ein Punkt-zu-Punkt Verbindungsnetzwerk, das mehrere Komponenten eines Computersystems miteinander verbindet. Jede Komponente weist eine direkte Verbindung zu anderen Knoten in dem System auf. Verbindungsbreitenmodulationsnachrichten werden aus Flits in einer Verbindungsschicht erzeugt und in Paketen einer Protokollschicht zwischen den Komponenten übertragen. Eine Verbindung kann auf eine neue Verbindungsbreite moduliert werden. Ein lokaler Port verständigt ein bestimmtes Paket an den entfernten Port.
-
US 7 136 953 B1 offenbart einen Datenbus mit einer Vielzahl von Datenspuren, die eine Datenverbindung zwischen Komponenten bilden. Die Anzahl der Datenspuren kann an Änderungen der Busbandbreite angepasst werden.
-
Figurenliste
-
- 1 veranschaulicht einen vereinfachten Blockschaltplan eines Systems, das eine serielle Punkt-zu-Punkt-Verdrahtung zum Verbinden von E/A-Vorrichtungen in einem Computersystem in Übereinstimmung mit einer Ausführungsform enthält;
- 2 veranschaulicht einen vereinfachten Blockschaltplan eines Schichtprotokollstapels in Übereinstimmung mit einer Ausführungsform;
- 3 veranschaulicht eine Ausführungsform eines Transaktionsdeskriptors;
- 4 veranschaulicht eine Ausführungsform einer seriellen Punkt-zu-Punkt-Verbindung.
- 5 veranschaulicht Ausführungsformen potentieller Hochleistungsverdrahtungs-Systemkonfigurationen (HPI-Systemkonfigurationen).
- 6 veranschaulicht eine Ausführungsform eines einer HPI zugeordneten Schichtprotokollstapels.
- 7 veranschaulicht eine Darstellung einer beispielhaften Zustandsmaschine.
- 8 veranschaulicht beispielhafte Steuersupersequenzen.
- 9 veranschaulicht eine Darstellung eines beispielhaften Steuerfensters, das in einen Datenstrom eingebettet ist.
- 10 veranschaulicht einen Ablaufplan eines beispielhaften Quittungsaustauschs.
- 11 veranschaulicht einen Ablaufplan eines beispielhaften Übergangs zu einem Teilbreitenzustand.
- 12 veranschaulicht einen beispielhaften Übergang von einem Teilbreitenzustand.
- 13 veranschaulicht eine Ausführungsform eines Blockschaltplans für ein Computersystem, das einen Mehrkernprozessor enthält.
- 14 veranschaulicht eine andere Ausführungsform eines Blockschaltplans für ein Computersystem, das einen Mehrkernprozessor enthält.
- 15 veranschaulicht eine Ausführungsform eines Blockschaltplans für einen Prozessor.
- 16 veranschaulicht eine andere Ausführungsform eines Blockschaltplans für ein Computersystem, das einen Prozessor enthält.
- 17 veranschaulicht eine Ausführungsform eines Blocks für ein Computersystem, das mehrere Prozessorsockel enthält.
- 18 veranschaulicht eine andere Ausführungsform eines Blockschaltplans für ein Computersystem.
-
Gleiche Bezugszeichen und Bezeichnungen geben in den verschiedenen Zeichnungen gleiche Elemente an.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Um ein gründliches Verständnis der vorliegenden Erfindung zu vermitteln, sind in der folgenden Beschreibung zahlreiche spezifische Einzelheiten wie etwa Beispiele spezifischer Typen von Prozessoren und Systemkonfigurationen, spezifischer Hardwarestrukturen, spezifischer Architektur- und Mikroarchitektureinzelheiten, spezifischer Registerkonfigurationen, spezifischer Befehlstypen, spezifischer Systemkomponenten, spezifischer Prozessorpipelinestufen, spezifischer Verdrahtungsschichten, spezifischer Paket/Transaktions-Konfigurationen, spezifischer Transaktionsnamen, spezifischer Protokollaustausche, spezifischer Verbindungsbreiten, spezifischer Implementierungen und des Betriebs usw. dargelegt. Allerdings kann für den Fachmann auf dem Gebiet offensichtlich sein, dass diese spezifischen Einzelheiten nicht notwendig genutzt zu werden brauchen, um den Gegenstand der vorliegenden Offenbarung zu verwirklichen. In anderen Fällen ist eine sehr ausführliche Beschreibung bekannter Komponenten oder Verfahren wie etwa spezifischer oder alternativer Prozessorarchitekturen, spezifischer Logikschaltungen/von spezifischem Code für beschriebene Algorithmen, spezifischem Firmwarecode, einer Verdrahtungsoperation auf niedriger Ebene, spezifischer Logikkonfigurationen, spezifischer Fertigungstechniken und Fertigungsmaterialien, spezifischer Compilerimplementierungen, eines spezifischen Ausdrucks des Algorithmus im Code, spezifischer Abschalt- und Torsteuerungstechniken/Abschalt- und Torsteuerungslogik und anderer spezifischer Betriebseinzelheiten eines Computersystems vermieden worden, um eine unnötige Verdeckung der vorliegenden Offenbarung zu vermeiden.
-
Obwohl die folgenden Ausführungsformen in Bezug auf die Energieeinsparung, die Energieeffizienz, die Verarbeitungseffizienz usw. in spezifischen integrierten Schaltungen wie etwa in Computerplattformen oder Mikroprozessoren beschrieben werden können, sind auf andere Typen integrierter Schaltungen und Logikvorrichtungen andere Ausführungsformen anwendbar. Auf andere Typen von Schaltungen oder Halbleitervorrichtungen, die diese Merkmale ebenfalls nutzen können, können ähnliche Techniken und Lehren der hier beschriebenen Ausführungsformen angewendet werden. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf ein Servercomputersystem, auf Desktopcomputersysteme, auf Laptops, auf Ultrabooks™ beschränkt, sondern können ebenfalls in anderen Vorrichtungen wie etwa Handvorrichtungen, Smartphones, Tablets, anderen dünnen Notebooks, Einchipvorrichtungen (SOC-Vorrichtungen) und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Handvorrichtungen enthalten Mobiltelephone, Internetprotokollvorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und Hand-PCs. Hier können ähnliche Techniken für eine Hochleistungsverdrahtung angewendet werden, um die Leistungsfähigkeit in einer leistungsarmen Verdrahtung zu erhöhen (oder sogar Leistung zu sparen). Eingebettete Anwendungen enthalten üblicherweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein Einchipsystem, Netzcomputer (NetPCs), Set-Top-Boxen, Netz-Hubs, Weitverkehrsnetz-Switches (WAN-Switches) oder irgendein anderes System, das die hier gelehrten Funktionen und Operationen ausführen kann. Darüber hinaus sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physikalische Computervorrichtungen beschränkt, sondern können sich ebenfalls auf Softwareoptimierungen für die Energieeinsparung und Energieeffizienz beziehen. Wie aus der folgenden Beschreibung deutlicher wird, können die Ausführungsformen hier beschriebener Verfahren, Vorrichtungen und Systeme (gleich, ob sie sich auf Hardware, auf Firmware, auf Software oder auf eine Kombination davon beziehen) als unabdingbar für eine Zukunft mit einer „grünen Technologie“, die mit Leistungsfähigkeitsbetrachtungen abgestimmt ist, angesehen werden.
-
Während sich Rechensysteme weiterentwickeln, werden die Komponenten darin komplexer. Um sicherzustellen, dass der Bandbreitenbedarf für einen optimalen Komponentenbetrieb erfüllt wird, hat die Komplexität der Verdrahtungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten ebenfalls zugenommen. Darüber hinaus fordern unterschiedliche Marktsegmente unterschiedliche Aspekte von Verdrahtungsarchitekturen, um sie an den jeweiligen Markt anzupassen. Zum Beispiel erfordern Server höhere Leistung, während das mobile Ökosystem gelegentlich Gesamtleistungsfähigkeit zugunsten von Leistungseinsparungen opfern kann. Dennoch ist es ein einzelner Zweck der meisten Fabrics, bei maximaler Leistungseinsparung die höchstmögliche Leistungsfähigkeit bereitzustellen. Ferner können den hier beschriebenen Gegenstand potentiell eine Vielzahl verschiedener Verdrahtungen nutzen.
-
Unter anderen Beispielen können die Peripheral-Component-Interconnect-(PCI-)Express-Verdrahtungs-Fabric-Architektur (PCIe-Verdrahtungs-Fabric-Architektur) und die QuickPath-Interconnect-Fabric-Architektur (QPI-Fabric-Architektur) unter anderen Beispielen in Übereinstimmung mit einem oder mit mehreren hier beschriebenen Prinzipien potentiell verbessert werden. Zum Beispiel ist es ein Hauptziel von PCIe zu ermöglichen, dass Komponenten und Vorrichtungen von unterschiedlichen Anbietern in einer offenen Architektur, die mehrere Marktsegmente: Clients (Desktop und Mobil), Server (Standard und Enterprise) und eingebettete Vorrichtungen und Kommunikationsvorrichtungen überspannt, zusammenwirken. PCI Express ist eine Hochleistungs-Universal-E/A-Verdrahtung, die für eine breite Vielfalt künftiger Computer- und Kommunikationsplattformen definiert worden ist. Einige PCI-Attribute wie etwa ihr Nutzungsmodell, ihre Lade-Speicher-Architektur und ihre Softwareschnittstellen sind über ihre Überarbeitungen aufrechterhalten worden, während frühere Implementierungen über einen parallelen Bus durch eine hoch skalierbare, vollständig serielle Schnittstelle ersetzt worden sind. Die jüngeren Versionen von PCI Express nutzen Vorteile von Punkt-zu-Punkt-Verdrahtungen, einer Switch-basierten Technologie und eines Paketprotokolls, um neue Grade an Leistungsfähigkeit und Merkmalen zu liefern. Leistungsmanagement, Dienstgüte (QoS), Unterstützung für Einstecken/Wechsel im laufenden Betrieb, Datenintegrität und Fehlerbehandlung sind nur einige der fortgeschrittenen Merkmale, die durch PCI Express unterstützt werden. Obwohl sich die Hauptdiskussion hier auf eine neue Hochleistungsverdrahtungsarchitektur (HPI-Architektur) bezieht, können Aspekte der hier beschriebenen Erfindung auf andere Verdrahtungsarchitekturen wie etwa auf eine PCIe-kompatible Architektur, auf eine QPI-kompatible Architektur, auf eine MIPI-kompatible Architektur, auf eine Hochleistungsarchitektur oder auf eine andere bekannte Verdrahtungsarchitektur angewendet werden.
-
In 1 ist eine Ausführungsform eines Fabric dargestellt, das aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten miteinander verdrahten. Das System 100 enthält einen Prozessor 105 und einen Systemspeicher 110, die mit einem Controller-Hub 115 gekoppelt sind. Der Prozessor 105 kann irgendein Verarbeitungselement wie etwa einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor enthalten. Der Prozessor 105 ist über einen Front-Side-Bus (FSB) 106 mit dem Controller-Hub 115 gekoppelt. In einer Ausführungsform ist der FSB 106 eine wie im Folgenden beschriebene serielle Punkt-zu-Punkt-Verdrahtung. In einer anderen Ausführungsform enthält die Verbindung 106 eine serielle differentielle Verdrahtungsarchitektur, die mit einem anderen Verdrahtungsstandard kompatibel ist.
-
Der Systemspeicher 110 enthält irgendeine Speichervorrichtung wie etwa Schreib-Lese-Speicher (RAM), nichtflüchtigen Speicher (NV-Speicher) oder anderen Speicher, auf den Vorrichtungen im System 100 zugreifen können. Der Systemspeicher 110 ist über eine Speicherschnittstelle 116 mit dem Controller-Hub 115 gekoppelt. Beispiele für eine Speicherschnittstelle enthalten eine Speicherschnittstelle mit doppelter Datenrate (DDR-Speicherschnittstelle), eine Zweikanal-DDR-Speicherschnittstelle und eine Speicherschnittstelle für dynamischen RAM (DRAM).
-
In einer Ausführungsform kann der Controller-Hub 115 wie etwa in einer PCIe-Verbindungshierarchie einen Root-Hub, einen Root-Komplex oder einen Root-Controller enthalten. Beispiele für den Controller-Hub 115 enthalten einen Chipsatz, einen Speichercontroller-Hub (MCH), eine Northbridge, einen Verdrahtungscontroller-Hub (ICH), eine Southbridge und einen Root-Controller/- Hub. Häufig bezieht sich der Begriff Chipsatz auf zwei physikalisch getrennte Controller-Hubs, z. B. auf einen Speichercontroller-Hub (MCH), der mit einem Verdrahtungscontroller-Hub (ICH) gekoppelt ist. Es wird angemerkt, dass aktuelle Systeme häufig den mit dem Prozessor 105 integrierten MCH enthalten, während der Controller 115 auf ähnliche Weise wie im Folgenden beschrieben mit E/A-Vorrichtungen kommunizieren soll. In einigen Ausführungsformen wird durch den Root-Komplex 115 optional ein Peer-to-Peer-Routing unterstützt.
-
Der Controller-Hub 115 ist hier über eine serielle Verbindung 119 mit dem Switch/der Bridge 120 gekoppelt. Die Eingabe/Ausgabe-Module 117 und 121, die ebenfalls als Schnittstellen/Ports 117 und 121 bezeichnet werden können, können einen Schichtprotokollstapel enthalten/implementieren, um eine Kommunikation zwischen dem Controller-Hub 115 und dem Switch 120 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Switch 120 gekoppelt sein.
-
Der Switch/die Bridge 120 routet Pakete/Nachrichten von der Vorrichtung 125 aufwärts, d. h. in einer Hierarchie in Richtung eines Root-Komplexes zu dem Controller-Hub 115 aufwärts, und abwärts, d. h. in eine Hierarchie von einem Root-Controller, von dem Prozessor 105 oder von dem Systemspeicher 110 weg zu der Vorrichtung 125 abwärts. In einer Ausführungsform wird auf den Switch 120 als eine logische Anordnung mehrerer virtueller PCI-zu-PCI-Bridge-Vorrichtungen Bezug genommen. Die Vorrichtung 125 enthält irgendeine interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, wie etwa eine E/A-Vorrichtung, einen Netzschnittstellencontroller (NIC), eine Ergänzungskarte, einen Audioprozessor, einen Netzprozessor, ein Festplattenlaufwerk, eine Ablagevorrichtung, eine CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Ablagevorrichtung, eine Firewire-Vorrichtung, eine Universal-Serial-Bus-Vorrichtung (USB-Vorrichtung), einen Scanner und andere Eingabe/AusgabeVorrichtungen. In der PCIe-Bezeichnungsweise wird eine solche Vorrichtung häufig als ein Endpunkt bezeichnet. Obwohl dies nicht spezifisch gezeigt ist, kann die Vorrichtung 125 eine Bridge (z. B. eine PCIe-zu-PCI/PCI-X-Bridge) enthalten, um Altvorrichtungen oder andere Versionen von Vorrichtungen oder durch solche Vorrichtungen unterstützte Verdrahtungs-Fabrics zu unterstützen.
-
Der Graphikbeschleuniger 130 kann ebenfalls über eine serielle Verbindung 132 mit dem Controller-Hub 115 gekoppelt sein. In einer Ausführungsform ist der Graphikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 120 und dementsprechend die E/A-Vorrichtung 125 ist daraufhin mit dem ICH gekoppelt. Die E/A-Module 131 und 118 sollen ebenfalls einen Schichtprotokollstapel implementieren, um zwischen dem Graphikbeschleuniger 130 und dem Controller-Hub 115 zu kommunizieren. Ähnlich der obigen MCH-Diskussion kann ein Graphikcontroller oder der Graphikbeschleuniger 130 selbst in den Prozessor 105 integriert sein.
-
Übergehend zu 2 ist eine Ausführungsform eines Schichtprotokollstapels dargestellt. Der Schichtprotokollstapel 200 kann irgendeine Form eines Schichtkommunikationsstapels wie etwa einen QPI-Stapel, einen PCIe-Stapel, einen Hochleistungs-Computerverdrahtungsstapel (HPI-Stapel) der nächsten Generation oder einen anderen Schichtstapel enthalten. In einer Ausführungsform kann der Protokollstapel 200 eine Transaktionsschicht 205, eine Sicherungsschicht 210 und eine Bitübertragungsschicht 220 enthalten. Als Kommunikationsprotokollstapel 200 kann eine Schnittstelle wie etwa die Schnittstellen 117, 118, 121, 122, 126 und 131 in 1 dargestellt sein. Die Darstellung als ein Kommunikationsprotokollstapel kann ebenfalls als ein Modul oder als eine Schnittstelle, das bzw. die einen Protokollstapel implementiert/enthält, bezeichnet werden.
-
Zum Übermitteln von Informationen zwischen Komponenten können Pakete verwendet werden. Pakete können in der Transaktionsschicht 205 und in der Sicherungsschicht 210 gebildet werden, um die Informationen von der sendenden Komponente an die Empfangskomponente zu übermitteln. Während die gesendeten Pakete durch die anderen Schichten strömen, werden sie mit zusätzlichen Informationen erweitert, die dazu verwendet werden, Pakete in diesen Schichten zu behandeln. Auf der Empfangsseite findet der umgekehrte Prozess statt und werden die Pakete von ihrer Darstellung in der Bitübertragungsschicht 220 in die Darstellung in der Sicherungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form, die durch die Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann, umgewandelt.
-
In einer Ausführungsform kann die Transaktionsschicht 205 eine Schnittstelle zwischen einem Verarbeitungskern der Vorrichtung und der Verdrahtungsstruktur wie etwa die Sicherungsschicht 210 und die Bitübertragungsschicht 220 bereitstellen. Diesbezüglich kann eine Hauptverantwortlichkeit der Transaktionsschicht 205 das Zusammenfügen und Auftrennen von Paketen (d. h. Transaktionsschichtpaketen oder TLPs) enthalten. Die Transaktionsschicht 205 kann ebenfalls eine kreditgestützte Flusssteuerung für TLPs managen. In einigen Implementierungen können unter anderen Beispielen aufgeteilte Transaktionen, d. h. Transaktionen mit Anforderung und Antwort, die durch eine Zeitdauer getrennt sind, genutzt werden, was ermöglicht, dass eine Verbindung anderen Verkehr übermittelt, während die Zielvorrichtung Daten für die Antwort sammelt.
-
Um unter Nutzung des Verdrahtungs-Fabrics virtuelle Kanäle und Netze zu verwirklichen, kann die kreditbasierte Flusssteuerung kann verwendet werden. In einem Beispiel kann eine Vorrichtung für jeden der Empfangspuffer in der Transaktionsschicht 205 eine Anfangsmenge von Kredits ankündigen. Eine externe Vorrichtung am gegenüberliegenden Ende der Verbindung wie etwa der Controller-Hub 115 in 1 kann die Anzahl der durch jedes TLP verbrauchten Kredite zählen. Eine Transaktion kann gesendet werden, falls die Transaktion einen Kreditgrenzwert nicht übersteigt. Beim Empfang einer Antwort wird eine Kreditmenge wiederhergestellt. Ein Beispiel eines Vorteils eines solchen Kreditschemas ist unter anderen potentiellen Vorteilen, dass die Latenzzeit der Kreditrückgabe die Leistungsfähigkeit nicht beeinflusst, sofern der Kreditgrenzwert nicht erreicht ist.
-
In einer Ausführungsform können vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum enthalten. Speicherraumtransaktionen enthalten eine oder mehrere Leseanforderungen und Schreibanforderungen, um Daten zu/von einem speicherabbildgetreuen Ort zu übertragen. In einer Ausführungsform können Speicherraumtransaktionen zwei verschiedene Adressenformate, z. B. ein kurzes Adressenformat wie etwa eine 32-Bit-Adresse oder ein langes Adressenformat wie etwa eine 64-Bit-Adresse, verwenden. Um auf den Konfigurationsraum verschiedener mit der Verdrahtung verbundener Vorrichtungen zuzugreifen, können Konfigurationsraumtransaktionen verwendet werden. Transkationen in den Konfigurationsraum können Leseanforderungen und Schreibanforderungen enthalten. Um eine Inbandkommunikation zwischen Verdrahtungsagenten zu unterstützen, können ebenfalls Nachrichtenraumtransaktionen (oder einfach Nachrichten) definiert werden. Somit kann die Transaktion 205 in einer beispielhaften Ausführungsform den Paketanfangsblock/die Nutzinformationen 206 zusammenfügen.
-
Kurz anhand von 3 ist eine beispielhafte Ausführungsform eines Transaktionsschicht-Paketdeskriptors dargestellt. In einer Ausführungsform kann der Transaktionsdeskriptor 300 ein Mechanismus zum Übermitteln von Transaktionsinformationen sein. Diesbezüglich unterstützt der Transaktionsdeskriptor 300 die Identifizierung von Transaktionen in einem System. Andere potentielle Verwendungen enthalten die Nachführung von Änderungen der Standardtransaktionsordnung und die Zuordnung einer Transaktion zu Kanälen. Der Transaktionsdeskriptor 300 kann z. B. ein globales Kennungsfeld 302, ein Attributefeld 304 und ein Kanalkennungsfeld 306 enthalten. In dem dargestellten Beispiel ist das globale Kennungsfeld 302 so gezeigt, dass es ein lokales Transaktionskennungsfeld 308 und ein Quellkennungsfeld 310 umfasst. In einer Ausführungsform ist die globale Transaktionskennung 302 für alle unerledigten Anforderungen eindeutig.
-
In Übereinstimmung mit einer Implementierung ist das lokale Transaktionskennungsfeld 308 ein durch einen anfordernden Agenten erzeugtes Feld und kann es für alle unerledigten Anforderungen, die für diesen anfordernden Agenten einen Abschluss erfordern, eindeutig sein. Darüber hinaus identifiziert in diesem Beispiel die Quellkennung 310 eindeutig den Anfordereragenten innerhalb einer Verdrahtungshierarchie. Dementsprechend stellt das Feld der lokalen Transaktionskennung 308 zusammen mit der Quell-ID 310 innerhalb einer Hierarchiedomäne eine globale Identifizierung einer Transaktion bereit.
-
Das Attributefeld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. Diesbezüglich wird das Attributefeld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die eine Änderung der Standardbehandlung von Transaktionen ermöglichen. In einer Ausführungsform enthält das Attributefeld 304 ein Prioritätsfeld 312, ein reserviertes Feld 314, ein Ordnungsfeld 316 und ein Nicht-Mitlauschen-Feld 318. Das Prioritätsteilfeld 312 kann hier durch einen Initiator geändert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 314 wird für die Zukunft oder für eine durch einen Anbieter definierte Nutzung reserviert gelassen. Unter Verwendung des reservierten Attributfelds können mögliche Nutzungsmodelle unter Verwendung von Prioritäts- oder Sicherheitsattributen implementiert werden.
-
Das Ordnungsattributfeld 316 wird in diesem Beispiel verwendet, um optionale Informationen bereitzustellen, die den Typ der Ordnung übermitteln, die Standardordnungsregeln modifizieren kann. In Übereinstimmung mit einer beispielhaften Implementierung bezeichnet ein Ordnungsattribut „0“, dass Standardordnungsregeln angewendet werden sollen, während ein Ordnungsattribut „1“ eine gelockerte Ordnung bezeichnet, in der Schreibvorgänge Schreibvorgänge in derselben Richtung überspringen können und Lesevorgangsabschlüsse Schreibvorgänge in derselben Richtung überspringen können. Das Mitlauschen-Attributfeld 318 wird genutzt, um zu bestimmen, ob Transaktionen mitgelauscht werden. Wie gezeigt ist, identifiziert das Kanal-ID-Feld 306 einen Kanal, dem eine Transaktion zugeordnet ist.
-
Zurückkehrend zu der Diskussion aus 2 kann eine Sicherungsschicht 210, die auch als Datensicherungsschicht 210 bezeichnet wird, als eine Zwischenstufe zwischen der Transaktionsschicht 205 und der Bitübertragungsschicht 220 wirken. In einer Ausführungsform liegt es in der Verantwortlichkeit der Datensicherungsschicht 210, einen zuverlässigen Mechanismus für den Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten an einer Verbindung bereitzustellen. Eine Seite der Datensicherungsschicht 210 nimmt TLPs an, die durch die Transaktionsschicht 205 zusammengefügt wurden, wendet eine Paketsequenzkennung 211, d. h. eine Kennnummer oder Paketnummer, an, berechnet einen Fehlerdetektionscode, d. h. CRC 212, und wendet ihn an und übergibt die geänderten TLPs zur Übertragung über eine physikalische Vorrichtung an eine externe Vorrichtung an die Bitübertragungsschicht 220.
-
In einem Beispiel enthält die Bitübertragungsschicht 220 einen logischen Teilblock 221 und einen elektrischen Teilblock 222, um ein Paket physikalisch an eine externe Vorrichtung zu senden. Der logische Teilblock 221 ist hier für die „digitalen“ Funktionen der Bitübertragungsschicht 221 verantwortlich. Diesbezüglich kann der logische Teilblock einen Sendeabschnitt zum Vorbereiten abgehender Informationen für die Sendung durch den physikalischen Teilblock 222 und einen Empfängerabschnitt zum Identifizieren und Vorbereiten empfangener Informationen, bevor sie an die Sicherungsschicht 210 übergeben werden, enthalten.
-
Der physikalische Block 222 enthält einen Sender und einen Empfänger. Dem Sender werden durch den logischen Teilblock 221 Symbole zugeführt, die der Sender serialisiert und an eine externe Vorrichtung sendet. Dem Empfänger werden von einer externen Vorrichtung serialisierte Symbole zugeführt und er transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird entserialisiert und dem logischen Teilblock 221 zugeführt. In einer beispielhaften Ausführungsform wird ein 8b/10b-Sendecode genutzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu rahmen. In einem Beispiel stellt der Empfänger außerdem einen Symboltakt bereit, der von dem ankommenden seriellen Strom wiedergewonnen wird.
-
Obwohl die Transaktionsschicht 205, die Sicherungsschicht 210 und die Bitübertragungsschicht 220 in Bezug auf eine spezifische Ausführungsform eines Protokollstapels (wie etwa auf einen PCIe-Protokollstapel) diskutiert sind, ist ein Schichtprotokollstapel wie oben erwähnt darauf nicht beschränkt. Tatsächlich kann irgendein Schichtprotokollstapel aufgenommen/implementiert werden und die hier diskutierten Merkmale annehmen. Als ein Beispiel kann ein Port/eine Schnittstelle, der bzw. die als ein Schichtprotokoll dargestellt ist, Folgendes enthalten: (1) eine erste Schicht zum Zusammensetzen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequentialisieren von Paketen, d. h. eine Sicherungsschicht; und eine dritte Schicht zum Senden der Pakete, d. h. eine Bitübertragungsschicht. Als ein spezifisches Beispiel wird ein wie hier beschriebenes Hochleistungsverdrahtungs-Schichtprotokoll genutzt.
-
Nachfolgend anhand von 4 ist eine beispielhafte Ausführungsform eines seriellen Punkt-zu-Punkt-Fabrics dargestellt. Eine serielle Punkt-zu-Punkt-Verbindung kann irgendeinen Übertragungsweg zum Übertragen serieller Daten enthalten. In der gezeigten Ausführungsform kann eine Verbindung zwei differentiell angesteuerte Niederspannungssignalpaare enthalten: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Dementsprechend enthält die Vorrichtung 405 eine Sendelogik 406 zum Senden von Daten an die Vorrichtung 410 und eine Empfangslogik 407 zum Empfangen von Daten von der Vorrichtung 410. Mit anderen Worten, in einer Implementierung einer Verbindung sind zwei Sendewege, d. h. die Wege 416 und 417, und zwei Empfangswege, d. h. die Wege 418 und 419, enthalten.
-
Ein Sendeweg bezieht sich auf irgendeinen Weg zum Senden von Daten wie etwa auf eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarotkommunikationsverbindung oder einen anderen Kommunikationsweg. Eine Verknüpfung zwischen zwei Vorrichtungen wie etwa einer Vorrichtung 405 und einer Vorrichtung 410 wie etwa die Verbindung 415 wird als eine Verbindung bezeichnet. Eine Verbindung kann eine Spur unterstützen - wobei jede Spur einen Satz verschiedener Signalpaare (ein Paar für die Sendung, ein Paar für den Empfang) darstellt. Um die Bandbreite zu skalieren, kann eine Verbindung mehrere Spuren gruppieren, was durch xN bezeichnet ist, wobei N irgendeine unterstützte Verbindungsbreite wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter ist.
-
Ein differentielles Paar kann sich auf zwei Übertragungswege wie etwa auf die Leitungen 416 und 417 zum Übertragen differentieller Signale beziehen. Als ein Beispiel steuert die Leitung 417 von einem hohen Logikpegel auf einen tiefen Logikpegel, d. h. eine fallende Flanke, an, wenn die Leitung 416 von einem tiefen Spannungspegel auf einen hohen Spannungspegel hin- und herschaltet, d. h. eine steigende Flanke. Differentielle Signale zeigen unter anderen beispielhaften Vorteilen potentiell bessere elektrische Eigenschaften wie etwa bessere Signalintegrität, d. h. Kreuzkopplung, Spannungsüberschwingen/Spannungsunterschwingen, gedämpfte Schwingung. Dies ermöglicht ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
-
In einer Ausführungsform wird eine neue Hochleistungsverdrahtung (HPI) bereitgestellt. Die HPI kann eine Cache-kohärente verbindungsbasierte Verdrahtung der nächsten Generation enthalten. Als ein Beispiel kann die HPI in Hochleistungscomputerplattformen wie etwa Workstations oder Servern einschließlich in Systemen, wo üblicherweise das PCIe oder ein anderes Verdrahtungsprotokoll verwendet wird, um Prozessoren, Beschleuniger, E/A-Vorrichtungen und dergleichen zu verbinden, genutzt werden. Allerdings ist die HPI darauf nicht beschränkt. Stattdessen kann die HPI in irgendeinem der hier beschriebenen Systeme oder in irgendeiner der hier beschriebenen Plattformen genutzt werden. Darüber hinaus können die einzelnen entwickelten Ideen auf andere Verdrahtungen und Plattformen wie etwa PCIe, MIPI, QPI usw. angewendet werden.
-
Um mehrere Vorrichtungen zu unterstützen, kann die HPI in einer beispielhaften Implementierung eine Befehlssatzarchitektur-Agnostik (ISA-Agnostik) enthalten (d. h. kann die HPI in mehreren verschiedenen Vorrichtungen implementiert werden). In einem anderen Szenarium kann die HPI ebenfalls zum Verbinden von Hochleistungs-E/A-Vorrichtungen, nicht nur von Prozessoren oder Beschleunigern, genutzt werden. Zum Beispiel kann eine Hochleistungs-PCIe-Vorrichtung über eine geeignete Übersetzungs-Bridge (d. h. HPI zu PCIe) mit einer HPI gekoppelt sein. Darüber hinaus können die HPI-Verbindungen von vielen HPI-basierten Vorrichtungen wie etwa Prozessoren auf verschiedene Arten (z. B. Sterne, Ringe, Maschen usw.) genutzt werden. 5 veranschaulicht beispielhafte Implementierungen mehrerer potentieller Mehr-Sockel-Konfigurationen. Eine Zwei-Sockel-Konfiguration 505, wie sie gezeigt ist, kann zwei HPI-Verbindungen enthalten; allerdings kann in anderen Implementierungen eine HPI-Verbindung genutzt werden. Für größere Topologien kann irgendeine Konfiguration genutzt werden, solange eine Kennung (ID) zuweisbar ist und solange es unter anderen zusätzlichen oder Ersatzmerkmalen eine Form eines virtuellen Wegs gibt. Wie gezeigt ist, weist in einem Beispiel eine Vier-Sockel-Konfiguration 510 eine HPI-Verbindung von einem Prozessor zu einem anderen auf. Dagegen ist in der in der Konfiguration 515 gezeigten Acht-Sockel-Implementierung nicht jeder Sockel direkt mit jedem anderen über eine HPI-Verbindung verbunden. Allerdings wird die Konfiguration unterstützt, falls zwischen den Prozessoren ein virtueller Weg oder Kanal vorhanden ist. Ein Bereich unterstützter Prozessoren enthält in einer nativen Domäne 2-32. Höhere Anzahlen von Prozessoren können unter anderen Beispielen unter Verwendung mehrerer Domänen oder anderer Verdrahtungen zwischen Knotencontrollern erreicht werden.
-
Die HPI-Architektur enthält eine Definition einer Schichtprotokollarchitektur, die in einigen Beispielen Protokollschichten (kohärent, nicht kohärent und optional andere speicherbasierte Protokolle), eine Routingschicht, eine Sicherungsschicht und eine Bitübertragungsschicht enthält. Darüber hinaus kann die HPI ferner Erweiterungen enthalten, die sich unter anderen Beispielen auf Leistungsmanager (wie etwa Leistungssteuereinheiten (PCUs)), auf den Entwurf für Prüfung und Austesten (DFT), auf die Störungsbehandlung, auf Register, auf die Sicherheit beziehen. 5 veranschaulicht eine Ausführungsform eines beispielhaften HPI-Schichtprotokollstapels. In einigen Implementierungen können wenigstens einige der in 5 dargestellten Schichten optional sein. Jede Schicht behandelt ihre eigene Granularitäts- oder Informationsquantumebene (die Protokollschicht 605a,b mit Paketen 630, die Sicherungsschicht 610a,b mit Flits 635 und die Bitübertragungsschicht 605a,b mit Phits 640). Es wird angemerkt, dass ein Paket in einigen Ausführungsformen auf der Grundlage der Implementierung partielle Flits, ein einzelnes Flit oder mehrere Flits enthalten kann.
-
Als ein erstes Beispiel enthält eine Breite eines Phits 640 eine 1-zu-1-Abbildung einer Verbindungsbreite auf Bits (z. B. enthält eine Verbindungsbreite von 20 Bits ein Phit von 20 Bits usw.). Flits können eine größere Größe wie etwa 184, 192 oder 200 Bits aufweisen. Es wird angemerkt, dass es eine gebrochene Anzahl von Phits 640 erfordert, um ein Flit 635 zu übertragen, falls das Phit 640 20 Bit breit ist und die Größe des Flits 635 184 Bits sind (z. B. unter anderen Beispielen 9,2 Phits bei 20 Bits zum Übertragen eines 184-Bit-Flits 635 oder 9,6 bei 20 Bits zum Übertragen eines 192-Bit-Flits). Es wird angemerkt, dass die Breiten der Grundverbindung in der Bitübertragungsschicht variieren können. Zum Beispiel kann die Anzahl der Spuren pro Richtung 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 usw. enthalten. In einer Ausführungsform kann die Sicherungsschicht 610a,b mehrere Stücke verschiedener Transaktionen in ein einzelnes Flit einbetten und können einer oder mehrere Anfangsblöcke (z. B. 1, 2, 3, 4) in das Flit eingebettet werden. In einem Beispiel trennt die HPI die Anfangsblöcke in entsprechende Schlitze, um zu ermöglichen, dass mehrere Nachrichten in dem Flit für unterschiedliche Knoten bestimmt sind.
-
In einer Ausführungsform kann die Bitübertragungsschicht 605a,b für die schnelle Übertragung von Informationen in dem physikalischen Medium (elektrisch oder optisch usw.) verantwortlich sein. Die physikalische Verbindung zwischen zwei Sicherungsschichtentitäten wie etwa zwischen der Schicht 605a und der Schicht 605b kann eine von Punkt zu Punkt sein. Die Sicherungsschicht 610a,b kann die Bitübertragungsschicht 605a,b von den oberen Schichten abstrahieren und stellt die Fähigkeit bereit, Daten (sowie Anforderungen) zuverlässig zu übertragen und die Flusssteuerung zwischen zwei direkt verbundenen Entitäten zu managen. Außerdem kann die Sicherungsschicht dafür verantwortlich sein, den physikalischen Kanal in mehrere virtuelle Kanäle und Nachrichtenklassen zu virtualisieren. Die Protokollschicht 620a,b stützt sich auf die Sicherungsschicht 610a,b, um Protokollnachrichten auf geeignete Nachrichtenklassen und virtuelle Kanäle abzubilden, bevor sie sie zur Übertragung über die physikalischen Verbindungen an die Bitübertragungsschicht 605a,b übergibt. Die Sicherungsschicht 610a,b kann unter anderen Beispielen mehrere Nachrichten wie etwa Anforderung, Mitlauschen, Antwort, Zurückschreiben, nicht kohärente Daten unterstützen.
-
Wie in 6 dargestellt ist, kann die Bitübertragungsschicht 605a,b (oder PHY) der HPI über der elektrischen Schicht (d. h. den elektrischen Leitern, die zwei Komponenten verbinden) und unter der Sicherungsschicht 610a,b implementiert sein. Die Bitübertragungsschicht und die entsprechende Logik können in jedem Agenten liegen und verbinden die Sicherungsschichten in zwei voneinander getrennten Agenten (A und B) (z. B. in Vorrichtungen auf beiden Seiten einer Verbindung). Die lokale und die ferne elektrische Schicht sind durch physikalische Medien (z. B. Drähte, Leiter, optisch usw.) verbunden. In einer Ausführungsform weist die Bitübertragungsschicht 605a,b zwei Hauptphasen, Initialisierung und Betrieb, auf. Während der Initialisierung ist die Verknüpfung für die Sicherungsschicht undurchlässig und kann die Signalisierung eine Kombination von zeitlich festgelegten Zuständen und Quittungsaustausch-Ereignissen umfassen. Während des Betriebs ist die Verknüpfung für die Sicherungsschicht durchlässig und erfolgt die Signalisierung mit einer Geschwindigkeit, wobei alle Spuren als eine einzelne Verbindung zusammenarbeiten. 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 eine Verbindung bezeichnet und abstrahiert einige physikalische Aspekte einschließlich Medien, Breite und Geschwindigkeit von Sicherungsschichten, während mit der Sicherungsschicht Flits und Steuerung/Status aktueller Informationen (z. B. die Breite) ausgetauscht werden. Die Initialisierungsphase enthält unbedeutende Phasen, z. B. Abfragen, Konfiguration. Die Betriebsphase enthält ebenfalls unbedeutende Phasen (z. B. Verbindungs-Leistungsmanagementzustände).
-
In einer Ausführungsform kann die Sicherungsschicht 610a,b in der Weise implementiert werden, dass sie eine zuverlässige Datenübertragung zwischen zwei Protokollen oder Routingentitäten bereitstellt. Die Sicherungsschicht kann die Bitübertragungsschicht 605a,b von der Protokollschicht 620a,b abstrahieren und kann für die Flusssteuerung zwischen zwei Protokollagenten (A, B) verantwortlich sein und kann Dienste virtueller Kanäle für die Protokollschicht (Nachrichtenklassen) und für die Routingschicht (virtuelle Netze) bereitstellen. Die Schnittstelle zwischen der Protokollschicht 620a,b und der Sicherungsschicht 610a,b kann üblicherweise auf der Paketebene sein. In einer Ausführungsform wird die kleinste Übertragungseinheit der Sicherungsschicht als ein Flit bezeichnet, das eine spezifizierte Anzahl von Bits wie etwa 192 Bits oder ein anderer Nennbetrag ist. Um die Übertragungseinheit (Phit) der Bitübertragungsschicht 605a,b in die Übertragungseinheit (Flit) der Sicherungsschicht 610a,b zu rahmen, stützt sich die Sicherungsschicht 610a,b auf die Bitübertragungsschicht 605a,b. Außerdem kann die Sicherungsschicht 610a,b logisch in zwei Teile, einen Sender und einen Empfänger, zerlegt werden. Ein Sender/Empfänger-Paar in einer Entität kann mit einem Empfänger/Sender-Paar in einer anderen Entität verbunden werden. Häufig wird eine Flusssteuerung sowohl auf einer Flit- als auch auf einer Paketbasis ausgeführt. Potentiell werden ebenfalls eine Fehlerdetektion und eine Fehlerkorrektur auf einer Flit-Ebenen-Basis ausgeführt.
-
In einer Ausführungsform kann die Routingschicht 615a,b ein flexibles und verteiltes Verfahren zum Routen von HPI-Transaktionen von einer Quelle zu einem Ziel bereitstellen. Da Routingalgorithmen für mehrere Topologien durch programmierbare Routingtabellen bei jedem Router spezifiziert werden können (wobei die Programmierung in einer Ausführungsform durch Firmware, durch Software oder durch eine Kombination davon ausgeführt wird), ist das Schema flexibel. Die Routingfunktionalität kann verteilt sein; das Routing kann über eine Reihe von Routingschritten erfolgen, wobei jeder Routingschritt durch ein Nachschlagen einer Tabelle entweder bei dem Quellrouter, bei einem Zwischenrouter oder bei dem Zielrouter definiert wird. Das Nachschlagen bei einer Quelle kann zum Injizieren eines HPI-Pakets in das HPI-Fabric verwendet werden. Das Nachschlagen bei einem Zwischenrouter kann zum Routen eines HPI-Pakets von einem Eingangsport zu einem Ausgangsport verwendet werden. Das Nachschlagen bei einem Zielport kann für die Zielsetzung des Ziel-HPI-Protokollagenten verwendet werden. Es wird angemerkt, dass die Routingschicht in einigen Implementierungen dünn sein kann, da die Routingtabellen und somit die Routingalgorithmen durch die Spezifikation nicht spezifisch definiert sind. Dies ermöglicht Flexibilität und dass durch die Systemimplementierung eine Vielzahl von Nutzungsmodellen einschließlich flexibler Plattformarchitekturtopologien definiert werden. Die Routingschicht 615a,b stützt sich auf die Sicherungsschicht 610a,b, um die Verwendung von bis zu drei (oder mehr) virtuellen Netzen (VNs) - in einem Beispiel zwei Deadlock-freie VNs, VN0 und VN1, mit mehreren in jedem virtuellen Netz definierten Nachrichtenklassen - bereitzustellen. In der Sicherungsschicht kann ein gemeinsam genutztes adaptives virtuelles Netz (VNA) definiert werden, wobei dieses adaptive Netz in Routingkonzepten aber nicht direkt freigelegt wird, da jede Nachrichtenklasse und jedes virtuelle Netz unter anderen Merkmalen und Beispielen dedizierte Betriebsmittel und einen garantierten Vorwärtsfortschritt aufweisen kann.
-
In einigen Implementierungen kann die HPI einen eingebetteten Takt nutzen. In Daten, die unter Verwendung der Verdrahtung übertragen werden, kann ein Taktsignal eingebettet sein. Wenn das Taktsignal in die Daten eingebettet ist, können verschiedene und dedizierte Taktspuren weggelassen sein. Dies kann z. B. nützlich sein, da es insbesondere in Systemen, in denen der Platz für Anschlussstifte sehr wertvoll ist, ermöglichen kann, mehr Anschlussstifte einer Vorrichtung der Datenübertragung zu widmen.
-
Eine Verbindung kann zwischen zwei Agenten auf beiden Seiten einer Verdrahtung aufgebaut werden. Ein Agent, der Daten sendet, kann ein lokaler Agent sein und der Agent, der die Daten empfängt, kann ein ferner Agent sein. Von beiden Agenten können Zustandsmaschinen genutzt werden, um verschiedene Aspekte der Verbindung zu managen. In einer Ausführungsform kann der Datenweg der Bitübertragungsschicht Flits von der Sicherungsschicht an das elektrische Frontend senden. In einer Implementierung enthält der Steuerweg eine Zustandsmaschine (auch als eine Verbindungstrainingszustandsmaschine oder ähnlich bezeichnet). Die Aktionen und Austritte von Zuständen der Zustandsmaschine können von internen Signalen, Zeitgebern, externen Signalen oder anderen Informationen abhängen. Tatsächlich können einige der Zustände wie etwa einige wenige Initialisierungszustände Zeitgeber aufweisen, um einen Zeitablaufwert für den Austritt aus einem Zustand bereitzustellen. Es wird angemerkt, dass sich Detektieren in einigen Ausführungsformen auf das Detektieren eines Ereignisses auf beiden Zweigen einer Spur, allerdings nicht notwendig gleichzeitig, bezieht. Allerdings bezieht sich Detektieren in anderen Ausführungsformen auf die Detektion eines Ereignisses durch einen Agenten der Bezugnahme. Als ein Beispiel bezieht sich Entprellen auf die aufrechterhaltene Erklärung eines Signals. In einer Ausführungsform unterstützt die HPI den Betrieb im Fall funktionsloser Spuren. In spezifischen Zuständen können hier Spuren fallengelassen werden.
-
In der Zustandsmaschine definierte Zustände können hier unter anderen Kategorien und Subkategorien Rücksetzzustände, Initialisierungszustände und Betriebszustände enthalten. In einem Beispiel können einige Initialisierungszustände einen sekundären Zeitgeber aufweisen, der verwendet wird, um bei einem Zeitablauf aus dem Zustand auszutreten (im Wesentlichen ein Abbruch, da in dem Zustand kein Fortschritt erfolgt). Ein Abbruch kann das Aktualisieren von Registern wie etwa des Statusregisters enthalten. Einige Zustände können ebenfalls einen oder mehrere primäre Zeitgeber aufweisen, die zur zeitlichen Festlegung der primären Funktionen in dem Zustand verwendet werden. Andere Zustände können so definiert sein, dass unter anderen Beispielen interne oder externe Signale (wie etwa Quittungsaustausch-Protokolle) den Übergang von einem Zustand in einen anderen Zustand ansteuern.
-
Eine Zustandsmaschine kann ebenfalls das Austesten durch einen einzelnen Schritt, das Einfrieren bei Abbruch der Initialisierung und die Verwendung von Prüfern unterstützen. Zustandsaustritte können hier verschoben/gehalten werden, bis die Austestsoftware bereit ist. In einem Fall kann der Austritt bis zu dem sekundären Zeitablauf verschoben/gehalten werden. In einer Ausführungsform können Aktionen und Austritte auf dem Austausch von Trainingssequenzen beruhen. In einer Ausführungsform soll die Verbindungszustandsmaschine in der Taktdomäne des lokalen Agenten ausgeführt werden und erfolgt der Übergang von einem Zustand zu dem Nächsten so, dass er mit einer Sendertrainingssequenzgrenze zusammenfällt. Um den aktuellen Zustand zu widerspiegeln, können Statusregister genutzt werden.
-
7 veranschaulicht eine Darstellung wenigstens eines Abschnitts einer Zustandsmaschine, die von Agenten in einer beispielhaften Implementierung der HPI verwendet wird. Es sollte gewürdigt werden, dass die in der Zustandstabelle aus 7 enthaltenen Zustände eine nicht erschöpfende Auflistung möglicher Zustände enthalten. Zum Beispiel sind einige Übergänge weggelassen, um das Diagramm zu vereinfachen. Außerdem können einige Zustände kombiniert, geteilt oder weggelassen werden, während andere hinzugefügt werden könnten. Diese Zustände können Folgende enthalten:
- Ereignisrücksetzzustand: In ihn wird bei einem Warm- oder Kaltrücksetzereignis eingetreten. Er stellt Standardwerte wieder her. Er initialisiert Zähler (z. B. Synchronzähler). Er kann zu einem anderen Zustand wie etwa zu einem anderen Rücksetzzustand austreten.
- Zeitlich festgelegter Rücksetzzustand: zeitlich festgelegter Zustand für Inbandzurücksetzen. Er kann eine im Voraus definierte elektrisch geordnete Menge (EOS) ansteuern, so dass ferne Empfänger die EOS detektieren können und ebenfalls in das zeitlich festgelegte Zurücksetzen eintreten können. Der Empfänger weist Spuren auf, die elektrische Einstellungen halten. Er kann zu einem Agenten austreten, um den Rücksetzzustand zu kalibrieren.
- Kalibrierungsrücksetzzustand: Kalibrierung ohne Signalisierung auf der Spur (z. B. Empfängerkalibrierungszustand) oder Ausschalten von Treibern. Er kann eine vorgegebene Zeitdauer in dem Zustand auf der Grundlage eines Zeitgebers sein. Er kann eine Betriebsgeschwindigkeit einstellen. Wenn ein Port nicht freigegeben ist, kann er als ein Wartezustand wirken. Er kann eine minimale Aufenthaltszeit enthalten. Auf der Grundlage des Entwurfs kann eine Empfängeraufbereitung oder ein Ausstaffeln auftreten. Nach einem Zeitablauf und/oder nach Ablauf einer Kalibrierung kann er zu einem Empfängerdetektionszustand austreten.
- Empfängerdetektionszustand: Detektiert die Anwesenheit eines Empfängers auf einer oder auf mehreren Spuren. Er kann nach einem Empfängerabschluss (z. B. nach einer Empfängerabbrucheinfügung) suchen. Wenn ein spezifizierter Wert gesetzt ist oder wenn ein anderer spezifizierter Wert nicht gesetzt ist, kann er zu einem Kalibrierungsrücksetzzustand austreten. Falls ein Empfänger detektiert wird oder falls ein Zeitablauf erreicht ist, kann er zum Senderkalibrierungszustand austreten.
- Senderkalibrierungszustand: für Senderkalibrierungen. Er kann ein zeitlich festgelegter Zustand sein, der für Senderkalibrierungen zugeordnet wird. Er kann eine Signalisierung auf einer Spur enthalten. Er kann ununterbrochen eine EOS wie etwa eine EIEOS ansteuern. Wenn eine Kalibrierung erfolgt oder bei Ablauf eines Zeitgebers kann er zu einem Kompatibilitätszustand austreten. Falls ein Zähler abgelaufen ist oder falls ein sekundärer Zeitablauf aufgetreten ist, kann er zu einem Senderdetektionszustand austreten.
- Senderdetektionszustand: Bezeichnet eine gültige Signalisierung. Er kann ein Quittungsaustausch-Zustand sein, bei dem ein Agent auf der Grundlage der Signalisierung eines fernen Agenten Aktionen abschließt und zu einem nächsten Zustand austritt. Der Empfänger kann eine gültige Signalisierung von einem Sender bezeichnen. In einer Ausführungsform sucht der Empfänger nach einer Weckdetektion, wobei er auf anderen Spuren nach ihr sucht, falls sie auf einer oder auf mehreren Spuren entprellt wurde. Der Sender steuert ein Detektionssignal an. In Ansprechen darauf, dass eine Entprellung für alle Spuren und/oder ein Zeitablauf abgeschlossen wird oder falls eine Entprellung auf allen Spuren nicht abgeschlossen ist und es einen Zeitablauf gibt, kann er zu einem Abfragezustand austreten. Eine oder mehrere Überwachungsspuren wachgehalten werden Um ein Wecksignal zu entprellen, können hier. Wenn sie entprellt ist, können potentiell außerdem die anderen Spuren entprellt werden. Dies kann Leistungseinsparungen in leistungsarmen Zuständen ermöglichen.
- Abfragezustand: Der Empfänger adaptiert sich, initialisiert den Driftpuffer und verriegelt auf BitsBytes (identifiziert z. B. Symbolgrenzen). Die Spuren können schräglaufkompensiert werden. Ein ferner Agent kann in Ansprechen auf eine Quittierungsnachricht einen Austritt zu einem nächsten Zustand (z. B. zu einem Verbindungsbreitenzustand) veranlassen. Das Abfragen kann zusätzlich eine Trainingssequenzverriegelung durch Verriegeln auf eine EOS und einen Trainingssequenzanfangsblock enthalten. Ein Schräglauf von Spur zu Spur bei dem fernen Sender kann für höchste Geschwindigkeit bei einer ersten Länge und für niedrige Geschwindigkeit bei einer zweiten Länge nach oben begrenzt werden. In einer langsamen Betriebsart sowie in einer Betriebs-Betriebsart kann eine Schräglaufkompensation ausgeführt werden. Der Empfänger kann einen spezifischen maximalen zu kompensierenden Schräglauf von Spur zu Spur wie etwa 8, 16 oder 32 Schräglaufintervalle aufweisen. Die Empfängeraktionen können eine Latenzzeitkorrektur enthalten. In einer Ausführungsform können die Empfängeraktionen bei einer erfolgreichen Schräglaufkompensation einer gültigen Spurkarte abgeschlossen werden. In einem Beispiel kann ein erfolgreicher Quittungsaustausch erzielt werden, wenn eine Anzahl aufeinanderfolgender Trainingssequenzanfangsblöcke mit Quittierungen empfangen werden und wenn eine Anzahl von Trainingssequenzen mit einer Quittierung gesendet werden, nachdem der Empfänger seine Aktionen abgeschlossen hat.
- Verbindungsbreitenzustand: Der Agent kommuniziert mit der letzten Spurkarte zum fernen Sender. Der Empfänger empfängt die Informationen und decodiert sie. Der Empfänger kann eine konfigurierte Spurkarte in einer Struktur nach dem Prüfpunkt eines vorhergehenden Spurkartenwerts in einer zweiten Struktur aufzeichnen. Außerdem kann der Empfänger mit einer Quittierung („ACK“) antworten. Er kann ein Inbandzurücksetzen initiieren. Als ein Beispiel ist er ein erster Zustand zum Initiieren des Inbandzurücksetzens. In einer Ausführungsform wird der Austritt zu einem nächsten Zustand wie etwa zu einem Flit-Konfigurationszustand in Ansprechen auf das ACK ausgeführt. Ferner kann vor dem Eintritt zu einem leistungsarmen Zustand ebenfalls ein Rücksetzsignal erzeugt werden, falls die Häufigkeit, mit der ein Aufweckdetektionssignal auftritt, unter einen spezifizierten Wert (z. B. 1 auf jede Anzahl von Einheitsintervallen (UIs) wie etwa 4 kUI) fällt. Der Empfänger kann aktuelle und vorhergehende Spurkarten halten. Der Sender kann verschiedene Gruppen von Spuren auf der Grundlage von Trainingssequenzen mit unterschiedlichen Werten verwenden. In einigen Ausführungsformen kann die Spurkarte einige Statusregister nicht ändern.
- Flitverriegelungs-Konfigurationszustand: In ihn wird durch einen Sender eingetreten, wobei der Zustand aber als ausgetreten angesehen wird (d. h. sekundärer Zeitablauf fraglich), wenn sowohl der Sender als auch der Empfänger zu einem Verbindungssperrzustand oder zu einem anderen Verbindungszustand ausgetreten sind. In einer Ausführungsform enthält der Senderaustritt zu einem Verbindungszustand den Anfang einer Datensequenzgrenze (SDS-Grenze) und einer Trainingssequenzgrenze (TS-Grenze) nach dem Empfang eines planetaren Ausrichtsignals. Der Empfängeraustritt kann hier auf dem Empfang einer SDS von einem fernen Sender beruhen. Dieser Zustand kann eine Brücke von einem Agenten zu einem Verbindungszustand sein. Der Empfänger identifiziert die SDS. Falls eine SDS empfangen wird, nachdem ein Entwürfler initialisiert worden ist, kann der Empfänger zu einem Verbindungssperrzustand (BLS) (oder in ein Steuerfenster) austreten. Falls ein Zeitablauf auftritt, kann der Austritt zu einem Rücksetzzustand erfolgen. Der Sender steuert die Spuren mit einem Konfigurationssignal an. Auf der Grundlage von Bedingungen oder Zeitabläufen kann der Senderaustritt ein Zurücksetzen, ein BLS oder andere Zustände sein.
- Verbindungsübertragungszustand: ein Verbindungszustand. Es werden Flits an einen fernen Agenten gesendet. In ihn kann von einem Verbindungssperrzustand eingetreten werden und er kann bei einem Ereignis wie etwa einen Zeitablauf zu einem Verbindungssperrzustand zurückkehren. Der Sender sendet Flits. Der Empfänger empfängt Flits. Er kann ebenfalls zu einem leistungsarmen Verbindungszustand austreten. In einigen Implementierungen kann der Verbindungsübertragungszustand (TLS) als der LO-Zustand bezeichnet werden.
- Verbindungssperrzustand: ein Verbindungszustand. Der Sender und der Empfänger arbeiten auf vereinheitlichte Weise. Er kann ein zeitlich festgelegter Zustand sein, währenddessen die Sicherungsschicht-Flits zurückgehalten werden, während die Bitübertragungsschichtinformationen an den fernen Agenten übermittelt werden. Er kann zu einem leistungsarmen Verbindungszustand (oder zu einem anderen Verbindungszustand auf der Grundlage des Entwurfs) austreten. In einer Ausführungsform tritt ein Verbindungssperrzustand (BLS) periodisch auf. Die Periode wird als ein BLS-Intervall bezeichnet und kann zeitlich festgelegt sein und kann sich zwischen niedriger Geschwindigkeit und Betriebsgeschwindigkeit unterscheiden. Es wird angemerkt, dass die Sicherungsschicht wie etwa während eines Verbindungsübertragungszustands oder eines Teilbreiten-Verbindungsübertragungszustands periodisch von dem Senden von Flits gesperrt werden kann, so dass eine Bitübertragungsschicht-Steuersequenz mit einer Länge gesendet werden kann. In einigen Implementierungen kann der Verbindungssperrzustand (BLS) als ein L0-Steuerzustand oder als ein L0c-Zustand bezeichnet werden.
- Teilbreiten- Verbindungsübertragungszustand: Verbindungszustand. Er kann Leistung sparen, indem zu einem Teilbreitenzustand eingetreten wird. In einer Ausführungsform bezieht sich die asymmetrische Teilbreite auf jede Richtung einer Zweirichtungsverbindung mit unterschiedlichen Breiten, die in einigen Entwürfen unterstützt werden können. Ein Beispiel eines Initiators wie etwa eines Senders, der eine Teilbreitenangabe sendet, um in einen Teilbreiten-Verbindungsübertragungszustand einzutreten, ist in dem Beispiel aus 9 gezeigt. Hier wird eine Teilbreitenangabe gesendet, während auf einer Verbindung mit einer ersten Breite die Verbindung gesendet wird, damit die Verbindung zum Senden mit einer zweiten, neuen Breite übergeht. Eine Fehlanpassung kann zu einem Zurücksetzen führen. Es wird angemerkt, dass Geschwindigkeiten nicht geändert werden können, die Breite aber geändert werden kann. Somit werden potentiell Flits bei unterschiedlichen Breiten gesendet. Dies kann logisch ähnlich zu einem Verbindungsübertragungszustand sein; allerdings kann es länger dauern, Flits zu übertragen, da es eine kleinere Breite gibt. Er kann auf der Grundlage bestimmter empfangener und gesendeter Nachrichten oder eines Austritts aus dem Teilbreiten-Verbindungsübertragungszustand oder aus einem Verbindungssperrzustand auf der Grundlage anderer Ereignisse in andere Verbindungszustände wie etwa zu einem leistungsarmen Verbindungszustand austreten. In einer Ausführungsform kann ein Sender-Port, wie in dem Zeitablaufplan gezeigt ist, ungenutzte Spuren auf gestaffelte Weise ausschalten, um eine bessere Signalintegrität (z. B. Rauschunterdrückung) bereitzustellen. Während Zeitdauern, in denen sich die Verbindungsbreite ändert, können hier nicht wiederholbare Flits wie etwa Null-Flits genutzt werden. In einer oder in mehreren Strukturen kann ein entsprechender Empfänger diese Null-Flits fallenlassen und ungenutzte Spuren auf gestaffelte Weise ausschalten sowie die aktuelle und die vorhergehende Spurkarte aufzeichnen. Es wird angemerkt, dass der Status und das zugeordnete Statusregister ungeändert bleiben können. In einigen Implementierungen kann der Teilbreiten-Verbindungsübertragungszustand als Teil-L0-Zustand oder LOp-Zustand bezeichnet werden.
- Austritt aus dem Teilbreiten-Verbindungsübertragungszustand: Austritt aus dem Teilbreitenzustand. In einigen Implementierungen kann dies ein Verbindungssperrzustand oder nicht sein. In einer Ausführungsform initiiert der Sender einen Austritt, indem er auf den ungenutzten Spuren Teilbreitenaustrittsmuster sendet, um sie zu trainieren und ihren Schräglauf zu kompensieren. Als ein Beispiel beginnt ein Austrittsmuster mit einer EIEOS, die detektiert und entprellt wird, um zu signalisieren, dass die Spur bereit ist, den Eintritt in einen vollen Verbindungsübertragungszustand zu beginnen, und kann es mit einer SDS oder mit einer Schnelltrainigssequenz (FTS) auf ungenutzten Spuren enden. Irgendeine Störung während der Austrittssequenz (Empfängeraktionen wie etwa eine vor dem Zeitablauf nicht abgeschlossene Schräglaufkompensation) hält Flit-Übertragungen an die Sicherungsschicht an und erklärt ein Zurücksetzen, das durch Zurücksetzen der Verbindung bei dem nächsten Auftreten des Verbindungssperrzustands behandelt wird. Außerdem kann die SDS den Verwürfler/Entwürfler auf den Spuren auf geeignete Werte initialisieren. Leistungsarmer Verbindungszustand: Dies ist ein leistungsärmerer Zustand. In einer Ausführungsform ist er leistungsärmer als der Teilbreitenverbindungszustand, da die Signalisierung in dieser Ausführungsform auf allen Spuren und in beiden Richtungen angehalten ist. Sender können einen Verbindungssperrzustand verwenden, um einen leistungsarmen Verbindungszustand anzufordern. Der Empfänger kann hier die Anforderung decodieren und mit einem ACK oder mit einem NAK antworten; andernfalls kann ein Zurücksetzen ausgelöst werden. In einigen Implementierungen kann der leistungsarme Verbindungszustand als ein L1-Zustand bezeichnet werden.
-
In einer Ausführungsform können zwei Typen von Anschlussstiftzurücksetzungen unterstützt werden: Einschaltzurücksetzen (oder „Kalt“-Zurücksetzen) und Warm-Zurücksetzen. Ein Zurücksetzen, das durch Software initiiert wird oder (in der Bitübertragungsschicht oder in einer anderen Schicht) von einem Agenten ausgeht, kann inband an den anderen Agenten übermittelt werden. Allerdings kann ein Inbandzurücksetzen wegen der Nutzung eines eingebetteten Takts durch Kommunikation mit einem anderen Agenten unter Verwendung einer geordneten Menge wie etwa einer spezifischen elektrischen geordneten Menge oder EIEOS wie oben eingeführt behandelt werden. Solche geordneten Sätze können unter anderen Beispielen als definierte 16-Byte-Codes implementiert werden, die im Hexadezimalformat dargestellt werden können. Die geordnete Menge kann während der Initialisierung gesendet werden und nach der Initialisierung kann eine PHY-Steuersequenz (oder ein „Verbindungssperrzustand“) gesendet werden. Der Verbindungssperrzustand kann Sperren, dass die Sicherungsschicht Flits sendet. Als ein weiteres Beispiel kann der Sicherungsschichtverkehr zum Senden neuer NULL-Flits, die bei dem Empfänger verworfen werden können, gesperrt werden.
-
In einigen Implementierungen von HPI können Supersequenzen definiert werden, wobei jede Supersequenz einem jeweiligen Zustand oder dem Eintritt in einen/dem Austritt aus einem jeweiligen Zustand entspricht. Eine Supersequenz kann eine sich wiederholende Sequenz von Datensätzen und Symbolen enthalten. Unter anderen Beispielen können sich die Sequenzen unter anderen Beispielen bis zum Abschluss eines Zustands oder eines Zustandsübergangs oder bis zur Übermittlung eines entsprechenden Ereignisses wiederholen. In einigen Fällen kann sich die sich wiederholende Sequenz einer Supersequenz in Übereinstimmung mit einer definierten Häufigkeit wie etwa einer definierten Anzahl von Einheitsintervallen (UIs) wiederholen. Ein Einheitsintervall (UI) kann dem Zeitintervall zum Senden eines einzelnen Bits auf einer Spur einer Verbindung oder eines Systems entsprechen. In einigen Implementierungen kann die sich wiederholende Sequenz mit einer Electrically Ordered Set (EOS) beginnen. Dementsprechend kann erwartet werden, dass sich eine Instanz der EOS in Übereinstimmung mit der vorgegebenen Häufigkeit wiederholt. Solche geordneten Mengen können als definierte 16-Byte-Codes implementiert werden, die unter anderen Beispielen im Hexadezimalformat dargestellt werden können. In einem Beispiel kann die EOS einer Supersequenz eine Electrically Ordered Electrical Idle Ordered Set (oder EIEIOS) sein. In einem Beispiel kann eine EIEOS einem Niederfrequenztaktsignal (z. B. einer vorgegebenen Anzahl sich wiederholender FF00- oder FFF000-Hexadezimalsymbole usw.) ähneln. Auf die EOS kann eine vorgegebene Menge von Daten wie etwa eine vorgegebene Anzahl von Trainingssequenzen oder anderen Daten folgen. Unter anderen Beispielen können solche Supersequenzen in Zustandsübergängen einschließlich Verbindungszustandsübergängen sowie in einer Initialisierung genutzt werden.
-
Wie oben eingeführt wurde, kann die Initialisierung in einer Ausführungsform anfangs mit niedriger Geschwindigkeit erfolgen, worauf die Initialisierung mit hoher Geschwindigkeit folgt. Die Initialisierung mit niedriger Geschwindigkeit verwendet für die Register und Zeitwerte die Standardwerte. Daraufhin verwendet Software die Niedergeschwindigkeitsverbindung, um die Register, Zeitgeber und elektrischen Parameter einzurichten, und löscht sie die Kalibrierungssemaphore, um den Weg für die Hochgeschwindigkeitsinitialisierung zu ebnen. Als ein Beispiel kann die Initialisierung unter potentiell anderen aus solchen Zuständen oder Aufgaben wie Zurücksetzen, Detektion, Abfrage und Konfiguration bestehen.
-
In einem Beispiel kann eine Sicherungsschicht-Sperrsteuersequenz (d. h. ein Verbindungssperrzustand (BLS) oder L0c-Zustand) einen zeitlich festgelegten Zustand enthalten, währenddessen die Sicherungsschicht-Flits zurückgehalten werden, während die PHY-Informationen an den fernen Agenten übermittelt werden. Der Sender und der Empfänger können hier einen Steuersequenz-Sperrzeitgeber starten. Außerdem können der Sender und der Empfänger beim Ablauf der Zeitgeber aus dem Sperrzustand austreten und andere Maßnahmen wie etwa das Austreten zum Zurücksetzen, das Austreten zu einem anderen Verbindungszustand (oder zu einem anderen Zustand) einschließlich zu Zuständen, die das Senden von Flits über die Verbindung ermöglichen, ergreifen.
-
In einer Ausführungsform kann ein Verbindungstraining vorgesehen sein und das Senden einer oder mehrerer verwürfelter Trainingssequenzen, geordneter Mengen und Steuersequenzen wie etwa in Verbindung mit einer definierten Supersequenz enthalten. Ein Trainingssequenzsymbol kann einen Anfangsblock und/oder reservierte Abschnitte und/oder eine Solllatenzzeit und/oder eine Paarnummer und/oder Codereferenzspuren oder eine Gruppe von Codereferenzspuren einer Karte physikalischer Spuren und/oder einen Initialisierungszustand enthalten. In einer Ausführungsform kann der Anfangsblock unter anderen Beispielen mit einem ACK oder mit einem NAK gesendet werden. Als ein Beispiel können Trainingssequenzen als Teil von Supersequenzen gesendet werden und können sie verwürfelt werden.
-
In einer Ausführungsform werden geordnete Mengen und Steuersequenzen nicht verwürfelt oder gestaffelt und werden sie gleich, gleichzeitig und vollständig auf allen Spuren gesendet. Ein gültiger Empfang einer geordneten Menge kann das Prüfen wenigstens eines Abschnitts der geordneten Menge (oder einer gesamten geordneten Menge für geordnete Teilmengen) enthalten. Geordnete Mengen können eine Electrically Ordered Set (EOS) wie etwa eine Electrical Idle Ordered Set (EIOS) oder eine EIEOS enthalten. Eine Supersequenz kann einen Anfang einer Datensequenz (SDS) oder eine Schnelltrainingssequenz (FTS) enthalten. Solche Mengen und Steuersupersequenzen können im Voraus definiert werden und können irgendein Muster oder irgendeine hexadezimale Darstellung sowie irgendeine Länge aufweisen. Zum Beispiel können geordnete Mengen und Supersequenzen eine Länge von 8 Bytes, 16 Bytes oder 32 Bytes usw. sein. Als ein Beispiel kann die FTS zusätzlich für die schnelle Bitverriegelung während des Austritts aus einem Teilbreiten-Verbindungsübertragungszustand genutzt werden. Es wird angemerkt, dass die FTS-Definition pro Spur sein kann und eine gedrehte Version der FTS nutzen kann.
-
In einer Ausführungsform können Supersequenzen die Einfügung einer EOS wie etwa einer EIEOS in den Trainingssequenzstrom enthalten. Wenn die Signalisierung beginnt, werden Spuren in einer Implementierung auf gestaffelte Weise eingeschaltet. Allerdings kann das dazu führen, dass Anfangssupersequenzen bei dem Empfänger auf einigen Spuren abgeschnitten gesehen werden. Allerdings können Supersequenzen über kurze Intervalle (z. B. näherungsweise Eintausend-Einheits-Intervalle (oder ~ 1 kUI)) wiederholt werden. Außerdem können die Trainingssupersequenzen für die Schräglaufkompensation und/oder für die Konfiguration und/oder für die Übermittlung eines Initialisierungsziels, einer Spurkarte usw. verwendet werden. Die EIEOS kann unter anderen Beispielen für den Übergang einer Spur von dem inaktiven in den aktiven Zustand und/oder für die Selektion auf gute Spuren und/oder für die Identifizierung von Symbol- und TS-Grenzen verwendet werden.
-
Übergehend zu 8 sind Darstellungen beispielhafter Supersequenzen gezeigt. Zum Beispiel kann eine beispielhafte Detektionssupersequenz 805 definiert werden. Die Detektionssupersequenz 805 kann eine sich wiederholende Sequenz einer einzelnen EIEOS (oder einer anderen EOS), gefolgt von einer in Voraus definierten Anzahl von Instanzen einer bestimmten Trainingssequenz (TS), enthalten. In einem Beispiel kann die EIEOS, unmittelbar gefolgt von sieben wiederholten Instanzen der TS, gesendet werden. Wenn die letzte der sieben TS gesendet worden ist, kann die EIEOS erneut gesendet werden, gefolgt von sieben zusätzlichen Instanzen der TS, usw. Die Sequenz kann in Übereinstimmung mit einer bestimmten vorgegebenen Häufigkeit wiederholt werden. In dem Beispiel aus 8 kann die EIEOS auf den Spuren näherungsweise einmal auf eintausend UI (~1 kUI), gefolgt von dem Rest der Detektionssupersequenz 805, erneut erscheinen. Ein Empfänger kann Spuren auf die Anwesenheit einer sich wiederholenden Detektionssupersequenz 805 überwachen und beim Validieren der Supersequenz 705 folgern, dass ein ferner Agent vorhanden ist, auf den Spuren (z. B. durch Einstecken im laufenden Betrieb) hinzugefügt worden ist, aufgewacht ist oder reinitialisiert worden ist usw.
-
In einem anderen Beispiel kann eine andere Supersequenz 810 definiert werden, um eine Abfrage-, Konfigurations- oder Loopback-Bedingung oder einen Abfrage-, Konfigurations- oder Loopback-Zustand anzugeben. Wie bei der beispielhaften Detektionssupersequenz 805 können Spuren einer Verbindung durch einen Empfänger auf eine solche Abfrage-/Konfigurations-/Schleifen-Supersequenz 810 überwacht werden, um einen Abfragezustand, einen Konfigurationszustand oder einen Loopback-Zustand oder eine Abfragebedingung, eine Konfigurationsbedingung oder eine Loopback-Bedingung zu identifizieren. In einem Beispiel kann eine Abfrage-/Konfigurations-/Loopback-Supersequenz 810 mit einem EIEOS, gefolgt von einer vorgegebenen Anzahl wiederholter Fälle eines TS, beginnen. Zum Beispiel können auf die EIEOS in einem Beispiel einunddreißig (31) Instanzen einer TS folgen, wobei sich die EIEOS näherungsweise alle viertausend UI (z. B. ~4 kUI) wiederholt.
-
Ferner kann in einem anderen Beispiel eine Teilbreiten-Übertragungszustands-Austrittssupersequenz (PWTS-Austrittssupersequenz) 815 definiert werden. In einem Beispiel kann eine PWTS-Austrittssupersequenz eine Anfangs-EIEOS enthalten, um Spuren vor dem Senden der ersten vollen Sequenz in der Supersequenz voraufzubereiten. Zum Beispiel kann die in der Supersequenz 815 zu wiederholende Sequenz mit einer (näherungsweise einmal je 1 kUI zu wiederholenden) EIEOS beginnen. Ferner können anstelle anderer Trainingssequenzen (TS) Schnelltrainingssequenzen (FTS) genutzt werden, wobei die FTS dafür konfiguriert ist, bei einer schnelleren Bitverriegelung, Byteverriegelung und Schräglaufkompensation zu helfen. In einigen Implementierungen kann eine FTS entwürfelt werden, um weiter dabei zu helfen, ungenutzte Spuren so schnell und unterbrechungsfrei wie möglich wieder aktiv zu machen. Wie bei anderen Supersequenzen, die einem Eintritt in einen Verbindungsübertragungszustand vorangehen, kann die Supersequenz 815 durch das Senden eines Datensequenzanfangs (SDS) unterbrochen und beendet werden. Ferner kann eine Teil-FTS (FTSp) gesendet werden, um, wie etwa unter anderen Beispielen dadurch, dass ermöglicht wird, dass Bits von der FTSp entfernt (oder zu ihr hinzugefügt) werden, beim Synchronisieren der neuen Spuren mit den aktiven Spuren zu helfen.
-
Potentiell können Supersequenzen wie etwa eine Detektionssupersequenz 705 und eine Abfrage-/Konfigurations-/Schleifen-Supersequenz 710 usw. im Wesentlichen während der gesamten Initialisierung oder Reinitialisierung einer Verbindung gesendet werden. In einigen Fällen kann ein Empfänger beim Empfangen und Detektieren einer bestimmten Supersequenz dadurch antworten, dass er dieselbe Supersequenz über die Spuren an den Sender identisch wiedergibt. Der Empfang und die Validierung einer bestimmten Supersequenz durch einen Sender und einen Empfänger können als ein Quittungsaustausch dienen, um einen Zustand oder eine Bedingung, der bzw. die über die Supersequenz übermittelt worden ist, zu quittieren. Zum Beispiel kann ein solcher Quittungsaustausch (z. B. unter Nutzung einer Detektionssupersequenz 705) verwendet werden, um eine Neuinitialisierung einer Verbindung zu identifizieren. In einem anderen Beispiel kann ein solcher Quittungsaustausch unter anderen Beispielen genutzt werden, um das Ende eines elektrischen Rücksetzzustands oder leistungsarmen Zustands anzugeben, was dazu führt, dass entsprechende Spuren wieder hochgefahren werden. Das Ende des elektrischen Zurücksetzens kann z. B. von einem Quittungsaustausch zwischen einem Sender und einem Empfänger, die jeweils eine Detektionssupersequenz 705 übertragen, identifiziert werden.
-
In einem anderen Beispiel können Spuren auf Supersequenzen überwacht werden und können sie die Supersequenzen in Verbindung mit dem Screening von Spuren unter anderen Ereignissen auf Detektions-, Aufweck-Zustandsaustritte und Detektions-, Aufweck-Zustandseintritte verwenden. Ferner können das im Voraus definierte und vorhersagbare Wesen und die im Voraus definierte und vorhersagbare Form von Supersequenzen verwendet werden, um solche Initialisierungsaufgaben wie Bitverriegelung, Byteverriegelung, Entprellung, Entwürfelung, Schräglaufkompensation, Adaptation, Latenzzeitkorrektur, abgestimmte Verzögerungen und andere potentielle Verwendungen auszuführen. Tatsächlich können Spuren im Wesentlichen ununterbrochen auf solche Ereignisse überwacht werden, um die Fähigkeit des Systems, auf solche Bedingungen zu reagieren und sie zu verarbeiten, zu beschleunigen. Im Fall des Entprellens können im Ergebnis einer Vielzahl von Bedingungen Transienten auf Spuren eingeführt werden. Zum Beispiel kann die Hinzufügung oder das Einschalten einer Vorrichtung Transienten auf der Spur einführen. Außerdem können wegen schlechter Spurqualität oder elektrischer Störung Spannungsunregelmäßigkeiten auf einer Spur dargestellt werden. Solche Unregelmäßigkeiten können auf Supersequenzen mit vorhersagbaren Werten, wie etwa, wenn Werte einer EIEOS in Verbindung mit Transienten oder anderen Bitfehlern unerwartet abweichen, leicht detektiert werden.
-
In einem Beispiel kann eine Sendevorrichtung in einen bestimmten Zustand einzutreten versuchen. Zum Beispiel kann die Sendevorrichtung die Verbindung zu aktivieren und in einen Initialisierungszustand einzutreten versuchen. In einem anderen Beispiel kann die Sendevorrichtung unter anderen Beispielen aus einem leistungsarmen Zustand wie etwa einem L1-Zustand auszutreten versuchen. In einigen Fällen eines L1-Zustands kann der L1-Zustand als Leistungseinsparungszustand, Leerlaufzustand oder Standby-Zustand dienen. Tatsächlich können in einigen Beispielen Hauptleistungsversorgungen in dem L1-Zustand aktiv bleiben. Beim Austritt aus einem L1-Zustand kann eine erste Vorrichtung eine Supersequenz senden, die dem Übergang von dem L1-Zustand in einen bestimmten anderen Zustand wie etwa einen L0-Verbindungsübertragungszustand (L0-TLS) zugeordnet ist. Wie in anderen Beispielen kann die Supersequenz eine sich wiederholende Sequenz einer EOS, gefolgt von einer vorgegebenen Anzahl von TS, so dass die EOS mit einer bestimmten im Voraus definierten Häufigkeit wiederholt wird, sein. Eine Empfangsvorrichtung kann die Daten empfangen und validieren, die Supersequenz identifizieren und die Empfangsvorrichtung kann den Quittungsaustausch mit der Sendevorrichtung abschließen, indem sie die Supersequenz an die Sendevorrichtung zurücksendet.
-
Wenn sowohl die Sende- als auch die Empfangsvorrichtung dieselbe Supersequenz empfängt, kann jede Vorrichtung ferner zusätzliche Initialisierungsaufgaben ausführen, die die Supersequenzen nutzen. Zum Beispiel kann jede Vorrichtung unter Nutzung der Supersequenzen eine Entprellung, eine Bitverriegelung, eine Byteverriegelung, eine Entwürfelung und eine Schräglaufkompensation ausführen. Über die Anfangsblöcke und Nutzinformationen der in den Supersequenzen enthaltenen TS können zusätzliche Initialisierungsinformationen übermittelt werden. Wenn die Verbindung initialisiert wird, kann in einigen Fällen eine Datensendestartsequenz (SDS-Sequenz) gesendet werden, die die Supersequenz unterbricht (wobei sie z. B. in der Mitte einer TS oder EIEOS gesendet wird), wobei sich die jeweiligen Vorrichtungen auf beiden Seiten der Verbindung für den synchronisierten Eintritt in den TLS vorbereiten können. In dem TLS oder in einem „S0“-Zustand können Supersequenzen beendet werden und können Flits unter Nutzung der Sicherungsschicht des Protokollstapels übertragen werden.
-
In dem TLS können für die Bitübertragungsschicht weiter begrenzte Gelegenheiten bereitgestellt werden, um Steueraufgaben auszuführen. Zum Beispiel können während eines L0-Zustands Bitfehler und andere Fehler auf einer oder auf mehreren Spuren identifiziert werden. In einer Implementierung kann ein Steuerzustand L0c bereitgestellt werden. Der L0c-Zustandkann als ein periodisches Fenster innerhalb des TLS bereitgestellt werden, um zu ermöglichen, dass Bitübertragungsschicht-Steuernachrichten zwischen über die Sicherungsschicht gesendeten Strömen von Flits gesendet werden. Wie in dem in 9 veranschaulichten Beispiel dargestellt ist, kann z. B. ein L0-Zustand in L0c-Intervalle aufgeteilt werden. Jedes L0c-Intervall kann mit einem L0c-Zustandoder L0c-Fenster (z. B. 905) beginnen, in dem Bitübertragungsschicht-Steuercodes und andere Daten gesendet werden können. Der Rest (z. B. 910) des L0c-Intervalls kann für das Senden von Flits dediziert sein. Die Länge des L0c-Intervalls und des L0c-Zustands in jedem Intervall kann durch Programmierung, z. B. unter anderen Beispielen durch das BIOS einer oder mehrerer Vorrichtungen oder durch einen anderen softwarebasierten Controller, definiert werden. Der L0c-Zustandkann exponentiell kürzer als der Rest eines L0c-Intervalls sein. Zum Beispiel kann der L0c in einem Beispiel unter anderen Beispielen 8 UI sein, während der Rest des L0c-Intervalls in der Größenordnung von 4 kUI liegt. Dies kann Fenster ermöglichen, in denen verhältnismäßig kurze, im Voraus definierte Nachrichten gesendet werden können, ohne Verbindungsdatenbandbreite wesentlich zu unterbrechen oder zu verschwenden.
-
Eine L0c-Zustandsnachricht kann eine Vielzahl von Bedingungen auf der Bitübertragungsschichtebene übermitteln. In einem Beispiel kann eine Vorrichtung z. B. auf der Grundlage von Bitfehlern oder anderen Fehlern über einen bestimmten Schwellenbetrag hinaus z. B. ein Zurücksetzen der Verbindung oder einer Spur initiieren. Solche Fehler können ebenfalls in L0c-Fenstem (wie etwa vorhergehenden L0c-Fenstern) übermittelt werden. Außerdem kann der L0c-Zustand wirksam eingesetzt werden, um eine andere Inbandsignalisierung wie etwa eine Signalisierung zur Verwendung bei der Unterstützung oder beim Auslösen von Übergängen zwischen anderen Verbindungszuständen zu verwirklichen. In einem Beispiel können L0c-Nachrichten genutzt werden, um eine Verbindung von einem aktiven L0-Zustand in einen Standby-Zustand oder leistungsarmen Zustand wie etwa einen L1-Zustand zu überführen. Wie in dem vereinfachten Ablaufplan aus 10 gezeigt ist, kann ein bestimmter L0c-Zustand verwendet werden, um eine L1-Eintrittsanforderung (z. B. 1010) zu übermitteln. Während die Vorrichtung (oder ein Agent in der Vorrichtung) auf eine Quittierung der Anforderung 1010 wartet, können weitere Flits (z. B. 1020, 1030) gesendet werden. Die andere Vorrichtung an der Verbindung kann die Quittierung (z. B. 1040) senden. In einigen Beispielen kann die Quittierung ebenfalls in einem L0c-Fenster gesendet werden. In einigen Fällen kann die Quittierung in dem nächsten L0c-Fenster, gefolgt von dem Empfang/der Sendung der L1-Anforderung 1010, gesendet werden. Zum Synchronisieren der L0c-Intervalle in jeder Vorrichtung können Zeitgeber genutzt werden und die anfordernde Vorrichtung kann die Quittierung 1040 unter anderen Beispielen auf der Grundlage einer Identifizierung, dass die Quittierung 1040 in dem nächsten L0c-Fenster gesendet wurde, als eine Quittierung der Anforderung 1010 (z. B. anstelle einer unabhängigen L1-Eintrittsanforderung) identifizieren. In einigen Fällen kann eine Quittierung über einen anderen als den in der L1-Eintrittsanforderung 1010 verwendeten L0c-Code übermittelt werden. In anderen Fällen kann die Quittierung 1040 unter anderen Beispielen die identische Wiedergabe des in der Anforderung 1010 verwendeten L1-Eintrittsanforderungscodes enthalten. Ferner kann in dem L0c-Fenster in alternativen Beispielen ein Nichtquittierungssignal oder NAK übermittelt werden.
-
Außer dem (oder als Alternative zu dem) Quittungsaustausch unter Verwendung von L0c-Codes können in Verbindung mit dem Zurücksetzen und mit der Reinitialisierung der Verbindung Supersequenzen wie etwa eine Detektionssupersequenz gesendet werden. Während die Supersequenzen durch eine erste Vorrichtung gesendet werden und durch die zweite, empfangende Vorrichtung identisch wiedergegeben werden, kann zwischen den Vorrichtungen ein weiterer Quittungsaustausch stattfinden. Wie oben beschrieben wurde, können Supersequenzen zur Hilfe bei der Reinitialisierung der Verbindung einschließlich Entprellen, Bitverriegelung, Byteverriegelung, Entwürfelung und Schräglaufkompensation der Spuren der Verbindung verwendet werden. Ferner können die Vorrichtungen den Zeitgeber (der z. B. das L0c-Intervall verkörpert) nutzen, um den Eintritt der Vorrichtungen und der Verbindung in den angeforderten L1-Zustand zu synchronisieren. Zum Beispiel kann der Empfang der Quittierung 1040 für die Vorrichtungen unter anderen Beispielen angeben, dass sie am Ende des L0c-Intervalls, das dem L0c-Fenster entspricht, in dem die Quittierung gesendet wurde, beide in den L 1-Zustand eintreten sollen (oder einzutreten beginnen sollen). Zum Beispiel können die in einem L0c-Fenster, das in der Quittierung 1040 enthalten oder ihr auf andere Weise zugeordnet ist, gesendeten Daten unter anderen potentiellen Beispielen den Zeitpunkt angeben, zu dem die Vorrichtungen in den L1-Zustand eintreten sollen. In einigen Fällen können zusätzliche Flits (z. B. 1050) gesendet werden, während die Vorrichtungen auf den dem Übergang in den L1-Zustand entsprechenden Zeitablauf warten.
-
In einigen Implementierungen der HPI können Verbindungen auf irgendeiner Anzahl von zwei oder mehr Spuren aufgebaut werden. Ferner kann eine Verbindung mit einer ersten Anzahl von Spuren initialisiert werden und später zu einem Teilbreitenzustand übergehen, so dass nur ein Teil der Anzahl von Spuren verwendet werden. Der Teilbreitenzustand kann als ein leistungsärmerer Zustand wie etwa ein LOp-Zustand bestimmt werden. In einem Beispiel kann ein L0c-Zustand verwendet werden, um von einem LO-Zustand, in dem die erste Anzahl von Spuren aktiv ist, zu einem LOp-Zustand überzugehen, in dem eine kleinere Anzahl von Spuren aktiv sein soll. Wie in dem Beispiel aus 11 gezeigt ist, kann z. B. eine Verbindung mit einer ersten Breite 1110 aktiv sein. In einigen Fällen kann die erste Breite die volle Breite (z. B. bei L0) sein. In anderen Fällen kann die Verbindung unter anderen Beispielen von einem ersten LOp-Zustand, der eine erste Anzahl von Spuren nutzt, zu einem anderen LOp-Zustand übergehen, der eine andere Anzahl (oder Menge) von Spuren nutzt. Während eines L0c-Fensters der Spuren mit der ersten Breite kann ein L0p-Eintrittscode 1120 gesendet werden. Die L0p-Eintrittsanforderung 1120 kann identifizieren, welche neue Breite angewendet werden sollte. In einigen Fällen kann die neue Verbindungsbreite vorgegeben sein und einfach aus dem Empfang der L0p-Anforderung 1120 identifiziert werden. Außerdem können in Verbindung mit der L0p-Anforderung 1120 unter anderen Beispielen auch die bestimmten Spuren, die in dem Teilbreitenzustand fallengelassen werden sollen, spezifiziert oder auf andere Weise identifiziert oder vorkonfiguriert werden.
-
Weiter mit dem Beispiel aus 11 können Flits oder andere Daten weiter über die volle Breite der Spuren gesendet werden, während die Verbindung auf den Übergang in den LOp-Zustand wartet. Zum Beispiel kann durch synchronisierte Zeitgeber bei den über die Verbindung verbundenen Vorrichtungen eine Dauer t zum Synchronisieren des Eintritts in den LOp-Zustand spezifiziert werden. In einem Beispiel kann die Dauer t einem Rest eines der Anforderung 1120 entsprechenden L0c-Intervalls entsprechen. Am Ende des Intervalls bleiben ein Teil der Spuren aktiv, während ein anderer Teil der Spuren in den inaktiven Zustand oder Leerlaufzustand versetzt werden. Daraufhin arbeitet die Verbindung unter anderen Beispielen wenigstens, bis eine L0p-Austrittsanforderung oder eine andere Verbindungsbreitenübergangsanforderung empfangen wird, mit der neuen Breite (z. B. 1140).
-
Die HPI kann eine oder mehrere Leistungssteuereinheiten (PCU) nutzen, um bei der zeitlichen Festlegung von Übergängen zwischen einem L0-Zustand und Zuständen mit niedrigerer Leistung wie etwa L0p und L1 zu helfen. Ferner kann die HPI Master-Slave-, Master-Master- und andere Architekturen unterstützen. Zum Beispiel kann eine PCU nur an einer der an einer Verbindung verbundenen Vorrichtungen vorhanden oder ihr auf andere Weise zugeordnet sein, wobei die Vorrichtung mit der PCU als der Master angesehen werden kann. Master-Master-Konfigurationen können z. B. verwirklicht werden, wenn beiden Vorrichtungen eine PCU zugeordnet ist, die zu einem Verbindungszustandsübergang auffordern kann. Einige Implementierungen können für einen bestimmten leistungsarmen Zustand wie etwa z. B. unter anderen Beispielen L0p oder L1 eine minimale Dauer spezifizieren, um Übergänge zwischen Zuständen zu minimieren zu versuchen und Leistungseinsparungen innerhalb eines leistungsarmen Zustands, in den eingetreten worden ist, zu maximieren zu versuchen.
-
Der Austritt aus einem leistungsarmen Teilbreitenzustand kann angepasst werden, damit er effizient und schnell stattfindet, um die Auswirkungen und die Unterbrechung der aktiven Spuren zu minimieren. In einigen Implementierungen können außerdem L0c-Fenster und L0c-Codes verwendet werden, um einen Austritt aus einem LOp-Zustand oder aus einem anderen Zustand auszulösen, um ungenutzte Spuren zu reaktivieren. Zum Beispiel ist übergehend zu den Beispielen aus 12 ein vereinfachter Ablaufplan gezeigt, der einen beispielhaften Austritt aus einem LOp-Zustand darstellt. In dem besonderen Beispiel aus 12 können Flit-Daten (z. B. 1205) gesendet werden, wenn ein L0c-Fenster 1210 festgestellt wird, in dem eine L0-Eintrittsanforderung (oder eine L0p-Austrittsanforderung) enthalten ist. Vor dem Punkt, an dem der L0p-Austritt stattfinden soll, können zusätzliche Flits 1215 gesendet werden. Wie in anderen Beispielen kann ein L0c-Code 1210 eine Identifizierung eines Zeitpunkts, zu dem ein Zustandsübergang beginnen/enden soll, sowie bestimmte Ereignisse des Zustandsübergangs enthalten oder implizit identifizieren. Um die Datenübertragung zu maximieren, wahrend die Vorrichtungen auf den Eintritt in den Zustandsübergang warten, können weiter Flits (z. B. 1215) gesendet werden.
-
In einem Beispiel kann eine EIEOS 1220 (oder können andere Daten wie eine andere EOS) auf den inaktiven Spuren gesendet werden, um mit dem Aufbereiten der Spuren zu beginnen. In einigen Fällen können solche inaktiven Spuren (z. B. die Spuren „n + 1“ bis „z“) für eine Zeit inaktiv gewesen sein und kann das Aufwecken der Spuren elektrische Transienten und eine andere Instabilität einführen. Dementsprechend können die EIEOS 1220 sowie in Verbindung mit dem Austritt aus dem LOp-Zustand gesendete Teilbreitensupersequenzen verwendet werden, um die Spuren zu entprellen, während sie aufwachen. Ferner können in einigen Fällen Transienten auf den aufwachenden Spuren (z. B. auf den Spuren „n + 1“ bis „z“) potentiell die aktiven Spuren (z. B. die Spuren „0“ bis „n“) beeinflussen. Um zu verhindern, dass sich Irregularitäten, die von dem Wiederaufwachen der ungenutzten Spuren stammen, negativ auf die aktiven Spuren auswirken, können die aktiven Spuren synchronisiert werden, um bei oder unmittelbar vor den Anfangssignalen (z. B. 1220), die über die aufwachenden Spuren gesendet werden, (z. B. bei 1225) Null-Flits zu senden.
-
In einigen Implementierungen kann eine Reinitialisierung der ungenutzten Spuren zeitlich so festgelegt werden, dass sie wie etwa bei Abschluss eines entsprechenden L0c-Intervalls beginnt. In anderen Fällen kann ein alternativer Zeitpunkt genutzt werden, um die Reinitialisierung früh zu beginnen. In solchen Fällen kann ein Sender der L0p-Austrittsanforderung veranlassen, dass die genutzten Spuren z. B. durch das Senden einer oder mehrerer einzelner EIEOS voraufbereitet werden. Unter anderen Beispielen kann das Senden solcher Aufbereitungssignale in der Weise mit den aktiven Spuren koordiniert werden, dass auf den aktiven Spuren zusammenfallend mit der Anfangssendung des EIEOS und dem Schutz der aktiven Spuren vor störenden Transienten beim Start der ungenutzten Spuren vorübergehend Null-Flits gesendet werden. Unter anderen Techniken können z. B. alternativ oder zusätzlich Sicherungsschichtpuffer verwendet werden, um vor einem Bitverlust zu schützen, der sich aus solchen Transienten in wiederaufwachenden ungenutzten Spuren ergibt.
-
Ferner kann in einigen Implementierungen nach dem Senden einer Anfangs-EIEOS (oder Anfangssupersequenz) eine Teilbreitenzustands-Austrittssupersequenz (z. B. 1230) gesendet werden. Wenigstens ein Teil der Supersequenz kann auf den aktiven Spuren (z. B. bei 1225) wiederholt werden. Ferner kann die Vorrichtung, die die Supersequenz 1225 empfängt, unter anderen Beispielen die Supersequenz identisch wiedergeben, um einen Quittungsaustausch des Zustandsübergangs auszuführen und ihn zu quittieren. Ferner kann das Senden der Supersequenz (z. B. 1230) verwendet werden, um eine Bitverriegelung, eine Byteverriegelung, eine Entprellung, eine Entwürfelung und eine Schräglaufkompensation auszuführen. Zum Beispiel können die reaktivierten Spuren gegenüber den aktiven Spuren schräglaufkompensiert werden. In einigen Fällen kann auf die für die ungenutzten Spuren in der ursprünglichen Initialisierung der Verbindung bestimmten Anfangskonfigurationen zugegriffen werden und können sie angewendet werden, obwohl das ungenutzte Wesen der Spuren in anderen Fällen zu Änderungen des Schräglaufs und zu anderen Spureigenschaften führen kann, was zu der effektiven Reinitialisierung der ungenutzten Spuren führt.
-
Kurz zurückkehrend zu 8 ist ein Beispiel von Sequenzen dargestellt, die in Verbindung mit einem Teilbreiten-Übertragungszustands-Austritt (z. B. einem Übergang von einem LOp-Zustand zu einem LO-Zustand) gesendet werden können. Da Spuren vor und nach einem solchen Übergang aktiv bleiben sollen, kann auf das Beschleunigen des Zustandsübergangs, um eine minimale Unterbrechung für die aktiven Spuren bereitzustellen, der Schwerpunkt gelegt werden. In einem Beispiel kann (z. B. wie in 1220 aus 12) eine Teilsupersequenz ohne die nachfolgenden Trainingssequenzen gesendet werden, um das Entprellen zu beschleunigen. Zum Beispiel kann versucht werden, Transienten innerhalb der ersten EIEOS aufzulösen, ohne ein weiteres 1 kUI darauf zu warten, dass eine zweite vollständige EIEOS gesendet wird, um mit der Bitverriegelung, mit der Byteverriegelung, mit der Schräglaufkompensation und mit anderen Aufgaben zu beginnen. Ferner kann die vollständige Teilbreiten-Übertragungszustands-Austrittssupersequenz eine sich wiederholende Sequenz einer EOS (z. B. EIEOS), gefolgt von einer im Voraus definierten Anzahl von Trainingssequenzen, enthalten. In dem Beispiel aus 8 kann eine EIEOS, gefolgt von einer Reihe von Trainingssequenzen (z. B. sieben aufeinanderfolgenden Trainingssequenzen), gesendet werden. In einer Implementierung kann eine abgekürzte „Schnelltrainingssequenz“ (oder FTS) gesendet werden, anstatt eine volle Trainingssequenz (wie etwa eine in den Supersequenzen 805, 810 verwendete „TS“) zu senden. Unter anderen Merkmalen können die Symbole der FTS optimiert sein, um bei der schnellen Bit- und Byteverriegelung und bei der Schräglaufkompensation der reaktivierten Spuren zu helfen. In einem Beispiel kann die FTS eine Länge von weniger als 150 UI (z. B. 128 UI) aufweisen. Ferner können FTS unverwürfelt gelassen werden, um weiter bei der schnellen Wiedergewinnung der ungenutzten Spuren zu helfen.
-
Wie in der dritten Reihe des Elements 815 gezeigt ist, kann eine Teilbreiten-Übertragungszustands-Austrittssupersequenz außerdem durch eine SDS unterbrochen werden, wenn ein Controller bestimmt hat, dass die reaktivierten Spuren effektiv initialisiert worden sind. In einem Beispiel kann auf die SDS eine Teil-FTS (oder FTSp) folgen, um die reaktivierte Spur (z. B. wenn die Bitverriegelung, die Byteverriegelung und die Schräglaufkompensation abgeschlossen worden sind) mit den aktiven Spuren synchronisieren zu helfen. Zum Beispiel kann die Bitlänge der FTSp entsprechend einer sauberen Flit-Grenze für die Endbreite zwischen den empfangenden Spuren und den aktiven Spuren eingestellt werden. Um die schnelle Synchronisation der Spur zu erleichtern, können vor oder während der FTSp bei dem Empfänger Bits zu einer Spur hinzugefügt oder von ihr entfernt werden, um den Schräglauf zu berücksichtigen. Alternativ oder zusätzlich können bei dem Empfänger vor oder während der SDS ebenfalls Bits zu der Spur hinzugefügt oder von ihr entfernt werden, um unter anderen Beispielen die Schräglaufkompensation einer neu aktivierten Spur zu erleichtern.
-
Zurückkehrend zu der Diskussion aus 12 kann in einigen Beispielen die Sendung von Daten-Flits auf den aktiven Spuren (z. B. auf den Spuren 0 bis n) (z. B. bei 1225) wiederaufgenommen werden, während die Initialisierung der aufwachenden Spuren abgeschlossen wird. Zum Beispiel können Sicherungsschichtübertragungen wiederaufgenommen werden, wenn das Entprellen gelöst worden ist. In einigen Fällen kann die Flit-Sendung im Zusammenhang mit der abschließenden Reaktivierung und Synchronisation der zuvor ungenutzten Spuren (z. B. der Spuren n + 1 bis z) (z. B. in Verbindung mit dem Senden einer FTSp 1235) (z. B. bei 1240) vorübergehend unterbrochen werden. Wenn die Spuren wiederhergestellt worden sind, können daraufhin Flit-Daten 1245 auf allen Spuren wiederaufgenommen werden.
-
In einer Ausführungsform kann der Takt in die Daten eingebettet sein, so dass es keine getrennten Taktspuren gibt. Um die Taktrückgewinnung zu erleichtern, können die über die Spuren gesendeten Flits verwürfelt werden. Als ein Beispiel kann die Empfängertaktrückgewinnungseinheit Abtasttakte an einen Empfänger liefern (d. h., der Empfänger gewinnt den Takt aus den Daten wieder und verwendet ihn zum Abtasten der ankommenden Daten). In einigen Implementierungen adaptieren sich die Empfänger ununterbrochen an einen ankommenden Bitstrom. Durch Einbetten des Takts kann potentiell die Anschlussstiftanordnung verringert werden. Allerdings kann das Einbetten des Takts in die Inbanddaten die Art und Weise ändern, in der das Inbandzurücksetzen angegangen wird. In einer Ausführungsform kann nach der Initialisierung ein Verbindungssperrzustand (BLS) genutzt werden. Außerdem können unter anderen Betrachtungen während der Initialisierung Supersequenzen einer elektrisch geordneten Menge genutzt werden, um das Zurücksetzen (z. B. wie oben beschrieben) zu ermöglichen. Der eingebettete Takt kann zwischen den Vorrichtungen an einer Verbindung gemeinsam sein und der gemeinsame Betriebstakt kann während der Kalibrierung und Konfiguration der Verbindung eingestellt werden. Zum Beispiel können HPI-Verbindungen auf einen gemeinsamen Takt mit Driftpuffern Bezug nehmen. Unter anderen potentiellen Vorteilen kann eine solche Implementierung eine niedrigere Latenzzeit als elastische Puffer, die in nicht gemeinsamen Referenztakten verwendet werden, verwirklichen. Ferner kann innerhalb spezifizierter Grenzwerte an die Referenztaktverteilungssegmente angepasst werden.
-
Wie oben angemerkt wurde, kann eine HPI-Verbindung in der Lage sein, mit mehreren Geschwindigkeiten einschließlich einer „langsamen Betriebsart“ für das Standardeinschalten, für die Initialisierung usw. zu arbeiten. Die Betriebsgeschwindigkeit oder Betriebs-Betriebsart (oder „schnelle“ Geschwindigkeit oder „schnelle“ Betriebsart) jeder Vorrichtung kann durch das BIOS statisch eingestellt werden. Der gemeinsame Takt auf der Verbindung kann auf der Grundlage der jeweiligen Betriebsgeschwindigkeiten jeder Vorrichtung auf beiden Seiten der Verbindung konfiguriert werden. Zum Beispiel kann die Verbindungsgeschwindigkeit unter anderen Beispielen auf der langsameren der Betriebsgeschwindigkeiten der zwei Vorrichtungen beruhen. Ein Betriebsgeschwindigkeitswechsel kann von einem Warm- oder Kaltzurücksetzen begleitet sein.
-
In einigen Beispielen initialisiert sich die Verbindung beim Einschalten auf die langsame Betriebsart mit einer Übertragungsrate z. B. von 100 MT/s. Daraufhin stellt Software die zwei Seiten für die Betriebsgeschwindigkeit der Verbindung ein und beginnt sie mit der Initialisierung. In anderen Fällen kann ein Seitenbandmechanismus genutzt werden, um eine Verbindung einschließlich des gemeinsamen Takts auf der Verbindung z. B. bei Abwesenheit oder Nichtverfügbarkeit einer langsamen Betriebsart einzustellen.
-
In einer Ausführungsform kann eine Initialisierungsphase der langsamen Betriebsart dieselbe Codierung, dieselbe Verwürfelung, dieselben Trainingssequenzen (TS), dieselben Zustände usw. wie die Betriebsgeschwindigkeit, aber mit potentiell weniger Merkmalen (z. B. keine Einstellung elektrischer Parameter, keine Adaptation usw.), verwenden. Die Betriebsphase der langsameren Betriebsart kann potentiell ebenfalls dieselbe Codierung, dieselbe Verwürfelung usw. verwenden (obwohl das für andere Implementierungen nicht der Fall sein kann), im Vergleich zur Betriebsgeschwindigkeit aber weniger Zustände und Merkmale (z. B. keine leistungsarmen Zustände) aufweisen.
-
Ferner kann unter Verwendung der nativen Phasenverriegelungsschleifen-Taktfrequenz (PLL-Taktfrequenz) der Vorrichtung eine langsame Betriebsart implementiert werden. Zum Beispiel kann die HPI eine emulierte langsame Betriebsart ohne Änderung der PLL-Taktfrequenz unterstützen. Obwohl einige Entwürfe getrennte PLL für die niedrige und für die hohe Geschwindigkeit verwenden können, kann in einigen Implementierungen der HPI eine emulierte langsame Betriebsart dadurch erzielt werden, dass der PLL-Takt während der langsamen Betriebsart mit derselben hohen Betriebsgeschwindigkeit laufengelassen wird. Zum Beispiel kann ein Sender ein langsameres Taktsignal emulieren, indem er Bits mehrmals wiederholt, um ein langsames hohes Taktsignal und daraufhin ein langsames niedriges Taktsignal zu emulieren. Daraufhin kann der Empfänger das empfangene Signal überabtasten, um durch die sich wiederholenden Bits emulierte Flanken zu ermitteln, und das Bit identifizieren. In solchen Implementierungen können Ports, die eine PLL gemeinsam nutzen, bei niedrigen und hohen Geschwindigkeiten koexistieren.
-
Zwischen zwei Vorrichtungen kann eine gemeinsame Geschwindigkeit einer langsamen Betriebsart initialisiert werden. Zum Beispiel können die zwei Vorrichtungen an einer Verbindung unterschiedlich schnelle Betriebsgeschwindigkeiten aufweisen. Zum Beispiel kann während einer Entdeckungsphase oder während eines Entdeckungszustands auf der Verbindung eine gemeinsame Geschwindigkeit der langsamen Betriebsart konfiguriert werden. In einem Beispiel kann ein Emulationsvielfaches als ein ganzzahliges (oder nicht ganzzahliges) Verhältnis der hohen Geschwindigkeit zur niedrigen Geschwindigkeit eingestellt werden und können die unterschiedlichen hohen Geschwindigkeiten abwärts umgesetzt werden, um mit derselben niedrigen Geschwindigkeit zu arbeiten. Zum Beispiel können zwei Vorrichtungsagenten, die wenigstens eine gemeinsame Frequenz unterstützen, unabhängig von der Geschwindigkeit, mit der der Host-Port läuft, im laufenden Betrieb angeschlossen werden. Daraufhin kann die Softwareentdeckung die Verbindung mit der langsamen Betriebsart verwenden, um die optimalen Verbindungsbetriebsgeschwindigkeiten zu identifizieren und einzustellen. Wo das Vielfache ein ganzzahliges Verhältnis einer hohen Geschwindigkeit zu einer niedrigen Geschwindigkeit ist, können unterschiedliche hohe Geschwindigkeiten mit derselben langsamen Geschwindigkeit arbeiten, was während der Entdeckungsphase (z. B. eines Anschließens im laufenden Betrieb) verwendet werden kann.
-
In einigen Implementierungen der HPI kann die Adaptation von Spuren auf einer Verbindung unterstützt werden. Die Bitübertragungsschicht kann sowohl eine Empfänger- als auch eine Sender- oder Absenderadaptation unterstützen. Bei der Empfängeradaptation kann der Sender an einer Spur an den Empfänger Abtastdaten senden, die die Empfängerlogik verarbeiten kann, um Nachteile der elektrischen Eigenschaften der Spur und der Qualität des Signals zu identifizieren. Daraufhin kann der Empfänger auf der Grundlage der Analyse der empfangenen Abtastdaten an der Kalibrierung der Spur Einstellungen vornehmen, um die Spur zu optimieren. Im Fall der Senderadaptation kann der Empfänger erneut Abtastdaten empfangen und Metriken entwickeln, die die Qualität der Spur beschreiben, wobei er in diesem Fall die Metriken aber (z. B. unter Verwendung eines Rückkanals wie etwa eines Softwarekanals, eines Hardwarekanals, eines eingebetteten Kanals, eines Seitenbandkanals oder eines anderen Kanals) an den Sender übermitteln kann, um zu ermöglichen, dass der Sender auf der Grundlage der Rückkopplung Einstellungen an der Spur vornimmt. Die Empfängeradaptation kann beim Start des Abfragezustands unter Verwendung der von dem fernen Sender gesendeten Abfragesupersequenz initialisiert werden. Ähnlich kann die Senderadaptation dadurch erfolgen, dass das Folgende für jeden Senderparameter wiederholt wird. Die beiden Agenten können als Master in einen Loopback-Musterzustand eintreten und ein spezifiziertes Muster senden. Beide Empfänger können die Metrik (z. B. BER) für diese besondere Sendereinstellung bei einem fernen Agenten messen. Beide Agenten können in den Loopback-Markenzustand gehen und daraufhin zurücksetzen und Rückkanäle (z. B. TLS der langsamen Betriebsart oder Seitenband) verwenden, um Metriken auszutauschen. Auf der Grundlage dieser Metriken kann die nächste Sendereinstellung identifiziert werden. Schließlich kann die optimale Sendereinstellung identifiziert und für die nachfolgende Verwendung gesichert werden.
-
Da beide Vorrichtungen an einer Verbindung mit demselben Referenztakt (z. B. ref clk) laufen können, können Elastizitätspuffer weggelassen werden (irgendwelche elastischen Puffer können umgangen werden oder als Driftpuffer mit der niedrigsten möglichen Latenzzeit verwendet werden). Allerdings kann eine Phaseneinstellung oder können Driftpuffer an jeder Spur genutzt werden, um den jeweiligen Empfängerbitstrom von der fernen Taktdomäne zu der lokalen Taktdomäne zu übertragen. Die Latenzzeit der Driftpuffer kann ausreichen, um die Summe der Drift von allen Quellen in einer elektrischen Spezifikation (z. B. Spannung, Temperatur, die durch Referenztaktrouting-Fehlanpassungen eingeführte Rest-SSC usw.) zu behandeln, aber so klein wie möglich, um eine Transportverzögerung zu verringern. Falls der Driftpuffer zu flach ist, können sich Driftfehler ergeben und als eine Reihe von CRC-Fehlern manifestieren. Folglich kann in einigen Implementierungen unter anderen Beispielen ein Driftalarm vorgesehen sein, der ein Zurücksetzen der Bitübertragungsschicht initiieren kann, bevor ein tatsächlicher Driftfehler auftritt.
-
Einige Implementierungen der HPI können unterstützen, dass die zwei Seiten mit einer selben Nennreferenztaktfrequenz, aber mit einer ppm-Differenz laufen. In diesem Fall können Frequenzeinstellungspuffer (oder Elastizitätspuffer) notwendig sein, wobei diese unter anderen Beispielen während eines erweiterten BLS-Fensters oder während spezieller Sequenzen, die periodisch auftreten würden, neu eingestellt werden können.
-
Unter anderen Betrachtungen kann der Betrieb der logischen Schicht der HPI PHY unabhängig von den zugrundeliegenden Übertragungsmedien sein, sofern die Latenzzeit nicht zu Latenzzeitkorrekturfehlern oder Zeitüberschreitungen bei der Sicherungsschicht führt.
-
In der HPI können externe Schnittstellen vorgesehen sein, um beim Management der Bitübertragungsschicht zu helfen. Zum Beispiel können externe Signale (von Anschlussstiften, Sicherungen, anderen Schichten), Zeitgeber, Steuer- und Statusregister vorgesehen sein. Die Eingangssignale können sich relativ zu dem PHY-Zustand jederzeit ändern, sind aber von der Bitübertragungsschicht an spezifischen Punkten in einem jeweiligen Zustand zu beachten. Zum Beispiel kann unter anderen Beispielen ein sich änderndes Ausrichtsignal (wie es später eingeführt wird) empfangen werden, aber keine Wirkung haben, nachdem die Verbindung in einen Verbindungsübertragungszustand eingetreten ist. Ähnlich können Anweisungsregisterwerte von Bitübertragungsschichtentitäten nur bei spezifischen Zeitpunkten beachtet werden. Zum Beispiel kann die Bitübertragungsschichtlogik einen Schnappschuss des Werts aufnehmen und in nachfolgenden Operationen verwenden. Folglich können in einigen Implementierungen einer beschränkten Teilmenge spezifischer Perioden (z. B. in einem Verbindungsübertragungszustand oder beim Halten in einer Rücksetzkalibrierung, in einem Verbindungsübertragungszustand der langsamen Betriebsart) Aktualisierungen zu Anweisungsregistern zugeordnet werden, um ein anomales Verhalten zu vermeiden.
-
Da Statuswerte Hardwareänderungen nachverfolgen, können die gelesenen Werte davon abhängen, wann sie gelesen werden. Allerdings können sich einige Statuswerte wie etwa die Verbindungskarte, die Latenzzeit, die Geschwindigkeit usw. nach der Initialisierung nicht ändern. Zum Beispiel ist eine Reinitialisierung (oder ein Austritt aus einem leistungsarmen Verbindungszustand (LPLS) oder L1-Zustand) das Einzige, das veranlassen kann, dass sich diese ändern (z. B. kann eine harte Spurstörung in einem TLS unter anderen Beispielen erst zu einer Rekonfiguration der Verbindung führen, nachdem eine Reinitialisierung ausgelöst worden ist).
-
Schnittstellensignale können Signale enthalten, die extern zu dem Bitübertragungsschichtverhalten sind, es aber beeinflussen. Solche Schnittstellensignale können als Beispiele Codierungs- und Zeitgebungssignale enthalten. Schnittstellensignale können entwurfsspezifisch sein. Diese Signale können eine Eingabe oder eine Ausgabe sein. Einige Schnittstellensignale, wie sie etwa unter anderen Beispielen als Semaphore und Präfix-EO bezeichnet werden, können einmal pro Erklärungsflanke aktiv sein, d. h. unter anderen Beispielen kann ihre Erklärung aufgehoben werden und können sie daraufhin neu erklärt werden, um wieder wirksam zu werden. Zum Beispiel enthält Tabelle 1 eine beispielhafte Auflistung beispielhafter Funktionen: TABELLE 1
Funktion |
Eingabe Anschlussstiftzurücksetzen (alias Warm-Zurücksetzen) |
Eingabe Anschlussstiftzurücksetzen (alias Kalt-Zurücksetzen) |
Eingabe Inbandrücksetzimpuls; veranlasst, dass ein Semaphor eingestellt wird; wenn ein Inbandzurücksetzen auftritt, wird der Semaphor gelöscht |
Eingabe gibt leistungsarme Zustände frei |
Eingabe von Loopback-Parametern; wird für Loopback-Muster angewendet |
Eingabe zum Eintritt in einen PWLTS |
Eingabe zum Austritt aus einem PWLTS |
Eingabe zum Eintritt in einen LPLS |
Eingabe zum Austritt aus einem LPLS |
Eingabe von der Detektion eines ungenutzten Austritts (alias Rauschsperrenunterbrechung) |
Eingabe, die Verwendung von CPhyInitBegin freigibt |
Eingabe von lokaler Ausrichtung oder planetarer Ausrichtung für Sender zum Austritt aus der Initialisierung |
Ausgabe, wenn ferner Agent LPLS-Anforderung mit NAKs beantwortet |
Ausgabe, wenn Agent in einen LPLS eintritt |
Ausgabe in die Sicherungsschicht, um nicht wiederholbare Flits zu erzwingen |
Ausgabe in die Sicherungsschicht, um NULL-Flits zu erzwingen |
Ausgabe, wenn Sender in einem Teilbreiten-Verbindungsübertragungszustand (PWLTS) ist |
Ausgabe, wenn Empfänger in einem PWLTS ist |
-
Die CSR-Zeitgeber-Standardwerte können in Paaren - einer für die langsame Betriebsart und einer für die Betriebsgeschwindigkeit - bereitgestellt werden. In einigen Fällen deaktiviert der Wert 0 den Zeitgeber (d. h. tritt der Zeitgeber nie auf). Die Zeitgeber können die in der untenstehenden Tabelle 2 gezeigten enthalten. Primäre Zeitgeber können verwendet werden, um erwartete Aktionen in einem Zustand zeitlich festzulegen. Sekundäre Zeitgeber werden zum Abbrechen von Initialisierungen, die nicht fortschreiten, oder zum Vornehmen von Vorwärtszustandsübergängen zu genauen Zeitpunkten in einer Betriebsart einer automatisierten Prüfeinrichtung (oder ATE) verwendet. In einigen Fällen können sekundäre Zeitgeber in einem Zustand viel größer als primäre Zeitgeber sein. Exponentielle Zeitgeber können das Suffix exp tragen und der Zeitgeberwert ist 2 hoch dem Feldwert. Für lineare Zeitgeber ist der Zeitgeberwert der Feldwert. Jeder Zeitgeber könnte unterschiedliche Granularitäten verwenden. Außerdem können einige Zeitgeber in dem Leistungsmanagementabschnitt in einer ein Zeitgebungsprofil genannten Menge sein. Diese können einem Zeitgebungsdiagramm mit derselben Bezeichnung zugeordnet sein. TABELLE 2
Zeitgeber |
Tabelle Tpriexp einstellen |
Zurücksetzen des Aufenthalts zum Ansteuern von EIEOS |
Empfängerkalibrierungs-Minimalzeit; zum Ausstaffeln des Senders |
Senderkalibrierungs-Minimalzeit; zum Einstaffeln |
Tsecexp einstellen |
zeitlich festgelegte Empfängerkalibrierung |
zeitlich festgelegte Senderkalibrierung |
Rauschsperrenaustritts-Detektion |
/Rauschsperrenaustritts-Entprellung |
DetectAtRx-Überhang für Quittungsaustausch |
Adaptation und Bitsperre/Bytesperre /Schräglaufkompensation |
Konfigurieren von Verbindungsbreiten |
Warten auf planetar ausgerichtete saubere Flit-Grenze |
erneute Bytesperre/Schräglaufkompensation |
Tdebugexp einstellen |
für Einstecken im laufenden Betrieb; Nicht-0-Wert zum Austesten von Hängen |
TBLSentry einstellen |
BLS-Eintrittsverzögerung - fein |
BLS-Eintrittsverzögerung - grob |
TBLS einstellen |
BLS-Dauer für den Sender |
BLS-Dauer für den Empfänger |
BLS-Sauber-Flit-Intervall für den Sender |
TBLS-Sauber-Flit-Intervall für den Empfänger |
-
Es können Befehls- und Steuerregister vorgesehen sein. Steuerregister können Spätaktionsregister sein und können in einigen Fällen durch Software gelesen oder geschrieben werden. Spätaktionswerte können beim Zurücksetzen ständig wirksam werden (z. B. von einer softwareseitigen Stufe zu einer hardwareseitigen Stufe durchgehen). Steuersemaphore (Präfix CP) sind RW1S und können durch Hardware gelöscht werden. Um irgendwelche der hier beschriebenen Positionen auszuführen, können Steuerregister genutzt werden. Sie können durch Hardware, durch Software, durch Firmware oder durch eine Kombination davon änderbar sein und durch diese kann auf sie zugegriffen werden.
-
Statusregister können zum Nachverfolgen von Hardwareänderungen (durch Hardware geschrieben und verwendet) vorgesehen sein und Nur-Lesen sein (wobei aber Austestsoftware ebenfalls in der Lage sein kann, sie zu schreiben). Solche Register können die Interoperabilität nicht beeinflussen und sie können üblicherweise durch viele private Statusregister ergänzt sein. Es können Statussemaphore (Präfix SP) unterstellt sein, da sie durch Software gelöscht werden können, um die Aktionen, die den Status setzen, rückgängig zu machen. Als eine Teilmenge dieser Statusbits in Bezug auf die Initialisierung können Standardmittel-Anfangswerte (beim Zurücksetzen) vorgesehen sein. Bei einem Initialisierungsabbruch können diese Register in eine Ablagestruktur kopiert werden.
-
Es können Toolbox-Register vorgesehen sein. Zum Beispiel können die Prüffähigkeits-Toolbox-Register in der Bitübertragungsschicht Mustererzeugungs-, Musterprüfungs- und Loopback-Steuermechanismen bereitstellen. Anwendungen höherer Ebene können diese Register zusammen mit elektrischen Parametern verwenden, um Grenzwerte zu bestimmen. Zum Beispiel kann ein in die Verdrahtung eingebauter Test diese Toolbox zum Bestimmen von Grenzwerten nutzen. Unter anderen Beispielen können diese Register in Verbindung mit den spezifischen in vorhergehenden Abschnitten beschriebenen Registern für die Senderadaptation verwendet werden.
-
In einigen Implementierungen unterstützt die HPI unter Nutzung der Bitübertragungsschicht Zuverlässigkeits-, Verfügbarkeits- und Brauchbarkeitsfähigkeiten (RAS-Fähigkeiten). In einer Ausführungsform unterstützt die HPI mit einer oder mit mehreren Schichten, die Software enthalten können, das Einstecken und Entfernen im laufenden Betrieb. Das Entfernen im laufenden Betrieb kann enthalten, dass die Verbindung in den Ruhezustand gebracht wird und dass ein Initialisierungsanfangszustand/Initialisierungsanfangssignal für den zu entfernenden Agenten gelöscht werden kann. Ein ferner Agent (d. h. derjenige, der nicht entfernt werden soll (z. B. der Host-Agent)) kann auf niedrige Geschwindigkeit eingestellt werden und sein Initialisierungssignal kann ebenfalls gelöscht werden. Unter anderen Beispielen und Merkmalen kann ein Inbandzurücksetzen (z. B. durch BLS) veranlassen, dass beide Agenten in einem Rücksetzzustand wie etwa in einem Kalibrierungsrücksetzzustand (CRS) warten; und dass der zu entfernende Agent entfernt werden kann (oder in einem gezielten Anschlussstift-Zurücksetzen heruntergefahren gehalten werden kann). Tatsächlich können einige der obigen Ereignisse weggelassen werden und können zusätzliche Ereignisse hinzugefügt werden.
-
Das Hinzufügen im laufenden Betrieb kann enthalten, dass die Initialisierungsgeschwindigkeit standardmäßig auf langsam eingestellt werden kann und dass ein Initialisierungssignal an einem hinzuzufügenden Agenten eingestellt werden kann. Software kann die Geschwindigkeit auf niedrig einstellen und kann das Initialisierungssignal in dem fernen Agenten löschen. Die Verbindung kann in der langsamen Betriebsart heraufkommen und Software kann eine Betriebsgeschwindigkeit bestimmen. In einigen Fällen wird an diesem Punkt keine PLL-Neuverriegelung einer fernen Einrichtung ausgeführt. Die Betriebsgeschwindigkeit kann in beiden Agenten eingestellt werden und es kann eine Freigabe für die Adaptation eingestellt werden (falls dies nicht zuvor erfolgt ist). Der Initialisierungsanfangsindikator kann in beiden Agenten gelöscht werden und ein Inband-BLS-Zurücksetzen kann veranlassen, dass beide Agenten im CRS warten. Software kann ein Warm-Zurücksetzen (z. B. ein gezieltes Zurücksetzen oder Selbstzurücksetzen) eines (hinzuzufügenden) Agenten erklären, was veranlassen kann, dass eine PLL wieder verriegelt. Außerdem kann Software das Initialisierungsanfangssignal durch irgendeine bekannte Logik einstellen und ferner auf fern einstellen (es somit auf den Empfängerdetektionszustand (RDS) weiterschalten). Software kann die Erklärung des Warm-Zurücksetzens des hinzugefügten Agenten aufheben (und ihn somit zu RDS weiterschalten). Unter anderen Beispielen kann die Verbindung daraufhin mit der Betriebsgeschwindigkeit auf einen Verbindungsübertragungszustand (TLS) (oder auf Loopback, falls das Adaptationssignal eingestellt ist) initialisieren. Tatsächlich können einige der obigen Ereignisse weggelassen werden und können zusätzliche Ereignisse hinzugefügt werden.
-
Die Datenspurstörungs-Wiedergewinnung kann unterstützt werden. In einer Ausführungsform kann eine Verbindung in der HPI elastisch gegen einen harten Fehler in einer einzelnen Spur sein, indem sie sich selbst auf weniger als die volle Breite (z. B. auf weniger als die Hälfte der vollen Breite) konfiguriert, wodurch die gestörte Spur ausgeschlossen werden kann. Als ein Beispiel kann die Konfiguration durch eine Verbindungszustandsmaschine erfolgen und können ungenutzte Spuren in dem Konfigurationszustand ausgeschaltet werden. Im Ergebnis kann das Flit unter anderen Beispielen über eine schmalere Breite gesendet werden.
-
In einigen Implementierungen der HPI kann auf einigen Verbindungen eine Spurumkehr unterstützt werden. Die Spurumkehr kann sich z. B. auf Spuren 0/1/2 ... eines Senders, der mit Spuren n/n-1/n-2 ... eines Empfängers (wobei n z. B. gleich 19 oder 7 usw. sein kann) verbunden ist, beziehen. Die Spurumkehr kann bei dem Empfänger detektiert werden, da sie in einem Feld eines TS-Anfangsblocks identifiziert ist. Der Empfänger kann die Spurumkehr dadurch behandeln, dass er in einem Abfragezustand beginnt, indem er die physikalische Spur n ... 0 für die logische Spur 0 ... n verwendet. Somit können sich Bezugnahmen auf eine Spur auf die Nummer einer logische Spur beziehen. Somit können Platinenentwickler den physikalischen oder elektrischen Entwurf effizienter festlegen und kann die HPI wie hier beschrieben mit virtuellen Spurzuweisungen arbeiten. Darüber hinaus kann in einer Ausführungsform die Polarität umgekehrt werden (d. h. wenn ein differentieller Sender +/- mit einem Empfänger -/+ verbunden wird). Die Polarität kann ebenfalls bei einem Empfänger aus einem oder mehreren TS-Anfangsblockfeldern detektiert werden und in einer Ausführungsform in dem Abfragezustand behandelt werden.
-
In 13 ist eine Ausführungsform eines Blockschaltplans für ein Computersystem, das einen Mehrkernprozessor enthält, gezeigt. Der Prozessor 1300 enthält irgendeinen Prozessor oder irgendeine Verarbeitungsvorrichtung wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen Handeinrichtungsprozessor, einen Anwendungsprozessor, einen Coprozessor, ein Einchipsystem (SOC) oder eine andere Vorrichtung zum Ausführen von Code. In einer Ausführungsform enthält der Prozessor 1300 wenigstens zwei Kerne - den Kern 1301 und den Kern 1302, die asymmetrische Kerne oder symmetrische Kerne (die dargestellte Ausführungsform) enthalten können. Allerdings kann der Prozessor 1300 irgendeine Anzahl von Verarbeitungselementen, die symmetrisch oder asymmetrisch sein können, enthalten.
-
In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardwareverarbeitungselemente enthalten: eine Thread-Einheit, einen Thread-Schlitz, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder irgendein anderes Element, das einen Zustand für einen Prozessor wie etwa einen Ausführungszustand oder einen Architekturzustand halten kann. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf irgendeine Hardware, der unabhängig Code wie etwa ein Software-Thread, ein Betriebssystem, eine Anwendung oder anderer Code zugeordnet werden kann. Üblicherweise bezieht sich ein physikalischer Prozessor (oder Prozessor-Sockel) auf eine integrierte Schaltung, die potentiell irgendeine Anzahl von Verarbeitungselementen wie etwa Kernen oder Hardware-Threads enthält.
-
Häufig bezieht sich ein Kern auf Logik, die sich in einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jedem unabhängig aufrechterhaltenen Architekturzustand wenigstens einige dedizierte Ausführungsbetriebsmittel zugeordnet sind. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread üblicherweise auf irgendeine Logik, die sich in einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei die unabhängig aufrechterhaltenen Architekturzustände den Zugriff auf Ausführungsbetriebsmittel gemeinsam nutzen. Wie zu sehen ist, überlappt sich die Linie zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Betriebsmittel gemeinsam genutzt werden und andere einem Architekturzustand gewidmet sind. Dennoch werden ein Kern und ein Hardware-Thread von einem Betriebssystem häufig als einzelne logische Prozessoren angesehen, wobei das Betriebssystem Operationen in jedem logischen Prozessor einzeln planen kann.
-
Der physikalische Prozessor 1300, wie er in 13 dargestellt ist, enthält zwei Kerne - den Kern 1301 und den Kern 1302. Die Kerne 1301 und 1302 werden hier als symmetrische Kerne, d. h. als Kerne mit denselben Konfigurationen, mit denselben Funktionseinheiten und/oder mit derselben Logik, angesehen. In einer anderen Ausführungsform enthält der Kern 1301 einen Out-of-Order-Prozessorkern, während der Kern 1302 einen In-Order-Prozessorkern enthält. Allerdings können die Kerne 1301 und 1302 aus irgendeinem Kerntyp wie etwa einem nativen Kern, einem durch Software gemanagten Kern, einem an die Ausführung einer nativen Befehlssatzarchitektur (ISA) angepassten Kern, einem an die Ausführung einer übersetzten Befehlssatzarchitektur (ISA) angepassten Kern, einem gemeinsam entworfenen Kern oder einem anderen bekannten Kern einzeln gewählt werden. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine Form von Übersetzung wie etwa eine binäre Übersetzung genutzt werden, um Code in einem oder in beiden Kernen zu planen oder auszuführen. Um die Diskussion zu fördern, sind aber im Folgenden die in dem Kern 1301 dargestellten Funktionseinheiten ausführlicher beschrieben, da die Einheiten in dem Kern 1302 in der gezeigten Ausführungsform auf ähnliche Weise arbeiten.
-
Wie gezeigt ist, enthält der Kern 1301 zwei Hardware-Threads 1301a und 1301b, die auch als Hardware-Thread-Schlitze 1301a und 1301b bezeichnet werden können. Somit können Softwareentitäten wie etwa ein Betriebssystem den Prozessor 1300 in einer Ausführungsform potentiell als vier getrennte Prozessoren, d. h. als vier logische Prozessoren oder Prozessorelemente, die vier Software-Threads gleichzeitig ausführen können, betrachten. Wie oben erwähnt wurde, ist ein erster Thread den Architekturzustandsregistern 1301a zugeordnet, ist ein zweiter Thread den Architekturzustandsregistern 1301b zugeordnet, kann ein dritter Thread den Architekturzustandsregistern 1302a zugeordnet sein und kann ein vierter Thread den Architekturzustandsregistern 1302b zugeordnet sein. Jedes der Architekturzustandsregister (1301a, 1301b, 1302a und 1302b) kann hier wie oben beschrieben als Verarbeitungselemente, Thread-Schlitze oder Thread-Einheiten bezeichnet werden. Wie dargestellt ist, sind die Architekturzustandsregister 1301a in den Architekturzustandsregistern 1301b wiederholt, so dass für den logischen Prozessor 1301a und für den logischen Prozessor 1301b eigene Architekturzustände/Architekturkontexte gespeichert werden können. In dem Kern 1301 können andere kleine Betriebsmittel wie etwa Befehlszeiger und Umbenennungslogik in einen Zuordner- und Umbenennerblock 1330 ebenfalls für die Threads 1301a und 1301b wiederholt sein. Einige Betriebsmittel wie etwa Umordnungspuffer in der Umordnungseinheit/Ausscheidungseinheit 1335, der I-TLB 1320, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung gemeinsam genutzt sein. Andere Betriebsmittel wie etwa interne Mehrzweckregister, eines oder mehrere Seitentabellenbasisregister, ein Daten-Cache unterer Ebene und ein Daten-TLB 1315, eine oder mehrere Ausführungseinheiten 1340 und Abschnitte der Out-of-Order-Einheit 1335 sind potentiell vollständig gemeinsam genutzt.
-
Häufig enthält der Prozessor 1300 andere Betriebsmittel, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch/für Verarbeitungselemente dediziert sein können. In 13 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden Logikeinheiten/Logikbetriebsmitteln eines Prozessors dargestellt. Es wird angemerkt, dass ein Prozessor irgendwelche dieser Funktionseinheiten enthalten kann oder sie bei ihm weggelassen sein können sowie irgendwelche anderen bekannten Funktionseinheiten, Logik oder Firmware, die nicht gezeigt sind, enthalten kann. Wie dargestellt ist, enthält der Kern 1301 einen vereinfachten repräsentativen Out-of-Order-Prozessorkem (OOO-Prozessorkem). Allerdings kann in anderen Ausführungsformen ein In-Order-Prozessor genutzt werden. Der OOO-Kern enthält einen Verzweigungszielpuffer 1320, um auszuführende/zu nehmende Verzweigungen vorherzusagen, und einen Befehlsübersetzungspuffer (I-TLB) 1320 zum Speichern von Adressenübersetzungseinträgen für Befehle.
-
Ferner enthält der Kern 1301 ein Decodiermodul 1325, das mit einer Abrufeinheit 1320 gekoppelt ist, um abgerufene Elemente zu decodieren. In einer Ausführungsform enthält die Abruflogik einzelne Ablaufsteuerungen, die drei Schlitzen 1301a bzw. 1301b zugeordnet sind. Üblicherweise ist der Kern 1301 einer ersten ISA zugeordnet, die in dem Prozessor 1300 ausführbare Befehle definiert/spezifiziert. Häufig enthalten Maschinencodebefehle, die Teil der ersten ISA sind, einen (als ein Opcode bezeichneten) Abschnitt des Befehls, der sich auf einen Befehl oder auf eine Operation, der bzw. die auszuführen ist, bezieht/diese(n) spezifiziert. Die Decodierlogik 1325 enthält eine Schaltungsanordnung, die diese Befehle aus ihren Opcodes erkennt und die decodierten Befehle zur wie durch die erste ISA definierten Verarbeitung in der Pipeline weitergibt. Wie im Folgenden ausführlicher diskutiert ist, enthalten die Decodierer 1325 in einer Ausführungsform z. B. Logik, die dafür bestimmt oder ausgelegt ist, spezifische Befehle wie etwa einen Transaktionsbefehl zu erkennen. Im Ergebnis der Erkennung durch die Decodierer 1325 ergreift die Architektur oder der Kern 1301 spezifische im Voraus definierte Maßnahmen, um dem entsprechenden Befehl zugeordnete Aufgaben auszuführen. Es ist wichtig anzumerken, dass irgendwelche der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren in Ansprechen auf einen einzelnen oder mehrere Befehle ausgeführt werden können; von denen einige neue oder alte Befehle sein können. Es wird angemerkt, dass die Decodierer 1326 in einer Ausführungsform dieselbe ISA (oder eine Teilmenge davon) erkennen. Alternativ erkennen die Decodierer 1326 in einer Umgebung heterogener Kerne eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine andere ISA).
-
In einem Beispiel enthält der Zuordner- und Umbenennerblock 1330 einen Zuordner zum Reservieren von Betriebsmitteln wie etwa Registerdateien zum Speichern von Befehlsverarbeitungsergebnissen. Allerdings sind die Threads 1301a und 1301b potentiell zur Out-of-Order-Ausführung fähig, wobei der Zuordner- und Umbenennerblock 1330 ebenfalls andere Betriebsmittel wie etwa Umordnerpuffer zum Nachführen von Befehlsergebnissen reserviert. Außerdem kann die Einheit 1330 einen Registerumbenenner zum Umbenennen von Programm-Befehlsreferenzregistern in andere Register, die intern zu dem Prozessor 1300 sind, enthalten. Die Umordner/-Ausscheideeinheit 1335 enthält Komponenten wie etwa die obenerwähnten Umordnerpuffer, Ladepuffer und Speicherpuffer zum Unterstützen der Out-of-Order-Ausführung und eines späteren In-Order-Ausscheidens von Befehlen, die Out-of-Order ausgeführt werden.
-
In einer Ausführungsform enthält der Planer- und Ausführungseinheit(en)-Block 1340 eine Planereinheit, um Befehle/den Betrieb in Ausführungseinheiten zu planen. Zum Beispiel wird ein Gleitkommabefehl an einem Port einer Ausführungseinheit, der eine verfügbare Gleitkommaausführungseinheit aufweist, geplant. Außerdem sind den Ausführungseinheiten zugeordnete Registerdateien enthalten, um Informationsbefehlsverarbeitungs-Ergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
-
Mit der einen oder den mehreren Ausführungseinheiten 1340 sind ein Daten-Cache unterer Ebene und ein Datenübersetzungspuffer (D-TLB) 1350 gekoppelt. Der Daten-Cache soll kürzlich verwendete/bearbeitete Elemente wie etwa Datenoperanden, die potentiell in Speicherkohärenzzuständen gehalten werden, speichern. Der D-TLB soll kürzliche Übersetzungen virtueller/linearer in physikalische Adressen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physikalischen Speicher in mehrere virtuelle Seiten zu zerlegen.
-
Die Kerne 1301 und 1302 nutzen hier den Zugriff auf einen Cache einer höheren Ebene oder auf einen weiter äußeren Cache wie etwa auf einen Cache der zweiten Ebene, der der chipintegrierten Schnittstelle 1310 zugeordnet ist, gemeinsam. Es wird angemerkt, dass sich Cache einer höheren Ebene oder weiter äußerer Cache auf Cache-Ebenen bezieht, die von der oder den Ausführungseinheiten zunehmen oder weiter entfernt sind. In einer Ausführungsform ist der Cache einer höheren Ebene ein Daten-Cache der letzten Ebene - der letzte Cache in der Speicherhierarchie im Prozessor 1300 - wie etwa ein Daten-Cache der zweiten Ebene oder der dritten Ebene. Allerdings ist der Cache einer höheren Ebene darauf nicht beschränkt, da er einem Befehls-Cache zugeordnet sein kann oder ihn enthalten kann. Nach den Decodierer 1325 kann stattdessen ein Trace-Cache - ein Typ eines Befehls-Caches - gekoppelt sein, um kürzlich decodierte Nachverfolgungen zu speichern. Ein Befehl bezieht sich hier potentiell auf einen Makrobefehl (d. h. auf einen allgemeinen Befehl, der von den Decodierern erkannt wird), der in eine Anzahl von Mikrobefehlen (Mikrooperationen) decodiert werden kann.
-
Außerdem enthält der Prozessor 1300 in der gezeigten Konfiguration ein chipintegriertes Schnittstellenmodul 1310. Historisch ist ein Speichercontroller, wie er im Folgenden ausführlicher beschrieben ist, in einem gegenüber dem Prozessor 1300 externen Computersystem enthalten. In diesem Szenarium soll die chipintegrierte Schnittstelle 1310 mit Vorrichtungen, die gegenüber dem Prozessor 1300 extern sind, wie etwa mit dem Systemspeicher 1375, mit einem Chipsatz (der häufig einen Speichercontroller-Hub zum Verbinden mit dem Speicher 1375 und einen E/A-Controller-Hub zum Verbinden mit Peripherievorrichtungen enthält), mit einem Speichercontroller-Hub, mit einer Northbridge oder mit einer anderen integrierten Schaltung kommunizieren. Außerdem kann der Bus 1305 in diesem Szenarium irgendeine bekannte Verdrahtung wie etwa einen Mehrpunktbus, eine Punkt-zu-Punkt-Verdrahtung, eine serielle Verdrahtung, einen parallelen Bus, einen kohärenten (z. B. einen Cache-kohärenten) Bus, eine Schichtprotokollarchitektur, einen differentiellen Bus und einen GTL-Bus enthalten.
-
Der Speicher 1375 kann dem Prozessor 1300 zugeordnet sein oder mit anderen Vorrichtungen in einem System gemeinsam genutzt werden. Übliche Beispiele von Typen des Speichers 1375 enthalten DRAM, SRAM, nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Ablagevorrichtungen. Es wird angemerkt, dass die Vorrichtung 1380 einen Graphikbeschleuniger, einen Prozessor oder eine Karte, der bzw. die mit einem Speichercontroller-Hub gekoppelt ist, eine Datenablage, die mit einem E/A-Controller-Hub gekoppelt ist, einen drahtlosen Transceiver, eine Flash-Vorrichtung, einen Audio-Controller, einen Netz-Controller oder eine andere bekannte Vorrichtung enthalten kann.
-
Allerdings kann in letzter Zeit, während mehr Logik und Vorrichtungen auf einem einzelnen Einzelchip wie etwa einem SOC integriert werden, jede dieser Vorrichtungen in dem Prozessor 1300 integriert sein. Zum Beispiel ist in einer Ausführungsform ein Speichercontroller-Hub in derselben Baugruppe und/in demselben Einzelchip mit dem Prozessor 1300. Ein Abschnitt des Kerns (ein kernintegrierter Abschnitt) 1310 enthält hier einen oder mehrere Controller als Schnittstelle mit anderen Vorrichtungen wie etwa dem Speicher 1375 oder einer Graphikvorrichtung 1380. Die Konfiguration, die eine Verdrahtung und Controller als Schnittstelle mit solchen Vorrichtungen enthält, wird häufig als kernintegriert (oder Un-Core-Konfiguration) bezeichnet. Als ein Beispiel enthält die chipintegrierte Schnittstelle 1310 eine Ringverdrahtung für die chipintegrierte Kommunikation und eine schnelle serielle Punkt-zu-Punkt-Verbindung 1305 für die chipexterne Kommunikation. Dennoch können in der SOC-Umgebung noch mehr Vorrichtungen wie etwa die Netzschnittstelle, Coprozessoren, Speicher 1375, ein Graphikprozessor 1380 und irgendwelche anderen bekannten Computervorrichtungen/irgendeine andere bekannte Computerschnittstelle auf einem einzelnen Einzelchip oder auf einer einzelnen integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Leistungsverbrauch bereitstellen.
-
In einer Ausführungsform kann der Prozessor 1300 einen Compiler-, Optimierungs- und/oder Übersetzercode 1377 ausführen, um Anwendungscode 1376 zu compilieren, zu übersetzen und/oder zu optimieren, um die hier beschriebenen Vorrichtungen und Verfahren zu unterstützen oder eine Schnittstelle mit ihnen bereitzustellen. Häufig enthält ein Compiler ein Programm oder eine Menge von Programmen zum Übersetzen von Quelltext/Quellcode in Zieltext/Zielcode. Üblicherweise erfolgt die Compilierung eines Programmcodes/Anwendungscodes mit einem Compiler in mehreren Phasen und Durchgängen, um Code einer höheren Programmiersprache in niedrigen Maschinencode oder Assemblersprachencode umzuwandeln. Dennoch können für die einfache Compilierung weiterhin Einzeldurchgangscompiler genutzt werden. Ein Compiler kann irgendwelche bekannten Compilierungstechniken nutzen und irgendwelche bekannten Compileroperationen wie etwa lexikalische Analyse, Vorverarbeitung, Parsing, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung ausführen.
-
Größere Compiler enthalten häufig mehrere Phasen, wobei die meisten dieser Phasen aber innerhalb zweier allgemeiner Phasen enthalten sind: (1) ein Frontend, d. h. allgemein dort, wo die Syntaxverarbeitung, die Semantikverarbeitung und etwas Transformation/Optimierung stattfinden können, und (2) ein Backend, d. h. allgemein dort, wo die Analyse, die Transformationen, die Optimierungen und die Codeerzeugung stattfinden. Einige Compiler nehmen Bezug auf eine Mitte, was die Verwischung der Abgrenzung zwischen einem Frontend und einem Backend eines Compilers darstellt. Im Ergebnis kann die Bezugnahme auf Einfügung, Zuordnung, Erzeugung oder eine andere Operation eines Compilers in irgendeiner der oben erwähnten Phasen oder Durchgänge sowie in irgendwelchen anderen bekannten Phasen oder Durchgängen eines Compilers stattfinden. Als ein veranschaulichendes Beispiel fügt ein Compiler potentiell Operationen, Aufrufe, Funktionen usw. in einer oder in mehreren Phasen der Compilation wie etwa die Einfügung von Aufrufen/Operationen in einer Frontend-Phase der Compilation und daraufhin die Transformation der Aufrufe/Operationen in Code niedrigerer Ebene während einer Transformationsphase ein. Es wird angemerkt, dass während der dynamischen Compilation Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen können sowie den Code für die Ausführung während der Laufzeit optimieren können. Als ein spezifisches veranschaulichendes Beispiel kann Binärcode (bereits compilierter Code) während der Laufzeit dynamisch optimiert werden. Der Programmcode kann hier den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
-
Ein Übersetzer wie etwa ein Binärübersetzer übersetzt ähnlich einem Compiler Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Somit kann sich die Bezugnahme auf die Ausführung von Code, Anwendungscode, Programmcode oder auf eine andere Softwareumgebung auf Folgendes beziehen: (1) die Ausführung eines oder mehrerer Compilerprogramme, eines Optimierungscodeoptimierers oder -übersetzers, entweder dynamisch oder statisch, zum Compilieren von Programmcode, um Softwarestrukturen zu unterhalten, um andere Operationen auszuführen, Code zu optimieren oder Code zu übersetzen; (2) die Ausführung von Hauptprogrammcode einschließlich Operationen/Aufrufen wie etwa Anwendungscode, der optimiert/compiliert worden ist; (3) die Ausführung von anderem Programmcode wie etwa Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Softwarestrukturen zu unterhalten, andere softwarebezogene Operationen auszuführen oder Code zu optimieren; oder (4) eine Kombination davon.
-
Nun in 14 ist ein Blockschaltplan einer Ausführungsform eines Mehrkernprozessors gezeigt. Wie in der Ausführungsform von 14 gezeigt ist, enthält der Prozessor 1400 mehrere Domänen. Genauer enthält eine Kerndomäne 1430 mehrere Kerne 1430A-1430N, eine Graphikdomäne 1460 enthält eine oder mehrere Graphikmaschinen mit einer Medienmaschine 1465, und eine Systemagentendomäne 1410.
-
In verschiedenen Ausführungsformen behandelt die Systemagentendomäne 1410 Leistungssteuerereignisse und Leistungsmanagement, so dass einzelne Einheiten der Domänen 1430 und 1460 (z. B. Kerne und/oder Graphikmaschinen) unabhängig steuerbar sind, um angesichts der in der gegebenen Einheit stattfindenden Aktivität (oder Inaktivität) in einer geeigneten Leistungsbetriebsartlauf einem geeigneten Leistungsniveau (z. B. aktiv, Turbo, Schlafen, Hibernate, Tiefschlaf oder einem anderen einer fortgeschrittenen Konfigurationsleistungsschnittstelle ähnlichen Zustand) dynamisch zu arbeiten. Jede der Domänen 1430 und 1460 kann mit einer anderen Spannung und/oder Leistung arbeiten und darüber hinaus können die einzelnen Einheiten innerhalb der Domänen jeweils potentiell mit einer unabhängigen Frequenz und Spannung arbeiten. Obwohl nur drei Domänen gezeigt sind, wird angemerkt, dass der Schutzumfang der vorliegenden Erfindung diesbezüglich selbstverständlich nicht beschränkt ist und dass in anderen Ausführungsformen zusätzliche Domänen vorhanden sein können.
-
Wie gezeigt ist, enthält jeder Kern 1430 außer verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen ferner Caches niedriger Ebene. Die verschiedenen Kerne sind hier miteinander und mit einem gemeinsam genutzten Cache-Speicher, der aus mehreren Einheiten oder Slices eines Caches der letzten Ebene (LLC) 1440A-1440N gebildet ist, gekoppelt; häufig enthalten diese LLCs Ablage- und Cache-Controller-Funktionalität und werden sie unter den Kernen sowie potentiell auch mit der Graphikmaschine gemeinsam genutzt.
-
Wie zu sehen ist, koppelt eine Ringverdrahtung 1450 die Kerne über mehrere Ringhalte 1452A-1452N, jeweils an einer Kopplung zwischen einem Kern und einem LLC-Slice, miteinander und stellt sie eine Verdrahtung zwischen der Kerndomäne 1430, der Graphikdomäne 1460 und der Systemagentenschaltungsanordnung 1410 bereit. Wie in 14 zu sehen ist, wird die Verdrahtung 1450 verwendet, um verschiedene Informationen einschließlich Adresseninformationen, Dateninformationen, Quittierungsinformationen und Mitlausch-/Ungültig-Informationen zu übermitteln. Obwohl eine Ringverdrahtung dargestellt ist, kann irgendeine bekannte chipintegrierte Verdrahtung oder irgendein bekanntes chipintegriertes Fabric genutzt werden. Als ein veranschaulichendes Beispiel können einige der oben diskutierten Fabrics (z. B. eine andere chipintegrierte Verdrahtung, eine chipintegrierte System-Fabrik (OSF), eine Advanced-Microcontroller-Bus-Architecture-Verdrahtung (AMBA-Verdrahtung), ein mehrdimensionales Maschen-Fabric oder eine andere bekannte Verdrahtungsarchitektur) auf ähnliche Weise genutzt werden.
-
Wie weiter gezeigt ist, enthält die Systemagentendomäne 1410 eine Anzeigemaschine 1412, die eine Steuerung einer zugeordneten Anzeige und eine Schnittstelle mit ihr bereitstellen soll. Die Systemagentendomäne 1410 kann andere Einheiten wie etwa Folgende enthalten: einen integrierten Speichercontroller 1420, der eine Schnittstelle zu einem Systemspeicher (z. B. zu einem mit mehreren DIMMs implementierten DRAM; bereitstellt; eine Kohärenzlogik 1422 zum Ausführen von Speicherkohärenzoperationen. Es können mehrere Schnittstellen vorhanden sein, um eine Verbindung zwischen dem Prozessor und einer anderen Schaltungsanordnung zu ermöglichen. Zum Beispiel sind in einer Ausführungsform wenigstens eine Direktmedienschnittstellen-Schnittstelle (DMI-Schnittstelle) 1416 sowie eine oder mehrere PCIe™-Schnittstellen 1414 vorgesehen. Üblicherweise koppeln diese Anzeigemaschine und diese Schnittstellen über eine PCIe™-Bridge 1418 mit dem Speicher. Nochmals weiter können eine oder mehrere weitere Schnittstellen vorgesehen sein, um Kommunikationen zwischen anderen Agenten wie etwa zusätzlichen Prozessoren oder einer anderen Schaltungsanordnung bereitzustellen.
-
Nun in 15 ist ein Blockschaltplan eines repräsentativen Kerns, spezifisch von Logikblöcken eines Backends eines Kerns wie etwa des Kerns 1430 aus 14, gezeigt. Im Allgemeinen enthält die in 15 gezeigte Struktur einen Out-of-Order-Prozessor, der eine Frontend-Einheit 1570 aufweist, die zum Abrufen ankommender Befehle, zum Ausführen verschiedener Verarbeitung (z. B. Cache-Verarbeitung, Decodierung, Verzweigungsvorhersage usw.) und zum Übergeben von Befehlen/Operationen entlang einer Out-of-Order-Maschine (OOO-Maschine) 1580 verwendet wird. Die OOO-Maschine 1580 führt an den decodierten Befehlen eine Weiterverarbeitung aus.
-
Genauer enthält die Out-of-Order-Maschine 1580 in der Ausführungsform aus 15 eine Zuordnungseinheit 1582, um decodierte Befehle, die in Form eines oder mehrerer Mikrobefehle oder µops sein können, von der Frontend-Einheit 1570 zu empfangen und um sie geeigneten Betriebsmitteln wie etwa Registern usw. zuzuordnen. Nachfolgend werden die Befehle für eine Reservierungsstation 1584 bereitgestellt, die Betriebsmittel reserviert und sie für die Ausführung in einer von mehreren Ausführungseinheiten 1586A-1586N plant. Es können verschiedene Typen von Ausführungseinheiten einschließlich z. B. Arithmetik-Logik-Einheiten (ALUs), Lade- und Speichereinheiten, Vektorverarbeitungseinheiten (VPUs), Gleitkommaausführungseinheiten und andere vorhanden sein. Die Ergebnisse von diesen verschiedenen Ausführungseinheiten werden für einen Umordnungspuffer (ROB) 1588 bereitgestellt, der ungeordnete Ergebnisse nimmt und sie in die richtige Programmreihenfolge zurückbringt.
-
Weiter anhand von 15 wird angemerkt, dass sowohl die Frontend-Einheit 1570 als auch die Out-of-Order-Maschine 1580 mit verschiedenen Ebenen einer Speicherhierarchie gekoppelt sind. Genauer ist ein Cache 1572 der Befehlsebene, der wiederum mit einem Cache 1576 einer mittleren Ebene gekoppelt ist, der wiederum mit einem Cache 1595 der letzten Ebene gekoppelt ist, gezeigt. In einer Ausführungsform ist der Cache 1595 der letzten Ebene in einer chipintegrierten Einheit (gelegentlich als eine Un-Core-Einheit bezeichnet) 1590 implementiert.
-
Als ein Beispiel ist die Einheit 1590 ähnlich dem Systemagenten 1410 aus 14. Wie oben diskutiert wurde, kommuniziert der Un-Core 1590 mit Systemspeicher 1599, der in der dargestellten Ausführungsform über ED-RAM implementiert ist. Außerdem wird angemerkt, dass die verschiedenen Ausführungseinheiten 1586 innerhalb der Out-of-Order-Maschine 1580 mit einem Cache 1574 der ersten Ebene in Verbindung stehen, der ebenfalls mit einem Cache 1576 einer mittleren Ebene in Verbindung steht. Außerdem wird angemerkt, dass mit dem LLC 1595 zusätzliche Kerne 1530N-2 - 1530N koppeln können. Obwohl dies in der Ausführungsform aus 15 auf dieser hohen Ebene gezeigt ist, ist festzustellen, dass verschiedene Änderungen und zusätzliche Komponenten vorhanden sein können.
-
Übergehend zu 16 ist ein Blockschaltplan eines beispielhaften Computersystems dargestellt, das mit einem Prozessor gebildet ist, der Ausführungseinheiten zum Ausführen eines Befehls enthält, wobei eine oder mehrere der Verdrahtungen eines oder mehrere Merkmale in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung implementieren. Das System 1600 enthält eine Komponente wie etwa einen Prozessor 1602 zur Nutzung von Ausführungseinheiten, die Logik zum Ausführen von Algorithmen zum Ausführen von Daten in Übereinstimmung mit der vorliegenden Erfindung wie etwa in der hier beschriebenen Ausführungsform enthalten. Das System 1600 repräsentiert Verarbeitungssysteme auf der Grundlage der Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™, obwohl andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) ebenfalls verwendet werden können. In einer Ausführungsform führt das Mustersystem 1600 eine Version des Betriebssystems WINDOWS™ aus, das von der Microsoft Corporation aus Redmond, Washington, verfügbar ist, obwohl andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder graphische Benutzerschnittstellen ebenfalls verwendet werden können. Somit sind Ausführungsformen der vorliegenden Erfindung nicht auf irgendeine spezifische Kombination aus Hardwareschaltungsanordnung und Software beschränkt.
-
Ausführungsformen sind nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen wie etwa in Handvorrichtungen und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Handvorrichtungen enthalten Mobiltelephone, Internetprotokollvorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und Hand-PCs. Eingebettete Anwendungen können einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein Einchipsystem, Netz-Computer (NetPCs), Set-Top-Boxen, Netz-Hubs, Weitverkehrsnetz-Switches (WAN-Switches) oder irgendein anderes System, das einen oder mehrere Befehle in Übereinstimmung mit wenigstens einer Ausführungsform ausführen kann, enthalten.
-
In dieser dargestellten Ausführungsform enthält der Prozessor 1602 eine oder mehrere Ausführungseinheiten 1608 zum Implementieren eines Algorithmus, der wenigstens einen Befehl ausführen soll. Eine Ausführungsform kann im Kontext eines Einzelprozessor-Desktopsystems oder eines Einzelprozessor-Serversystems beschrieben werden, obwohl alternative Ausführungsformen in einem Mehrprozessorsystem enthalten sein können. Das System 1600 ist ein Beispiel einer ‚Hub‘-Systemarchitektur. Das Computersystem 1600 enthält einen Prozessor 1602 zum Verarbeiten von Datensignalen. Als ein veranschaulichendes Beispiel enthält der Prozessor 1602 einen Mikroprozessor eines Computers mit komplexem Befehlssatz (CISC-Mikroprozessor), einen Mikroprozessor eines Computers mit reduziertem Befehlssatz (RISC-Mikroprozessor), einen Mikroprozessor mit sehr langem Befehlswort (VLIW-Mikroprozessor), einen Prozessor, der eine Kombination von Befehlssätzen implementiert oder irgendeine andere Prozessorvorrichtung wie etwa z. B. einen digitalen Signalprozessor. Der Prozessor 1602 ist mit einem Prozessorbus 1610 gekoppelt, der Datensignale zwischen dem Prozessor 1602 und anderen Komponenten in dem System 1600 überträgt. Die Elemente des Systems 1600 (z. B. der Graphikbeschleuniger 1612, der Speichercontroller-Hub 1616, der Speicher 1620, der E/A-Controller-Hub 1624, der drahtlose Transceiver 1626, das Flash-BIOS 1628, der Netzcontroller 1634, der Audiocontroller 1636, der serielle Erweiterungsport 1638, der E/A-Controller 1640 usw.) führen ihre herkömmlichen Funktionen aus, die dem Fachmann auf dem Gebiet gut bekannt sind.
-
In einer Ausführungsform enthält der Prozessor 1602 einen internen Cache-Speicher 1604 der 1. Ebene (L1). In Abhängigkeit von der Architektur kann der Prozessor 1602 einen einzelnen internen Cache oder mehrere Ebenen interner Caches aufweisen. Andere Ausführungsformen enthalten in Abhängigkeit von der bestimmten Implementierung und von den Notwendigkeiten eine Kombination sowohl interner als auch externer Caches. Die Registerdatei 1606 soll in verschiedenen Registern einschließlich Ganzzahlregistern, Gleitkommaregistem, Vektorregistern, Bank-Registern, Schattenregistern, Prüfpunktregistern, Statusregistern und Befehlszeigerregistern verschiedene Datentypen speichern.
-
Die Ausführungseinheit 1608, die Logik zum Ausführen von Ganzzahl- und Gleitkommaoperationen enthält, liegt ebenfalls in dem Prozessor 1602. In einer Ausführungsform enthält der Prozessor 1602 einen Mikrocode-ROM (µcode-ROM) zum Speichern von Mikrocode, der, wenn er ausgeführt wird, Algorithmen für bestimmte Makrobefehle oder zum Behandeln komplexer Szenarien ausführen soll. Der Mikrocode ist hier potentiell aktualisierbar, um Logikfehler/Logikkorrekturen für den Prozessor 1602 zu behandeln. Für eine Ausführungsform enthält die Ausführungseinheit 1608 Logik zum Behandeln eines gepackten Befehlssatzes 1609. Dadurch, dass der gepackte Befehlssatz 1609 in den Befehlssatz eines Universalprozessors 1602 aufgenommen wird, können zusammen mit zugeordneter Schaltungsanordnung zum Ausführen der Befehle die von vielen Multimediaanwendungen verwendeten Operationen unter Verwendung gepackter Daten in einem Universalprozessor 1602 ausgeführt werden. Somit werden viele Multimediaanwendungen unter Verwendung der vollen Breite des Datenbusses eines Prozessors zum Ausführen von Operationen an gepackten Daten beschleunigt und effizienter ausgeführt. Dies beseitigt potentiell die Notwendigkeit, zum Ausführen einer oder mehrerer Operationen kleinere Dateneinheiten, immer nur ein Datenelement, über den Datenbus des Prozessors zu übertragen.
-
Alternative Ausführungsformen einer Ausführungseinheit 1608 können ebenfalls in Mikrocontrollern, eingebetteten Prozessoren, Graphikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. Das System 1600 enthält einen Speicher 1620. Der Speicher 1620 enthält eine dynamische Schreib-Lese-Speicher-Vorrichtung (DRAM-Vorrichtung), eine statische Schreib-Lese-SpeicherVorrichtung (SRAM-Vorrichtung), eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung. Der Speicher 1620 speichert Befehle und/oder Daten, die durch Datensignale dargestellt sind, die durch den Prozessor 1602 ausgeführt werden sollen.
-
Es wird angemerkt, dass irgendeines der obenerwähnten Merkmale oder irgendeiner der obenerwähnten Aspekte der Erfindung an einer oder an mehreren in 16 dargestellten Verdrahtungen genutzt werden können. Zum Beispiel implementiert eine chipintegrierte Verdrahtung (ODI), die nicht gezeigt ist, zum Koppeln interner Einheiten des Prozessors 1602 einen oder mehrere Aspekte der oben beschriebenen Erfindung. Alternativ ist die Erfindung einem Prozessorbus 1610 (z. B. einer anderen bekannten Hochleistungs-Computerverdrahtung), einem Speicherweg 1618 mit hoher Bandbreite zum Speicher 1620, einer Punkt-zu-Punkt-Verbindung zum Graphikbeschleuniger 1612 (z. B. einem Peripheral-Component-Interconnect-express-kompatiblen Fabric (PCIe-kompatiblen Fabric)), einer Controller-Hub-Verdrahtung 1622, einer E/A oder einer anderen Verdrahtung (z. B. USB, PCI, PCIe) zum Koppeln der anderen dargestellten Komponenten zugeordnet. Einige Aspekte solcher Komponenten enthalten den Audiocontroller 1636, den Firmware-Hub (Flash-BIOS) 1628, den drahtlosen Transceiver 1626, die Datenablage 1624, den Alt-E/A-Controller 1610, der Benutzereingabe- und Tastaturschnittstellen 1642 enthält, einen seriellen Erweiterungsport 1638 wie etwa Universal Serial Bus (USB) und einen Netzcontroller 1634. Die Datenablagevorrichtung 1624 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenablagevorrichtung umfassen.
-
Nun in 17 ist ein Blockschaltplan eines zweiten Systems 1700 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 17 gezeigt ist, ist das Mehrprozessorsystem 1700 ein Punkt-zu-Punkt-Verdrahtungssystem und enthält es einen ersten Prozessor 1770 und einen zweiten Prozessor 1780, die über eine Punkt-zu-Punkt-Verdrahtung 1750 gekoppelt sind. Jeder der Prozessoren 1770 und 1780 kann eine bestimmte Version eines Prozessors sein. In einer Ausführungsform sind 1752 und 1754 Teile eines seriellen kohärenten Punkt-zu-Punkt-Verdrahtungs-Fabrics wie etwa einer Hochleistungsarchitektur. Im Ergebnis kann die Erfindung innerhalb der QPI-Architektur implementiert werden.
-
Obwohl nur zwei Prozessoren 1770, 1780 gezeigt sind, ist festzustellen, dass der Schutzumfang der vorliegenden Erfindung darauf nicht beschränkt ist. In anderen Ausführungsformen können in einem gegebenen Prozessor einer oder mehrere zusätzliche Prozessoren vorhanden sein.
-
Die Prozessoren 1770 und 1780 sind in der Weise gezeigt, dass sie integrierte Speichercontrollereinheiten 1772 bzw. 1782 enthalten. Außerdem enthält der Prozessor 1770 als Teil seiner Buscontrollereinheiten Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1776 bzw. 1778; ähnlich enthält der zweite Prozessor 1780 P-P-Schnittstellen 1786 und 1788. Die Prozessoren 1770, 1780 können über eine Punkt-zu-Punkt-Schnittstelle (P-P-Schnittstelle) 1750 unter Verwendung von P-P-Schnittstellenschaltungen 1778, 1788 Informationen austauschen. Wie in 17 gezeigt ist, können IMCs 1772 und 1782 die Prozessoren mit jeweiligen Speichern, d. h. mit einem Speicher 1732 und mit einem Speicher 1734, die Abschnitte des Hauptspeichers sein können, die lokal an die jeweiligen Prozessoren angeschlossen sind, koppeln.
-
Die Prozessoren 1770, 1780 tauschen jeweils über einzelne P-P-Schnittstellen 1752, 1754 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1776, 1794, 1786, 1798 Informationen mit einem Chipsatz 1790 aus. Außerdem tauscht der Chipsatz 1790 über eine Schnittstellenschaltung 1792 zusammen mit einer Hochleistungsgraphikverdrahtung 1739 Informationen mit einer Hochleistungsgraphikschaltung 1738 aus.
-
In jedem Prozessor oder außerhalb beider Prozessoren, jedoch mit den Prozessoren über eine P-P-Verdrahtung verbunden, kann ein gemeinsam genutzter Cache (nicht gezeigt) enthalten sein, so dass die lokalen Cache-Informationen eines oder beider Prozessoren in dem gemeinsam genutzten Cache gespeichert werden können, falls ein Prozessor in einer leistungsarmen Betriebsart angeordnet wird.
-
Der Chipsatz 1790 kann über eine Schnittstelle 1796 mit einem ersten Bus 1716 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1716 ein Peripheral-Component-Interconnect-Bus (PCI-Bus) oder ein Bus wie etwa ein PCI-Express-Bus oder ein anderer E/A-Verdrahtungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Erfindung darauf nicht beschränkt ist.
-
Wie in 17 gezeigt ist, sind mit dem ersten Bus 1716 zusammen mit einer Bus-Bridge 1718, die den ersten Bus 1716 mit einem zweiten Bus 1720 koppelt, verschiedene E/A-Vorrichtungen 1716 gekoppelt. In einer Ausführungsform enthält der zweite Bus 1720 einen Bus mit niedriger Anschlussstiftanzahl (LPC-Bus). In einer Ausführungsform sind mit dem zweiten Bus 1720 verschiedene Vorrichtungen, einschließlich z. B. einer Tastatur und/oder einer Maus 1722, Kommunikationsvorrichtungen 1727 und eine Ablageeinheit 1728 wie etwa ein Plattenlaufwerk oder eine andere Massenablagevorrichtung, die häufig Befehle/Code und Daten 1730 enthält, gekoppelt. Ferner ist mit dem zweiten Bus 1720 eine Audio-E/A 1724 gekoppelt gezeigt. Es wird angemerkt, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Verdrahtungsarchitekturen variieren. Zum Beispiel kann ein System anstelle der Punkt-zu-Punkt-Architektur aus 17 einen Mehrpunktbus oder eine andere solche Architektur implementieren.
-
Nachfolgend übergehend zu 18 ist eine Ausführungsform eines Einchipentwurfs (SOC-Entwurfs) in Übereinstimmung mit den Erfindungen gezeigt. Als ein spezifisches veranschaulichendes Beispiel ist das SOC 1800 in einer Benutzereinrichtung (UE) enthalten. In einer Ausführungsform bezieht sich UE auf irgendeine Vorrichtung, die von einem Endbenutzer zum Kommunizieren zu verwenden ist, wie etwa ein Handtelephon, ein Smartphone, ein Tablet, ein ultradünnes Notebook, ein Notebook mit Breitbandadapter oder irgendeine andere ähnliche Kommunikationsvorrichtung. Häufig verbindet sich eine UE mit einer Basisstation oder mit einem Knoten, was potentiell dem Wesen einer Mobilstation (MS) in einem GSM-Netz entspricht.
-
Das SOC 1800 enthält hier 2 Kerne - 1806 und 1807. Ähnlich der obigen Diskussion können die Kerne 1806 und 1807 in Übereinstimmung mit einer Befehlssatzarchitektur wie etwa der eines Intel®-Architektur-Core™-basierten Prozessors, eines Prozessors der Advanced Microdevices, Inc., (AMD), eines MIPS-basierten Prozessors, eines ARM-basierten Prozessorentwurfs oder der eines Kunden davon sowie ihrer Lizenznehmer oder Anwender stehen. Die Kerne 1806 und 1807 sind mit einer Cache-Steuerung 1808 gekoppelt, der die Busschnittstelleneinheit 1809 und der L2-Cache 1811 zugeordnet sind, um mit anderen Teilen des Systems 1800 zu kommunizieren. Die Verdrahtung 1810 enthält eine chipintegrierte Verdrahtung wie etwa eine IOSF, eine AMBA oder eine andere oben diskutierte Verdrahtung, die potentiell einen oder mehrere hier beschriebene Aspekte implementiert.
-
Die Verdrahtung 1810 stellt Kommunikationskanäle zu den anderen Komponenten wie etwa zu einem Subscriber Identity Modul (SIM) 1830 als Schnittstelle mit einer SIM-Karte, zu einem Boot-ROM 1835 zum Halten von Bootcode zur Ausführung durch die Kerne 1806 und 1807 zum Initialisieren und Booten des SOC 1800, zu einem SDRAM-Controller 1840 als Schnittstelle mit einem externen Speicher (z. B. mit dem DRAM 1860), zu einem Flash-Controller 1845 als Schnittstelle mit einem nichtflüchtigen Speicher (z. B. mit dem Flash 1865), zu einer Peripheriesteuerung 1850 (z. B. zu einer Serial Peripheral Interface) als Schnittstelle mit Peripheriegeräten, zu Videocodecs 1820 und zu einer Videoschnittstelle 1825 zum Anzeigen und Empfangen einer Eingabe (z. B. einer berührungsfähigen Eingabe), zu einer GPU 1815 zum Ausführen graphikbezogener Berechnungen usw. bereit. Irgendwelche dieser Schnittstellen können Aspekte der hier beschriebenen Erfindung enthalten.
-
Außerdem veranschaulicht das System Peripheriegeräte für die Kommunikation wie etwa ein Bluetooth-Modul 1870, ein 3G-Modem 1875, GPS 1885 und WLAN 1885. Es wird angemerkt, dass eine UE wie oben gesagt eine Funkeinrichtung für die Kommunikation enthält. Im Ergebnis sind diese Peripheriekommunikationsmodule nicht alle erforderlich. Allerdings muss in einer UE eine gewisse Form von Funk für die externe Kommunikation enthalten sein.
-
Obwohl die vorliegende Erfindung in Bezug auf eine beschränkte Anzahl von Ausführungsformen beschrieben worden ist, wird der Fachmann auf dem Gebiet zahlreiche Änderungen und Abweichungen davon würdigen. Die beigefügten Ansprüche sollen alle solche Änderungen und Abweichungen, wie sie im wahren Erfindungsgedanken und Schutzumfang dieser vorliegenden Erfindung liegen, enthalten.
-
Ein Entwurf kann von der Erstellung zur Simulation zur Fertigung verschiedene Phasen durchlaufen. Daten, die einen Entwurf repräsentieren, können den Entwurf auf eine Anzahl von Arten repräsentieren. Zunächst kann die Hardware, wie es in Simulationen nützlich ist, unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen Funktionsbeschreibungssprache dargestellt werden. Außerdem kann in einigen Phasen des Entwurfsprozesses ein Modell der Schaltungsebene mit Logik- und/oder Transistorgattern erstellt werden. Darüber hinaus erreichen die meisten Entwürfe auf einer bestimmten Stufe eine Ebene von Daten, die die physikalische Anordnung verschiedener Vorrichtungen in dem Hardwaremodell repräsentieren. Falls herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardwaremodell repräsentieren, die Daten sein, die der Anwesenheit oder Abwesenheit verschiedener Merkmale in verschiedenen Maskenschichten für zur Herstellung der integrierten Schaltung verwendeter Masken spezifizieren. In irgendeiner Darstellung des Entwurfs können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder eine magnetische oder optische Ablage wie etwa eine Platte kann ein maschinenlesbares Medium zum Speichern von Informationen sein, die über eine optische oder elektrische Welle übertragen werden, die moduliert oder auf andere Weise erzeugt wird, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle übertragen wird, die den Code oder den Entwurf angibt oder übermittelt, wird in dem Umfang, in dem das Kopieren, Puffern oder erneute Übertragen des elektrischen Signals ausgeführt wird, eine neue Kopie erstellt. Somit kann ein Kommunikationsanbieter oder ein Netzanbieter einen Artikel wie etwa in einer Trägerwelle codierte Informationen, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpern, wenigstens vorübergehend in einem konkreten maschinenlesbaren Medium speichern.
-
Wie es hier verwendet ist, bezieht sich ein Modul auf irgendeine Kombination von Hardware, Software und/oder Firmware. Als ein Beispiel enthält ein Modul Hardware wie etwa einen Mikrocontroller, der einem nicht vorübergehenden Medium zum Speichern von Code zugeordnet ist, der dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden. Somit bezieht sich die Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch dafür konfiguriert ist, den Code, der in einem nicht vorübergehenden Medium gehalten werden soll, zu erkennen und/oder auszuführen. Darüber hinaus bezieht sich die Verwendung eines Moduls in einer anderen Ausführungsform auf ein nicht vorübergehendes Medium, das den Code enthält, der spezifisch dafür ausgelegt ist, durch den Mikroprozessor ausgeführt zu werden, um vorgegebene Operationen auszuführen. Wie gefolgert werden kann, kann sich der Begriff Modul (in diesem Beispiel) in einer nochmals anderen Ausführungsform auf die Kombination des Mikrocontrollers und des nicht vorübergehenden Mediums beziehen. Modulgrenzen, die als getrennt dargestellt sind, variieren üblicherweise häufig und überlappen sich potentiell. Zum Beispiel können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon gemeinsam nutzen, während sie potentiell etwas unabhängige Hardware, Software oder Firmware behalten. In einer Ausführungsform enthält die Verwendung des Begriffs Logik Hardware wie etwa Transistoren, Register oder andere Hardware wie etwa programmierbare Logikvorrichtungen.
-
In einer Ausführungsform bezieht sich die Verwendung des Ausdrucks ‚konfiguriert zum‘ auf das Anordnen, Zusammensetzen, Fertigen, Anbieten zum Verkauf, Importieren und/oder Entwerfen einer Vorrichtung, einer Hardware, einer Logik oder eines Elements zum Ausführen einer gewünschten oder bestimmten Aufgabe. In diesem Beispiel ist eine Vorrichtung oder ein Element davon, die bzw. das nicht arbeitet, weiterhin ‚dafür konfiguriert‘, eine bestimmte Aufgabe auszuführen, falls sie bzw. es zum Ausführen der bestimmten Aufgabe entworfen, gekoppelt und/oder verbunden ist. Als ein rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Allerdings enthält ein Logikgatter, das zum Bereitstellen eines Freigabesignals für einen Takt ‚konfiguriert ist‘, nicht jedes potentielle Logikgatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das in einer Weise gekoppelt ist, dass während des Betriebs die 1 oder 0 ausgegeben wird, um den Takt freizugeben. Es wird noch einmal angemerkt, dass die Verwendung des Begriffs ‚konfiguriert zum‘ nicht den Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand einer Vorrichtung, einer Hardware und/oder eines Elements konzentriert, wobei die Vorrichtung, die Hardware und/oder das Element in dem latenten Status dafür entworfen ist, eine bestimmte Aufgabe auszuführen, wenn die Vorrichtung, die Hardware und/oder das Element arbeitet.
-
Darüber hinaus bezieht sich die Verwendung der Ausdrücke ‚zu‘, ‚fähig zu‘ und/oder ‚betreibbar zu‘ in einer Ausführungsform auf eine Vorrichtung, auf eine Logik, auf eine Hardware und/oder auf ein Element, die bzw. das dafür ausgelegt ist, die Verwendung der Vorrichtung, der Logik, der Hardware und/oder des Elements auf eine spezifizierte Weise zu ermöglichen. Es wird angemerkt, dass sich die Verwendung von zu, fähig zu, betreibbar zu in einer Ausführungsform wie oben auf den latenten Zustand einer Vorrichtung, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, die Logik, die Hardware und/oder das Element nicht arbeitet, aber in der Weise ausgelegt ist, dass sie bzw. es die Verwendung einer Vorrichtung auf eine spezifizierte Weise ermöglicht.
-
Ein Wert, wie er hier verwendet ist, enthält irgendeine bekannte Darstellung einer Zahl, eines Zustands, eines Logikzustands oder eines binären Logikzustands. Häufig wird auf die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1-en und 0-en Bezug genommen, wodurch binäre Logikzustände einfach dargestellt werden. Zum Beispiel bezieht sich eine 1 auf einen hohen Logikpegel und bezieht sich eine 0 auf einen tiefen Logikpegel. In einer Ausführungsform kann eine Ablagezelle wie etwa ein Transistor oder eine Flash-Zelle in der Lage sein, einen einzelnen Logikwert oder mehrere Logikwerte zu erhalten. Allerdings werden andere Darstellungen von Werten in Computersystemen verwendet. Zum Beispiel kann die Dezimalzahl zehn ebenfalls als ein Binärwert 1010 und als ein Hexadezimalbuchstabe A dargestellt werden. Somit enthält ein Wert irgendeine Darstellung von Informationen, die in einem Computersystem gehalten werden können.
-
Darüber hinaus können Zustände als Werte oder Abschnitte von Werten dargestellt werden. Als ein Beispiel kann ein erster Wert wie etwa eine logische Eins einen Standard- oder Anfangszustand repräsentieren, während ein zweiter Wert wie etwa eine logische Null einen Nicht-Standard-Zustand repräsentieren kann. Außerdem beziehen sich die Begriffe Zurücksetzen und Setzen in einer Ausführungsform auf einen Standardwert und auf einen aktualisierten Wert bzw. auf einen Standardzustand und auf einen aktualisierten Zustand. Zum Beispiel enthält ein Standardwert potentiell einen hohen Logikwert, d. h. Zurücksetzen, während ein aktualisierter Wert potentiell einen tiefen Logikwert, d. h. Setzen, enthält. Es wird angemerkt, dass irgendeine Kombination von Werten genutzt werden kann, um irgendeine Anzahl von Zuständen zu repräsentieren.
-
Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die oben dargelegt sind, können über Befehle oder Code implementiert werden, die in einem durch eine Maschine zugreifbaren, maschinenlesbaren, durch einen Computer zugreifbaren oder computerlesbaren Medium, die durch ein Verarbeitungselement ausführbar sind, implementiert werden können. Ein nicht vorübergehendes durch eine Maschine zugreifbares/maschinenlesbares Medium enthält irgendeinen Mechanismus, der Informationen in einer durch eine Maschine wie etwa durch einen Computer oder durch ein elektronisches System lesbaren Form bereitstellt (d. h. speichert und/oder sendet). Zum Beispiel enthält ein nicht vorübergehendes durch eine Maschine zugreifbares Medium einen Schreib-Lese-Speicher (RAM) wie etwa einen statischen RAM (SRAM) oder einen dynamischen RAM (DRAM); einen ROM; ein magnetisches oder optisches Ablagemedium; Flash-Speichervorrichtungen; elektrische Ablagevorrichtungen; optische Ablagevorrichtungen; akustische Ablagevorrichtungen; eine andere Form von Ablagevorrichtungen zum Halten von Informationen, die von vorübergehenden (ausgebreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, Digitalsignalen) empfangen werden; usw., die von den nicht vorübergehenden Medien, die davon Informationen empfangen können, zu unterscheiden sind.
-
Befehle, die zum Programmieren von Logik zum Ausführen von Ausführungsformen der Erfindung verwendet werden können, können innerhalb eines Speichers in dem System wie etwa in einem DRAM, einem Cache, einem Flash-Speicher oder einer anderen Ablage gespeichert sein. Darüber hinaus können die Befehle über ein Netz oder durch andere computerlesbare Medien verteilt werden. Somit kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. durch einen Computer) lesbaren Form, Disketten, optische Platten, Compact-Disc-Nur-Lese-Speicher (CD-ROMs) und magnetooptische Platten, Nur-Lese-Speicher (ROMs), Schreib-Lese-Speicher (RAM), löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), magnetische oder optische Platten, Flash-Speicher oder eine konkrete, maschinenlesbare Ablage, die bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen ausgebreiteter Signale (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) verwendet wird, darauf aber nicht beschränkt ist, enthalten. Dementsprechend enthält das computerlesbare Medium irgendeinen Typ eines konkreten maschinenlesbaren Mediums, das zum Speichern oder Übertragen elektronischer Befehle oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form geeignet ist.
-
Die folgenden Beispiele betreffen Ausführungsformen in Übereinstimmung mit dieser Beschreibung. Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Einbetten eines periodischen Steuerfensters in einen Sicherungsschicht-Datenstrom, der über eine serielle Datenverbindung gesendet werden soll, bereitstellen, wobei das Steuerfenster dafür konfiguriert ist, Bitübertragungsschichtinformationen einschließlich Informationen zur Verwendung beim Initiieren von Zustandsübergängen auf der Datenverbindung bereitzustellen.
-
In wenigstens einem Beispiel umfasst der Datenstrom eine Reihe von Flits.
-
In wenigstens einem Beispiel wird der Sicherungsschicht-Datenstrom während eines Verbindungsübertragungszustands der Datenverbindung gesendet.
-
Eines oder mehrere Beispiele können ferner das Identifizieren eines bestimmten Steuerfensters in dem Datenstrom und das Senden von Rücksetzdaten an eine mit der Datenverbindung verbundene Vorrichtung während des bestimmten Steuerfensters bereitstellen, wobei die Rücksetzdaten einen Versuch, von dem Verbindungsübertragungszustand in einen Rücksetzzustand einzutreten, übermitteln sollen.
-
Eines oder mehrere Beispiele können ferner das Erzeugen einer dem Rücksetzzustand zugeordneten Supersequenz und das Senden der Supersequenz an die Vorrichtung bereitstellen.
-
Eines oder mehrere Beispiele können ferner das Identifizieren eines bestimmten Steuerfensters in dem Datenstrom und das Senden von Verbindungsbreiten-Übergangsdaten an eine mit der Datenverbindung verbundene Vorrichtung während des bestimmten Steuerfensters bereitstellen, wobei die Verbindungsbreiten-Übergangsdaten einen Versuch, die Anzahl aktiver Spuren auf der Verbindung zu ändern, übermitteln sollen.
-
In wenigstens einem Beispiel soll die Anzahl der Spuren von einer ursprünglichen Anzahl auf eine neue Anzahl verringert werden, wobei das Verringern der Anzahl aktiver Spuren einem Eintritt in einen Teilbreiten-Verbindungsübertragungszustand zugeordnet ist.
-
Eines oder mehrere Beispiele können ferner das Identifizieren eines nachfolgenden Steuerfensters in dem Datenstrom und das Senden von Teilbreitenzustands-Austrittsdaten an die Vorrichtung während des nachfolgenden Steuerfensters bereitstellen, wobei die Teilbreitenzustands-Austrittsdaten einen Versuch, die Anzahl aktiver Spuren auf die ursprüngliche Anzahl zurückzustellen, übermitteln sollen.
-
Eines oder mehrere Beispiele können ferner das Identifizieren eines bestimmten Steuerfensters in dem Datenstrom und das Senden von Leistungsarm-Daten an eine mit der Datenverbindung verbundene Vorrichtung während des bestimmten Steuerfensters umfassen, wobei die Leistungsarm-Daten einen Versuch, von dem Verbindungsübertragungszustand in einen leistungsarmen Zustand einzutreten, übermitteln sollen.
-
In wenigstens einem Beispiel sind Steuerfenster in Übereinstimmung mit einem definierten Steuerintervall eingebettet und sollen mit der Datenverbindung verbundene Vorrichtungen den Zustandsübergang mit einem Ende eines entsprechenden Steuerintervalls synchronisieren.
-
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Empfangen eines Datenstroms bereitstellen, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden sollen und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen, wobei Steuerdaten, die in ein bestimmtes der Steuerintervalle aufgenommen werden sollen, identifiziert werden sollen, wobei die Steuerdaten einen versuchten Eintritt aus einem ersten Zustand in einen bestimmten Zustand angeben sollen, wobei der Datenstrom in dem ersten Zustand empfangen werden soll und wobei der Übergang in den bestimmten Zustand ermöglicht werden soll.
-
In wenigstens einem Beispiel umfasst der bestimmte Zustand einen Rücksetzzustand.
-
In wenigstens einem Beispiel enthält das Ermöglichen des Übergangs in den bestimmten Zustand das Senden einer Quittierung des versuchten Eintritts in den bestimmten Zustand.
-
In wenigstens einem Beispiel wird die Quittierung innerhalb des Steuerintervalls gesendet.
-
In wenigstens einem Beispiel wird der Datenstrom über eine serielle Datenverbindung, die mehrere aktive Spuren enthält, gesendet und umfasst der bestimmte Zustand einen Teilbreitenzustand, wobei wenigstens eine Teilmenge von in den mehreren aktiven Spuren enthaltenen Spuren in dem Teilbreitenzustand ungenutzt werden sollen.
-
Eines oder mehrere Beispiele können ferner das Identifizieren nachfolgender Daten, die in einem nachfolgenden der Steuerintervalle enthalten sind, bereitstellen, wobei die nachfolgenden Daten einen Versuch, aus dem Teilbreitenzustand auszutreten und die ungenutzten Spuren zu reaktivieren, angeben.
-
In wenigstens einem Beispiel umfasst der bestimmte Zustand einen leistungsarmen Übertragungszustand.
-
In wenigstens einem Beispiel wird der Datenstrom über eine serielle Datenverbindung empfangen, die mehrere aktive Spuren enthält, und umfasst der bestimmte Zustand einen Teilbreitenzustand, wobei wenigstens eine Teilmenge von in den mehreren aktiven Spuren enthaltenen Spuren in dem Teilbreitenzustand ungenutzt werden sollen.
-
In wenigstens einem Beispiel umfasst der bestimmte Zustand einen Rücksetzzustand.
-
In wenigstens einem Beispiel beschreiben die Bitübertragungsschicht-Steuerinformationen einen Fehler der Datenverbindung.
-
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Einbetten eines Taktsignals in Daten, die von einer ersten Vorrichtung über eine serielle Datenverbindung, die mehrere Spuren enthält, übermittelt werden sollen, und zum Übergehen von einem ersten Verbindungsübertragungszustand, der eine erste Anzahl der mehreren Spuren verwenden soll, in einen zweiten Verbindungsübertragungszustand, der eine zweite Anzahl der mehreren Spuren verwenden soll, bereitstellen.
-
In wenigstens einem Beispiel ist die zweite Anzahl von Spuren größer als die erste Anzahl von Spuren.
-
In wenigstens einem Beispiel enthält das Übergehen von einem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand das Senden einer Teilbreitenzustands-Austrittssupersequenz, die eine oder mehrere Instanzen einer Sequenz umfasst, die eine Electrical Ordered Set (EOS) und mehrere Instanzen einer Trainingssequenz enthält.
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden einer Anfangs-EOS, die der Teilbreitenzustands-Austrittssupersequenz vorausgeht.
-
In wenigstens einem Beispiel sollen während des Sendens der Anfangs-EOS auf den aktiven Spuren Null-Flits gesendet werden.
-
In wenigstens einem Beispiel umfasst die Trainingssequenz eine unverwürfelte Schnelltrainingssequenz (FTS).
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Verwenden der Teilbreitenzustands-Austrittssupersequenz zum Initialisieren wenigstens eines Teils der in den mehreren Spuren enthaltenen ungenutzten Spuren.
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden eines Datensequenzanfangs (SDS) nach der Initialisierung des Teils der ungenutzten Spuren.
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden einer Teil-FTS (FTSp) nach dem Senden der SDS.
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Empfangen einer Quittierung des Übergangs, wobei die Quittierung die Teilbreitenzustands-Austrittssupersequenz enthält.
-
In wenigstens einem Beispiel enthält das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand das Senden eines Inbandsignals über die Datenverbindung an die zweite Vorrichtung.
-
In wenigstens einem Beispiel ist die erste Anzahl von Spuren größer als die zweite Anzahl von Spuren.
-
In wenigstens einem Beispiel umfassen die Daten einen Datenstrom, der abwechselnde Übertragungsintervalle und Steuerintervalle enthält, und wird das Signal innerhalb eines bestimmten Steuerintervalls gesendet und gibt es den Übergang von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand an.
-
In wenigstens einem Beispiel soll der Übergang von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand mit dem Ende eines bestimmten Übertragungsintervalls unmittelbar nach dem bestimmten Steuerintervall synchronisiert werden.
-
In wenigstens einem Beispiel beruht der Übergang auf einer Anforderung einer Leistungssteuereinheit.
-
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen und wobei der Datenstrom über eine serielle Datenverbindung, die aktive Spuren und inaktive Spuren enthalten soll, gesendet werden soll, zum Identifizieren von Steuerdaten, die in einem bestimmten der Steuerintervalle enthalten sind, wobei die Daten einen Versuch, wenigstens einen Teil der inaktiven Spuren der Verbindung zu aktivieren, angeben sollen, und zum Ermöglichen der Aktivierung des Teils der inaktiven Spuren bereitstellen.
-
In wenigstens einem Beispiel wird der Datenstrom empfangen, während die Datenverbindung in einem Teilbreitenzustand ist, und sollen die Steuerdaten einen Versuch, aus dem Teilbreitenzustand auszutreten, angeben sollen.
-
In wenigstens einem Beispiel soll das Ermöglichen der Aktivierung des Teils der inaktiven Spuren das Empfangen einer Supersequenz, die einen Versuch, den Teil der inaktiven Spuren zu aktivieren, angeben soll, enthalten.
-
In wenigstens einem Beispiel soll die Supersequenz eine oder mehrere Instanzen einer Sequenz umfassen, die eine Electric Idle Exit Ordered Set (EIEOS) und mehrere Instanzen einer Trainingssequenz enthält.
-
In wenigstens einem Beispiel enthält das Ermöglichen der Aktivierung des Teils der inaktiven Spuren das Senden wenigstens einer Anfangs-EIEOS, die der Supersequenz unmittelbar vorausgeht.
-
In wenigstens einem Beispiel sollen während des Sendens der Anfangs-EIEOS Null-Flits auf den aktiven Spuren gesendet werden.
-
In wenigstens einem Beispiel umfasst die Trainingssequenz eine unverwürfelte Schnelltrainingssequenz (FTS).
-
In wenigstens einem Beispiel enthält das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Verwenden der Supersequenz zum Initialisieren des Teils der inaktiven Spuren.
-
In wenigstens einem Beispiel enthält das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Empfangen eines Datensequenzanfangs (SDS) nach der Initialisierung des Teils der inaktiven Spuren.
-
In wenigstens einem Beispiel enthält das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Empfangen einer Teil-FTS (FTSp) nach der SDS.
-
In wenigstens einem Beispiel enthält das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Quittieren des Versuchs durch identisches Wiedergeben der Supersequenz.
-
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden sollen und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen, zum Identifizieren von Steuerdaten, die einen versuchten Eintritt aus einem Verbindungsübertragungszustand in einen leistungsarmen Zustand angeben, wobei der Datenstrom in dem Verbindungsübertragungszustand empfangen werden soll, und zum Übergehen in den leistungsarmen Zustand bereitstellen.
-
In wenigstens einem Beispiel umfassen die Steuerdaten einen im Voraus definierten Code.
-
In wenigstens einem Beispiel enthält das Übergehen in den leistungsarmen Zustand das identische Wiedergeben des im Voraus definierten Codes in einem nachfolgenden Steuerintervall.
-
In wenigstens einem Beispiel enthält das Übergehen in den leistungsarmen Zustand das Empfangen einer Supersequenz, die den Übergang in den leistungsarmen Zustand angibt.
-
In wenigstens einem Beispiel enthält das Übergehen in den leistungsarmen Zustand ferner das identische Wiedergeben der Supersequenz.
-
In wenigstens einem Beispiel umfasst die Supersequenz eine oder mehrere Instanzen einer Sequenz, die eine Electrical Ordered Set (EOS), gefolgt von einer vorgegebenen Anzahl von Instanzen einer Trainingssequenz, enthält.
-
In wenigstens einem Beispiel umfasst die EOS eine Electrical Idle Electrical Ordered Set (EIEOS).
-
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, eine maschinenlesbare Ablage und ein Verfahren zum Identifizieren einer bestimmten Instanz eines periodischen Steuerintervalls, das in einen Datenstrom auf einer seriellen Datenverbindung während eines Verbindungsübertragungszustands eingebettet werden soll, zum Senden von Zustandsübergangsdaten während der bestimmten Instanz des Steuerintervalls an eine Vorrichtung, wobei die Zustandsübergangsdaten einen Versuch, in einen leistungsarmen Zustand einzutreten, angeben sollen und zum Übergehen in den leistungsarmen Zustand bereitstellen.
-
Eines oder mehrere Beispiele können ferner das Empfangen einer Quittierung von der Vorrichtung bereitstellen, wobei die Quittierung die Zustandsübergangsdaten umfasst.
-
In wenigstens einem Beispiel soll die Quittierung mit einem nächsten periodischen Steuerintervall zusammenfallen.
-
In wenigstens einem Beispiel enthält das Übergehen in den leistungsarmen Zustand das Senden einer Supersequenz, die den Übergang in den leistungsarmen Zustand angibt, an die Vorrichtung.
-
In wenigstens einem Beispiel enthält das Übergehen in den leistungsarmen Zustand ferner das Empfangen einer wiederholten Instanz der Supersequenz von der Vorrichtung.
-
In wenigstens einem Beispiel umfasst die Supersequenz eine oder mehrere Instanzen einer Sequenz, die eine Electrical Ordered Set (EOS), gefolgt von einer vorgegebenen Anzahl von Instanzen einer Trainingssequenz, enthält.
-
In wenigstens einem Beispiel umfasst die EOS eine Electric Idle Exit Ordered Set (EIEOS).
-
In wenigstens einem Beispiel beruht der Übergang in den leistungsarmen Zustand auf einer Anforderung einer Leistungssteuereinheit.
-
Eines oder mehrere Beispiele können ferner das Initiieren eines Übergangs von dem leistungsarmen Zustand in den Verbindungsübertragungszustand bereitstellen.
-
Eines oder mehrere Beispiele können ferner eine Bitübertragungsschicht (PHY) bereitstellen, die dafür konfiguriert ist, mit einer seriellen differentiellen Verbindung gekoppelt zu werden, wobei die PHY periodisch einen Verbindungssperrzustand (BLS) ausgeben soll, wobei die BLS-Anforderung veranlassen soll, dass ein Agent in einen BLS eintritt, um die Verbindungsschicht-Flit-Sendung für eine Dauer zurückzuhalten, wobei die PHY die serielle differentielle Verbindung während der Dauer für der PHY zugeordnete Aufgaben nutzen soll.
-
In wenigstens einem Beispiel soll die PHY die serielle differentielle Verbindung während der Dauer für der PHY zugeordnete Aufgaben, umfasst das Senden einer oder mehrerer Nachrichten einer Prioritätsnachrichtenliste, die NOP, Zurücksetzen, Inbandzurücksetzen, Eintritt in einen leistungsarmen Zustand, Eintritt in einen Teilbreitenzustand, Eintritt in einen anderen PHY-Zustand usw. enthält, nutzen.
-
Eines oder mehrere Beispiele können ferner eine Bitübertragungsschicht (PHY) bereitstellen, die dafür konfiguriert ist, mit einer Verbindung gekoppelt zu werden, wobei die Verbindung eine erste Anzahl von Spuren enthält, wobei die PHY in einem Vollbreiten-Übertragungsverbindungszustand Flits über die erste Anzahl von Spuren senden soll und wobei die PHY in einem Teilbreiten-Verbindungsübertragungszustand Flits über eine zweite Anzahl von Spuren, die kleiner als die erste Anzahl von Spuren ist, senden soll.
-
In wenigstens einem Beispiel soll die PHY einen Verbindungssperrzustand nutzen, um von dem Verbindungssperrzustand in den Teilbreiten-Verbindungsübertragungszustand einzutreten.
-
In wenigstens einem Beispiel haben die Flits, wenn sie über die erste Anzahl von Spuren und über die zweite Anzahl von Spuren übertragen werden, dieselbe Größe.
-
In wenigstens einem Beispiel nutzt die PHY zum Übertragen über die erste Anzahl von Spuren und über die zweite Anzahl von Spuren einen eingebetteten Takt.
-
In wenigstens einem Beispiel nutzt die PHY zum Übertragen über die erste Anzahl von Spuren einen eingebetteten Takt und zum Übertragen über die zweite Anzahl von Spuren einen weitergeleiteten Takt.
-
Die Bezugnahme auf „die eine Ausführungsform“ oder „eine Ausführungsform“ bedeutet überall in dieser Beschreibung, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Vorkommen der Ausdrücke, „in der einen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen überall in der Beschreibung nicht notwendig alle auf auf dieselbe Ausführungsform. Darüber hinaus können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder in mehreren Ausführungsformen auf irgendeine Weise kombiniert werden.
-
In der vorstehenden Beschreibung ist eine ausführliche Beschreibung mit Bezug auf spezifische beispielhafte Ausführungsformen gegeben worden. Allerdings können daran offensichtlich verschiedene Abwandlungen und Änderungen vorgenommen werden, ohne von dem umfassenderen Erfindungsgedanken und Schutzumfang der Erfindung, wie sie in den beigefügten Ansprüchen dargelegt sind, abzuweichen. Dementsprechend sind die Beschreibung und die Zeichnungen in einem veranschaulichenden anstatt in einem einschränkenden Sinn anzusehen. Darüber hinaus bezieht sich die vorstehende Verwendung einer Ausführungsform und anderer beispielhaften Sprache nicht notwendig auf dieselbe Ausführungsform oder auf dasselbe Beispiel, sondern können sie sich auf unterschiedliche und verschiedene Ausführungsformen sowie potentiell auf dieselbe Ausführungsform beziehen.
-
Weitere Ausführungsformen fallen unter den Rahmen der folgenden Definitionen:
- 1. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Sicherungsschichtlogik und eine Bitübertragungsschichtlogik umfasst, wobei die Bitübertragungsschichtlogik in einen Sicherungsschicht-Datenstrom, der über eine serielle Datenverbindung gesendet werden soll, ein periodisches Steuerfenster einbetten soll, wobei das Steuerfenster dafür konfiguriert ist, Bitübertragungsschichtinformationen einschließlich Informationen zur Verwendung beim Initiieren von Zustandsübergängen auf der Datenverbindung bereitzustellen.
- 2. Vorrichtung nach Anspruch 1, wobei der Datenstrom eine Reihe von Flits umfasst.
- 3. Vorrichtung nach Anspruch 1, wobei der Sicherungsschicht-Datenstrom während eines Verbindungsübertragungszustands der Datenverbindung gesendet wird.
- 4. Vorrichtung nach Anspruch 3, wobei die Bitübertragungsschichtlogik ferner ein bestimmtes Steuerfenster in dem Datenstrom identifizieren soll und während des bestimmten Steuerfensters Rücksetzdaten an eine mit der Datenverbindung verbundene Vorrichtung senden soll, wobei die Rücksetzdaten einen Versuch, von dem Verbindungsübertragungszustand in einen Rücksetzzustand einzutreten, übermitteln sollen.
- 5. Vorrichtung nach Anspruch 4, wobei die Bitübertragungsschichtlogik ferner eine dem Rücksetzzustand zugeordnete Supersequenz erzeugen soll und die Supersequenz an die Vorrichtung senden soll.
- 6. Vorrichtung nach Anspruch 3, wobei die Bitübertragungsschichtlogik ferner in dem Datenstrom ein bestimmtes Steuerfenster identifizieren soll und während des bestimmten Steuerfensters Verbindungsbreiten-Übergangsdaten an eine mit der Datenverbindung verbundene Vorrichtung senden soll, wobei die Verbindungsbreiten-Übergangsdaten einen Versuch, die Anzahl aktiver Spuren auf der Verbindung zu ändern, übermitteln sollen.
- 7. Vorrichtung nach Anspruch 6, wobei die Anzahl der Spuren von einer ursprünglichen Anzahl auf eine neue Anzahl verringert werden soll, wobei das Verringern der Anzahl aktiver Spuren einem Eintritt in einen Teilbreiten-Verbindungsübertragungszustand zugeordnet ist.
- 8. Vorrichtung nach Anspruch 7, wobei die Bitübertragungsschichtlogik ferner ein nachfolgendes Steuerfenster in dem Datenstrom identifizieren soll und während des nachfolgenden Steuerfensters Teilbreitenzustands-Austrittsdaten an die Vorrichtung senden soll, wobei die Teilbreitenzustands-Austrittsdaten einen Versuch, die Anzahl aktiver Spuren auf die ursprüngliche Anzahl zurückzustellen, übermitteln sollen.
- 9. Vorrichtung nach Anspruch 3, wobei die Bitübertragungsschichtlogik ferner ein bestimmtes Steuerfenster in dem Datenstrom identifizieren soll und während des bestimmten Steuerfensters Leistungsarm-Daten an eine mit der Datenverbindung verbundene Vorrichtung senden soll, wobei die Leistungsarm-Daten einen Versuch, von dem Verbindungsübertragungszustand in einen leistungsarmen Zustand einzutreten, übermitteln sollen.
- 10. Vorrichtung nach Anspruch 1, wobei die Steuerfenster in Übereinstimmung mit einem definierten Steuerintervall eingebettet werden und mit der Datenverbindung verbundene Vorrichtungen den Zustandsübergang mit einem Ende eines entsprechenden Steuerintervalls synchronisieren sollen.
- 11. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Bitübertragungsschichtlogik, eine Sicherungsschichtlogik und eine Protokollschichtlogik umfasst, wobei die Bitübertragungsschichtlogik Folgendes ausführen soll:
- Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden sollen und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen;
- Identifizieren von Steuerdaten, die in ein bestimmtes der Steuerintervalle aufgenommen werden sollen, wobei die Steuerdaten einen versuchten Eintritt aus einem ersten Zustand in einen bestimmten Zustand angeben sollen, wobei der Datenstrom in dem ersten Zustand empfangen werden soll; und
- Ermöglichen des Übergangs in den bestimmten Zustand.
- 12. Vorrichtung nach Anspruch 11, wobei der bestimmte Zustand einen Rücksetzzustand umfasst.
- 13. Vorrichtung nach Anspruch 12, wobei das Ermöglichen des Übergangs in den bestimmten Zustand das Senden einer Quittierung des versuchten Eintritts in den bestimmten Zustand enthält.
- 14. Vorrichtung nach Anspruch 13, wobei die Quittierung innerhalb des Steuerintervalls gesendet wird.
- 15. Vorrichtung nach Anspruch 11, wobei der Datenstrom über eine serielle Datenverbindung, die mehrere aktive Spuren enthält, gesendet wird und wobei der bestimmte Zustand einen Teilbreitenzustand umfasst, wobei wenigstens eine Teilmenge von in den mehreren aktiven Spuren enthaltenen Spuren in dem Teilbreitenzustand ungenutzt werden sollen.
- 16. Vorrichtung nach Anspruch 15, wobei die Bitübertragungsschichtlogik ferner nachfolgende Daten, die in einem nachfolgenden der Steuerintervalle enthalten sind, identifizieren soll, wobei die nachfolgenden Daten einen Versuch, aus dem Teilbreitenzustand auszutreten und die ungenutzten Spuren zu reaktivieren, angeben.
- 17. Vorrichtung nach Anspruch 11, wobei der bestimmte Zustand einen leistungsarmen Übertragungszustand umfasst.
- 18. Verfahren, das Folgendes umfasst:
- Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthält, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten;
- Identifizieren von Steuerdaten, die in einem bestimmten der Steuerintervalle enthalten sind, wobei die Steuerdaten einen versuchten Eintritt aus einem ersten Zustand in einen bestimmten Zustand angeben, wobei der Datenstrom in dem ersten Zustand empfangen wird; und
- Ermöglichen des Übergangs in den bestimmten Zustand.
- 19. Verfahren nach Anspruch 18, wobei der Datenstrom über eine serielle Datenverbindung empfangen wird, die mehrere aktive Spuren enthält, und wobei der bestimmte Zustand einen Teilbreitenzustand umfasst, wobei wenigstens eine Teilmenge von in den mehreren aktiven Spuren enthaltenen Spuren in dem Teilbreitenzustand ungenutzt werden soll.
- 20. Verfahren nach Anspruch 18, wobei der bestimmte Zustand einen Rücksetzzustand umfasst.
- 21. Verfahren nach Anspruch 18, wobei die Bitübertragungsschicht-Steuerinformationen einen Fehler der Datenverbindung beschreiben.
- 22. System, das Folgendes umfasst:
- eine erste Vorrichtung; und
- eine zweite Vorrichtung, die unter Verwendung einer seriellen Datenverbindung mit der ersten Vorrichtung kommunikationstechnisch gekoppelt ist, wobei die zweite Vorrichtung ein Bitübertragungsschichtmodul enthält, das durch wenigstens einen Prozessor ausgeführt wird, der Folgendes ausführen soll:
- Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthält, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten;
- Identifizieren von Steuerdaten, die in einem bestimmten der Steuerintervalle enthalten sind, wobei die Steuerdaten einen versuchten Eintritt aus einem ersten Zustand in einen bestimmten Zustand angeben, wobei der Datenstrom in dem ersten Zustand empfangen wird; und
- Ermöglichen des Übergangs in den bestimmten Zustand.
- 23. System nach Anspruch 22, wobei die erste Vorrichtung einen Mikroprozessor umfasst.
- 24. System nach Anspruch 23, wobei die zweite Vorrichtung einen zweiten Mikroprozessor umfasst.
- 25. System nach Anspruch 23, wobei die zweite Vorrichtung einen Graphikbeschleuniger umfasst.
- 26. System nach Anspruch 22, wobei die erste Vorrichtung eine Bitübertragungsschichtlogik enthält, die Folgendes ausführen soll:
- Senden der Steuerdaten in dem bestimmten Steuerintervall; und
- Übergehen in den bestimmten Zustand.
- 27. System nach Anspruch 22, wobei der bestimmte Zustand in mehreren Zuständen einer Verbindungstrainings-Zustandsmaschine enthalten ist.
- 28. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Bitübertragungsschichtlogik, eine Sicherungsschichtlogik und eine Protokollschichtlogik umfasst, wobei die Bitübertragungsschichtlogik Folgendes ausführen soll:
- Einbetten eines Taktsignals in Daten, die von einer ersten Vorrichtung über eine serielle Datenverbindung, die mehrere Spuren enthält, übermittelt werden sollen; und
- Übergehen von einem ersten Verbindungsübertragungszustand, der eine erste Anzahl der mehreren Spuren verwenden soll, in einen zweiten Verbindungsübertragungszustand, der eine zweite Anzahl der mehreren Spuren verwenden soll.
- 29. Vorrichtung nach Anspruch 28, wobei die zweite Anzahl von Spuren größer als die erste Anzahl von Spuren ist.
- 30. Vorrichtung nach Anspruch 29, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand das Senden einer Teilbreitenzustands-Austrittssupersequenz enthält, die eine oder mehrere Instanzen einer Sequenz umfasst, die eine Electrical Ordered Set (EOS) und mehrere Instanzen einer Trainingssequenz enthält.
- 31. Vorrichtung nach Anspruch 30, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden einer Anfangs-EOS, die der Teilbreitenzustands-Austrittssupersequenz vorausgeht, enthält.
- 32. Vorrichtung nach Anspruch 31, wobei während des Sendens der Anfangs-EOS auf aktiven Spuren Null-Flits gesendet werden sollen.
- 33. Vorrichtung nach Anspruch 30, wobei die Trainingssequenz eine unverwürfelte Schnelltrainingssequenz (FTS) umfasst.
- 34. Vorrichtung nach Anspruch 30, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Verwenden der Teilbreitenzustands-Austrittssupersequenz zum Initialisieren wenigstens eines Teils der in den mehreren Spuren enthaltenen ungenutzten Spuren enthält.
- 35. Vorrichtung nach Anspruch 34, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden eines Datensequenzanfangs (SDS) nach der Initialisierung des Teils der ungenutzten Spuren enthält.
- 36. Vorrichtung nach Anspruch 35, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Senden einer Teil-FTS (FTSp) nach dem Senden der SDS enthält.
- 37. Vorrichtung nach Anspruch 30, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand ferner das Empfangen einer Quittierung des Übergangs enthält, wobei die Quittierung die Teilbreitenzustands-Austrittssupersequenz enthält.
- 38. Vorrichtung nach Anspruch 28, wobei das Übergehen von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand das Senden eines Inbandsignals über die Datenverbindung an die zweite Vorrichtung enthält.
- 39. Vorrichtung nach Anspruch 38, wobei die erste Anzahl von Spuren größer als die zweite Anzahl von Spuren ist.
- 40. Vorrichtung nach Anspruch 39, wobei die Daten einen Datenstrom umfassen, der abwechselnde Übertragungsintervalle und Steuerintervalle enthält, und wobei das Signal innerhalb eines bestimmten Steuerintervalls gesendet wird und den Übergang von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand angibt.
- 41. Vorrichtung nach Anspruch 40, wobei der Übergang von dem ersten Verbindungsübertragungszustand zu dem zweiten Verbindungsübertragungszustand mit dem Ende eines bestimmten Übertragungsintervalls unmittelbar nach dem bestimmten Steuerintervall synchronisiert werden soll.
- 42. Vorrichtung nach Anspruch 28, wobei der Übergang auf einer Anforderung einer Leistungssteuereinheit beruht.
- 43. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Bitübertragungsschichtlogik, eine Sicherungsschichtlogik und eine Protokollschichtlogik umfasst, wobei die Bitübertragungsschichtlogik Folgendes ausführen soll:
- Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen und wobei der Datenstrom über eine serielle Datenverbindung, die aktive Spuren und inaktive Spuren enthalten soll, gesendet werden soll;
- Identifizieren von Steuerdaten, die in einem bestimmten der Steuerintervalle enthalten sind, wobei die Daten einen Versuch, wenigstens einen Teil der inaktiven Spuren der Verbindung zu aktivieren, angeben sollen; und
- Ermöglichen der Aktivierung des Teils der inaktiven Spuren.
- 44. Vorrichtung nach Anspruch 43, wobei der Datenstrom empfangen wird, während die Datenverbindung in einem Teilbreitenzustand ist, und wobei die Steuerdaten einen Versuch, aus dem Teilbreitenzustand auszutreten, angeben sollen.
- 45. Vorrichtung nach Anspruch 43, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren das Empfangen einer Supersequenz, die den Versuch, den Teil der inaktiven Spuren zu aktivieren, angeben soll, enthalten soll.
- 46. Vorrichtung nach Anspruch 45, wobei die Supersequenz eine oder mehrere Instanzen einer Sequenz umfassen soll, die eine Electric Idle Exit Ordered Set (EIEOS) und mehrere Instanzen einer Trainingssequenz enthält.
- 47. Vorrichtung nach Anspruch 46, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren das Senden wenigstens einer Anfangs-EIEOS, die der Supersequenz unmittelbar vorausgehen soll, enthält.
- 48. Vorrichtung nach Anspruch 47, wobei während des Sendens der Anfangs-EIEOS Null-Flits auf den aktiven Spuren gesendet werden sollen.
- 49. Vorrichtung nach Anspruch 46, wobei die Trainingssequenz eine unverwürfelte Schnelltrainingssequenz (FTS) umfasst.
- 50. Vorrichtung nach Anspruch 45, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Verwenden der Supersequenz zum Initialisieren des Teils der inaktiven Spuren enthält.
- 51. Vorrichtung nach Anspruch 50, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Empfangen eines Datensequenzanfangs (SDS) nach der Initialisierung des Teils der inaktiven Spuren enthält.
- 52. Vorrichtung nach Anspruch 51, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Empfangen einer Teil-FTS (FTSp) nach der SDS enthält.
- 53. Vorrichtung nach Anspruch 45, wobei das Ermöglichen der Aktivierung des Teils der inaktiven Spuren ferner das Quittieren des Versuchs durch identisches Wiedergeben der Supersequenz enthält.
- 54. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Bitübertragungsschichtlogik, eine Sicherungsschichtlogik und eine Protokollschichtlogik umfasst, wobei die Bitübertragungsschichtlogik Folgendes ausführen soll:
- Empfangen eines Datenstroms, wobei der Datenstrom abwechselnde Übertragungsintervalle und Steuerintervalle enthalten soll, wobei während der Übertragungsintervalle Sicherungsschicht-Flits gesendet werden sollen und wobei die Steuerintervalle Gelegenheiten zum Senden von Bitübertragungsschicht-Steuerinformationen bieten sollen;
- Identifizieren von Steuerdaten, die einen versuchten Eintritt aus einem Verbindungsübertragungszustand in einen leistungsarmen Zustand angeben, wobei der Datenstrom in dem Verbindungsübertragungszustand empfangen werden soll; und
- Übergehen in den leistungsarmen Zustand.
- 55. Vorrichtung nach Anspruch 54, wobei die Steuerdaten einen im Voraus definierten Code umfassen.
- 56. Vorrichtung nach Anspruch 55, wobei das Übergehen in den leistungsarmen Zustand das identische Wiedergeben des im Voraus definierten Codes in einem nachfolgenden Steuerintervall enthält.
- 57. Vorrichtung nach Anspruch 54, wobei das Übergehen in den leistungsarmen Zustand das Empfangen einer Supersequenz, die den Übergang in den leistungsarmen Zustand angibt, enthält.
- 58. Vorrichtung nach Anspruch 57, wobei das Übergehen in den leistungsarmen Zustand ferner das identische Wiedergeben der Supersequenz enthält.
- 59. Vorrichtung nach Anspruch 57, wobei die Supersequenz eine oder mehrere Instanzen einer Sequenz, die eine Electrical Ordered Set (EOS), gefolgt von einer vorgegebenen Anzahl von Instanzen einer Trainingssequenz enthält, umfasst.
- 60. Vorrichtung nach Anspruch 59, wobei die EOS eine Electrical Idle Electrical Ordered Set (EIEOS) umfasst.
- 61. Vorrichtung, die Folgendes umfasst:
- einen Schichtstapel, der eine Bitübertragungsschichtlogik, eine Sicherungsschichtlogik und eine Protokollschichtlogik umfasst, wobei die Bitübertragungsschichtlogik Folgendes ausführen soll:
- Identifizieren einer bestimmten Instanz eines periodischen Steuerintervalls, das in einen Datenstrom auf einer seriellen Datenverbindung während eines Verbindungsübertragungszustands eingebettet werden soll;
- Senden von Zustandsübergangsdaten während der bestimmten Instanz des Steuerintervalls an eine Vorrichtung, wobei die Zustandsübergangsdaten einen Versuch, in einen leistungsarmen Zustand einzutreten, angeben sollen; und
- Übergehen in den leistungsarmen Zustand.
- 62. Vorrichtung nach Anspruch 61, wobei die Bitübertragungsschichtlogik von der Vorrichtung eine Quittierung empfangen soll, wobei die Quittierung die Zustandsübergangsdaten umfasst.
- 63. Vorrichtung nach Anspruch 62, wobei die Quittierung mit einem nächsten periodischen Steuerintervall zusammenfallen soll.
- 64. Vorrichtung nach Anspruch 61, wobei das Übergehen in den leistungsarmen Zustand das Senden einer Supersequenz, die den Übergang in den leistungsarmen Zustand angibt, an die Vorrichtung enthält.
- 65. Vorrichtung nach Anspruch 64, wobei das Übergehen in den leistungsarmen Zustand ferner das Empfangen einer wiederholten Instanz der Supersequenz von der Vorrichtung enthält.
- 66. Vorrichtung nach Anspruch 64, wobei die Supersequenz eine oder mehrere Instanzen einer Sequenz, die eine Electrical Ordered Set (EOS), gefolgt von einer vorgegebenen Anzahl von Instanzen einer Trainingssequenz, enthält, umfasst.
- 67. Vorrichtung nach Anspruch 66, wobei die EOS eine Electric Idle Exit Ordered Set (EIEOS) umfasst.
- 68. Vorrichtung nach Anspruch 61, wobei der Übergang in den leistungsarmen Zustand auf einer Anforderung einer Leistungssteuereinheit beruht.
- 69. Vorrichtung nach Anspruch 61, wobei die Bitübertragungsschichtlogik ferner einen Übergang von dem leistungsarmen Zustand in den Verbindungsübertragungszustand initiieren soll.
- 70. Vorrichtung, die Folgendes umfasst:
- eine Bitübertragungsschicht (PHY), die dafür konfiguriert ist, mit einer seriellen differentiellen Verbindung gekoppelt zu werden, wobei die PHY periodisch einen Verbindungssperrzustand (BLS) ausgeben soll, wobei die BLS-Anforderung veranlassen soll, dass ein Agent in einen BLS eintritt, um die Verbindungsschicht-Flit-Sendung für eine Dauer zurückzuhalten, wobei die PHY die serielle differentielle Verbindung während der Dauer für der PHY zugeordnete Aufgaben nutzen soll.
- 71. Vorrichtung nach Anspruch 70, wobei die PHY die serielle differentielle Verbindung während der Dauer für der PHY zugeordnete Aufgaben, umfasst das Senden einer oder mehrerer Nachrichten einer Prioritätsnachrichtenliste, die NOP, Zurücksetzen, Inbandzurücksetzen, Eintritt in einen leistungsarmen Zustand, Eintritt in einen Teilbreitenzustand, Eintritt in einen anderen PHY-Zustand usw. enthält, nutzen soll.
- 72. Vorrichtung, die Folgendes umfasst:
- eine Bitübertragungsschicht (PHY), die dafür konfiguriert ist, mit einer Verbindung gekoppelt zu werden, wobei die Verbindung eine erste Anzahl von Spuren enthält, wobei die PHY in einem Vollbreiten-Übertragungsverbindungszustand Flits über die erste Anzahl von Spuren senden soll und wobei die PHY in einem Teilbreiten-Verbindungsübertragungszustand Flits über eine zweite Anzahl von Spuren, die kleiner als die erste Anzahl von Spuren ist, senden soll.
- 73. Vorrichtung nach Anspruch 72, wobei die PHY einen Verbindungssperrzustand nutzen soll, um von dem Verbindungssperrzustand in den Teilbreiten-Verbindungsübertragungszustand einzutreten.
- 74. Vorrichtung nach Anspruch 72, wobei die Flits, wenn sie über die erste Anzahl von Spuren und über die zweite Anzahl von Spuren übertragen werden, dieselbe Größe haben.
- 75. Vorrichtung nach Anspruch 72, wobei die PHY zum Übertragen über die erste Anzahl von Spuren und über die zweite Anzahl von Spuren einen eingebetteten Takt nutzt.
- 76. Vorrichtung nach Anspruch 72, wobei die PHY zum Übertragen über die erste Anzahl von Spuren einen eingebetteten Takt nutzt und zum Übertragen über die zweite Anzahl von Spuren einen weitergeleiteten Takt nutzt.