DE102020128760A1 - Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen - Google Patents

Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen Download PDF

Info

Publication number
DE102020128760A1
DE102020128760A1 DE102020128760.7A DE102020128760A DE102020128760A1 DE 102020128760 A1 DE102020128760 A1 DE 102020128760A1 DE 102020128760 A DE102020128760 A DE 102020128760A DE 102020128760 A1 DE102020128760 A1 DE 102020128760A1
Authority
DE
Germany
Prior art keywords
lanes
connection
link
width
lane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020128760.7A
Other languages
English (en)
Inventor
Debendra Das Sharma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102020128760A1 publication Critical patent/DE102020128760A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

Ein System kann eine Hostvorrichtung enthalten, die einen nachgeschalteten Anschluss und eine Endpunktvorrichtung enthält, die einen vorgeschalteten Anschluss enthält. Eine bidirektionale Mehrbahnverbindung kann den nachgeschalteten Anschluss und den vorgeschalteten Anschluss miteinander verbinden. Der nachgeschaltete Anschluss kann eine Anforderung über die bidirektionale Mehrbahnverbindung an den vorgeschalteten Anschluss senden, eine Anzahl von aktiven Bahnen in einer ersten Richtung auf der bidirektionalen Mehrbahnverbindung zu ändern, wobei die Anforderung einen Hinweis auf eine gewünschte Verbindungsbreite umfasst, kann eine Bestätigung vom vorgeschalteten Anschluss empfangen, die Anzahl der aktiven Bahnen auf der bidirektionalen Mehrbahnverbindung auf die gewünschte Verbindungsbreite in der ersten Richtung zu ändern, kann die bidirektionale Mehrbahnverbindung zum Betrieb unter Verwendung der gewünschten Verbindungsbreite konfigurieren und Daten an den vorgeschalteten Anschluss unter Verwendung der gewünschten Verbindungsbreite senden oder empfangen. Die Änderung in der Verbindungsbreite kann asymmetrisch sein (d. h., die vorgeschaltete Verbindungsbreite unterscheidet sich von der nachgeschalteten Verbindungsbreite).

Description

  • VERWEIS AUF EINE VERWANDTE ANMELDUNG
  • Gemäß 35 U.S.C. § 119(e) beansprucht diese Offenbarung den Vorteil der vorläufigen US-Patentanmeldung mit der Seriennummer 62/941,277 mit dem Titel „Power Savings Through Asymmetric Partial Link Width States for Computer Buses“, angemeldet am 27. November 2019, deren gesamter Inhalt hierin unter Bezugnahme aufgenommen ist.
  • STAND DER TECHNIK
  • Zwischenverbindungen können verwendet werden, um eine Kommunikation zwischen unterschiedlichen Vorrichtungen innerhalb eines Systems bereitzustellen, irgendein Typ von Zwischenverbindungsmechanismus wird verwendet. Ein typisches Kommunikationsprotokoll für Kommunikationszwischenverbindungen zwischen Vorrichtungen in einem Computersystem ist ein Peripheral-Component-Interconnect-Express-Kommunikationsprotokoll (PCI Express™ (PCle™)). Dieses Kommunikationsprotokoll ist ein Beispiel eines Lade/Speicherungs-Eingabe/Ausgabe(E/A)-Zwischenverbindungssystems. Die Kommunikation zwischen den Vorrichtungen wird nach diesem Protokoll typischerweise seriell mit sehr hohen Geschwindigkeiten durchgeführt.
  • Vorrichtungen können über verschiedene Anzahlen von Datenverbindungen verbunden sein, wobei jede Datenverbindung eine Vielzahl von Datenbahnen enthält. Vorgeschaltete Vorrichtungen und nachgeschaltete Vorrichtungen werden nach einer Initialisierung einem Verbindungstraining unterzogen, um Datenübertragungen über die verschiedenen Verbindungen und Bahnen hinweg zu optimieren.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor enthält, nach Ausführungsformen der vorliegenden Offenbarung.
    • 2A-2B sind vereinfachte Blockdiagramme von Beispielverbindungen, die einen oder mehrere Retimer nach Ausführungsformen der vorliegenden Offenbarung enthalten.
    • 3 ist ein schematisches Diagramm, das eine beispielhafte Verbindungstrainings-Zustandsmaschine veranschaulicht, die einen teilweisen LO-Zustand (PLO-Zustand) enthält, nach Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein Diagramm eines Verbindungsverwaltungs-Sicherungsschichtpakets (Verbindungsverwaltungs-DLLP), das eine beispielhafte Codierung zum Ermöglichen teilweiser Verbindungsbreiten in einer oder mehreren Richtungen einer bidirektionalen Verbindung nach Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 5A-5B sind Prozessablaufdiagramme zur Verhandlung von teilweisen Verbindungsbreitenzustandsfähigkeiten zwischen zwei Verbindungspartnern.
    • 6A ist ein Prozessablaufdiagramm zum Abwärtskonfigurieren einer bidirektionalen Mehrbahnverbindung.
    • 6B ist ein Prozessablaufdiagramm zum Aufwärtskonfigurieren einer bidirektionalen Mehrbahnverbindung.
    • 6C ist ein Prozessablaufdiagramm zum Ändern eines Verbindungszustands in einen Zustand mit teilweiser Verbindungsbreite nach Ausführungsformen der vorliegenden Offenbarung.
    • 7 ist ein Swimlane-Diagramm, das verschiedene Ausführungsformen zum Verhandeln von Verbindungsbreiten-Neukonfigurationen nach Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 8 veranschaulicht eine Ausführungsform eines Rechensystems, das eine Zwischenverbindungsarchitektur enthält.
    • 9 veranschaulicht eine Ausführungsform einer Zwischenverbindungsarchitektur, die einen geschichteten Stapel enthält.
    • 10 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die bzw. das in einer Zwischenverbindungsarchitektur erstellt oder empfangen werden soll.
    • 11 veranschaulicht eine Ausführungsform eines Paars aus Sender und Empfänger für eine Zwischenverbindungsarchitektur.
    • 12 veranschaulicht eine andere Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Prozessor enthält.
    • 13 veranschaulicht eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessorsteckplätze enthält.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie Beispiele spezifischer Arten von Prozessoren und Systemkonfigurationen, spezifische Hardware-Strukturen, spezifische architektonische und mikroarchitektonische Details, spezifische Registerkonfigurationen, spezifische Anweisungstypen, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessor-Pipeline-Stufen und Vorgänge usw., um ein gründliches Verständnis der vorliegenden Offenbarung zu ermöglichen. Es ist jedoch für Fachleute offensichtlich, dass diese spezifischen Details nicht zur Ausführung der vorliegenden Offenbarung verwendet werden müssen. In anderen Fällen wurden wohlbekannte Komponenten oder Verfahren, wie spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/spezifischer Code für beschriebene Algorithmen, spezifischer Firmwarecode, eine spezifische Zwischenverbindungsoperation, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und Materialien, spezifische Compilerimplementierungen, ein spezifischer Ausdruck von Algorithmen in Code, spezifische Abschalt- und Anschnitttechniken/Logik und andere spezifische Betriebsdetails des Computersystems nicht im Detail beschrieben, um eine unnötige Verschleierung der vorliegenden Offenbarung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieeinsparung und Energieeffizienz in bestimmten integrierten Schaltkreisen, wie etwa in Rechenplattformen oder Mikroprozessoren beschrieben werden können, sind andere Ausführungsformen auf andere Arten von integrierten Schaltkreisen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltkreisen oder Halbleitervorrichtungen angewendet werden, die auch von einer besseren Energieeffizienz und Energieeinsparung profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt. Und können auch in anderen Geräten wie tragbaren Vorrichtungen, Tablets, anderen dünnen Notebooks, Ein-Chip-Systemvorrichtungen (SOC-Vorrichtungen) und eingebetteten Anwendungen verwendet werden. Einige Beispiele für tragbare Vorrichtungen enthalten Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Eingebettete Anwendungen enthalten typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein Ein-Chip-System, Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerkknoten, Fernnetz-Switches (WAN-Switches) oder ein beliebiges anderes System, das die Funktionen und Operationen durchführen kann, die unten gelehrt werden. Darüber hinaus sind die hierin beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können auch Software-Optimierungen zur Energieeinsparung und Effizienz betreffen. Wie in der Beschreibung unten leicht ersichtlich ist, sind die Ausführungsformen von hierin beschriebenen Verfahren, Einrichtungen und Systemen (egal, ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) für eine mit Leistungsüberlegungen ausgewogene Zukunft mit,grüner Technologie' wesentlich.
  • Mit der Entwicklung der Rechensysteme werden die Komponenten darin komplexer. Infolgedessen nimmt auch die Zwischenverbindungsarchitektur zur Kopplung und Kommunikation zwischen den Komponenten an Komplexität zu, um sicherzustellen, dass Bandbreitenanforderungen für eine optimale Komponentenoperation erfüllt sind. Darüber hinaus erfordern unterschiedliche Marktsegmente unterschiedliche Aspekte von Zwischenverbindungsarchitekturen, um den Bedürfnissen des Marktes gerecht zu werden. Beispielsweise benötigen Server eine höhere Leistung, während das mobile Ökosystem manchmal die Gesamtleistung für Energieeinsparungen opfern kann. Es ist jedoch einziger Zweck der meisten Gefüge, eine höchstmögliche Leistung bei maximaler Energieeinsparung zu bieten. Nachstehend wird eine Anzahl von Zwischenverbindungen besprochen, die möglicherweise von Gesichtspunkten der hierin beschriebenen Offenbarung profitieren würden.
  • Nun auf 1 Bezug nehmend, wird eine Ausführungsform eines Blockdiagramms für ein Rechensystem gezeigt, das einen Mehrkernprozessor enthält. Ein Prozessor 100 enthält einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein Ein-Chip-System (SOC) oder eine andere Vorrichtung, um Code auszuführen. Der Prozessor 100 enthält in einer Ausführungsform mindestens zwei Kerne - Kern 101 und 102, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichte Ausführungsform) enthalten können. Der Prozessor 100 kann jedoch eine beliebige Anzahl an Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezeichnet ein Verarbeitungselement Hardware oder Logik, um einen Softwarethread zu unterstützen. Beispiele von Hardwareverarbeitungselementen enthalten: eine Threadeinheit, einen Threadschlitz, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardwarethread, einen Kern und/oder ein beliebiges anderes Element, das einen Zustand für einen Prozessor halten kann, wie einen Ausführungszustand oder architektonischen Zustand. Anders ausgedrückt bezeichnet ein Verarbeitungselement in einer Ausführungsform beliebige Hardware, die unabhängig mit Code assoziiert werden kann, wie einem Softwarethread, einem Betriebssystem, einer Anwendung oder anderem Code. Ein physischer Prozessor (oder Prozessorsockel) bezeichnet üblicherweise einen integrierten Schaltkreis, was möglicherweise eine beliebige Anzahl anderer Verarbeitungselemente wie Kerne oder Hardwarethreads enthält.
  • Ein Kern bezeichnet oft Logik, die sich auf einem integrierten Schaltkreis befindet und fähig ist, einen unabhängigen architektonischen Zustand zu halten, wobei jeder unabhängig gehaltene architektonische Zustand mit mindestens einigen dedizierten Ausführungsressourcen assoziiert ist. Im Gegensatz zu Kernen bezeichnet ein Hardwarethread üblicherweise beliebige Logik, die sich auf einem integrierten Schaltkreis befindet und fähig ist, einen unabhängigen architektonischen Zustand zu halten, wobei die unabhängig gehaltenen architektonischen Zustände Zugriff auf Ausführungsressourcen gemeinsam nutzen. Wie gesehen werden kann, überlappt die Grenze zwischen der Nomenklatur eines Hardwarethreads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere einem architektonischen Zustand zugewiesen sind. Dennoch werden ein Kern und ein Hardwarethread oft von einem Betriebssystem als individuelle logische Prozessoren angesehen, wobei das Betriebssystem Vorgänge auf jedem logischen Prozessor individuell planen kann.
  • Der physische Prozessor 100, wie in 1 veranschaulicht, enthält zwei Kerne - Kerne 101 und 102. Hier werden die Kerne 101 und 102 als symmetrische Kerne angesehen, d. h. Kerne mit den gleichen Konfigurationen, funktionalen Einheiten und/oder der gleichen Logik. In einer anderen Ausführungsform enthält der Kern 101 einen Out-of-Order-Prozessorkern, während der Kern 102 einen In-Order-Prozessorkern enthält. Die Kerne 101 und 102 können jedoch einzeln aus einem beliebigen Kerntyp ausgewählt werden, wie einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der ausgelegt ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einem Kern, der ausgelegt ist, eine übersetzte Anweisungssatzarchitektur (ISA) auszuführen, einem codesignten Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h., asymmetrische Kerne) kann eine Form der Übersetzung, wie eine binäre Übersetzung, eingesetzt werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Um die Besprechung weiterzuführen, werden die funktionalen Einheiten, die im Kern 101 veranschaulicht sind, unten ausführlicher besprochen, da die Einheiten in der gezeigten Ausführungsform im Kern 102 auf eine ähnliche Weise arbeiten.
  • Wie gezeigt enthält der Kern 101 zwei Hardwarethreads 101a und 101b, die auch als Hardwarethreadschlitze 101a und 101b bezeichnet werden können. Deshalb sehen Softwareentitäten wie ein Betriebssystem in einer Ausführungsform den Prozessor 100 möglicherweise als vier separate Prozessoren, d. h., vier logische Prozessoren oder Verarbeitungselemente, die fähig sind, vier Softwarethreads gleichzeitig auszuführen. Wie oben erwähnt, ist ein erster Thread mit den Architekturzustandsregistern 101a assoziiert, ein zweiter Thread ist mit den Architekturzustandsregistern 101b assoziiert, ein dritter Thread kann mit den Architekturzustandsregistern 102a assoziiert sein und ein vierter Thread kann mit den Architekturzustandsregistern 102b assoziiert sein. Hier kann jedes der Architekturzustandsregister (101a, 101b, 102a und 102b) als Verarbeitungselemente, Threadschlitze oder Threadeinheiten bezeichnet werden, wie oben beschrieben. Wie veranschaulicht sind die Architekturzustandsregister 101a in den Architekturzustandsregistern 101b reproduziert, deshalb können individuelle Architekturzustände/Kontexte für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert werden. Im Kern 101 können andere kleinere Ressourcen, wie Anweisungszeiger und Umbenennungslogik im Zuordnungs- und Umbenennungsblock 130 auch für die Threads 101a und 101b reproduziert werden. Einige Ressourcen, wie Umordnungspuffer in einer Umordnungs-/Stilllegungseinheit 135, ILTB 120, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen wie interne Register für allgemeine Zwecke, Seitentabellen-Basisregister(s), Datenzwischenspeicher auf niedriger Ebene und Daten-TLB 115, Ausführungseinheit(en) 140 und Teile der Out-of-Order-Einheit 135 sind möglicherweise vollständig gemeinsam genutzt.
  • Der Prozessor 100 enthält oft andere Ressourcen, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch/für Verarbeitungselemente dediziert sind. In 1 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden Logikeinheiten/Ressourcen eines Prozessors veranschaulicht. Es ist anzumerken, dass ein Prozessor beliebige dieser funktionalen Einheiten enthalten oder weglassen kann, sowie beliebige andere funktionale Einheiten, Logik oder Firmware enthalten kann, die nicht gezeigt sind. Wie veranschaulicht enthält der Kern 101 einen vereinfachten, repräsentativen Out-of-Order(OOO)-Prozessorkern. Aber in anderen Ausführungsformen kann ein In-Order-Prozessor eingesetzt werden. Der OOO-Kern enthält einen Verzweigungs-Zielpuffer 120, um Verzweigungen vorherzusagen, die auszuführen/zu nehmen sind, und einen Anweisungsübersetzungspuffer (I-TLB) 120, um Adressübersetzungseinträge für Anweisungen zu speichern.
  • Der Kern 101 enthält ferner ein Decodiermodul 125, das an die Abrufeinheit 120 gekoppelt ist, um abgerufene Elemente zu decodieren. Abruflogik enthält in einer Ausführungsform individuelle Ablaufsteuerungen, die mit den Threadschlitzen 101a bzw. 101b assoziiert sind. Üblicherweise ist der Kern 101 mit einer ersten ISA assoziiert, die Anweisungen definiert/angibt, die auf dem Prozessor 100 ausführbar sind. Oft enthalten Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Abschnitt der Anweisung (als ein Opcode bezeichnet), der eine Anweisung oder eine Operation referenziert/angibt, die durchzuführen ist. Die Decodierlogik 125 enthält Verschaltung, die diese Anweisungen aus ihren Opcodes erkennt und die decodierten Anweisungen in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert. Wie unten ausführlicher besprochen wird, enthalten die Decodierer 125 in einer Ausführungsform zum Beispiel Logik, die konstruiert oder angepasst ist, spezifische Anweisungen zu erkennen, wie Transaktionsanweisungen. Als Ergebnis der Erkennung durch die Decodierer 125 ergreift die Architektur oder der Kern 101 bestimmte, vordefinierte Maßnahmen, um Aufgaben durchzuführen, die mit der passenden Anweisung assoziiert sind. Es muss angemerkt werden, dass beliebige der hierin beschriebenen Aufgaben, Blöcke, Vorgänge und Verfahren als Reaktion auf eine einzige oder mehrere Anweisungen durchgeführt werden können; von denen einige neue oder alte Anweisungen sein können. Man beachte, dass die Decodierer 126 in einer Ausführungsform die gleiche ISA (oder eine Teilmenge dieser) erkennen. Alternativ erkennen die Decodierer 126 in einer heterogenen Kernumgebung eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine andere ISA).
  • In einem Beispiel enthält der Zuordnungs- und Umbenennungsblock 130 eine Zuordnungseinheit, um Ressourcen zu reservieren, wie Registerdateien, um Ergebnisse einer Anweisungsverarbeitung zu speichern. Die Threads 101a und 101b sind jedoch möglicherweise zu einer Out-of-Order-Ausführung fähig, wobei der Zuordnungs- und Umbenennungsblock 130 auch andere Ressourcen reserviert, wie Umordnungspuffer, um die Anweisungsergebnisse nachzuverfolgen. Die Einheit 130 kann auch eine Registerumbenennungseinheit enthalten, um Programm-/Anweisungsbezugsregister auf andere, zum Prozessor 100 interne Register umzubenennen. Die Umordnungs-/Stilllegungseinheit 135 enthält Komponenten, wie die oben erwähnten Umordnungspuffer, Ladepuffer und Speicherpuffer, um eine Out-of-Order-Ausführung und eine spätere In-Order-Stilllegung von Anweisungen zu unterstützen, die nicht in Reihenfolge ausgeführt werden.
  • In einer Ausführungsform enthält bzw. enthalten die Planungs- und Ausführungseinheit(en) 140 eine Planungseinheit, um Anweisungen/Vorgänge auf Ausführungseinheiten zu planen. Eine Gleitkommaanweisung ist beispielsweise an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit aufweist. Registerdateien, die mit diesen Ausführungseinheiten assoziiert sind, sind auch enthalten, um die Ergebnisse der Informationsanweisungsverarbeitung 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.
  • Ein Datenzwischenspeicher auf niedriger Ebene und ein Datenübersetzungspuffer (D-TLB) 150 sind an die Ausführungseinheit(en) 140 gekoppelt. Der Datenzwischenspeicher hat vor Kurzem verwendete/bearbeitete Elemente zu speichern, wie Datenoperanden, die möglicherweise in Arbeitsspeicherkohärenzzuständen gehalten werden. Der D-TLB hat neue Adressübersetzungen von virtuellen/linearen zu physischen zu speichern. Als spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um einen physischen Arbeitsspeicher in eine Vielzahl von virtuellen Seiten aufzuteilen.
  • Hier nutzen die Kerne 101 und 102 den Zugriff auf einen Zwischenspeicher auf höherer Ebene oder weiter außen gemeinsam, wie einen Zwischenspeicher auf zweiter Ebene, der mit der chipinternen Schnittstelle 110 assoziiert ist. Es ist zu beachten, dass der Begriff auf höherer Ebene oder weiter außen sich erhöhende oder weiter weg von der Ausführungseinheit bzw. den Ausführungseinheiten befindende Zwischenspeicherebenen bezeichnet. In einer Ausführungsform ist ein Zwischenspeicher auf höherer Ebene ein Datenzwischenspeicher auf letzter Ebene - der letzte Zwischenspeicher in der Arbeitsspeicherhierarchie auf dem Prozessor 100 - wie ein Datenzwischenspeicher auf zweiter oder dritter Ebene. Ein Zwischenspeicher auf höherer Ebene ist jedoch nicht so eingeschränkt, da er mit einem Anweisungszwischenspeicher assoziiert sein kann oder einen solchen enthalten kann. Ein Ablaufverfolgungszwischenspeicher - eine Art von Anweisungszwischenspeicher - kann stattdessen nach dem Decodierer 125 gekoppelt sein, um vor Kurzem decodierte Ablaufverfolgungen zu speichern. Hier bezeichnet eine Anweisung möglicherweise eine Makroanweisung (d. h., eine allgemeine Anweisung, die von den Decodierern erkannt wird), die in eine Anzahl an Mikroanweisungen (Mikrovorgänge) decodiert werden kann.
  • In der gezeigten Konfiguration enthält der Prozessor 100 auch ein chipinternes Schnittstellenmodul 110. Historisch wurde eine Arbeitsspeichersteuerung, die unten ausführlicher beschrieben wird, in ein zum Prozessor 100 externes Rechensystem aufgenommen. In diesem Szenario hat die chipinterne Schnittstelle 110 mit zum Prozessor 100 externen Vorrichtungen, wie einem Systemarbeitsspeicher 175, einem Chipsatz (der oft einen Arbeitsspeicherteuerungsknoten, um an den Arbeitsspeicher 175 anzubinden, und einen E/A-Steuerungsknoten enthält, um mit Peripherievorrichtungen Verbindung aufzunehmen), einem Arbeitsspeicher-Steuerungsknoten, einer Northbridge oder einem anderen integrierten Schaltkreis zu kommunizieren. Und in diesem Szenario kann der Bus 105 eine beliebige bekannte Zwischenverbindung, wie einen Mehrpunktbus, eine Punkt-zu-Punkt-Zwischenverbindung, eine serielle Zwischenverbindung, einen parallelen Bus, einen kohärenten (z. B. mit Zwischenspeicher kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differenziellen Bus und einen GTL-Bus enthalten.
  • Der Arbeitsspeicher 175 kann für den Prozessor 100 reserviert sein oder mit anderen Vorrichtungen in einem System gemeinsam genutzt werden. Übliche Beispiele von Arten des Arbeitsspeichers 175 enthalten DRAM, SRAM, nichtflüchtigen Arbeitsspeicher (NV-Arbeitsspeicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 180 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, der bzw. die an einen Arbeitsspeichersteuerungsknoten gekoppelt ist, einen Datenspeicher, der an einen E/A-Steuerungsknoten gekoppelt ist, einen drahtlosen Sende-Empfänger, eine Flashvorrichtung, eine Audiosteuerung, eine Netzwerksteuerung oder eine andere bekannte Vorrichtung enthalten kann.
  • Seit Kurzem kann jedoch jede dieser Vorrichtungen auf dem Prozessor 100 eingebunden sein, da mehr Logik und Vorrichtungen auf einem einzigen Chip, wie einem SOC, integriert werden. In einer Ausführungsform befindet sich zum Beispiel ein Arbeitsspeichersteuerungsknoten auf dem gleichen Paket und/oder Chip mit dem Prozessor 100. Hier enthält ein Abschnitt des Kerns (ein kerninterner Abschnitt) 110 eine oder mehrere Steuerung(en) zum Ankoppeln an andere Vorrichtungen wie dem Arbeitsspeicher 175 oder einer Grafikvorrichtung 180. Die Konfiguration, die eine Zwischenverbindung und Steuerungen zum Ankoppeln an derartige Vorrichtungen enthält, wird oft als kernintern (oder kernlose Konfiguration) bezeichnet. Als ein Beispiel enthält die chipinterne Schnittstelle 110 eine Ringzwischenverbindung zur chipinternen Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 zur chipexternen Kommunikation. In der SOC-Umgebung können sogar noch mehr Vorrichtungen, wie die Netzwerkschnittstelle, Coprozessoren, der Arbeitsspeicher 175, der Grafikprozessor 180 und beliebige andere bekannte Computervorrichtungen/Schnittstellen auf einem einzigen Chip oder integrierten Schaltkreis integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Energieverbrauch zu bieten.
  • In einer Ausführungsform ist der Prozessor 100 fähig, einen Compiler-, Optimierungs- und/oder Übersetzungscode 177 auszuführen, um Anwendungscode 176 zu compilieren, übersetzen und/oder optimieren, um die hierin beschriebene Einrichtung und die hierin beschriebenen Verfahren zu unterstützen oder an diese zu anzukoppeln. Ein Compiler enthält oft ein Programm oder einen Satz von Programmen, um Quelltext/Code in Zieltext/Code zu übersetzen. Üblicherweise erfolgt eine Compilierung von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und Durchgängen, um Code in einer Programmiersprache auf hoher Ebene in Code in einer Maschinen- oder Assemblersprache auf niedriger Ebene umzuwandeln. Es können jedoch dennoch Compiler mit einem einzigen Durchgang für eine einfache Compilierung eingesetzt werden. Ein Compiler kann beliebige bekannte Compiliertechniken einsetzen und beliebige bekannte Compilervorgänge durchführen, wie lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
  • Größere Compiler enthalten oft mehrere Phasen, aber am häufigsten sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) einem Front-End, d. h., im Allgemeinen dort, wo eine syntaktische Verarbeitung, eine semantische Verarbeitung und einige Transformations-/Optimierungsvorgänge stattfinden können, und (2) einem Back-End, d. h., im Allgemeinen dort, wo eine Analyse, Transformationen, Optimierungen und eine Codeerzeugung stattfindet. Einige Compiler beziehen sich auf eine Mitte, die ein Verschwimmen der Grenze zwischen einem Front-End und einem Back-End eines Compilers veranschaulicht. Als Ergebnis kann eine Bezugnahme auf eine Einfügung, Assoziation, Erzeugung oder einen anderen Vorgang eines Compilers in beliebigen der vorgenannten Phasen oder Durchgänge stattfinden, sowie in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers. Als veranschaulichendes Beispiel fügt ein Compiler möglicherweise Vorgänge, Aufrufe, Funktionen usw. in einer oder mehreren Compilierphasen ein, wie eine Einfügung von Aufrufen/Vorgängen in einer Front-End-Phase der Compilierung und nachfolgenden Transformation der Aufrufe/Vorgänge in Code auf niedrigerer Ebene während einer Transformationsphase. Es ist anzumerken, dass während einer dynamischen Compilierung der Compilercode oder dynamische Optimierungscode solche Vorgänge/Aufrufe einfügen kann sowie den Code zur Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann Binärcode (bereits compilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
  • Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen. Die gleichen Bezugsziffern können in verschiedenen Zeichnungen verwendet werden, um die gleichen oder ähnliche Elemente identifizieren. In der folgenden Beschreibung werden zum Zweck der Erläuterung und nicht der Beschränkung spezifische Details dargelegt, wie bestimmte Strukturen, Architekturen, Schnittstellen, Techniken usw., um ein gründliches Verständnis der verschiedenen Gesichtspunkte verschiedener Ausführungsformen zu vermitteln. Für Fachleute mit dem Vorteil der vorliegenden Offenbarung ist jedoch offensichtlich, dass die verschiedenen Aspekte der verschiedenen Ausführungsformen in anderen Beispielen praktiziert werden können, die von diesen spezifischen Details abweichen. In bestimmten Fällen werden Beschreibungen von wohlbekannten Vorrichtungen, Schaltungen und Verfahren weggelassen, um die Beschreibung der verschiedenen Ausführungsformen nicht mit unnötigen Details zu verdecken.
  • In einigen Implementierungen einer Zwischenverbindung kann die durchschnittliche E/A-Verbindungsnutzung oft geringer als 50 % sein, auch für die Energienutzungsfälle mit thermaler Auslegung. Eine dynamische Verbindungsbreitenanpassung (DLW-Anpassung) (auch als eine Verbindungsbreiten-Aufwärtskonfiguration/Abwärtskonfiguration bekannt) kann die Verbindung vom LO-Zustand zur Wiederherstellung zur Konfiguration zu LO bringen. Dieser Übergang zwischen aktiven und inaktiven Zuständen kann mehrere Mikrosekunden dauern (üblicherweise im hohen einstelligen bis niedrigen zweistelligen Bereich), was die Verbindung während der inaktiven Zustände ist nicht verfügbar zum Austauschen von Transaktionen macht. Diese Latenz repräsentiert eine Erhöhung der Latenz um Größenordnungen im Vergleich dazu, wenn sich die Verbindung im LO-Zustand befindet.
  • Diese Offenbarung beschreibt Systeme, Einrichtungen und Verfahren, um zu ermöglichen, dass die Verbindung teilweise aktiv ist und ermöglicht, dass Transaktionen fortgesetzt werden, während einige andere Bahnen einen Eintritt (eine Abwärtskonfiguration der Verbindungsbreite) oder Austritt (eine Aufwärtskonfiguration der Verbindungsbreite) in den elektrischen Leerlaufzustand durchführen. Ferner unterstützen die hierin beschriebenen Techniken und Mechanismen eine asymmetrische Verbindungsbreite, was Energieeinsparungen ermöglicht, wenn der Bandbreitenbedarf asymmetrisch ist (z. B. mehr eingehender als ausgehender Verkehr in Speicheranwendungen). Deshalb liefert die Verbindung eine bessere energieeffizientere Leistung ohne jegliche der herkömmlichen Dienstqualitätsprobleme (QoS-Probleme) aufgrund erhöhter Latenz im DLW-Mechanismus, was bewirkt, dass Benutzer Energieeinsparungen nicht nutzen.
  • In einigen Ausführungsformen halten die hierin beschriebenen Techniken und Mechanismen die Verbindung während einer Verbindungsneukonfiguration aktiv. Eine verbindungsneukonfiguration kann ein Vergrößern der Verbindungsbreite (Verbindungs-Aufwärtskonfiguration oder Aufwärtskonfig.) oder ein Verringern der Verbindungsbreite (Verbindungs-Abwärtskonfiguration oder Abwärtskonfig.) sowie das Verbindungstraining und die Verbindungsplanung, die die Neukonfiguration der Verbindungsbrite ermöglicht, bedeuten. Auch während der Verbindungs-Aufwärtskonfig. gibt es keine Unterbrechung gibt es keine Unterbrechung am gleichzeitigen Verbindungsverkehr, da die aufwärtskonfigurierten Bahnen aufgrund der Planungsmechanismen und zwischen Verbindungspartnern ausgetauschten Nachrichten nahtlos mit den aktiven Bahnen verschmelzen.
  • Darüber hinaus halten die Verbindungsneukonfigurationsmechanismen den Verkehr während des Übergangs in die Niedrigenergie-Verbindungszustände/aus den Niedrigenergie-Verbindungszuständen nicht an, was einen aggressiven Einsatz ermöglicht. Der Zustand mit teilweiser Verbindungsbreite ermöglicht die Fähigkeit, Energie dynamisch anderen Entitäten (z. B. Kernen) zuzuweisen, indem Energie von der E/A-Nutzung für eine reduzierte Bandbreite genommen wird (oder indem auf die tatsächliche Verbrauchsbandbreite angepasst wird).
  • Diese Offenbarung beschreibt einen Mechanismus zur Energieeinsparung in seriellen Mehrbahnzwischenverbindungen wie PCIe oder Compute Express Link (CXL) (wie in 2A-B unten gezeigt), der ermöglicht, dass der Energieverbrauch zum Bandbreitenverbrauch proportional ist, ohne eine Ausfallzeit der Verbindung zu verursachen. Diese Offenbarung beschreibt einen Mechanismus zur Energieeinsparung in seriellen Zwischenverbindungen wie PCIe oder CXL, der ermöglicht, dass der Energieverbrauch zum Bandbreitenverbrauch proportional ist, ohne eine Ausfallzeit der Verbindung zu verursachen.
  • 2A-2B sind vereinfachte Blockdiagramme von Beispielverbindungen, die einen oder mehrere Retimer nach Ausführungsformen der vorliegenden Offenbarung enthalten. Eine Verbindung, die einen oder mehrere Retimer einbindet, kann zwei oder mehr separate elektrische Teilverbindungen mit Datenraten bilden, die mit Datenraten vergleichbar sind, die durch Verbindungen realisiert werden, die ähnliche Protokolle, aber ohne Retimer, einsetzen. Eine Verbindung, die zum Beispiel einen einzigen Retimer enthält, kann eine Verbindung mit zwei separaten Teilverbindungen bilden, die jeweils mit 8,0 GT/s oder mehr arbeiten. 2A-2B veranschaulichen vereinfachte Blockdiagramme 200a-b von beispielhaften Verbindungen, die einen oder mehrere Retimer enthalten. Beispielsweise kann in 2A eine Verbindung 225, die eine erste Komponente 205 (z. B. eine vorgeschaltete Komponente, wie eine Hostvorrichtung, CPU, einen Rootkomplex, einen Anschlussschalter usw.) mit einer zweiten Komponente 210 (z. B. einer nachgeschalteten Komponente, wie einer E/A-Vorrichtung, peripheren Vorrichtung, Netzwerkkarte, Speichervorrichtung, einem Beschleuniger usw.) verbindet, einen einzigen Retimer 215a enthalten. Eine erste Teilverbindung 220a kann die erste Komponente 205 mit dem Retimer 215a verbinden und eine zweite Teilverbindung 220b kann den Retimer 215a mit der zweiten Komponente verbinden.
  • In einigen Implementierungen kann eine Verbindung, wie eine PCIe-konforme Verbindung, einen oder mehrere Retimer oder andere Erweiterungsvorrichtungen enthalten, wie einen Repeater. Eine Retimervorrichtung (oder einfach „Retimer“) kann aktive Elektronikvorrichtungen enthalten, die digitale E/A-Signale empfangen und erneut übertragen (per Retiming übertragen). Retimer können verwendet werden, um die Länge eines Kanals zu erweitern, der mit einem digitalen E/A-Bus verwendet werden kann. Retimer können protokoll bewusst, softwaretransparent und fähig sein, eine Verbindungsausgleichsprozedur auszuführen, wie die Verbindungsausgleichsprozedur von PCIe.
  • Wie in 2B gezeigt, können mehrere Retimer 245a, 245b eingesetzt werden, um eine Verbindung 255 zu erweitern. Drei Teilverbindungen 250a-c können durch die zwei Retimer 245a, 245b definiert sein, wobei eine erste Teilverbindung 255a die erste Komponente 235 mit dem ersten Retimer 245a verbindet, eine zweite Teilverbindung 250b den ersten Retimer 245a mit dem zweiten Retimer 245b verbindet und die dritte Teilverbindung 255c den zweiten Retimer 245b mit der zweiten Komponente 240 verbindet.
  • Eine primäre Funktion einer Retimervorrichtung (Puffervorrichtung) ist ein Signal-Retiming. Diese Funktionen werden wie gezeigt durch Retimerverschaltungsblöcke 506 durchgeführt (ein Block für jede Richtung). Die bestimmten Retimervorrichtungsschaltkreise hängen von der PHY ab, die für die Verbindung verwendet wird. Im Allgemeinen ist die Retimerverschaltung ausgelegt, das eingehende Signal wiederherzustellen und unter Verwendung eines lokalen Taktgebers und neuer Übertragungsausgleichsverschaltung erneut zu übertragen, und kann üblicherweise zu diesem Zweck eine wohlbekannte Verschaltung einsetzen, wie Phasenregelkreise. Ein Retimer kann ferner Sender- und Empfängerverschaltung einschließlich eines oder mehrerer Verstärkerschaltkreise, sowie verschiedene Arten von wohlbekannter Signalaufbereitungsverschaltung umfassen, die verwendet wird, um den Ansteuerungspegel eines empfangenen Signals zu erhöhen. Eine derartige Retimerverschaltung ist Fachleuten auf dem Fachgebiet der Hochgeschwindigkeitszwischenverbindungen wohlbekannt und dementsprechend werden hierin keine weiteren Details gezeigt oder besprochen.
  • Jeder Retimer 215, 245a, 245b kann einen vorgeschalteten Pfad und einen nachgeschalteten Pfad aufweisen. In einigen Implementierungen kann ein Retimer zwei Pseudoanschlüsse enthalten und die Pseudoanschlüsse können ihre jeweilige nachgeschaltete/vorgeschaltete Ausrichtung dynamisch ermitteln. Ferner können die Retimer 215, 245a, 245b Betriebsmodi einschließlich eines Weiterleitungsmodus und eines Ausführungsmodus unterstützen. Die Retimer 215, 245a, 245b können in einigen Fällen Daten decodieren, die auf der Teilverbindung empfangen wurden, und die Daten erneut codieren, die er auf ihrer anderen Teilverbindung nachgeschaltet weiterzuleiten hat. Als solche können Retimer den empfangenen Bitstrom vor einem erneuten Generieren und erneuten Übertragen des Bitstroms an eine andere Vorrichtung oder gar einen anderen Retimer (oder Redriver oder Repeater) erfassen. In einigen Fällen kann der Retimer einige Werte in den Daten, die er empfängt, modifizieren, wie beim Verarbeiten und Weiterleiten einer geordneten Datenmenge. Zusätzlich kann ein Retimer möglicherweise eine beliebige Breitenoption als seine maximale Breite unterstützen, wie eine Gruppe von Breitenoptionen, die durch eine Spezifikation wie PCIe definiert ist.
  • Mit wachsenden Datenraten von seriellen Zwischenverbindungen (z. B. PCIe, UPI, USB usw.) werden Retimer vermehrt eingesetzt, um die Kanalreichweite zu erweitern. Mehrere Retimer können für eine noch längere Kanalreichweite hintereinandergeschaltet werden. Es wird erwartet, dass sich eine Kanalreichweite mit steigenden Signalgeschwindigkeiten üblicherweise im Allgemeinen verringert. Dementsprechend kann mit der Beschleunigung von Zwischenverbindungstechnologien die Verwendung von Retimern üblicher werden. Als ein Beispiel, wenn PCIe Gen-4 mit seinen 16 GT/s anstatt von PCIe Gen-3 (8 GT/s) übernommen wird, kann die Verwendung von Retimern in PCIe-Zwischenverbindungen steigen, wie es auch in anderen Zwischenverbindungen bei steigenden Geschwindigkeiten der Fall sein kann.
  • In einer Implementierung kann ein gemeinsamer BGA-Fußabdruck (Kugelgitteranordnungs-Fußabdruck) für Retimer auf Grundlage von PCI Express Gen-4 (16 GT/s) definiert sein. Ein derartiges Design kann zumindest einige der beispielhaften Nachteile beheben, die man in herkömmlichen Retimervorrichtungen der PCIe Gen-3 (8 GT/s) findet, sowie einige der mit der Einführung von PCIe Gen-4 auftauchende Probleme. Ferner wird erwartet, dass die Anzahl von Retimer-Anbietern und das Volumen für PCIe Gen-4 steigt. Aufgrund von Signalverlusten aus der verdoppelten Datenrate (von 8 GT/s auf 16 GT/s) ist die erreichbare Zwischenverbindungslänge in Gen-4 wesentlich verringert. In dieser und anderen beispielhaften Zwischenverbindungstechnologien können Retimer bei wachsenden Datenraten dadurch eine erhöhte Nützlichkeit aufweisen, da sie verwendet werden können, um Kanallängen dramatisch zu vergrößern, die andernfalls durch die erhöhte Datenrate eingeschränkt wären.
  • Obwohl er als separat von der vorgeschalteten Komponente und der nachgeschalteten Komponente gezeigt ist, kann der Retimer ein Teil der vorgeschalteten oder nachgeschalteten Komponenten sein, platinenintern zu den vorgeschalteten oder nachgeschalteten Komponenten oder gehäuseintern zu der nachgeschalteten Komponente.
  • Eine vorgeschaltete Komponente 205 und eine nachgeschaltete Komponente 210 können in einigen Fällen direkt ohne auf der Verbindung zwischen den zwei Komponenten 205, 210 angeordneten Retimern, Redrivern oder Repeatern verbunden sein. In anderen Fällen kann ein Retimer (z. B. 215) vorgesehen sein, um die Verbindung zu erweitern, die die vorgeschaltete Komponente 205 und die nachgeschaltete Komponente 210 verbindet, wie in 2A veranschaulicht ist. In noch anderen Implementierungen können zwei oder mehr Retimer (z. B. 245a, 245b) in Reihe vorgesehen sein, um eine Verbindung weiter zu erweitern, die die vorgeschaltete Komponente 235 und die nachgeschaltete Komponente 240 verbindet. Beispielsweise kann eine bestimmte Zwischenverbindungstechnologie oder ein bestimmtes Zwischenverbindungsprotokoll eine maximale Kanallänge angeben, und ein oder mehrere Retimer (z. B. 245a, 245b) können vorgesehen sein, um die physische Länge des Kanals zu erweitern, der zwei Vorrichtungen 235 und 240 verbindet. Beispielsweise kann ein Vorsehen von Retimern 245a, 245b zwischen der vorgeschalteten Komponente 235 und der nachgeschalteten Komponente 240 eine Verbindung mit einem Dreifachen der Maximallänge ermöglichen, die für eine Verbindung ohne diese Retimer, z. B. 245a, 245b, angegeben ist, unter anderen beispielhaften Implementierungen.
  • In Ausführungsformen kann der Mechanismus zur Energieeinsparung in seriellen Zwischenverbindungen wie PCIe implementiert sein, was ermöglicht, dass der Energieverbrauch zum Bandbreitenverbrauch proportional ist, ohne eine Ausfallzeit der Verbindung zu verursachen. 2A-B zeigen typische PCIe-basierte Systeme, die die hierin beschriebenen Mechanismen implementieren können. Der nachgeschaltete Anschluss (DSP) einer vorgeschalteten Komponente 205 oder 235 (z. B. einer CPU) ist mit dem vorgeschalteten Anschluss (USP) einer nachgeschalteten Komponente 210 oder 240 (z. B. einer Netzwerkkarte, einem Speicher oder einem Beschleuniger) und in einigen Implementierungen durch einen oder mehrere Retimer 215, 245a, 245b verbunden. Der USP und der DSP steuern die Verbindungsbreite und die Retimer folgen der Führung des USP oder DSP. Die Retimer sind ausgelegt, die Token zu verstehen, die ausgetauscht werden, und verstehen, wie sich die Bahnen ändern.
  • Unter Bezugnahme auf das Diagramm 300 von 3 ist eine beispielhafte Verbindungstrainings-Zustandsmaschine gezeigt, wie die PCIe-Verbindungstrainings- und Status-Zustandsmaschine (LTSSM). 3 ist ein schematisches Diagramm, das eine beispielhafte Verbindungstrainings-Zustandsmaschine 300 veranschaulicht, die einen teilweisen LO-Zustand (PLO-Zustand) enthält, nach Ausführungsformen der vorliegenden Offenbarung. Für ein System, das eine PHY nach einem bestimmten Protokoll einsetzt, um mehrere alternative Protokolle zu unterstützen (d. h., um über der PHY zu laufen), können geordnete Mengen definiert werden, die zwischen zwei oder mehr Vorrichtungen auf einer Verbindung in Zusammenhang mit dem Training der Verbindung zu kommunizieren sind. Beispielsweise können Trainingssatz(TS)-geordnete Mengen (OSes) gesendet werden. In einer Implementierung, die PCIe als das PHY-Protokoll einsetzt, können die TS-geordneten Mengen eine geordnete Menge TS1 und eine TS2 enthalten, unter anderen beispielhaften geordneten Mengen. Die geordneten Mengen und Trainingsfolgen, die während des Verbindungstrainings gesendet werden, können auf dem bestimmten Verbindungstrainingszustand beruhen, wobei verschiedene Verbindungstrainingszustände eingesetzt werden, um entsprechende Verbindungstrainingsaktivitäten und Ziele zu erreichen.
  • Die verbindungstrainings-Zustandsmaschine 300 kann eine Verbindungstrainings- und Zustands-Statusmaschine (LTSSM) veranschaulichen, die für verschiedene Zustände einer Mehrbahnverbindung repräsentativ ist, wie die auf dem PCIe-Protokoll beruhende. In einem Beispiel, wie in 3 veranschaulicht ist, kann eine Verbindungstrainings-Zustandsmaschine 300 derartige Zustände wie einen Rücksetzzustand, einen Erkennungszustand (um z. B. einen Abschluss am entfernten Ende (z. B. eine andere mit den Bahnen verbundene Vorrichtung) zu erkennen, einen Abfragezustand (um z. B. eine Symbolsperre einzurichten und eine Bahnenpolarität zu konfigurieren), einen Konfigurationszustand (oder„Konfig‟-Zustand) (um z. B. die physischen Bahnen einer Verbindung in eine Verbindung mit einer bestimmten Bahnenbreite, Bahnennummerierung usw. zu konfigurieren, wobei eine Bahn-zu-Bahn-Entzerrung und andere Verbindungskonfigurationsaktivitäten durchgeführt werden), einen Loopbackzustand (um z. B. Testen, Fehlerisolierung, Ausgleich und andere Aufgaben durchzuführen), einen Wiederherstellungszustand (z. B. zur Verwendung, um die Datenrate des Betriebs zu ändern, eine Bitsperre, eine Symbolsperre oder eine Blockausrichtung erneut einzurichten, eine Bahn-zu-Bahn-Entzerrung durchzuführen usw.) unter anderen Zuständen enthalten, die eingesetzt werden können, um die Verbindung in einen aktiven Verbindungszustand (z. B. LO 304) zu bringen. Die LTSSM 300 veranschaulicht auch verschiedene Energiezustände: vollständig aktiver Zustand (LO 304), elektrischer Leerlauf- oder Standbyzustand (LOs 306), L1 (Standby-/Schlummerzustand mit niedrigerer Energie 308), L2 (Niedrigenergie-Schlafzustand 310) und L3 (Zustand mit ausgeschalteter Verbindung). Die LTSSM 300 veranschaulicht auch den teilweisen LO-Zustand (PLO) 302, der der hierin beschriebene Teilzustand ist.
  • In einem Beispiel können Trainingsfolgen, die in einer (oder mehreren) bestimmten der Verbindungstrainingszustände zu senden sind, definiert sein, um die Verhandlung eines bestimmten der unterstützten Protokolle einer bestimmten Vorrichtung aufzunehmen. Der bestimmte Trainingszustand kann zum Beispiel ein Trainingszustand sein, der einem Eintritt in einen aktiven Verbindungszustand vorangeht, oder ein Trainingszustand, in dem die Datenrate hochskaliert werden kann (z. B. über die von mindestens einem der unterstützten Protokolle hinaus), wie zum Beispiel ein PCIe-Zustand, in dem eine Datenrate von einer Gen1-Geschwindigkeit auf Gen3- und höhere Geschwindigkeiten übergeht, unter anderen Beispielen. In der beispielhaften Implementierung, die in 3 gezeigt ist, kann zum Beispiel ein Konfigurationszustand (z. B. 312) eingesetzt und erweitert werden, um eine Verhandlung eines bestimmten von mehreren Protokollen parallel zu den Verbindungstrainingsaktivitäten zu ermöglichen, die nativ im Trainingszustand definiert sind (z. B. Ermittlung einer Bahnenbreite, Bahnennummerierung, Entzerrung, Ausgleich usw.). Beispielsweise können bestimmte Trainingsfolgen für den Trainingszustand definiert sein und diese Trainingsfolgen können erweitert werden, um zu ermöglichen, dass Informationen kommuniziert werden (z. B. in einem oder mehreren Feldern oder Symbolen der geordneten Menge), um zu identifizieren, ob jede Vorrichtung auf der Verbindung mehrere Protokolle unterstützt (z. B. mindestens einen Protokollstapel abgesehen von dem Protokollstapel der Bitübertragungsschicht und der entsprechenden Verbindungstrainings-Zustandsmaschine), die bestimmten Protokolle zu identifizieren, die jede Vorrichtung unterstützt, und ein oder mehrere Protokolle vereinbaren, die über die bestimmte PHY einzusetzen sind (z. B. durch einen Handshake, der durch die Übertragung dieser Trainingsfolgen über die Verbindung erzielt wird (sowohl in die vorgeschaltete als auch in die nachgeschaltete Richtung)).
  • In einem Beispiel kann eine PCIe-Bitübertragungsschicht eingesetzt werden, um mehrere unterschiedliche Protokolle zu unterstützen. Dementsprechend kann ein bestimmter Trainingszustand in einer PCIe-LTSSM für die Verhandlung von Protokollen zwischen Vorrichtungen auf einer Verbindung eingesetzt werden. Wie oben angemerkt, kann die Protokollermittlung sogar stattfinden, bevor die Verbindung auf einen aktiven Zustand (z. B. LO 304) mit der niedrigsten unterstützten Datenrate (z. B. der PCIe-Gen-1-Datenrate) trainiert wird. In einem Beispiel kann der PCIe-Konfig-Zustand verwendet werden. Tatsächlich kann die PCIe-LTSSM verwendet werden, um das Protokoll durch Verwenden von modifizierten PCIe-Trainingsmengen (z. B. TS1 und TS2) nach der Verhandlung über die Verbindungsbreite und (zumindest teilweise) parallel zur während des Konfig-Zustands durchgeführten Bahnennummerierung zu verhandeln.
  • Um die hierin beschriebenen Verbindungsbreiten-Anpassungsmechanismen zu unterstützen, ist die LTSSM mit einem Zustand erweitert, der hierin als LOp 302 bezeichnet wird, wie in 3 gezeigt. Der Eintritt in den LOp-Zustand 302 findet von LO statt, wenn ein Anschluss die Verbindung mit einer engeren Breite als die maximal konfigurierte Verbindungsbreite betreiben will, die bei LO in einer Richtung verhandelt wurde. Während sie sich in diesem neuen Zustand befindet, fährt die Verbindung fort, auf die gleiche Weise wie in LO zu arbeiten, aber mit einer engeren Breite in mindestens einer Richtung, während sich die verbleibenden Bahnen im elektrischen Leerlauf (EI) befinden, ähnlich wie L1 308. Falls es PLL(s) (Phasenregelkreise) gibt, die nur mit den Bahnen assoziiert sind, die sich im EI befinden, können sie ebenfalls ausgeschaltet werden. Mehr Bahnen können im LOp 302 zum EI hinzugefügt werden und einige der Bahnen, die sich im EI befinden, können auch eingeschaltet werden. Falls die Verbindung in beiden Richtungen mit der maximal konfigurierten Verbindungsbreite arbeitet, tritt die LTSSM in den Zustand LO 304. Falls eine Verbindungs-Aufwärtskonfigurationsbemühung in LOp die Zeit überschreitet, tritt die Verbindung in die Wiederherstellung ein, was schließlich alle der Bahnen einschaltet. Immer, wenn die Verbindung in die Wiederherstellung tritt, werden alle konfigurierten Bahnen der Verbindung (in beiden Richtungen) erneut trainiert und die Verbindung tritt in den LO-Zustand 304 in seiner vollständig konfigurierten Breite ein.
  • Als ein Beispiel kann eine bidirektionale Mehrbahnverbindung 16 Bahnen enthalten. Zu irgendeinem Zeitpunkt können 4 Bahnen (0-3) aktiv sein, während sich 12 Bahnen in einem Niedrigenergie- oder Schlafmodus befinden. Falls das System 4 zusätzliche Bahnen hochfahren will, werden 4 Züge erneut trainiert. Dann, wenn es eine Pause in den Bahnen 0-3 gibt, wird allen 8 Bahnen ein Paket oder Token gesendet, um alle 8 Bahnen dazu zu bringen, sich auf die gleiche Weise zu verhalten. Die 8 Bahnen können ebenfalls abwärtskonfiguriert werden, um zu 4 Bahnen zurückzukehren.
  • 4 ist ein Diagramm eines Verbindungsverwaltungs-Sicherungsschichtpakets (Verbindungsverwaltungs-DLLP), das eine beispielhafte Codierung zum Ermöglichen teilweiser Verbindungsbreiten in einer oder mehreren Richtungen einer bidirektionalen Verbindung nach Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Eine Verbindungsbreiten-Abwärtskonfiguration von LO oder LOp kann durch ein DLLP verhandelt werden, wie in 4 gezeigt. Für eine 8-b-/10-b- und 128-b-/130-b-Codierung werden DLLPs periodisch als ein separates Paket gesendet. Für PCIe 6.0 sind DLLPs Teil jedes Flits und werden daher häufiger gesendet. Der vorgeschlagene Mechanismus funktioniert für alle Codierungen. Ein besonderes Verbindungsverwaltungs-DLLP ist definiert, das alle mit LOp verbundenen Befehle enthält. LOp.Cmd definiert verschiedene LOp-Befehle sowie die entsprechenden Reaktionen, einschließlich der Fähigkeit der Komponente (ob sie LOp unterstützt und ob sie die allgemein asymmetrische LOp- oder eine symmetrische LOp-Version unterstützt, wobei beide Richtungen versuchen, die gleiche Breite zu haben). Eine Komponente kann eine LOp-Anforderung mit Ack oder Nak beantworten. Es werden zwei Codierungen für die Breite in beiden Richtungen (USP, DSP) bereitgestellt. Ein Anschluss kann einen LOp in irgendeiner Richtung anfordern.
  • 5A-5B sind Prozessablaufdiagramme zur Verhandlung von teilweisen Verbindungsbreitenzustandsfähigkeiten zwischen zwei Verbindungspartnern. 5A-5B zeigen, wie die LOp-Fähigkeit zwischen zwei Anschlüssen verhandelt wird, die durch eine bidirektionale Mehrbahnverbindung miteinander verbunden sind, wie eine Verbindung, die ein PCIe-Protokoll verwendet. 5A ist ein Prozessablaufdiagramm 500 für eine LOp-Zustands-Verhandlung zwischen zwei Verbindungspartnern. Ein erster Verbindungspartner, wie ein nachgeschalteter Anschluss (DSP) einer vorgeschaltet verbundenen Vorrichtung oder ein vorgeschalteter Anschluss (USP) einer nachgeschaltet verbundenen Vorrichtung, kann einem zweiten Verbindungspartner eine Fähigkeit ankündigen, im LOp-Zustand zu arbeiten, indem er seine LOp-unterstützte Anfrage sendet, was seine Fähigkeit für symmetrische und/oder asymmetrische teilweise Verbindungsbreiten effektiv ankündigt. (502). Die Ankündigung durch den ersten Verbindungspartner kann einmal während der Verbindungsinitialisierung durchgeführt werden, oder kann periodisch durchgeführt werden. Der erste Verbindungspartner kann periodisch beim zweiten Verbindungspartner nachfragen, ob die LOp-Zustands-Fähigkeit zu aktivieren ist. Beispielsweise kann der DSP oder der USP aus verschiedenen Gründen nicht wünschen, die LOp-Funktion sofort zu aktivieren, aber kann dies weit nach einer Verbindungsinitialisierung oder nach einem stattfindenden Ereignis wünschen. Der erste Verbindungspartner kann ein Verbindungsverwaltungs-Sicherungsschichtpaket (z. B. ein LOp.Cmd-DLLP) mit einer LOp-unterstützt-Codierung sowie einen Hinweis darauf senden, ob symmetrische oder asymmetrische (oder beide) Funktionen fähig sind. In einigen Ausführungsformen impliziert ein Verbindungspartner, der eine Fähigkeit anzeigt, unter Verwendung von asymmetrischen teilweisen Verbindungsbreiten zu arbeiten, dass der Verbindungspartner auch unter Verwendung von symmetrischen teilweisen Verbindungsbreiten arbeiten kann. Deshalb kann das DLLP eine nur symmetrische Fähigkeit oder eine asymmetrische Fähigkeit ankündigen, wobei letztere die Fähigkeit von sowohl symmetrischem als auch asymmetrischem Betrieb anzeigt.
  • Nach Empfangen der LOp-Abfrage vom ersten Verbindungspartner kann der zweite Verbindungspartner mit einer LOp-Anforderungs-Nak antworten, falls der zweite Verbindungspartner LOp nicht unterstützt (oder nicht unterstützen will). (504). Falls eine LOp-Nak vom ersten Verbindungspartner empfangen wird, dann ist LOp auf der Verbindung nicht aktiviert. (506). Die LOp-Nak kann ein DLLP mit einer LOp-Nak-Codierung sein.
  • Falls der erste Verbindungspartner nach einer vorbestimmten Zeitdauer keine Ack/Nak empfängt, kann eine Zeitüberschreitung den ersten Verbindungspartner auffordern, zu erwägen, dass der zweite Verbindungspartner einen LOp-Zustand nicht aktivieren will. Der erste Verbindungspartner kann dann später eine LOp-Fähigkeits-Ankündigung periodisch senden. (508)
  • Falls der zweite Verbindungspartner den LOp-Zustand unterstützt, kann der zweite Verbindungspartner auf die LOp-Anforderungsankündigung des DSP mit einer LOp-Anforderungs-Ack antworten, die in einem Verbindungsverwaltungs-DLLP (z. B. einem LOp.Cmd-DLLP) mit einer LOp-unterstützt-Codierung codiert sein kann. (508). Das heißt, falls der erste Verbindungspartner ein DLLP mit einer LOp-unterstützt-Codierung vom zweiten Verbindungspartner empfängt, dann kann der erste Verbindungspartner dies als eine Bestätigung der LOp-Anforderung ansehen. Die LOp-unterstützt-Codierung kann auch dem ersten Verbindungspartner ankündigen, ob der zweite Verbindungspartner einen symmetrischen oder asymmetrischen teilweisen Verbindungsbreitenbetrieb unterstützt.
  • Falls sowohl der erste als auch der zweite Verbindungspartner LOp unterstützen, sendet der erste Verbindungspartner ein DLLP mit einer LOp-aktiviert-Codierung an den zweiten Verbindungspartner. (510). Genauer kann der erste Verbindungspartner ein DLLP mit LOp-aktiviert senden: symmetrisch, falls mindestens eine Seite eine nur symmetrische Unterstützung für LOp aufweist; oder der DSP kann ein DLLP mit LOp-aktiviert senden: asymmetrisch, falls beide Seiten asymmetrische LOp unterstützen.
  • Der zweite Verbindungspartner kann ein identisches DLLP (z. B. LOp-aktiviert:
    • (a)symmetrisch für alle LOp-aktiviert: (a)symmetrisches DLLP; usw.), das der zweite Verbindungspartner empfängt, an den ersten Verbindungspartner zurück senden. (512). (Der Ausdruck (a)symmetrisch wird hier als Kürzel verwendet, um entweder asymmetrisch oder symmetrisch zu bedeuten.) In einigen Ausführungsformen sendet der zweite Verbindungspartner maximal ein identisches LOp-aktiviert-codiertes DLLP für jedes zurück, das der zweite Verbindungspartner empfängt. Wenn der erste Verbindungspartner ein DLLP mit LOp-aktiviert empfängt: (a)symmetrische Codierung vom zweiten Verbindungspartner, der Initialisierungsprozess ist abgeschlossen und LOp ist auf der Verbindung aktiviert. (514). Falls der erste Verbindungspartner kein DLLP mit einer LOp-aktiviert-Codierung empfängt, kann der erste Verbindungspartner warten oder ein anderes DLLP mit einer LOp-aktiviert-Codierung an den zweiten Verbindungspartner senden.
  • Entweder ein DSP oder ein USP kann eine teilweise Verbindungsbreitenverhandlung initiieren. In Ausführungsformen, falls ein USP eine LOp-Abfrage sendet und empfängt und LOp-Abfrage vom DSP, antwortet der USP mit einer Ack/Nak; während der DSP die vom USP empfangene LOp-Abfrage ignoriert.
  • 5B ist ein Prozessablaufdiagramm 550 für eine Fähigkeitsverhandlung für teilweise Verbindungsbreite nach Ausführungsformen der vorliegenden Offenbarung. Das Diagramm 550 stellt einen beispielhaften Verhandlungsablauf zum Aktivieren teilweiser Verbindungsbreiten zwischen zwei Verbindungspartnern bereit. Der Verbindungspartner, der das anfängliche DLLP gesendet hat, das die teilweise Verbindungsbreitenfähigkeit ankündigt, kann in diesem beispielhaften Prozessablauf als der initiierende Verbindungspartner bezeichnet werden; der Verbindungspartner, der auf die anfängliche Ankündigung antwortet, kann in diesem Beispiel als der antwortende Verbindungspartner bezeichnet werden.
  • Während des Verbindungstrainings oder während eines vorbestimmten Zeitintervalls oder nach Auslösen eines Ereignisses kann ein Verbindungspartner erwarten, ein DLLP mit einer LOp-unterstützt-Codierung vom initiierenden Verbindungspartner zu empfangen. Der antwortende Verbindungspartner wartet eine vorbestimmte Zeitdauer auf das anfängliche DLLP mit einer LOp-unterstützt-Codierung (Ankündigung) vom initiierenden Verbindungspartner. (552). Falls die vorbestimmte Zeitdauer (d. h., eine Zeitüberschreitung eintritt) vor Empfangen einer LOp-unterstützt-Anforderung vom initiierenden Verbindungspartner abläuft, dann wird die teilweise Verbindungsbreite nicht aktiviert. (570).
  • Falls der antwortende Verbindungspartner ein LOp-unterstützt-DLLP vom initiierenden Verbindungspartner empfängt, (556), dann kann der antwortende Verbindungspartner eine Bestätigung (Ack) an den initiierenden Verbindungspartner senden. (558). Die Bestätigung kann ein DLLP mit einer LOp-unterstützt-Codierung sein, die eine ausschließlich symmetrische oder eine asymmetrische teilweise Verbindungsbreitenfähigkeit angibt. (558). In einigen Ausführungsformen kann der antwortende Partner eine negative Bestätigung (Nak) senden, falls der antwortende Partner bestimmt, den Zustand mit teilweiser Verbindungsbreite nicht zu aktivieren. Die Nak kann ein DLLP mit einer LOp-Nak-Codierung sein.
  • Der antwortende Partner kann für eine vorbestimmte Zeitdauer auf einen Empfang eines LOp-aktiviert-codierten DLLP warten. (560). Falls vor dem Empfang des LOp-aktivieren-DLLP vom initiierenden Verbindungspartner eine Zeitüberschreitung eintritt, aber beide Verbindungspartner Acks übertragen haben, dann kann der antwortende Partner die teilweise Verbindungsbreitenfähigkeit als Vorsichtsmaßnahme aktivieren, falls das LOp-aktivieren-DLLP durch einen Fehler verloren ging. (568). Der antwortende Partner kann eine Fehlermeldung an den initiierenden Verbindungspartner, einen Hostprozessor oder eine andere Verbindungsverwaltung melden und anzeigen, dass die teilweise Verbindungsbreitenverhandlung, und kann anzeigen, dass das LOp-aktivieren-DLLP nicht empfangen wurde. (570). Der teilweise Verbindungsbreitenzustand auf der Verbindung würde dann als nicht auf der Verbindung aktiviert angesehen werden. Der initiierende Verbindungspartner kann dann zu einem späteren Zeitpunkt erneut versuchen, den teilweisen Verbindungsbreitenzustand zu aktivieren (z. B. nach einer Fehlerbehandlung oder zu einem vorbestimmten Zeitintervall oder nach einem auslösenden Ereignis). Falls der teilweise Verbindungsbreitenzustand nach einer Zeitüberschreitung (566) bereits aktiviert ist, dann kann die Verbindung im LOp-Zustand verbleiben, ohne weitere Maßnahmen zu treffen (564).
  • Falls der antwortende Verbindungspartner ein DLLP empfängt, das anzeigt, dass der LOp-Zustand aktiviert ist (560), dann kann der antwortende Verbindungspartner eine Bestätigung an den initiierenden Verbindungspartner senden. (562). Die Bestätigung kann ein DLLP mit einer LOp-aktivieren-Codierung sein, ähnlich wie das DLLP mit LOp-aktivieren-Codierung, das vom antwortenden Verbindungspartner bei (560) empfangen wurde. Der LOp-Zustand wird dann als auf der Verbindung aktiviert angesehen. (564).
  • Der initiierende Verbindungspartner kann ein DSP oder ein USP sein; und der antwortende Verbindungspartner kann ein DSP oder ein USP sein.
  • Auf die anfängliche Verhandlung folgend, um einen Zustand mit teilweiser Verbindungsbreite auf der Verbindung zwischen zwei Verbindungspartnern zu aktivieren, können die Verbindungspartner dann die Verbindung aufwärts oder abwärts konfigurieren. 6A-6C sind Prozessablaufdiagramme dafür, wie ein Anschluss die Verbindung neu konfigurieren kann. 6A ist ein Prozessablaufdiagramm 600 zum Abwärtskonfigurieren einer bidirektionalen Mehrbahnverbindung. Das Prozessablaufdiagramm 600 ist anwendbar, wenn ein Anschluss von LO in LOp treten will oder wenn sich der Anschluss in LOp befindet und die Verbindung weiter abwärts konfigurieren will. Das Prozessablaufdiagramm 600 stellt Prozessabläufe bereit, falls der initiierende Verbindungspartner ein DSP oder ein USP ist.
  • Bei 602 ermittelt der initiierende Anschluss, dass er die Verbindung in einer Richtung abwärts konfigurieren will. Ein initiierender Anschluss, der die betriebliche Verbindungsbreite in einer beliebigen Richtung (d. h. einer Senderichtung oder einer Empfangsrichtung) abwärts konfigurieren will, kann eine Nachricht an einen antwortenden Anschluss senden, um eine gewünschte Verbindungsbreite anzuzeigen. (604). Beispielsweise kann ein initiierender Anschluss ein LOp-Verbindungsverwaltungs-DLLP mit LOp.Cmd = LOp-Anforderung nach einer (a)symmetrischen Verbindungsbreite mit der bzw. den gewünschten Breite(n) in jeder Richtung an den antwortenden Anschluss senden und wartet auf eine Antwort (Ack oder Nak).
  • Falls eine LOp-Anforderungs-Nak-Antwort empfangen wird (624), ist die Abwärtskonfigurationsanforderung vom antwortenden Anschluss abgelehnt worden und der Anforderungsprozess endet. (628). Die Verbindung bleibt im aktuellen Energiezustand oder der (teilweisen) Verbindungsbreite oder tritt in eine Wiederherstellung ein. Falls eine Verbindung von LO in die Wiederherstellung oder einen Niedrigenergiezustand tritt, während die Verbindungsbreiten-Abwärtskonfigurationsanforderung nicht abgeschlossen ist (626), wird der gesamte Prozess unterdrückt (628). Auch wenn sich die Verbindung im LOp-Zustand befindet, führt ein beliebiger Übergang in die Wiederherstellung die Verbindung bei Verlassen der Wiederherstellung in den LO-Zustand mit vollständig konfigurierter Breite zurück.
  • Falls eine LOp-Anforderungs-Ack-Antwort empfangen wird, (612), kann die Verbindung auf einen Betrieb unter Verwendung der reduzierten Verbindungsbreite neu konfiguriert werden (610, 612, 614, 616). Jeder Anschluss wartet bis zur nächsten geplanten SKP-OS (SKiP-geordneten Menge). Der Anschluss sendet eine Nachricht, die die Änderung plant (610). Der Anschluss kann beispielsweise ein LOp-Verbindungsverwaltungs-DLLP mit einem LOp aus der nächsten Block-Codierung in einem Flit des aktuellen Datenstroms vor einer geplanten SKP-OS senden. Es ist anzumerken, dass dieser Flit nicht der letzte Flit vor der SKP-OS sein muss. Der Anschluss sendet SKP-OS auf den Bahnen, die aktiv bleiben werden, und eine geordnete Menge für elektrischen Leerlauf (EIOS) auf den Bahnen, die in den elektrischen Leerlauf (EI) gehen werden. (612). Dann kann der Anschluss Daten auf aktiven Bahnen und EIOS auf Bahnen im elektrischen Leerlauf senden (614). Deshalb gibt es keine Stillstandzeit der Verbindung zum Abwärtskonfigurieren der Verbindungsbreite. Die LTSSM kann von LOp übergehen, falls sie sich in LO befand, nachdem die Verbindung mit der neuen Verbindungsbreite arbeitet. (616).
  • Es ist möglich, dass beide Anschlüsse unabhängig voneinander ein LOp-Verbindungsverwaltungs-DLLP mit LOp.Cmd =,LOp-Anforderung nach (a)symmetrischer Verbindungsbreite' mit der gewünschten Breite bzw. den gewünschten Breiten in jeder Richtung senden, ohne die Anforderung des Verbindungspartners empfangen zu haben. In diesem Fall setzt sich die Anforderung des DSP durch und der USP muss antworten, während der DSP die Anforderung des USP ignoriert. In 6A ist diese Bedingung folgendermaßen veranschaulicht: Falls eine LOp-Anforderung empfangen wird und falls der Anschluss der USP ist, (622) dann sendet der USP eine LOp-Anforderungs-Ack/Nak, um dem DSP den Vortritt zu lassen oder um die Anforderung zu unterdrücken. (624). Falls der Anschluss ein DSP ist, (622) dann wartet der Anschluss auf die LOp-Anforderungs-Ack/Nak vom USP (618) als Reaktion auf die ursprüngliche Anforderung bei (604) und wird von dort tätig, indem er beginnt, die Verbindung neu zu konfigurieren, auf eine Zeitüberschreitung wartet oder die Anforderung unterdrückt (als Reaktion auf ein Empfangen einer Nak).
  • 6B ist ein Prozessablaufdiagramm 640 zum Aufwärtskonfigurieren einer bidirektionalen Mehrbahnverbindung. 6C ist ein Prozessablaufdiagramm 670 zum Ändern eines Verbindungszustands in einen Zustand mit teilweiser Verbindungsbreite nach Ausführungsformen der vorliegenden Offenbarung. 6B und 6C werden gemeinsam beschrieben. In 6B-6C hat der Anschluss vor, von LOp in LO überzugehen, in LOp aufwärts zu konfigurieren, oder eine oder mehrere Bahnen im Leerlauf unterbrechen die Rauschunterdrückung in LOp. (642). Die teilweise Verbindungsbreiten-Aufwärtskonfiguration kann von einem beliebigen Verbindungspartner angefordert werden, egal, wer die Abwärtskonfigurationsanforderung(en) initiiert hat.
  • Der Prozessablauf 640 behandelt die Sendeseite für asymmetrische Zustände mit teilweiser Verbindungsbreite im Vergleich zur Empfangsseite verschieden. Auf der TX-Seite: Eine Senderseite, die eine Aufwärtskonfiguration anfordert, muss den Aufwärtskonfigurationsprozess nicht unter Verwendung eines DLLP initiieren. Die Bahnen, die wieder zu aktivieren sind, werden einem Handshake im Wiederherstellungsstil unterzogen (Aufwecken der Bahnen, Erwerben einer Bitsperre, Blockausrichtung, Stabilisieren der Bahnen usw.), während der normale Verkehrsfluss auf den aktiven Bahnen fortfährt. Der Sender kann zum Beispiel geordnete Mengen der Trainingsfolge 1 (TS1-OS) auf TX-Bahnen im Leerlauf, die aktiv werden sollen, und alle 32 TS1-OS eine EIEOS senden. (646). Während dieser Zeit fahren aktive Bahnen fort, Datenblöcke zu senden. Der Sender kann wie geplant SKP-OS auf allen aktiven und aktiv werden sollenden Bahnen senden, wie geplant. (648). Nachdem der Sender ein LOp-DLLP mit einem Hinweis empfängt, dass ein Training auf LOp-Aufwärts-Konfig abgeschlossen ist (LOp.Cmd = LOp-Training auf LOp-Aufwärts-Konfig abgeschlossen) (650) kann der Anschluss ein DLLP senden, das die LOp-Änderung im nächsten Block plant (LOp.Cmd = „L0p-Änderung ab nächstem Block). (652). Die zu aktivierenden Bahnen werden zur Menge der bereits aktivierten Bahnen hinzugefügt, und der Anschluss sendet auf allen aktiven Bahnen SKP-OS gefolgt vom Datenstrom (654). Danach ist der TX-Handshake abgeschlossen (656).
  • Sobald die erneut aktivierten Bahnen bereit sind, aktiviert und mit den aktiven Bahnen zusammengeführt zu werden, wartet der Anschluss auf die SKP-OS-Grenze, sendet die geplante SKP-OS auf den aktuell aktiven und aktiv zu werdenden Bahnen, gefolgt von einem neuen Datenstrom auf der neuen Verbindungsbreite. Die Erwartung ist, dass der Empfängeranschluss (und Pseudo-Anschluss) bis zu diesem Zeitpunkt bereits über alle Bahnen (vorher aktive und neu reaktivierte Bahnen) entzerrt wurde. Ein Pseudo-Anschluss kann mit einem Bit in der SKP-OS während des Trainingsprozesses eine Erweiterung des erneuten Trainings auf den Bahnen anfordern. Nach Abschluss, falls die Verbindung in beiden Richtungen mit der maximal konfigurierten Breite arbeitet, geht die LTSSM vom LOp-Zustand auf LO über.
  • Auf der Empfänger-Seite: Falls eine asymmetrische Verbindungsbreite unterstützt wird, kann ein Empfänger eine Aufwärtskonfiguration durch Senden eines LOp-Verbindungsverwaltungs-DLLP mit LOp.Cmd = ,LOp-Anforderung einer (a)symmetrischen Verbindungsbreite' mit der bzw. den gewünschten Breite(n) in jeder Richtung anfordern und wartet auf eine Ack. (658). Der Empfänger kann auf ein Empfangen einer vorbestimmten Anzahl von TS1-OS (z. B. 8 aufeinanderfolgende TS1-OS) auf Bahnen, die aktiv werden müssen, und eine Bestätigung warten, dass die Bahnen mit aktiven Bahnen an der Blockgrenze entzerrt sind. (660). Der Empfänger kann ein LOp-DLLP senden, das anzeigt, dass das Aufwärts-Konfig-Training abgeschlossen ist (z. B. LOp.Cmd = Training auf LOp-Aufwärtskonfig abgeschlossen) (662). Falls der Empfänger ein LOp-DLLP empfängt, das anzeigt, dass die LOp-Änderung zu planen ist (z. B. LOp.Cmd = LOp-Änderung ab dem nächsten Block), dann ist der RX-Handshake abgeschlossen. Falls nicht, dann kann der Empfänger eine vorbestimmte Zeitdauer warten (664), bevor er das Training-abgeschlossen-DLLP erneut sendet (LOp.Cmd = Training auf LOp-Aufwärtskonfig abgeschlossen) (662). Die vorbestimmte Zeitdauer kann zum Beispiel 1 µs seit dem Verlassen des S1-Zustands sein.
  • Bei einer symmetrischen Verbindungsbreite kann einer der beiden Anschlüsse den Aufwärtskonfigurationsprozess ohne Senden eines DLLP initiieren. 7 ist ein Swimlane-Diagramm 700, das verschiedene Ausführungsformen zum Verhandeln von Verbindungsbreiten-Neukonfigurationen nach Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Der erste Versuch einer Verbindungsbreiten-Abwärtskonfiguration schlägt fehl, da der Verbindungspartner die Anforderung mit einer Nak beantwortet. Der zweite Versuch schlägt fehl, da die Verbindung in eine Wiederherstellung tritt, bevor die Abwärtskonfiguration abgeschlossen ist. Der dritte Versuch ist erfolgreich: Die zwei Seiten stellen die Anforderung fast gleichzeitig. Daher besteht die Anforderung des DSP nach einer Abwärtskonfiguration auf x4 weiter, die der USP mit einer Ack bestätigt und die Verbindung arbeitet mit einer x4-Breite, während die LTSSM in den Zustand L0_L1p tritt. Danach ist die vom USP initiierte Aufwärtskonfigurationsanforderung, die Verbindung in eine x8 zu führen, erfolgreich, und die Verbindung endet auf einer x8-Breite, während sie sich weiterhin im Zustand L0_L1p befindet.
  • Die ersten zwei Beispiele 702, 704 veranschaulichen erfolglose Verbindungsbreitenanpassungen. Am Anfang eine x16-Verbindungsbreite, die in LO arbeitet. Bei 702 sendet der DSP ein PLO-Anforderungstoken an den USP, um von x16-LO auf x8-PLO überzugehen. Der USP antwortet mit einer NAK, was die Anforderung beendet. Gleichermaßen sendet der DSP bei 704 ein PLO-Anforderungstoken, um von x16-LO auf x8-PLO überzugehen, aber der USP tritt in eine Wiederherstellung ein, was die Anforderung ebenfalls beendet. Falls eine Verbindung von LO in die Wiederherstellung oder einen Niedrigenergiezustand tritt, während die Verbindungsbreiten-Abwärtskonfigurationsanforderung nicht abgeschlossen ist, wird der gesamte Prozess unterdrückt.
  • Bei 706 übertragen beide Verbindungspartner Abwärtskonfigurationsanforderungen. Es ist möglich, dass beide Seiten das PLO-Anforderungstoken unabhängig voneinander senden, ohne das Token des Verbindungspartners empfangen zu haben. Hier fordert der DSP eine Abwärtskonfiguration von x16-LO auf x4-PLO an, während der USP einen Übergang von x16-LO auf x2-PLO anfordert. Die Anforderung des DSP setzt sich durch, und der USP muss antworten (hier antwortet der USP z. B. mit einer ACK), während der DSP die Anforderung des USP ignoriert. Der USP und DSP übertragen jeweils PLO ab den nächsten Block-Codierungen, gefolgt von EIOS auf den oberen 12 Bahnen, einer Steuerung oder SKP-OS auf den unteren 4 Bahnen, EI auf den Bahnen 4-15 und einen Datenstrom auf den Bahnen 0-3.
  • Bei 708 will ein Anschluss von x4-PLO auf x8-PLO aufwärts konfigurieren. Beide Anschlüsse führen Folgendes durch:
    • 1) EIEOS wird auf den Bahnen 4-7 übertragen, gefolgt von TS1 auf den Bahnen 4-7 zum Verbindungstraining. Normaler Verkehr wird auf den Bahnen 0-3 übertragen, und EI wird auf den Bahnen 8-15 übertragen (die im Leerlauf zu bleiben haben).
    • 2) TS2s (mit EIEOS) werden auf den Bahnen 4-7 übertragen, um anzuzeigen, dass die Verbindung bereit ist, normaler Verkehr wird auf den Bahnen 0-3 und EI auf den Bahnen 8-15 übertragen.
    • 3) EDS auf den Bahnen 0-3, um ein Ende dieses Datenstroms zu kennzeichnen. TS2 auf den Bahnen 4-7, EI auf 8-15.
    • 4) SKIP-OS, SDS und Datenstrom auf allen aktiven Bahnen 0-7, während EI auf 8-15 fortgesetzt wird.
  • Unter Bezugnahme auf 8 wird eine Ausführungsform einer Fabric veranschaulicht, die aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten miteinander verbinden. Ein System 800 enthält einen Prozessor 805 und Systemarbeitsspeicher 810, die an einen Steuerungsknoten 815 gekoppelt sind. Der Prozessor 805 enthält ein beliebiges Verarbeitungselement, wie einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 805 ist durch einen Front Side Bus (FSB) 806 an den Steuerungsknoten 815 gekoppelt. In einer Ausführungsform ist der FSB 806 eine serielle Punkt-zu-Punkt-Zwischenverbindung wie unten beschrieben. In einer anderen Ausführungsform enthält die Verbindung 806 eine serielle, differenzielle Zwischenverbindungsarchitektur, die mit verschiedenen Zwischenverbindungsstandards konform ist.
  • Der Systemarbeitsspeicher 810 enthält eine beliebige Arbeitsspeichervorrichtung, wie Arbeitsspeicher mit wahlfreiem Zugriff (RAM), nichtflüchtigen (NV) Arbeitsspeicher oder einen anderen Arbeitsspeicher, auf den Vorrichtungen im System 800 zugreifen können. Der Systemarbeitsspeicher 810 ist durch eine Arbeitsspeicherschnittstelle 816 an den Steuerungsknoten 815 gekoppelt. Beispiele einer Arbeitsspeicherschnittstelle enthalten eine Arbeitsspeicherschnittstelle mit doppelter Datenrate (DDR), eine Zweikanal-DDR-Arbeitsspeicherschnittstelle und eine dynamische RAM-Arbeitsspeicherschnittstelle (DRAM-Arbeitsspeicherschnittstelle).
  • In einer Ausführungsform ist der Steuerungsknoten 815 ein Rootknoten, ein Rootkomplex oder eine Rootsteuerung in einer Peripheral-Component-Interconnect-Express-Zwischenverbindungshierarchie (PCIe- oder PCIE-Zwischenverbindungshierarchie). Beispiele von Steuerungsknoten 815 enthalten einen Chipsatz, einen Arbeitsspeichersteuerungsknoten (MCH), eine Northbridge, einen Zwischenverbindungssteuerungsknoten (ICH), eine Southbridge und eine Rootanschlusssteuerung/einen Rootanschlussknoten. Häufig bezeichnet der Begriff Chipsatz zwei physisch trennbare Steuerungsknoten, d. h. einen Arbeitsspeichersteuerungsknoten (MCH), der an einen Zwischenverbindungssteuerungsknoten (ICH) gekoppelt ist. Es ist anzumerken, dass aktuelle Systeme oft den MCH integriert in den Prozessor 805 enthalten, während die Steuerung 815 mit E/A-Vorrichtungen auf ähnliche Weise wie oben beschrieben zu kommunizieren hat. In einigen Ausführungsformen wird Peer-zu-Peer-Routing optional durch den Rootkomplex 815 unterstützt.
  • Hier ist der Steuerungsknoten 815 durch eine serielle Verbindung 819 an einen Switch/eine Brücke 820 gekoppelt. Eingabe/Ausgabe-Module 817 und 821, die auch als Schnittstellen/Anschlüsse 817 und 821 bezeichnet werden können, enthalten/implementieren einen geschichteten Protokollstapel, um eine Kommunikation zwischen dem Steuerungsknoten 815 und dem Switch 820 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen an den Switch 820 gekoppelt werden.
  • Der Switch/die Brücke 820 leitet Pakete/Nachrichten von einer Vorrichtung 825 aufwärts, d. h. in einer Hierarchie zu einem Rootkomplex nach oben weiter, an den Steuerungsknoten 815 und abwärts, d. h. in einer Hierarchie weg von einer Rootanschlusssteuerung nach unten, vom Prozessor 805 oder vom Systemarbeitsspeicher 810 an die Vorrichtung 825. Der Switch 820 wird in einer Ausführungsform als eine logische Baugruppe mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 825 enthält eine beliebige interne oder externe Vorrichtung oder Komponente, die an ein elektronisches System zu koppeln ist, wie eine E/A-Vorrichtung, eine Netzwerkschnittstellensteuerung (NIC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal-Serial-Bus(USB)-Vorrichtung, einen Scanner und andere Eingabe/Ausgabe-Vorrichtungen. Eine solche Vorrichtung wird oft im PCIe-Jargon als ein Endpunkt bezeichnet. Obwohl nicht spezifisch gezeigt, kann die Vorrichtung 825 eine PCIe-zu-PCI/PCI-X-Brücke enthalten, um ältere PCI-Vorrichtungen oder PCI-Vorrichtungen einer anderen Version zu unterstützen. Endpunktvorrichtungen in PCIe werden oft als alt, PCIe oder rootkomplexintegrierte Endpunkte klassifiziert.
  • Außerdem ist ein Grafikbeschleuniger 830 durch eine serielle Verbindung 832 an den Steuerungsknoten 815 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 830 an einen MCH gekoppelt, der an einen ICH gekoppelt ist. Der Switch 820 und dementsprechend die E/A-Vorrichtung 825 ist dann an den ICH gekoppelt. E/A-Module 831 und 818 sollen auch einen geschichteten Protokollstapel implementieren, um zwischen dem Grafikbeschleuniger 830 und dem Steuerungsknoten 815 zu kommunizieren. Ähnlich wie in der obigen Besprechung des MCH kann eine Grafiksteuerung oder der Grafikbeschleuniger 830 selbst in den Prozessor 805 integriert sein.
  • Auf 9 Bezug nehmend ist eine Ausführungsform eines geschichteten Protokollstapels veranschaulicht. Der geschichtete Protokollstapel 900 enthält eine beliebige Form eines geschichteten Kommunikationsstapels, wie einen QuickPath-Interconnect(QPI)-Stapel, einen PCIe-Stapel, einen Hochleitungsrechen-Zwischenverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl die unmittelbar folgende Diskussion in Bezug auf 8-11 in Verbindung mit einem PCIe-Stapel erfolgt, können die gleichen Konzepte auf andere Zwischenverbindungsstapel angewandt werden. In einer Ausführungsform ist der Protokollstapel 900 ein PCIe-Protokollstapel, der eine Transaktionsschicht 905, eine Verbindungsschicht 910 und eine Bitübertragungsschicht 920 enthält. Eine Schnittstelle, wie etwa die Schnittstellen 817, 818, 821, 822, 826 und 831 in 8, können als ein Kommunikationsprotokollstapel 900 dargestellt werden. Eine Darstellung als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle bezeichnet werden, das bzw. die einen Protokollstapel implementiert/enthält.
  • PCI Express verwendet Pakete, um Informationen zwischen Komponenten zu kommunizieren. Pakete werden in der Transaktionsschicht 905 und der Sicherungsschicht 910 gebildet, um die Informationen von der übertragenden Komponente zur empfangenden Komponente zu tragen. Während die übertragenen Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die notwendig sind, um Pakete in diesen Schichten zu handhaben. Auf der Empfangsseite findet der umgekehrte Prozess statt und Pakete werden von ihrer Darstellung in der Bitübertragungsschicht 920 in die Darstellung in der Sicherungsschicht 910 und schließlich (für Transaktionsschichtpakete) in die Form transformiert, die von der Transaktionsschicht 905 der Empfangsvorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform hat die Transaktionsschicht 905 eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur bereitzustellen, wie der Sicherungsschicht 910 und der Bitübertragungsschicht 920. In dieser Hinsicht ist eine primäre Aufgabe der Transaktionsschicht 905 die Zusammenstellung und das Auseinandernehmen von Paketen (d. h. Transaktionsschichtpaketen oder TLPs). Die Übersetzungsschicht 905 verwaltet üblicherweise eine kreditbasierte Ablaufsteuerung für TLPs. PCIe implementiert geteilte Transaktionen, d. h. Transaktionen mit zeitlich getrennten Anforderungen und Antworten, was einer Verbindung erlaubt, anderen Verkehr zu tragen, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Darüber hinaus setzt PCIe eine kreditbasierte Ablaufsteuerung ein. In diesem Schema kündigt eine Vorrichtung eine anfängliche Kreditmenge für jeden der Empfangspuffer in der Transaktionsschicht 905 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie der Steuerungsknoten 815 in 8, zählt die Anzahl der von jedem TLP verbrauchten Kredite. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Kreditgrenze nicht überschreitet. Nach Empfangen einer Antwort wird eine Kreditmenge wiederhergestellt. Ein Vorteil eines Kreditschemas ist, dass die Latenz der Kreditrückgabe die Leistung nicht beeinflusst, vorausgesetzt, die Kreditgrenze wird nicht berührt.
  • In einer Ausführungsform enthält ein Adressraum für vier Transaktionen einen Konfigurationsadressraum, einen Arbeitsspeicher-Adressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Transaktionen im Arbeitsspeicherraum enthalten eine oder mehrere aus Leseanforderungen und Schreibanforderungen, um Daten zu/von einer im Arbeitsspeicher abgebildeten Position zu transferieren. In einer Ausführungsform können Transaktionen im Arbeitsspeicherraum zwei verschiedene Adressformate verwenden, z. B. ein kurzes Adressformat, wie eine 32-Bit-Adresse, oder ein langes Adressformat, wie eine 64-Bit-Adresse. Transaktionen im Konfigurationsraum werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen auf den Konfigurationsraum enthalten Leseanforderungen und Schreibanforderungen. Transaktionen im Nachrichtenraum (oder einfach Nachrichten) sind definiert, um eine bandinterne Kommunikation zwischen PCIe-Vermittlern zu unterstützen.
  • Deshalb stellt in einer Ausführungsform die Transaktionsschicht 905 eine Paketkopfzeile/Nutzlast 906 zusammen. Das Format für aktuelle Paketkopfzeilen/Nutzlasten kann in der PCIe-Spezifikation auf der PCIe-Spezifikationswebsite gefunden werden.
  • Kurz auf 10 Bezug nehmend, wird eine Ausführungsform eines PCIe-Transaktionsdeskriptors veranschaulicht. In einer Ausführungsform ist der Transaktionsdeskriptor 1000 ein Mechanismus zum Tragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 1000 eine Identifikation von Transaktionen in einem System. Andere mögliche Verwendungen enthalten Nachverfolgungsmodifikationen einer Standard-Transaktionsreihenfolge und eine Zuordnung von Transaktionen zu Kanälen.
  • Der Transaktionsdeskriptor 1000 enthält ein globales Kennungsfeld 1002, ein Attributfeld 1004 und ein Kanalkennungsfeld 1006. Im veranschaulichten Beispiel ist ein globales Kennungsfeld 1002 gezeigt, das ein lokales Transaktionskennungsfeld 1008 und ein Quellenkennungsfeld 1010 umfasst. In einer Ausführungsform ist die globale Transaktionskennung 1002 für alle ausstehenden Anforderungen eindeutig.
  • Nach einer Implementierung ist das lokale Transaktionskennungsfeld 1008 ein von einem anfordernden Vermittler erzeugtes Feld und es ist für alle ausstehenden Anforderungen eindeutig, bei denen eine Erfüllung für diesen anfordernden Vermittler notwendig ist. Ferner identifiziert in diesem Beispiel das Quellenkennungsfeld 1010 den Anforderungsvermittler innerhalb einer PCIe-Hierarchie eindeutig. Dementsprechend bietet das lokale Transaktionskennungsfeld 1008 zusammen mit der Quellen-ID 1010 eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne.
  • Das Attributfeld 1004 gibt Eigenschaften und Beziehungen der Transaktion an. In dieser Hinsicht wird das Attributfeld 1004 möglicherweise verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der standardmäßigen Handhabung von Transaktionen ermöglicht. In einer Ausführungsform enthält das Attributfeld 1004 ein Prioritätsfeld 1012, ein reserviertes Feld 1014, ein Ordnungsfeld 1016 und ein No-Snoop-Feld 1018. Hierbei kann das Prioritätsunterfeld 1012 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 1014 ist für die Zukunft oder für eine vom Anbieter definierte Verwendung reserviert. Mögliche Verwendungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, können unter Verwendung des reservierten Attributfeldes implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 1016 verwendet, um optionale, die Art der Ordnung übermittelnde Informationen zu liefern, die Standardordnungsregeln modifizieren können. Nach einem Implementierungsbeispiel bezeichnet ein Ordnungsattribut „0“, dass Standardordnungsregeln anzuwenden sind, wobei ein Ordnungsattribut „1“ eine gelockerte Ordnung bezeichnet, wobei Schreibvorgänge andere Schreibvorgänge in der gleichen Richtung passieren können und Lesevorgangsbeendigungen Schreibvorgänge in der gleichen Richtung passieren können. Das Snoop-Attributfeld 1018 wird verwendet, um zu bestimmen, ob Transaktionen überwacht werden. Wie gezeigt identifiziert das Kanal-ID-Feld 1006 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 910, die auch als Sicherungsschicht 910 bezeichnet wird, agiert als eine Zwischenstufe zwischen der Transaktionsschicht 905 und der Bitübertragungsschicht 920. In einer Ausführungsform besteht eine Aufgabe der Sicherungsschicht 910 darin, einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereitzustellen. Eine Seite der Sicherungsschicht 910 akzeptiert TLPs, die von der Transaktionsschicht 905 zusammengesetzt wurden, wendet eine Paketsequenzkennung 911, d. h., eine Kennungsnummer oder Paketnummer, an, berechnet und wendet einen Fehlererkennungscode, d. h., CRC 912, an und gibt die modifizierten TLPs an die Bitübertragungsschicht 920 zur Übertragung über eine physische an eine externe Vorrichtung ab.
  • Bitübertragungsschicht
  • In einer Ausführungsform enthält die Bitübertragungsschicht 920 einen logischen Unterblock 921 und einen elektrischen Unterblock 922, um ein Paket physisch an eine externe Vorrichtung zu übertragen. Hierbei ist der logische Unterblock 921 für die „digitalen“ Funktionen der Bitübertragungsschicht 921 zuständig. In dieser Hinsicht umfasst der logische Unterblock einen Sendebereich zum Vorbereiten einer ausgehenden Information zur Übertragung durch den physischen Unterblock 922 und einen Empfangsbereich zum Identifizieren und Vorbereiten einer empfangenen Information, bevor sie an die Verbindungsschicht 910 übermittelt wird.
  • Der physische Block 922 enthält einen Sender und einen Empfänger. Der Sender wird vom logischen Unterblock 921 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Vorrichtung überträgt. Der Empfänger wird von einer externen Vorrichtung mit serialisierten Symbolen versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und dem logischen Unterblock 921 geliefert. In einer Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, bei dem Zehn-Bit-Symbole übertragen/empfangen werden. Hierbei werden spezielle Symbole verwendet, um ein Paket mit Frames 923 einzurahmen. Darüber hinaus liefert der Empfänger in einem Beispiel ebenfalls einen Symboltakt, der aus dem eintreffenden seriellen Strom wiederhergestellt wird.
  • Wie oben angegeben, obwohl die Transaktionsschicht 905, die Verbindungsschicht 910 und die Bitübertragungsschicht 920 unter Bezugnahme auf eine konkrete Ausführungsform eines PCIe-Protokollstapels besprochen wurden, ist ein geschichteter Protokollstapel nicht derart beschränkt. Vielmehr kann ein beliebiges geschichtetes Protokoll enthalten/implementiert sein. Als Beispiel enthält ein Anschluss/eine Schnittstelle, der/die als ein geschichtetes Protokoll repräsentiert ist: (1) eine erste Schicht, um Pakete zusammenzustellen, d. h. eine Transaktionsschicht; eine zweite Schicht, um Pakete in einer Reihenfolge zusammenzustellen, d. h. eine Verbindungsschicht; und eine dritte Schicht, um die Pakete zu übertragen, d. h. eine Bitübertragungsschicht. Als ein konkretes Beispiel wird ein geschichtetes Common-Standard-Interface-Protokoll (CSI-Protokoll) eingesetzt.
  • Als Nächstes wird unter Bezugnahme auf 11 eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Fabric veranschaulicht. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung dargestellt ist, ist eine serielle Punkt-zu-Punkt-Verbindung nicht derart beschränkt, da sie einen beliebigen Sendepfad zum Übertragen von seriellen Daten enthält. In der dargestellten Ausführungsform umfasst eine grundlegende PCIe-Verbindung zwei differenziell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 1106/1111 und ein Empfangspaar 1112/1107. Dementsprechend umfasst eine Vorrichtung 1105 eine Sendelogik 1106 zum Übertragen von Daten an eine Vorrichtung 1110, und eine Empfangslogik 1107 zum Empfangen von Daten von der Vorrichtung 1110. Anders ausgedrückt sind zwei Sendepfade, d. h., Pfade 1116 und 1117, und zwei Empfangspfade, d. h., Pfade 1118 und 1119, in einer PCIe-Verbindung enthalten.
  • Ein Sendepfad bezieht sich auf einen beliebigen Pfad zum Übertragen von Daten, wie z. B. eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie z. B. der Vorrichtung 1105 und der Vorrichtung 1110, wird als eine Verbindung, wie beispielsweise die Verbindung 1115, bezeichnet. Eine Verbindung kann eine Bahn unterstützen - jede Bahn repräsentiert einen Satz von differenziellen Signalpaaren (ein Paar zum Senden, ein Paar zum Empfangen). Zur Bandbreitenskalierung kann eine Verbindung mehrere durch xN bezeichnete Bahnen aggregieren, wobei N eine beliebige unterstützte Verbindungsbreite, wie z. B. 1, 2, 4, 8, 12, 16, 32, 64 oder breiter ist.
  • Ein differenzielles Paar bezieht sich auf zwei Sendepfade, wie die Leitungen 1116 und 1117, um differenzielle Signale zu übertragen. Wenn zum Beispiel die Leitung 1116 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel umschaltet, d. h., eine ansteigende Flanke, geht die Leitung 1117 von einem hohen logischen Pegel zu einem niedrigen logischen Pegel über, d. h., eine fallende Flanke. Differenzielle Signale weisen möglicherweise bessere elektrische Charakteristika auf, wie z. B. bessere Signalintegrität, d. h., Kreuzkopplung, Spannungsüberhöhung/-unterschreitung, Schwingungen usw. Dies erlaubt ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • Es ist zu beachten, dass die oben beschriebenen Einrichtungen, Verfahren und Systeme wie oben erwähnt in einer beliebigen elektronischen Vorrichtung oder einem beliebigen elektronischen System implementiert werden können. Als spezifische Veranschaulichung bieten die Figuren unten beispielhafte Systeme zum Einsetzen der Offenbarung, wie hierin beschrieben. Während die Systeme unten ausführlicher beschrieben werden, wird eine Anzahl an verschiedenen Zwischenverbindungen offenbart, beschrieben und neu von der obigen Diskussion überdacht. Und wie offensichtlich ist, können die oben beschriebenen Fortschritte auf beliebige dieser Zwischenverbindungen, Fabrics oder Architekturen angewandt werden.
  • Auf 12 Bezug nehmend ist ein Blockdiagramm eines beispielhaften Computersystems veranschaulicht, das mit einem Prozessor gebildet ist, der Ausführungseinheiten enthält, um eine Anweisung auszuführen, wobei eine oder mehrere der Zwischenverbindungen ein oder mehrere Merkmale nach einer Ausführungsform der vorliegenden Offenbarung implementieren. System 1200 enthält eine Komponente, wie einen Prozessor 1202, um Ausführungseinheiten einzusetzen, die Logik enthalten, um Algorithmen zum Verarbeiten von Daten durchzuführen, nach der vorliegenden Offenbarung, wie in der hierin beschriebenen Ausführungsform. Das System 1200 ist für Verarbeitungssysteme repräsentativ, die auf den von Intel Corporation in Santa Clara, Kalifornien erhältlichen Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™ beruhen, obwohl andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Konstruktions-Arbeitsplatzrechner, Set-Top-Boxen und dergleichen) ebenfalls verwendet werden können. In einer Ausführungsform führt das Probensystem 1200 eine Version des Betriebssystems WINDOWS™, das von Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl andere Betriebssysteme (zum Beispiel UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen ebenfalls verwendet werden können. Deshalb sind Ausführungsformen der vorliegenden Offenbarung nicht auf eine beliebige spezifische Kombination von Hardwareverschaltung und Software beschränkt.
  • Ausführungsformen sind nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Offenbarung können in anderen Vorrichtungen, wie tragbaren Vorrichtungen und eingebetteten Anwendungen, verwendet werden. Einige Beispiele für tragbare Vorrichtungen enthalten Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Eingebettete Anwendungen können einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein Ein-Chip-System, Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerk-Knotens, Fernnetz-Switches (WAN-Switches) oder ein beliebiges anderes System enthalten, das eine oder mehrere Anweisungen nach mindestens einer Ausführungsform ausführen kann.
  • In dieser veranschaulichten Ausführungsform enthält der Prozessor 1202 eine oder mehrere Ausführungseinheiten 1208, um einen Algorithmus zu implementieren, der mindestens eine Anweisung auszuführen hat. Eine Ausführungsform kann im Kontext eines Desktop- oder Serversystems mit einem einzelnen Prozessor beschrieben werden, aber alternative Ausführungsformen können in einem Mehrprozessorsystem enthalten sein. Das System 1200 ist ein Beispiel einer „Knoten‟-Systemarchitektur. Das Computersystem 1200 enthält einen Prozessor 1202, um Datensignale zu verarbeiten. Der Prozessor 1202, als ein veranschaulichendes Beispiel, enthält einen Computer-Mikroprozessor mit komplexem Anweisungssatz (CISC-Mikroprozessor), einen Rechen-Mikroprozessor mit reduziertem Anweisungssatz (RISC-Mikroprozessor), einen Very-Long-Instruction-Word(VLIW)-Mikroprozessor, einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie einen digitalen Signalprozessor, zum Beispiel. Der Prozessor 1202 ist an einen Prozessorbus 1210 gekoppelt, der Datensignale zwischen dem Prozessor 1202 und anderen Komponenten im System 1200 überträgt. Die Elemente des Systems 1200 (z. B. ein Grafikbeschleuniger 1212, ein Arbeitsspeichersteuerungsknoten 1216, ein Arbeitsspeicher 1220, ein E/A-Steuerungsknoten 1224, ein drahtloser Sende-Empfänger 1226, Flash-BIOS 1228, eine Netzwerksteuerung 1234, eine Audiosteuerung 1236, ein serieller Erweiterungsanschluss 1238, eine E/A-Steuerung 1240 usw.) führen ihre herkömmlichen Funktionen durch, die Fachleuten wohlbekannt sind.
  • In einer Ausführungsform enthält der Prozessor 1202 einen internen Zwischenspeicher der Ebene 1 (L1-Zwischenspeicher) 1204. Abhängig von der Architektur kann der Prozessor 1202 einen einzelnen internen Zwischenspeicher oder mehrere Ebenen von internen Zwischenspeichern aufweisen. Andere Ausführungsformen enthalten eine Kombination von sowohl internen als auch externen Zwischenspeichern, abhängig von der bestimmten Implementierung und den bestimmten Anforderungen. Eine Registerdatei 1206 hat unterschiedliche Arten von Daten in verschiedenen Registern zu speichern, einschließlich ganzzahliger Register, Gleitkomma-Register, Vektorregister, Register in Bänken, Schattenregister, Prüfpunktregister, Statusregister und Anweisungszeigerregister.
  • Eine Ausführungseinheit 1208, die Logik enthält, um ganzzahlige und Gleitkomma-Operationen durchzuführen, residiert ebenfalls im Prozessor 1202. Der Prozessor 1202 enthält in einer Ausführungsform einen Mikrocode-ROM (⍰code-ROM), um Mikrocode zu speichern, der bei Ausführung Algorithmen für bestimmte Makroanweisungen durchzuführen hat oder komplexe Szenarien zu handhaben hat. Hier kann der Mikrocode möglicherweise aktualisiert werden, um Logikfehler/Fehlerbehebungen für den Prozessor 1202 zu handhaben. Für eine Ausführungsform enthält die Ausführungseinheit 1208 Logik, um einen gepackten Anweisungssatz 1209 zu handhaben. Durch Aufnehmen des gepackten Anweisungssatzes 1209 in den Anweisungssatz eines Universalprozessors 1202, zusammen mit zugehöriger Verschaltung, um die Anweisungen auszuführen, können die Operationen, die von vielen Multimediaanwendungen verwendet werden, unter Verwendung gepackter Daten in einem Universalprozessor 1202 durchgeführt werden. Deshalb werden viele Multimediaanwendungen durch Verwendung der vollständigen Breite des Datenbusses eines Prozessors zum Durchführen von Operationen an gepackten Daten beschleunigt und effizienter ausgeführt. Dies eliminiert möglicherweise den Bedarf, kleinere Einheiten von Daten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen durchführen, ein Datenelement auf einmal.
  • Alternative Ausführungsformen einer Ausführungseinheit 1208 können auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltkreisen verwendet werden. Das System 1200 enthält einen Arbeitsspeicher 1220. Der Arbeitsspeicher 1220 enthält eine dynamische Arbeitsspeichervorrichtung mit wahlfreiem Zugriff (DRAM-Vorrichtung), eine statische Arbeitsspeichervorrichtung mit wahlfreiem Zugriff (SRAM-Vorrichtung), eine Flashspeichervorrichtung oder eine andere Arbeitsspeichervorrichtung. Der Arbeitsspeicher 1220 speichert Anweisungen und/oder Daten, die durch Datensignale repräsentiert sind, die vom Prozessor 1202 auszuführen sind.
  • Es ist anzumerken, dass beliebige der vorgenannten Merkmale oder Gesichtspunkte der Offenbarung auf einer oder mehreren Zwischenverbindungen eingesetzt werden können, die in 12 veranschaulicht sind. Eine chipinterne Zwischenverbindung (ODI), die nicht gezeigt ist, zum Koppeln interner Einheiten des Prozessors 1202 implementiert zum Beispiel einen oder mehrere Gesichtspunkte der oben beschriebenen Offenbarung. Oder die Offenbarung ist mit einem Prozessorbus 1210 (z. B. einem Intel Quick Path Interconnect (QPI) oder einer anderen bekannten Hochleistungs-Rechenzwischenverbindung), einem Arbeitsspeicherpfad mit hoher Bandbreite 1218 zum Arbeitsspeicher 1220, einer Punkt-zu-Punkt-Verbindung mit einem Grafikbeschleuniger 1212 (z. B. einer Peripheral-Component-Interconnect-Express(PCIe)-konformen Fabric), einer Steuerungsknoten-Zwischenverbindung 1222, einer E/A- oder anderen Zwischenverbindung (z. B. USB, PCI, PCIe) zum Koppeln der anderen veranschaulichten Komponenten assoziiert. Einige Beispiele derartiger Komponenten enthalten die Audiosteuerung 1236, einen Firmwareknoten (Flash-BIOS) 1228, einen drahtlosen Sende-Empfänger 1226, einen Datenspeicher 1224, eine Alt-E/A-Steuerung 1210, die Benutzereingabe- und Tastaturschnittstellen 1242 beinhaltet, einen seriellen Erweiterungsanschluss 1238, wie einen Universal Serial Bus (USB) und eine Netzwerksteuerung 1234. Die Datenspeichervorrichtung 1224 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flashspeichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Nunmehr auf 13 Bezug nehmend, wird ein Blockdiagramm eines zweiten Systems 1300 nach einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie in 13 gezeigt, ist das Multiprozessorsystem 1300 ein Punkt-zu-Punkt-Zwischenverbindungssystem und enthält einen ersten Prozessor 1370 und einen zweiten Prozessor 1380, die über eine Punkt-zu-Punkt-Zwischenverbindung 1350 gekoppelt sind. Jeder der Prozessoren 1370 und 1380 kann eine Version eines Prozessors ein. In einer Ausführungsform sind 1352 und 1354 Teil einer seriellen kohärenten Punkt-zu-Punkt-Zwischenverbindungs-Fabric, wie Intels Quick-Path-Interconnect(QPI)-Architektur. Als Ergebnis kann die Offenbarung in der QPI-Architektur implementiert werden.
  • Während sie nur mit zwei Prozessoren 1370, 1380 gezeigt ist, soll klar sein, dass der Umfang der vorliegenden Offenbarung nicht darauf beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem bestimmten Prozessor vorhanden sein.
  • Die Prozessoren 1370 und 1380 sind als eine integrierte Arbeitsspeichersteuerungseinheit 1372 bzw. 1382 enthaltend gezeigt. Der Prozessor 1370 enthält auch als Teil seiner Bussteuerungseinheiten Punkt-zu-Punkt(P-P)-Schnittstellen 1376 und 1378; gleichermaßen enthält der zweite Prozessor 1380 P-P-Schnittstellen 1386 und 1388. Die Prozessoren 1370, 1380 können Informationen über eine Punkt-zu-Punkt(P-P)-Schnittstelle 1350 unter Verwendung der P-P-Schnittstellenschaltkreise 1378, 1388 austauschen. Wie in 13 gezeigt, koppeln die IMCs 1372 und 1382 die Prozessoren an jeweilige Arbeitsspeicher, nämlich einen Arbeitsspeicher 1332 und einen Arbeitsspeicher 1334, die Teile eines Hauptarbeitsspeichers sein können, der lokal an die jeweiligen Prozessoren angebunden ist.
  • Die Prozessoren 1370, 1380 tauschen jeweils Informationen mit einem Chipsatz 1390 über individuelle P-P-Schnittstellen 1352, 1354 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltkreisen 1376, 1394, 1386, 1398 aus. Der Chipsatz 1390 tauscht auch über einen Schnittstellenschaltkreis 1392 entlang einer Hochleistungs-Grafikverbindung 1339 Informationen mit einem Hochleistungs-Grafikschaltkreis 1338 aus.
  • Ein gemeinsam genutzter Zwischenspeicher (nicht gezeigt) kann in einem der beiden Prozessoren oder außerhalb beider Prozessoren enthalten sein, jedoch mit den Prozessoren über eine P-P-Zwischenverbindung verbunden sein, sodass die lokalen Zwischenspeicherinformationen von einem der beiden oder beiden Prozessoren im gemeinsam genutzten Zwischenspeicher gespeichert werden können, wenn ein Prozessor in einen Niedrigenergiemodus versetzt wird.
  • Der Chipsatz 1390 kann über eine Schnittstelle 1396 an einen ersten Bus 1316 gekoppelt sein. In einer Ausführungsform ist der erste Bus 1316 ein Peripheral-Component-Interconnect(PCI)-Bus oder ein Bus wie ein PCI-Express-Bus oder ein anderer E/A-Zwischenverbindungsbus der dritten Generation sein, obwohl der Umfang der vorliegenden Offenbarung dadurch nicht eingeschränkt ist.
  • Wie in 13 gezeigt, sind verschiedene E/A-Vorrichtungen 1314 zusammen mit einer Busbrücke 1318, die den ersten Bus 1316 an einen zweiten Bus 1320 koppelt, an den ersten Bus 1316 gekoppelt. In einer Ausführungsform enthält der zweite Bus 1320 einen Low-Pin-Count(LPC)-Bus. Verschiedene Vorrichtungen sind an einen zweiten Bus 1320 gekoppelt, der zum Beispiel eine Tastatur und/oder Maus 1322, Kommunikationsvorrichtungen 1327 und eine Speichereinheit 1328, wie ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung enthält, die bzw. das in einer Ausführungsform oft Anweisungen/Code und Daten 1330 enthält. Darüber hinaus wird ein Audio-E/A 1324 an den zweiten Bus 1320 gekoppelt gezeigt. Es ist anzumerken, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zwischenverbindungsarchitekturen variieren. Zum Beispiel kann ein System statt der Punkt-zu-Punkt-Architektur von 13 einen Mehrpunktbus oder eine andere solche Architektur implementieren.
  • Unter Verwendung der verschiedenen Trägheits- und Umgebungssensoren, die in einer Plattform vorhanden sind, können viele verschiedene Anwendungsfälle realisiert werden. Diese Anwendungsfälle ermöglichen erweiterte Rechenoperationen, einschließlich Wahrnehmungsrechnen, und ermöglichen auch Erweiterungen in Bezug auf Energieverwaltung/Akkulebensdauer, Sicherheit und System reaktionsfreudigkeit.
  • In Bezug auf Energieverwaltungs-/Akkulebensdauer-Angelegenheiten werden zum Beispiel zumindest teilweise auf Grundlage von Informationen von einem Umgebungslichtsensor die Umgebungslichtbedingungen an einer Position der Plattform ermittelt und die Intensität der Anzeige entsprechend gesteuert. Deshalb wird die beim Betreiben der Anzeige verbrauchte Energie in bestimmten Lichtbedingungen reduziert.
  • In Bezug auf Sicherheitsoperationen kann auf Grundlage von von den Sensoren erhaltenen Kontextinformationen, wie Positionsinformationen, ermittelt werden, ob einem Benutzer erlaubt ist, auf bestimmte sichere Dokumente zuzugreifen. Beispielsweise kann einem Benutzer erlaubt sein, auf derartige Dokumente an einem Arbeitsplatz oder an einem Heimatstandort zuzugreifen. Es wird jedoch verhindert, dass der Benutzer auf derartige Dokumente zugreift, wenn sich die Plattform an einem öffentlichen Standort befindet. Diese Ermittlung beruht in einer Ausführungsform auf Positionsinformationen, die z. B. über einen GPS-Sensor oder eine Kameraerkennung von Orientierungspunkten ermittelt werden. Andere Sicherheitsoperationen können ein Bereitstellen eines Paarens von Vorrichtungen innerhalb eines nahen Bereichs voneinander, z. B. einer tragbaren Plattform, wie sie hierin beschrieben ist, und eines Desktopcomputers eines Benutzers, eines Mobiltelefons und so weiter enthalten. Bestimmte gemeinsame Nutzungsvorgänge sind in einigen Implementierungen über Nahfeldkommunikation realisiert, wenn diese Vorrichtungen derart gepaart sind. Wenn die Vorrichtungen einen bestimmten Bereich überschreiten, können derartige gemeinsame Nutzungsvorgänge deaktiviert werden. Ferner kann beim Paaren einer Plattform, wie hierin beschrieben, und eines Smartphones ein Alarm konfiguriert sein, sodass er ausgelöst wird, wenn sich die Vorrichtungen um mehr als eine vorbestimmte Distanz voneinander bewegen, wenn sie sich an einem öffentlichen Standort befinden. Im Gegensatz dazu können diese Vorrichtungen, wenn sich diese gepaarten Vorrichtungen an einem sicheren Standort befinden, z. B. einem Arbeitsplatz oder einem Heimatstandort, diese vorbestimmte Grenze überschreiten, ohne einen derartigen Alarm auszulösen.
  • Außerdem kann unter Verwendung der Sensorinformationen die Reaktionsfreudigkeit verbessert werden. Auch wenn sich eine Plattform zum Beispiel in einem Niedrigenergiezustand befindet, können die Sensoren dennoch aktiviert sein und mit einer relativ niedrigen Frequenz arbeiten. Dementsprechend werden alle Änderungen an einem Standort der Plattform ermittelt, wie sie z. B. durch Trägheitssensoren, einen GPS-Sensor und so weiter ermittelt werden. Falls keine derartigen Änderungen registriert wurden, findet eine schnellere Verbindung mit einem vorangehenden drahtlosen Knoten wie einem Wi-Fi™-Zugangspunkt oder einer ähnlichen drahtlosen Aktivierungseinheit statt, da in diesem Fall kein Bedarf besteht, nach verfügbaren drahtlosen Netzwerkressourcen abzutasten. Deshalb wird beim Aufwachen aus einem Niedrigenergiezustand ein größeres Niveau an Reaktionsfreudigkeit erzielt.
  • Es sollte klar sein, dass viele andere Anwendungsfälle unter Verwendung von Sensorinformationen ermöglicht werden können, die über die integrierten Sensoren in einer Plattform wie hierin beschrieben erhalten werden, und die obigen Beispiele dienen nur zum Zweck der Veranschaulichung. Unter Verwendung eines Systems, wie es hierin beschrieben ist, kann ein Wahrnehmungsrechensystem die Hinzufügung von alternativen Eingabemodalitäten ermöglichen, einschließlich einer Gestikerkennung, und dem System ermöglichen, Benutzeroperationen und Absichten zu erfassen.
  • In einigen Ausführungsformen können ein oder mehrere Infrarot- oder andere Wärmesensorelemente oder ein beliebiges anderes Element zum Erfassen der Anwesenheit oder der Bewegung eines Benutzers vorhanden sein. Derartige Sensorelemente können mehrere verschiedene Elemente enthalten, die zusammen arbeiten, in eine Reihenfolge arbeiten, oder beides. Beispielsweise enthalten Sensorelemente Elemente, die ein anfängliches Erfassen bereitstellen, wie eine Licht- oder Schallprojektion, gefolgt von einem Erfassen einer Gestikerkennung beispielsweise durch eine Ultraschall-Laufzeitkamera oder einer Strukturlichtkamera.
  • In einigen Ausführungsformen enthält das System auch einen Lichtgenerator, um eine beleuchtete Linie zu erzeugen. In einigen Ausführungsformen bietet diese Linie einen visuellen Hinweis in Bezug auf eine virtuelle Grenze, nämlich eine imaginäre oder virtuelle Position im Raum, wobei eine Handlung des Benutzers, um durch die virtuelle Grenze oder Ebene zu treten oder diese zu durchbrechen, als eine Absicht interpretiert wird, mit dem Rechensystem zu wechselwirken. In einigen Ausführungsformen kann die beleuchtete Linie Farben ändern, wenn das Rechensystem in Bezug auf den Benutzer in andere Zustände übergeht. Die beleuchtete Linie kann verwendet werden, um dem Benutzer einen visuellen Hinweis auf eine virtuelle Grenze im Raum zu bieten, und kann vom System verwendet werden, um Übergänge im Zustand des Computers in Bezug auf den Benutzer zu ermitteln, einschließlich eines Ermittelns, wann der Benutzer wünscht, mit dem Computer zu wechselwirken.
  • In einigen Ausführungsformen erfasst der Computer die Benutzerposition und arbeitet, um die Bewegung einer Hand des Benutzers durch die virtuelle Grenze als eine Geste zu interpretieren, die eine Absicht des Benutzers anzeigt, mit dem Computer zu wechselwirken. In einigen Ausführungsformen kann sich das vom Lichtgenerator generierte Licht ändern, nachdem sich der Benutzer durch die virtuelle Linie oder Ebene bewegt, wodurch dem Benutzer eine visuelle Rückmeldung geboten wird, dass der Benutzer einen Bereich zum Bereitstellen von Gesten zur Bereitstellung von Eingaben in den Computer betreten hat.
  • Anzeigebildschirme können visuelle Hinweise auf Zustandsübergänge des Rechensystems in Bezug auf einen Benutzer bereitstellen. In einigen Ausführungsformen wird ein erster Bildschirm in einem ersten Zustand bereitgestellt, in dem die Anwesenheit eines Benutzers vom System erfasst wird, wie zum Beispiel durch eine Verwendung eines oder mehrerer der Sensorelemente.
  • In einigen Implementierungen handelt das System, um eine Benutzeridentität zu erfassen, wie zum Beispiel durch Gesichtserkennung. Hier kann ein Übergang zu einem zweiten Bildschirm in einem zweiten Zustand bereitgestellt werden, in dem das Rechensystem die Benutzeridentität erkannt hat, wobei zu dieser Sekunde der Bildschirm dem Benutzer eine visuelle Rückmeldung bereitstellt, dass der Benutzer in einen neuen Zustand übergegangen ist. Ein Übergang zu einem dritten Bildschirm kann in einem dritten Zustand stattfinden, in dem der Benutzer eine Erkennung des Benutzers bestätigt hat.
  • In einigen Ausführungsformen kann das Rechensystem einen Übergangsmechanismus verwenden, um eine Position einer virtuellen Grenze für einen Benutzer zu ermitteln, wobei die Position der virtuellen Grenze je nach Benutzer und Kontext variieren kann. Das Rechensystem kann Licht generieren, wie eine beleuchtete Linie, um die virtuelle Grenze zur Interaktion mit dem System anzuzeigen. In einigen Ausführungsformen kann sich das Rechensystem in einem Wartezustand befinden und das Licht kann in einer ersten Farbe erzeugt werden. Das Rechensystem kann erkennen, ob sich der Benutzer über die virtuelle Grenze hinaus bewegt hat, wie zum Beispiel durch Erfassen der Anwesenheit und der Bewegung des Benutzers unter Verwendung von Sensorelementen.
  • In einigen Ausführungsformen, falls erkannt wurde, dass der Benutzer die virtuelle Grenze überschritten hat (wie zum Beispiel, dass die Hände des Benutzers näher zum Rechensystem sind als die virtuelle Grenzlinie), kann das Rechensystem in einen Zustand zum Empfangen von Gesteneingaben vom Benutzer übergehen, wobei ein Mechanismus zum Anzeigen des Übergangs enthalten kann, dass das Licht, das die virtuelle Grenze anzeigt, in eine zweite Farbe wechselt.
  • In einigen Ausführungsformen kann das Rechensystem dann ermitteln, ob eine Gestenbewegung erkannt wird. Falls eine Gestenbewegung erkannt wird, kann das Rechensystem mit einem Gestikerkennungsprozess fortfahren, was die Verwendung von Daten von einer Gestendatenbibliothek enthalten kann, die sich in einem Arbeitsspeicher in der Rechenvorrichtung befinden kann oder auf die die Rechenvorrichtung anderweitig zugreifen kann.
  • Falls eine Geste des Benutzers erkannt wird, kann das Rechensystem eine Funktion als Reaktion auf die Eingabe durchführen und zurückkehren, um zusätzliche Gesten zu empfangen, falls sich der Benutzer innerhalb der virtuellen Grenze befindet. In einigen Ausführungsformen, falls die Geste nicht erkannt wird, kann das Rechensystem in einen Fehlerzustand übergehen, wobei ein Mechanismus zum Anzeigen des Fehlerzustands enthalten kann, dass das Licht, das die virtuelle Grenze anzeigt, in eine dritte Farbe wechselt, wobei das System zurückkehrt, um zusätzliche Gesten zu empfangen, falls sich der Benutzer innerhalb der virtuellen Grenze zum Wechselwirken mit dem Rechensystem befindet.
  • Wie oben erwähnt, kann das System in anderen Ausführungsformen als ein konvertierbares Tabletsystem ausgelegt sein, das in mindestens zwei verschiedenen Modi verwendet werden kann, einen Tabletmodus und einem Notebookmodus. Das konvertierbare System kann zwei Felder aufweisen, nämlich ein Anzeigefeld und ein Basisfeld, sodass die zwei Felder im Tabletmodus in einem Stapel übereinander angeordnet sind. Im Tabletmodus zeigt das Anzeigefeld nach außen und kann eine Berührungsbildschirmfunktionalität bereitstellen, wie man sie in herkömmlichen Tablets findet. Im Notebookmodus können die zwei Felder in einer offenen Klappkonfiguration angeordnet sein.
  • In verschiedenen Ausführungsformen kann der Beschleunigungsmesser ein 3-Achsen-Beschleunigungsmesser mit Datenraten von mindestens 50 Hz sein. Ein Gyroskop kann auch enthalten sein, das ein 3-Achsen-Gyroskop sein kann. Darüber hinaus kann ein E-Kompass/Magnetometer vorhanden sein. Außerdem können ein oder mehrere Näherungssensoren vorgesehen sein (z. B. bei geöffnetem Deckel, um zu erfassen, wann sich eine Person in der Nähe des Systems befindet (oder nicht), und die Energie/Leistung zur Verlängerung der Akkulebensdauer anzupassen). Bei manchen OS kann eine Sensor-Fusion-Fähigkeit einschließlich des Beschleunigungsmessers, Gyroskops und Kompass erweiterte Merkmale bereitstellen. Darüber hinaus kann über einen Sensorknoten mit einer Echtzeituhr (RTC) ein Aufwachmechanismus von Sensoren realisiert werden, um eine Sensoreingabe zu empfangen, wenn sich ein Rest des Systems in einem Niedrigenergiezustand befindet.
  • In einigen Ausführungsformen kann ein interner Deckel-/Anzeige-offen-Schalter oder -Sensor zum Anzeigen, wann der Deckel geschlossen/offen ist, verwendet werden, um das System in Connected Standby zu platzieren oder automatisch aus Connected Standby aufzuwecken. Andere Systemsensoren können ACPI-Sensoren für eine interne Prozessor-, Arbeitsspeicher- und Hauttemperaturüberwachung enthalten, um Änderungen am Prozessor und den Systembetriebszuständen auf Grundlage von erfassten Parametern zu ermöglichen.
  • In einer Ausführungsform kann das OS ein Microsoft® Windows® 8-OS sein, das Connected Standby (hierin auch als Win8 CS bezeichnet) implementiert. Windows 8 Connected Standby oder ein anderes OS mit einem ähnlichen Zustand kann über eine Plattform, wie hierin beschrieben, eine sehr niedrige Ultra-Leerlaufenergie bereitstellen, um zu ermöglichen, dass Anwendungen angebunden bleiben, z. B. an einen Cloud-basierten Standort, mit sehr niedrigem Energieverbrauch. Die Plattform kann 3 Energiezustände unterstützen, nämlich Bildschirm ein (normal); Connected Standby (als standardmäßiger „ausgeschalteter“ Zustand); und heruntergefahren (null Watt Energieverbrauch). Deshalb ist die Plattform im Zustand Connected Standby logisch eingeschaltet (bei minimalen Energiepegeln), obwohl der Bildschirm ausgeschaltet ist. In einer derartigen Plattform kann eine Energieverwaltung für Anwendungen transparent gemacht werden und eine konstante Konnektivität beibehalten, teilweise aufgrund einer Auslagerungstechnologie, um zu ermöglichen, dass die am niedrigsten mit Energie versorgte Komponente eine Operation durchführt.
  • Während diese Offenbarung mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifikationen und Variationen davon zu schätzen wissen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen und Variationen abdecken, die in den wahren Geist und Schutzumfang dieser vorliegenden Offenbarung fallen.
  • Ein Design kann verschiedene Stufen durchlaufen, von der Erstellung zur Simulation zur Herstellung. Daten, die ein Design darstellen, können das Design auf eine Anzahl an Art und Weisen darstellen. Erstens kann die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt werden, wie es in Simulationen nützlich ist. Zusätzlich kann ein Modell auf Schaltkreisebene mit Logik und/oder Transistorgattern in einigen Phasen des Designprozesses hergestellt werden. Ferner erreichen die meisten Designs in einer Phase ein Niveau an Daten, die die physische Platzierung von verschiedenen Vorrichtungen im Hardwaremodell darstellen. Im Fall, in dem herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die das Vorhandensein oder Fehlen verschiedener Merkmale auf verschiedenen Maskenschichten für Masken angeben, die zur Herstellung des integrierten Schaltkreises verwendet werden. In einer beliebigen Darstellung des Designs können die Daten in einer beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Arbeitsspeicher oder ein magnetischer oder optischer Speicher wie eine Platte kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über eine optische oder elektrische Welle übertragen werden, die moduliert oder anderweitig erzeugt wird, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle übertragen wird, die den Code oder das Design anzeigt oder trägt, in dem Ausmaß, in dem ein Kopieren, Puffern oder erneutes Übertragen des elektrischen Signals durchgeführt wird, wird eine neue Kopie gemacht. Deshalb kann ein Kommunikationsanbieter oder ein Netzanbieter einen Gegenstand, wie Informationen, die in eine Trägerwelle codiert sind und Techniken der Ausführungsformen der vorliegenden Offenbarung ausbilden, zumindest temporär auf einem greifbaren, maschinenlesbaren Medium speichern.
  • Ein Modul, wie es hierin verwendet wird, bezeichnet eine beliebige Kombination von Hardware, Software und/oder Firmware. Als Beispiel enthält ein Modul Hardware, wie einen Mikrocontroller, der mit einem nicht transitorischen Medium assoziiert ist, um Code zu speichern, der angepasst ist, vom Mikrocontroller ausgeführt zu werden. Deshalb bezieht sich eine Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die eigens konfiguriert ist, den Code zu erkennen und/oder auszuführen, der auf einem nicht transitorischen Medium zu halten ist. Ferner bezieht sich in einer anderen Ausführungsform die Verwendung eines Moduls auf das nicht transitorische Medium, das den Code enthält, der spezifisch angepasst ist, vom Mikrocontroller ausgeführt zu werden, um vorbestimmte Vorgänge durchzuführen. Und wie gefolgert werden kann, kann in noch einer anderen Ausführungsform der Begriff Modul (in diesem Beispiel) die Kombination des Mikrocontrollers und des nicht transitorischen Mediums bezeichnen. Oft variieren Modulgrenzen häufig, die als getrennt veranschaulicht sind, und überlappen möglicherweise. Ein erstes und ein zweites Modul können beispielsweise Hardware, Software, Firmware oder eine Kombination davon gemeinsam nutzen, während sie möglicherweise einige unabhängige Hardware, Software oder Firmware behalten. In einer Ausführungsform enthält die Verwendung des Begriffs Logik Hardware, wie Transistoren, Register oder andere Hardware, wie programmierbare Logikvorrichtungen.
  • Die Verwendung der Phrase „um“ oder „ausgelegt zu“ bezeichnet in einer Ausführungsform ein Anordnen, Zusammenstellen, Fertigen, Zum-Verkauf-Anbieten, Importieren und/oder Konstruieren einer Einrichtung, von Hardware, Logik oder eines Elements, um eine vorgesehene oder ermittelte Aufgabe durchzuführen. In diesem Beispiel ist eine Einrichtung oder ein Element davon, die bzw. das nicht arbeitet, dennoch „ausgelegt‟, eine vorgesehene Aufgabe durchzuführen, falls sie bzw. es konstruiert, gekoppelt und/oder verbunden ist, um diese vorgesehene Aufgabe durchzuführen. Als rein veranschaulichendes Beispiel kann ein logisches Gatter eine 0 oder eine 1 während des Betriebs bereitstellen. Aber ein logisches Gatter, das „ausgelegt ist‟, ein Aktivierungssignal an einen Taktgeber zu liefern, enthält nicht jedes mögliche logische Gatter, das eine 1 oder eine 0 liefern kann. Stattdessen ist das logische Gatter eines, das auf irgendeine Weise gekoppelt ist, sodass während des Betriebs die 1- oder 0-Ausgabe den Taktgeber aktivieren soll. Es ist nochmals anzumerken, dass die Verwendung des Begriffs ausgelegt, zu' keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand einer Einrichtung, Hardware und/oder eines Elements konzentriert, wobei die Einrichtung, die Hardware und/oder das Element konstruiert ist, im latenten Zustand eine bestimmte Aufgabe durchzuführen, wenn die Einrichtung, die Hardware und/oder das Element in Betrieb ist.
  • Ferner bezeichnet die Verwendung der Begriffe „fähig zu‟ und/oder „betreibbar zu‟ in einer Ausführungsform auf eine Einrichtung, Logik, Hardware und/oder ein Element, die bzw. das so konstruiert ist, dass sie bzw. es die Verwendung der Einrichtung, Logik, Hardware und/oder des Elements auf eine vorgegebene Weise ermöglicht. Wie oben ist anzumerken, dass sich die Verwendung von zu, fähig zu oder betreibbar zu in einer Ausführungsform auf den latenten Zustand einer Einrichtung, von Logik, Hardware und/oder eines Elements bezieht, wobei die Einrichtung, Logik, Hardware und/oder das Element nicht in Betrieb ist, aber auf eine solche Art konstruiert ist, dass sie bzw. es die Verwendung einer Einrichtung auf eine vorgegebene Weise ermöglicht.
  • Ein Wert, wie hierin verwendet, enthält eine beliebige bekannte Darstellung einer Ziffer, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Oft wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1en und Oen bezeichnet, was einfach binäre logische Zustände darstellt. Eine 1 bezeichnet beispielsweise einen hohen Logikpegel und eine 0 bezeichnet einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie ein Transistor oder eine Flashzelle, fähig sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Beispielsweise kann die Dezimalzahl zehn auch als ein Binärwert von 1010 und ein hexadezimaler Buchstabe A repräsentiert werden. Deshalb enthält ein Wert eine beliebige Darstellung von Informationen, die in einem Computersystem gehalten werden kann.
  • Darüber hinaus können Zustände durch Werte oder Teile von Werten dargestellt werden. Als Beispiel kann ein erster Wert, wie eine logische Eins, einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie eine logische Null, einen nicht standardmäßigen Zustand darstellen kann. Außerdem bezeichnen die Begriffe Rückgesetzt und Gesetzt in einer Ausführungsform einen Standard- und einen aktualisierten Wert bzw. Zustand. Ein Standardwert enthält zum Beispiel möglicherweise einen hohen logischen Wert, d. h., Rückgesetzt, während ein aktualisierter Wert möglicherweise einen niedrigen logischen Wert, d. h., Gesetzt enthält. Es ist anzumerken, dass eine beliebige Kombination von Werten eingesetzt werden kann, um eine beliebige Anzahl an Zuständen zu repräsentieren.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die oben dargelegt wurden, können über Anweisungen oder Code implementiert werden, die bzw. der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind bzw. ist und von einem Verarbeitungselement ausgeführt werden können bzw. kann. Ein nicht transitorisches maschinenzugängliches/-lesbares Medium enthält einen beliebigen Mechanismus, der Informationen in einer von einer Maschine, wie einem Computer oder elektronischen System, lesbaren Form bereitstellt (d. h., speichert und/oder überträgt). Ein nicht transitorisches maschinenzugängliches Medium enthält zum Beispiel Arbeitsspeicher mit wahlfreiem Zugriff (RAM), wie statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flashspeichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die aus transitorischen (propagierten) Signalen empfangen wurden (z. B. Trägerwellen, Infrarotsignale, Digitalsignale); usw., die von den nicht transitorischen Medien zu unterscheiden sind, die Informationen von diesen empfangen können.
  • Anweisungen, die verwendet werden, um Ausführungsformen der Offenbarung durchzuführen, können in einem Arbeitsspeicher im System gespeichert sein, wie DRAM, Zwischenspeicher, Flashspeicher oder einem anderen Speicher. Ferner können die Anweisungen über ein Netzwerk oder mittels anderer computerlesbarer Medien verteilt werden. Deshalb kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form enthalten, aber ist nicht auf Floppy-Disketten, optische Platten, schreibgeschützte Compact Discs (CD-ROMs) und magnetooptische Platten, schreibgeschützten Arbeitsspeicher (ROMs), Arbeitsspeicher mit wahlfreiem Zugriff (RAM), löschbaren programmierbaren schreibgeschützten Arbeitsspeicher (EPROM), elektrisch löschbaren programmierbaren schreibgeschützten Arbeitsspeicher (EEPROM), magnetische oder optische Karten, Flashspeicher oder einen greifbaren maschinenlesbaren Speicher beschränkt, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von propagierten Signalen (z. B. Trägerwellen, Infrarotsignalen, Digitalsignalen usw.) verwendet wird. Dementsprechend enthält das computerlesbare Medium eine beliebige Art von greifbarem maschinenlesbarem Medium, das zum Speichern oder Übertragen von elektronischen Anweisungen oder Informationen in einer Form geeignet ist, die von einer Maschine (z. B. einem Computer) gelesen werden kann.
  • Eine Bezugnahme in dieser gesamten Beschreibung auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit den Ausführungsformen beschrieben wird, in zumindest einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Deshalb bezieht sich das Auftreten der Phrasen „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in dieser gesamten Beschreibung nicht notwendigerweise immer auf die gleiche Ausführungsform. Ferner können die einzelnen Merkmale, Strukturen oder Eigenschaften in beliebiger geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Beschreibung wurde eine detaillierte Beschreibung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen gegeben. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom allgemeinen Gedanken und Umfang der Offenbarung abzuweichen, wie in den beigefügten Ansprüchen dargelegt. Die Beschreibung und Zeichnungen sollen dementsprechend in einem veranschaulichenden Sinn statt in einem einschränkenden Sinn betrachtet werden. Ferner bezieht sich die vorangehende Verwendung einer Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich auf unterschiedliche und verschiedene Ausführungsformen sowie möglicherweise die gleiche Ausführungsform beziehen.
  • Verschiedene Gesichtspunkte und Kombinationen der Ausführungsformen sind oben beschrieben, von denen einige durch die folgenden Beispiele dargestellt werden:
    • Beispiel 1 ist eine Einrichtung, die einen Anschluss enthält, um eine Anforderung über eine bidirektionale Mehrbahnverbindung an einen Verbindungspartner zu senden, eine Verbindungsbreite der Mehrbahnverbindung in einer ersten Richtung zu ändern; eine Bestätigung vom Verbindungspartner zu empfangen, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung in der ersten Richtung zu ändern; die bidirektionale Mehrbahnverbindung neu zu konfigurieren, um Daten auf einer zweiten Anzahl von Bahnen zu senden; und Daten an den bzw. vom Verbindungspartner auf der bidirektionalen Mehrbahnverbindung auf der zweiten Anzahl von Bahnen in der ersten Richtung zu senden oder zu empfangen.
    • Beispiel 2 kann den Gegenstand von Beispiel 1 enthalten, wobei die Anforderung an den Verbindungspartner, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern, ein Verbindungsverwaltungs-Sicherungsschichtpaket (Verbindungsverwaltungs-DLLP) umfasst, das eine Anforderung nach einer Änderung der Verbindungsbreite umfasst, wobei das Verbindungsverwaltungs-DLLP eine gewünschte Verbindungsbreite in jeder Richtung von Datenverkehrsfluss umfasst.
    • Beispiel 3 kann den Gegenstand eines der Beispiele 1-2 enthalten, wobei die erste Anzahl von Bahnen größer als die zweite Anzahl von Bahnen ist.
    • Beispiel 4 kann den Gegenstand von Beispiel 3 enthalten, wobei der Anschluss eine Nachricht an den Verbindungspartner zu senden hat, um einen Plan zum Wechsel von der ersten Anzahl von Bahnen zur zweiten Anzahl von Bahnen anzuzeigen; Skip-geordnete Mengen (SKP-OS) auf der zweiten Anzahl von Bahnen zu senden hat; und Daten auf der zweiten Anzahl von Bahnen zu senden hat.
    • Beispiel 5 kann den Gegenstand eines der Beispiele 1-2 enthalten, wobei die zweite Anzahl von Bahnen größer als die erste Anzahl von Bahnen ist.
    • Beispiel 6 kann den Gegenstand von Beispiel 5 enthalten, wobei der Anschluss Daten auf der ersten Anzahl von Bahnen zu senden hat; Verbindungstraining auf Bahnen durchzuführen hat, die aktiviert werden sollen; und Daten auf der zweiten Anzahl von Bahnen zu senden hat, sobald zusätzliche Bahnen aktiviert sind.
    • Beispiel 7 kann den Gegenstand von Beispiel 5 enthalten, wobei der Anschluss einen nachgeschalteten Anschluss umfasst, wobei der nachgeschaltete Anschluss eine Anforderung von einem vorgeschalteten Anschluss des Verbindungspartners zu empfangen hat, eine Anzahl von Bahnen der Mehrbahnverbindung von der ersten Anzahl auf die zweite Anzahl zu ändern; die Anforderung vom vorgeschalteten Anschluss zu ignorieren hat; und auf die Bestätigung vom Verbindungspartner zu warten hat, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern.
    • Beispiel 8 kann den Gegenstand von Beispiel 5 enthalten, wobei die Anforderung, eine Verbindungsbreite der bidirektionalen Mehrbahnverbindung von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen zu ändern, eine Anforderung umfasst, eine Anzahl von Sendebahnen von einer ersten Anzahl von Sendebahnen auf eine zweite Anzahl von Sendebahnen durch Aktivieren einer Teilmenge der insgesamt verfügbaren Bahnen auf der bidirektionalen Mehrbahnverbindung zu ändern. Der Anschluss hat ein Verbindungstraining auf der zu aktivierenden Teilmenge von Gesamtbahnen durchzuführen; Senden von Skip-geordneten Mengen auf der ersten Anzahl von Bahnen und auf der Teilmenge von Gesamtbahnen zu einem vorbestimmten Zeitpunkt; Planen einer Datenübertragung auf der zweiten Anzahl von Bahnen; und plangemäßes Senden von Daten auf allen aktiven Bahnen.
    • Beispiel 9 kann den Gegenstand von Beispiel 5 enthalten, wobei die Anforderung, eine Verbindungsbreite der bidirektionalen Mehrbahnverbindung von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen zu ändern, eine Anforderung umfasst, eine Anzahl von Empfangsbahnen von einer ersten Anzahl von Empfangsbahnen auf eine zweite Anzahl von Empfangsbahnen durch Aktivieren einer Teilmenge der insgesamt verfügbaren Bahnen auf der bidirektionalen Mehrbahnverbindung zu ändern. Der Anschluss hat zu bestätigen, dass das Verbindungstraining auf einer Teilmenge der Gesamtbahnen abgeschlossen ist; hat einen Datenempfang auf einer zweiten Anzahl von Bahnen zu planen; und hat Daten auf der zweiten Anzahl von Bahnen zu empfangen.
    • Beispiel 10 kann den Gegenstand eines der Beispiele 1-2 enthalten, wobei die erste Richtung entweder eine Senderichtung oder eine Empfangsrichtung umfasst.
    • Beispiel 11 ist ein Verfahren, enthaltend ein Senden einer Anforderung durch einen Anschluss an einen Verbindungspartner über eine bidirektionale Mehrbahnverbindung, eine Anzahl von aktiven Bahnen in einer ersten Richtung auf der bidirektionalen Mehrbahnverbindung zu ändern, wobei die Anforderung einen Hinweis auf eine gewünschte Verbindungsbreite umfasst; Empfangen einer Bestätigung vom Verbindungspartner, die Anzahl der aktiven Bahnen auf der bidirektionalen Mehrbahnverbindung auf die gewünschte Verbindungsbreite in der ersten Richtung zu ändern; Konfigurieren der bidirektionalen Mehrbahnverbindung zum Betrieb unter Verwendung der gewünschten Verbindungsbreite; und Senden oder Empfangen von Daten an den Verbindungspartner unter Verwendung der gewünschten Verbindungsbreite.
    • Beispiel 12 kann den Gegenstand von Beispielen 11 enthalten, wobei die erste Richtung entweder eine Senderichtung oder eine Empfangsrichtung ist.
    • Beispiel 13 kann den Gegenstand eines der Beispiele 11-12 enthalten, wobei das Senden der Anforderung an den Verbindungspartner ein Senden eines Verbindungsverwaltungs-Sicherungsschichtpakets (Verbindungsverwaltungs-DLLP) an den Verbindungspartner umfasst, das einen Hinweis auf die gewünschte Verbindungsbreite umfasst.
    • Beispiel 14 kann den Gegenstand eines der Beispiele 11-12 enthalten, wobei die erste Richtung eine Senderichtung umfasst und die Änderung in den aktiven Bahnen ein Erhöhen der Anzahl von aktiven Bahnen von einer ersten Anzahl von aktiven Bahnen auf eine zweite Anzahl von aktiven Bahnen umfasst, wobei die erste Anzahl von aktiven Bahnen größer als die zweite Anzahl von aktiven Bahnen ist.
    • Beispiel 15 kann den Gegenstand von Beispiel 14 enthalten, wobei das Konfigurieren der bidirektionalen Mehrbahnverbindung ein Durchführen eines Verbindungstrainings auf inaktiven Bahnen umfasst; und Planen einer Datenübertragung auf inaktiven Bahnen, sodass sie mit einer zukünftigen Datenübertragung auf aktiven Bahnen zusammenfällt.
    • Beispiel 16 kann den Gegenstand von Beispiel 15 enthalten, ferner umfassend ein Senden von Daten auf aktiven Bahnen während eines Verbindungstrainings von inaktiven Bahnen.
    • Beispiel 17 kann den Gegenstand eines der Beispiele 11-12 enthalten, wobei die erste Richtung eine Empfangsrichtung umfasst und die Änderung in den aktiven Bahnen ein Erhöhen der Anzahl von aktiven Bahnen von einer ersten Anzahl von aktiven Bahnen auf eine zweite Anzahl von aktiven Bahnen umfasst, wobei die erste Anzahl von aktiven Bahnen größer als die zweite Anzahl von aktiven Bahnen ist.
    • Beispiel 18 kann den Gegenstand von Beispiel 17 enthalten, wobei das Konfigurieren der bidirektionalen Mehrbahnverbindung ein Bestätigen eines Verbindungstrainings auf inaktiven Bahnen umfasst; und Bestätigen einer Planung eines Datenempfangs auf inaktiven Bahnen, sodass er mit einer zukünftigen Datenübertragung auf aktiven Bahnen zusammenfällt.
    • Beispiel 19 kann den Gegenstand eines der Beispiele 11-12 enthalten, wobei die gewünschte Verbindungsbreite eine Reduktion in der Verbindungsbreite von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen umfasst, wobei die erste Anzahl von Bahnen größer als die zweite Anzahl von Bahnen ist.
    • Beispiel 20 kann den Gegenstand von Beispiel 19 enthalten, ferner umfassend ein Senden einer Nachricht an den Verbindungspartner, um einen Plan zum Wechsel von der ersten Anzahl von Bahnen zur zweiten Anzahl von Bahnen anzuzeigen; Deaktivieren einer Teilmenge der ersten Anzahl von Bahnen; und Senden von Daten auf der zweiten Anzahl von Bahnen.
    • Beispiel 21 ist ein System, umfassend eine Hostvorrichtung, die einen nachgeschalteten Anschluss umfasst; eine Endpunktvorrichtung, die einen vorgeschalteten Anschluss umfasst; und eine bidirektionale Mehrbahnverbindung, die den nachgeschalteten Anschluss und den vorgeschalteten Anschluss miteinander verbindet. Der nachgeschaltete Anschluss hat eine Anforderung über die bidirektionale Mehrbahnverbindung an den vorgeschalteten Anschluss zu senden, eine Anzahl von aktiven Bahnen in einer ersten Richtung auf der bidirektionalen Mehrbahnverbindung zu ändern, wobei die Anforderung einen Hinweis auf eine gewünschte Verbindungsbreite umfasst, eine Bestätigung vom vorgeschalteten Anschluss zu empfangen hat, die Anzahl der aktiven Bahnen auf der bidirektionalen Mehrbahnverbindung auf die gewünschte Verbindungsbreite in der ersten Richtung zu ändern, die bidirektionale Mehrbahnverbindung zum Betrieb unter Verwendung der gewünschten Verbindungsbreite zu konfigurieren hat und Daten an den vorgeschalteten Anschluss unter Verwendung der gewünschten Verbindungsbreite zu senden oder empfangen hat.
    • Beispiel 22 kann den Gegenstand von Beispiel 21 enthalten, wobei der vorgeschaltete Anschluss eine Anforderung an den nachgeschalteten Anschluss zu senden hat, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern; die Anforderung vom nachgeschalteten Anschluss zu empfangen hat, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern; und eine Bestätigung an den nachgeschalteten Anschluss zu senden hat, die die Anforderung vom nachgeschalteten Anschluss bestätigt, die Verbindungsbreite zu ändern.
    • Beispiel 23 kann den Gegenstand von Beispiel 22 enthalten, wobei der nachgeschaltete Anschluss die Anforderung vom vorgeschalteten Anschluss zu empfangen hat, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern; die Anforderung vom vorgeschalteten Anschluss zu ignorieren hat; und auf die Bestätigung vom vorgeschalteten Anschluss zu warten hat.
    • Beispiel 24 kann den Gegenstand von Beispiel 21 enthalten, wobei eine Anforderung an den vorgeschalteten Anschluss über die bidirektionale Mehrbahnverbindung, eine Anzahl von aktiven Bahnen in einer ersten Richtung auf der bidirektionalen Mehrbahnverbindung zu ändern, ein Verbindungsverwaltungs-Sicherungsschichtpaket (Verbindungsverwaltungs-DLLP) an den umfasst, das einen Hinweis auf die gewünschte Verbindungsbreite umfasst.
    • 25. System nach Anspruch 21, wobei der nachgeschaltete Anschluss ein Verbindungstraining an zu aktivierenden Bahnen durchzuführen hat; und Daten auf aktiven Bahnen während eines Verbindungstrainings der zu aktivierenden Bahnen zu senden oder zu empfangen hat.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/941277 [0001]

Claims (20)

  1. Einrichtung, umfassend: einen Anschluss, um: eine Anforderung über eine bidirektionale Mehrbahnverbindung an einen Verbindungspartner zu senden, eine Verbindungsbreite der Mehrbahnverbindung in einer ersten Richtung zu ändern; eine Bestätigung vom Verbindungspartner zu empfangen, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung in der ersten Richtung zu ändern; die bidirektionale Mehrbahnverbindung neu zu konfigurieren, um Daten auf einer zweiten Anzahl von Bahnen zu senden; und Daten an den Verbindungspartner auf der bidirektionalen Mehrbahnverbindung auf der zweiten Anzahl von Bahnen in der ersten Richtung zu senden.
  2. Einrichtung nach Anspruch 1, wobei die Anforderung an den Verbindungspartner, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern, ein Verbindungsverwaltungs-Sicherungsschichtpaket (Verbindungsverwaltungs-DLLP) umfasst, das eine Anforderung nach einer Änderung der Verbindungsbreite umfasst, wobei das Verbindungsverwaltungs-DLLP eine gewünschte Verbindungsbreite in jeder Richtung von Datenverkehrsfluss umfasst.
  3. Einrichtung nach einem der Ansprüche 1 oder 2, wobei die erste Anzahl von Bahnen größer als die zweite Anzahl von Bahnen ist.
  4. Einrichtung nach Anspruch 3, wobei der Anschluss: eine Nachricht an den Verbindungspartner zu senden hat, um einen Plan zum Wechsel von der ersten Anzahl von Bahnen zur zweiten Anzahl von Bahnen anzuzeigen; Skip-geordnete Mengen (SKP-OS) auf der zweiten Anzahl von Bahnen zu senden hat; und Daten auf der zweiten Anzahl von Bahnen zu senden hat.
  5. Einrichtung nach einem der Ansprüche 1 oder 2, wobei die zweite Anzahl von Bahnen größer als die erste Anzahl von Bahnen ist.
  6. Einrichtung nach Anspruch 5, wobei der Anschluss: Daten auf der ersten Anzahl von Bahnen zu senden hat; Verbindungstraining auf Bahnen durchzuführen hat, die aktiviert werden sollen; und Daten auf der zweiten Anzahl von Bahnen zu senden hat, sobald zusätzliche Bahnen aktiviert sind.
  7. Einrichtung nach Anspruch 5, wobei der Anschluss einen nachgeschalteten Anschluss umfasst, wobei der nachgeschaltete Anschluss: eine Anforderung von einem vorgeschalteten Anschluss des Verbindungspartners zu empfangen hat, eine Anzahl von Bahnen der Mehrbahnverbindung von der ersten Anzahl auf die zweite Anzahl zu ändern; die Anforderung vom vorgeschalteten Anschluss zu ignorieren hat; und auf die Bestätigung vom Verbindungspartner zu warten hat, die Verbindungsbreite der bidirektionalen Mehrbahnverbindung zu ändern.
  8. Einrichtung nach Anspruch 5, wobei die Anforderung, eine Verbindungsbreite der bidirektionalen Mehrbahnverbindung von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen zu ändern, eine Anforderung umfasst, eine Anzahl von Sendebahnen von einer ersten Anzahl von Sendebahnen auf eine zweite Anzahl von Sendebahnen durch Aktivieren einer Teilmenge der insgesamt verfügbaren Bahnen auf der bidirektionalen Mehrbahnverbindung zu ändern; wobei der Anschluss: ein Verbindungstraining auf der zu aktivierenden Teilmenge von Gesamtbahnen durchzuführen hat; Senden von Skip-geordneten Mengen auf der ersten Anzahl von Bahnen und auf der Teilmenge von Gesamtbahnen zu einem vorbestimmten Zeitpunkt; Planen einer Datenübertragung auf der zweiten Anzahl von Bahnen; und plangemäßes Senden von Daten auf allen aktiven Bahnen.
  9. Einrichtung nach Anspruch 5, wobei die Anforderung, eine Verbindungsbreite der bidirektionalen Mehrbahnverbindung von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen zu ändern, eine Anforderung umfasst, eine Anzahl von Empfangsbahnen von einer ersten Anzahl von Empfangsbahnen auf eine zweite Anzahl von Empfangsbahnen durch Aktivieren einer Teilmenge der insgesamt verfügbaren Bahnen auf der bidirektionalen Mehrbahnverbindung zu ändern; wobei der Anschluss: zu bestätigen hat, dass das Verbindungstraining auf einer Teilmenge der Gesamtbahnen abgeschlossen ist; einen Datenempfang auf einer zweiten Anzahl von Bahnen zu planen hat; und Daten auf der zweiten Anzahl von Bahnen zu empfangen hat.
  10. Einrichtung nach einem der Ansprüche 1 oder 2, wobei die erste Richtung entweder eine Senderichtung oder eine Empfangsrichtung umfasst.
  11. Verfahren, umfassend: Senden einer Anforderung über eine bidirektionale Mehrbahnverbindung an einen Verbindungspartner, eine Anzahl von aktiven Bahnen in einer ersten Richtung auf der bidirektionalen Mehrbahnverbindung zu ändern, wobei die Anforderung einen Hinweis auf eine gewünschte Verbindungsbreite umfasst; Empfangen einer Bestätigung vom Verbindungspartner, die Anzahl der aktiven Bahnen auf der bidirektionalen Mehrbahnverbindung auf die gewünschte Verbindungsbreite in der ersten Richtung zu ändern; Konfigurieren der bidirektionalen Mehrbahnverbindung zum Betrieb unter Verwendung der gewünschten Verbindungsbreite; und Senden oder Empfangen von Daten an den Verbindungspartner unter Verwendung der gewünschten Verbindungsbreite.
  12. Verfahren nach Anspruch 11, wobei die erste Richtung entweder eine Senderichtung oder eine Empfangsrichtung ist.
  13. Verfahren nach einem der Ansprüche 11 oder 12, wobei das Senden der Anforderung an den Verbindungspartner ein Senden eines Verbindungsverwaltungs-Sicherungsschichtpakets (Verbindungsverwaltungs-DLLP) an den Verbindungspartner umfasst, das einen Hinweis auf die gewünschte Verbindungsbreite umfasst.
  14. Verfahren nach einem der Ansprüche 11 oder 12, wobei die erste Richtung eine Senderichtung umfasst und die Änderung in den aktiven Bahnen ein Erhöhen der Anzahl von aktiven Bahnen von einer ersten Anzahl von aktiven Bahnen auf eine zweite Anzahl von aktiven Bahnen umfasst, wobei die erste Anzahl von aktiven Bahnen größer als die zweite Anzahl von aktiven Bahnen ist.
  15. Verfahren nach Anspruch 14, wobei das Konfigurieren der bidirektionalen Mehrbahnverbindung umfasst: Durchführen eines Verbindungstrainings auf inaktiven Bahnen; und Planen einer Datenübertragung auf inaktiven Bahnen, sodass sie mit einer zukünftigen Datenübertragung auf aktiven Bahnen zusammenfällt.
  16. Verfahren nach Anspruch 15, ferner umfassend ein Senden von Daten auf aktiven Bahnen während eines Verbindungstrainings von inaktiven Bahnen.
  17. Verfahren nach einem der Ansprüche 11 oder 12, wobei die erste Richtung eine Empfangsrichtung umfasst und die Änderung in den aktiven Bahnen ein Erhöhen der Anzahl von aktiven Bahnen von einer ersten Anzahl von aktiven Bahnen auf eine zweite Anzahl von aktiven Bahnen umfasst, wobei die erste Anzahl von aktiven Bahnen größer als die zweite Anzahl von aktiven Bahnen ist.
  18. Verfahren nach Anspruch 17, wobei das Konfigurieren der bidirektionalen Mehrbahnverbindung umfasst: Bestätigen eines Verbindungstrainings auf inaktiven Bahnen; und Bestätigen einer Planung eines Datenempfangs auf inaktiven Bahnen, sodass er mit einer zukünftigen Datenübertragung auf aktiven Bahnen zusammenfällt.
  19. Verfahren nach einem der Ansprüche 11 oder 12, wobei die gewünschte Verbindungsbreite eine Reduktion in der Verbindungsbreite von einer ersten Anzahl von Bahnen auf eine zweite Anzahl von Bahnen umfasst, wobei die erste Anzahl von Bahnen größer als die zweite Anzahl von Bahnen ist.
  20. Verfahren nach Anspruch 19, ferner umfassend: Senden einer Nachricht an den Verbindungspartner, um einen Plan zum Wechsel von der ersten Anzahl von Bahnen zur zweiten Anzahl von Bahnen anzuzeigen; Deaktivieren einer Teilmenge der ersten Anzahl von Bahnen; und Senden von Daten auf der zweiten Anzahl von Bahnen.
DE102020128760.7A 2019-11-27 2020-11-02 Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen Pending DE102020128760A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962941277P 2019-11-27 2019-11-27
US62/941,277 2019-11-27
US16/831,719 US11836101B2 (en) 2019-11-27 2020-03-26 Partial link width states for bidirectional multilane links
US16/831,719 2020-03-26

Publications (1)

Publication Number Publication Date
DE102020128760A1 true DE102020128760A1 (de) 2021-05-27

Family

ID=71517591

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020128760.7A Pending DE102020128760A1 (de) 2019-11-27 2020-11-02 Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen

Country Status (5)

Country Link
US (1) US11836101B2 (de)
KR (1) KR20210065834A (de)
CN (1) CN112866105A (de)
BR (1) BR102020019433A2 (de)
DE (1) DE102020128760A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601425B2 (en) 2018-05-30 2020-03-24 Intel Corporation Width and frequency conversion with PHY layer devices in PCI-express
US11467999B2 (en) 2018-06-29 2022-10-11 Intel Corporation Negotiating asymmetric link widths dynamically in a multi-lane link
US10846247B2 (en) * 2019-03-05 2020-11-24 Intel Corporation Controlling partial link width states for multilane links
US11973624B2 (en) 2019-11-29 2024-04-30 Intel Corporation Extended link-training time negotiated on link start-up
WO2022155968A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 调节链路宽度的方法及装置
US11652507B1 (en) * 2021-05-24 2023-05-16 Marvell Asia Pte Ltd Optimization of training and retraining
KR102635450B1 (ko) 2021-05-26 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11940942B2 (en) * 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
DE112022003866T5 (de) * 2021-08-06 2024-05-29 Microchip Technology Incorporated Bestimmung der zuweisung von lanes eines peripheral component interconnect express-ports zu links
EP4149089A1 (de) * 2021-09-09 2023-03-15 Abb Schweiz Ag Fassadenserver
US11743175B2 (en) * 2021-12-31 2023-08-29 Fortinet, Inc. Dynamically employing constant power spectral density in mesh WLAN transmissions
WO2023163954A1 (en) * 2022-02-22 2023-08-31 Groq, Inc. Die-to-die dense packaging of deterministic streaming processors
JP2024014337A (ja) * 2022-07-22 2024-02-01 キオクシア株式会社 メモリシステム

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484326A (en) * 1982-11-04 1984-11-20 At&T Bell Laboratories Packet load monitoring by trunk controllers
US7051218B1 (en) * 2001-07-18 2006-05-23 Advanced Micro Devices, Inc. Message based power management
US6970013B1 (en) 2002-03-01 2005-11-29 Xilinx, Inc Variable data width converter
US6894726B2 (en) 2002-07-05 2005-05-17 Thomson Licensing S.A. High-definition de-interlacing and frame doubling circuit and method
US7415032B2 (en) * 2002-11-13 2008-08-19 Intel Corporation Aggregatable connectivity
US7469311B1 (en) 2003-05-07 2008-12-23 Nvidia Corporation Asymmetrical bus
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
TWI307008B (en) * 2003-08-14 2009-03-01 Via Tech Inc Computer system with power management and the method thereof
US7293127B2 (en) 2004-01-15 2007-11-06 Ati Technologies, Inc. Method and device for transmitting data using a PCI express port
US7480808B2 (en) * 2004-07-16 2009-01-20 Ati Technologies Ulc Method and apparatus for managing power consumption relating to a differential serial communication link
US7649836B2 (en) * 2004-09-02 2010-01-19 Intel Corporation Link state machine for the advanced switching (AS) architecture
TWI311705B (en) * 2005-05-23 2009-07-01 Via Tech Inc Peripheral component interconnect express and changing method of link power states thereof
US7230549B1 (en) * 2005-09-09 2007-06-12 Qlogic, Corporation Method and system for synchronizing bit streams for PCI express devices
US7447824B2 (en) * 2005-10-26 2008-11-04 Hewlett-Packard Development Company, L.P. Dynamic lane management system and method
US7809969B2 (en) 2005-12-28 2010-10-05 Intel Corporation Using asymmetric lanes dynamically in a multi-lane serial link
US7607031B2 (en) 2006-03-28 2009-10-20 Advanced Micro Devices, Inc. Power management in a communication link
US7724678B1 (en) * 2006-06-14 2010-05-25 Oracle America, Inc. Method and apparatus for testing a communication link
WO2008113168A1 (en) * 2007-03-19 2008-09-25 Ati Technologies Ulc Automated compliance testing for video devices
US7624211B2 (en) * 2007-06-27 2009-11-24 Micron Technology, Inc. Method for bus width negotiation of data storage devices
TWI348821B (en) 2007-08-08 2011-09-11 Alpha Networks Inc Interface converting circuit
US7934032B1 (en) * 2007-09-28 2011-04-26 Emc Corporation Interface for establishing operability between a processor module and input/output (I/O) modules
US7793030B2 (en) 2007-10-22 2010-09-07 International Business Machines Corporation Association of multiple PCI express links with a single PCI express port
US8341303B2 (en) 2008-06-30 2012-12-25 Intel Corporation Asymmetrical universal serial bus communications
US9183166B2 (en) 2009-12-14 2015-11-10 Rambus Inc. Expandable asymmetric-channel memory system
TWI423007B (zh) 2009-12-31 2014-01-11 Via Tech Inc 串列匯流排裝置以及其時脈差補償方法
US8539134B2 (en) * 2010-02-15 2013-09-17 International Business Machines Corporation PCI express multiplier device
JP2011186894A (ja) 2010-03-10 2011-09-22 Ricoh Co Ltd データ転送装置、画像処理装置、データ転送方法、データ転送プログラム及び記録媒体
US8539260B2 (en) * 2010-04-05 2013-09-17 Intel Corporation Method, apparatus, and system for enabling platform power states
US8631255B2 (en) 2010-07-02 2014-01-14 Intel Corporation Method, system and apparatus for dynamic buffer management for power saving
US8751714B2 (en) 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US8805196B2 (en) 2010-09-30 2014-08-12 Teradyne, Inc. Electro-optical communications link
US8627156B1 (en) 2010-10-26 2014-01-07 Agilent Technologies, Inc. Method and system of testing bit error rate using signal with mixture of scrambled and unscrambled bits
US20130077701A1 (en) * 2011-09-23 2013-03-28 Advanced Micro Devices, Inc. Method and integrated circuit for adjusting the width of an input/output link
US9654342B2 (en) * 2011-09-30 2017-05-16 Intel Corporation Bandwidth configurable IO connector
US8898504B2 (en) * 2011-12-14 2014-11-25 International Business Machines Corporation Parallel data communications mechanism having reduced power continuously calibrated lines
US9256268B2 (en) 2012-04-24 2016-02-09 Intel Corporation Adaptive low-power link-state entry policy for active interconnect link power management
US9043526B2 (en) * 2012-06-20 2015-05-26 International Business Machines Corporation Versatile lane configuration using a PCIe PIe-8 interface
US8856573B2 (en) 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US9229897B2 (en) 2012-06-29 2016-01-05 Intel Corporation Embedded control channel for high speed serial interconnect
US8982746B2 (en) 2012-06-30 2015-03-17 Intel Corporation Clock-less half-duplex repeater
US9183171B2 (en) 2012-09-29 2015-11-10 Intel Corporation Fast deskew when exiting low-power partial-width high speed link state
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9600431B2 (en) 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US9244872B2 (en) 2012-12-21 2016-01-26 Ati Technologies Ulc Configurable communications controller
US9509438B2 (en) 2013-09-30 2016-11-29 Intel Corporation Determining a high data rate for backchannel communications for initialization of high-speed networks
KR101963011B1 (ko) 2013-12-26 2019-03-27 인텔 코포레이션 인터커넥트 리타이머 강화
KR102041743B1 (ko) 2013-12-26 2019-11-06 인텔 코포레이션 Pci 익스프레스 강화
WO2015149293A1 (zh) * 2014-04-02 2015-10-08 华为技术有限公司 一种PCIe链路故障的处理方法、设备及系统
KR102253703B1 (ko) 2014-08-06 2021-05-20 삼성전자주식회사 저전력 모드에서 전력 소모를 줄일 수 있는 반도체 장치와 이를 포함하는 시스템
US9697166B2 (en) 2014-11-21 2017-07-04 International Business Machines Corporation Implementing health check for optical cable attached PCIE enclosure
US9921768B2 (en) 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9910809B2 (en) 2014-12-19 2018-03-06 Intel Corporation High performance interconnect link state transitions
US9444551B2 (en) 2014-12-19 2016-09-13 Intel Corporation High performance optical repeater
US9552269B2 (en) 2014-12-23 2017-01-24 Intel Corporation Test logic for a serial interconnect
US20160216758A1 (en) 2015-01-27 2016-07-28 Avago Technologies General Ip (Singapore) Pte. Ltd. PCI Express Device With Early Low Power State
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9639276B2 (en) 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US9774389B2 (en) * 2015-09-01 2017-09-26 International Business Machines Corporation Dynamic link repair from lane failure with minimal link down-time while sparing fault channels
US9858161B2 (en) 2015-10-27 2018-01-02 International Business Machines Corporation Implementing cable failover in multiple cable PCI express IO interconnections
ES2830732T3 (es) * 2016-02-01 2021-06-04 Star Dundee Ltd Comunicación de múltiples canales
US20170351640A1 (en) 2016-06-03 2017-12-07 Intel Corporation Standardized retimer
US9965439B2 (en) 2016-06-27 2018-05-08 Intel Corporation Low latency multi-protocol retimers
US10789201B2 (en) * 2017-03-03 2020-09-29 Intel Corporation High performance interconnect
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US11630480B2 (en) 2017-10-05 2023-04-18 Intel Corporation System, method, and apparatus for SRIS mode selection for PCIe
US10601425B2 (en) 2018-05-30 2020-03-24 Intel Corporation Width and frequency conversion with PHY layer devices in PCI-express
US11467999B2 (en) 2018-06-29 2022-10-11 Intel Corporation Negotiating asymmetric link widths dynamically in a multi-lane link
US10846247B2 (en) * 2019-03-05 2020-11-24 Intel Corporation Controlling partial link width states for multilane links
US11301411B2 (en) 2019-06-07 2022-04-12 Intel Corporation Data structures for refined link training

Also Published As

Publication number Publication date
US11836101B2 (en) 2023-12-05
CN112866105A (zh) 2021-05-28
KR20210065834A (ko) 2021-06-04
US20200226084A1 (en) 2020-07-16
BR102020019433A2 (pt) 2021-06-08

Similar Documents

Publication Publication Date Title
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112013007752B3 (de) Hochleistungsverdrahtungs-Bitübertragungsschicht
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE102020130536A1 (de) Adaptiver Eintritt in und adaptives Verlassen von Niedrigenergiezuständen
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE102019109858A1 (de) Breiten- und Frequenzumsetzung mit PHY-Schicht-Vorrichtungen
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112014006183T5 (de) Vorrichtung, Verfahren und System für einen Schnellkonfigurationsmechanismus
DE112017001430T5 (de) In-band-retimer-registerzugriff
EP3706008B1 (de) Teilverbindungsbreitenzustände für mehrspurige verbindungen
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
DE102019132213A1 (de) Adressenübersetzung für skalierbare verlinkte Vorrichtungen
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung