DE102020115989A1 - Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen - Google Patents

Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen Download PDF

Info

Publication number
DE102020115989A1
DE102020115989A1 DE102020115989.7A DE102020115989A DE102020115989A1 DE 102020115989 A1 DE102020115989 A1 DE 102020115989A1 DE 102020115989 A DE102020115989 A DE 102020115989A DE 102020115989 A1 DE102020115989 A1 DE 102020115989A1
Authority
DE
Germany
Prior art keywords
capability
skill
message
configuration
logic
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
DE102020115989.7A
Other languages
English (en)
Inventor
Kuan Hua Tan
Eng Hun Ooi
Ang Li
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 DE102020115989A1 publication Critical patent/DE102020115989A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Abstract

Eine Vorrichtung, die über eine Verbindung mit einem Hostsystem verbunden ist, kann umfassen: einen ersten Port zum Empfangen einer Fähigkeitskonfigurationsnachricht über eine Verbindung und eine Nachrichtenanforderungsempfangslogik, die eine Hardwareschaltungsanordnung für Folgendes aufweist: Identifizieren einer Fähigkeit der in der Fähigkeitskonfigurationsnachricht identifizierten Vorrichtung, Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll; und Konfigurieren einer Fähigkeitsverknüpfungsliste, um die Fähigkeit basierend auf der Bestimmung zu präsentieren oder zu verbergen. Die Vorrichtung kann zudem eine Nachrichtenantworterzeugerlogik umfasst, die eine Hardwareschaltungsanordnung aufweist, um eine Antwortnachricht zu erzeugen, die angibt, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll. Die Vorrichtung kann einen zweiten Port zum Übertragen der Antwortnachricht über die Verbindung umfassen.

Description

  • Hintergrund
  • Zwischenverbindungen können verwendet werden, um eine Kommunikation zwischen verschiedenen Vorrichtungen innerhalb eines Systems bereitzustellen, wobei eine Art von Zwischenverbindungsmechanismus verwendet wird. Ein typisches Kommunikationsprotokoll für Kommunikationszwischenverbindungen zwischen Vorrichtungen in einem Computersystem ist das Peripheriekomponentenzwischenverbindungs-Express-Kommunikationsprotokoll (PCI Express™ (PCIe™)). Dieses Kommunikationsprotokoll ist ein Beispiel für ein Lade-/Speicher-Eingabe-/Ausgabe-Zwischenverbindungssystem (Lade-/Speicher-E/A-Zwischenverbindungssystem). Die Kommunikation zwischen den Vorrichtungen gemäß diesem Protokoll erfolgt typischerweise seriell mit sehr hohen Geschwindigkeiten.
  • Vorrichtungen können über eine unterschiedliche Anzahl von Datenverbindungen verbunden sein, wobei jede Datenverbindung mehrere Datenbahnen aufweist. Stromaufwärtige Vorrichtungen und stromabwärtige Vorrichtungen werden bei der Initialisierung einem Verbindungstraining unterzogen, um die Datenübertragung über die verschiedenen Verbindungen und Bahnen zu optimieren.
  • Figurenliste
    • 1 zeigt eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkernprozessor.
    • 2 ist eine schematische Darstellung eines Systems, das einen Host aufweist, der mit einer stromabwärtigen Vorrichtung verbunden ist, gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 3 ist eine schematische Darstellung des Systems von 2, die ein Beispiel einer Fähigkeitsstrukturkonfigurationsinitialisierung gemäß Ausführungsformen der vorliegenden Offenbarung zeigt.
    • 4 ist ein Schwimmbahndiagramm, das eine beispielhafte Fähigkeitsstrukturkonfigurationsinitialisierung gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 5 ist eine schematische Darstellung des Systems von 2, die ein Beispiel einer Fähigkeitsstrukturkonfiguration gemäß Ausführungsformen der vorliegenden Offenbarung zeigt.
    • 6 ist ein Schwimmbahndiagramm, das eine beispielhafte Fähigkeitsstrukturkonfigurationsprozedur gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 7 ist eine schematische Darstellung eines beispielhaften vom Anbieter definierten Nachrichtenrahmens gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 8A ist eine beispielhafte zwischenverbindungsprotokollbasierte Definition eines Zeigers der nächsten Fähigkeit und einer Fähigkeitskennung als Teil eines Leistungsverwaltungsfähigkeitsregisters gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 8B ist eine beispielhafte zwischenverbindungsprotokollbasierte Definition von Feldern für einen erweiterten Fähigkeitskopf und einen Versatz zur nächsten Fähigkeit in einer Fähigkeitsverknüpfungsliste gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 9 zeigt eine Ausführungsform eines Rechensystems mit einer Zwischenverbindungsarchitektur.
    • 10 zeigt eine Ausführungsform einer Zwischenverbindungsarchitektur mit einem geschichteten Stapel.
    • 11 zeigt eine Ausführungsform einer Anforderung oder eines Pakets, die/das innerhalb einer Zwischenverbindungsarchitektur erzeugt oder empfangen werden soll.
    • 12 zeigt eine Ausführungsform eines Sender-und-Empfänger-Paars für eine Zwischenverbindungsarchitektur.
    • 13 zeigt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Prozessor.
    • 14 zeigt eine Ausführungsform eines Blocks für ein Rechensystem mit mehreren Prozessorsockeln.
  • Genaue Beschreibung
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten wie etwa Beispiele spezifischer Typen von Prozessoren und Systemkonfigurationen, spezifischer Hardwarestrukturen, spezifischer Architektur- und Mikroarchitekturdetails, spezifischer Registerkonfigurationen, spezifischer Befehlstypen, spezifischer Systemkomponenten, spezifischer Abmessungen/Höhen, spezifischer Prozessor-Pipeline-Stufen und Operationen usw. dargelegt, um ein gründliches Verständnis der vorliegenden Offenbarung zu ermöglichen. Für Fachleute ist jedoch ersichtlich, dass diese spezifischen Einzelheiten nicht eingesetzt werden müssen, um die vorliegende Offenbarung zu praktizieren. In anderen Fällen sind wohlbekannte Komponenten oder Verfahren wie spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen bzw. spezifischer Code für beschriebene Algorithmen, spezifischer Firmware-Code, spezifische Zwischenverbindungsoperationen, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Kompilierer-Implementierungen, spezifische Ausdrücke von Algorithmen in Code, spezifische Abschalt- und Torsteuerungstechniken bzw. Logik dafür und andere spezifische Betriebsdetails des Rechensystems nicht im Einzelnen beschrieben, um zu vermeiden, dass die vorliegende Offenbarung unnötig verunklart wird.
  • Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieeinsparung und Energieeffizienz in spezifischen integrierten Schaltungen wie beispielsweise in Rechenplattformen oder Mikroprozessoren beschrieben werden können, sind andere Ausführungsformen auf andere Arten von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von einer besseren Energieeffizienz und Energieeinsparung profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt. Sie können auch in anderen Vorrichtungen verwendet werden, z. B. in handtragbaren Vorrichtungen, Tablets, anderen dünnen Notebooks, Ein-Chip-Systemen (SOC) und eingebetteten Anwendungen. Einige Beispiele für handgetragene Vorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und handgetragene PCs. Eingebettete Anwendungen umfassen typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein Ein-Chip-System, Netzcomputer (NetPC), Beistellkästen, Netz-Hubs, Weitbereichsnetz-Switches (WAN-Switches) oder jedes andere System, das die unten beschriebenen Funktionen und Operationen durchführen kann. Darüber hinaus sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und Energieeffizienz beziehen. Wie aus der nachstehenden Beschreibung ohne Weiteres ersichtlich ist, sind die hier beschriebenen Ausführungsformen von Verfahren, Vorrichtungen und Systemen (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) Zukunft „grüner Technologie“, die mit Leistungsfähigkeitserwägungen abgewogen ist, von entscheidender Bedeutung.
  • Mit dem Fortschritt in Rechensystemen werden die darin enthaltenen Komponenten komplexer. Infolgedessen nimmt auch die Komplexität der Zwischenverbindungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten zu, um sicherzustellen, dass die Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Darüber hinaus erfordern verschiedene Marktsegmente unterschiedliche Aspekte von Zwischenverbindungsarchitekturen, um die Anforderungen des Marktes zu erfüllen. Beispielsweise erfordern Server eine höhere Leistungsfähigkeit, während das mobile Ökosystem manchmal die Gesamtleistungsfähigkeit für Energieeinsparungen opfern kann. Dennoch ist es ein entscheidender Zweck der meisten Fabrics, höchstmögliche Leistungsfähigkeit bei maximaler Energieeinsparung zu erzielen. Nachfolgend wird eine Reihe von Zwischenverbindungen diskutiert, die möglicherweise von Aspekten der hierin beschriebenen Offenbarung profitieren würden.
  • Unter Bezugnahme auf 1 ist eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkernprozessor dargestellt. Der Prozessor 100 umfasst einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung wie beispielsweise einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzprozessor, einen Handprozessor, einen Anwendungsprozessor, einen Koprozessor, ein Ein-Chip-System (SOC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 100 enthält in einer Ausführungsform mindestens zwei Kerne - Kern 101 und 102, die asymmetrische Kerne oder symmetrische Kerne (in der dargestellten Ausführungsform) umfassen können. Der Prozessor 100 kann jedoch eine beliebige Anzahl von Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Softwarestrangs. Beispiele für Hardware-Verarbeitungselemente umfassen: eine Strangeinheit, einen Strangschlitz, einen Strang, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardwarestrang, einen Kern und/oder ein beliebiges anderes Element, das dazu in der Lage ist, einen Zustand für einen Prozessor wie beispielsweise einen Ausführungszustand oder einen Architekturzustand zu halten. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf beliebige Hardware, die unabhängig Code zugeordnet werden kann, wie z. B. einen Softwarestrang, ein Betriebssystem, eine Anwendung oder anderen Code. Ein physischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die möglicherweise eine beliebige Anzahl anderer Verarbeitungselemente wie Kerne oder Hardwarestränge aufweist.
  • Ein Kern bezieht sich häufig auf eine Logik, die auf einer integrierten Schaltung angeordnet ist, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jeder unabhängig aufrechterhaltene Architekturzustand mindestens einigen dedizierten Ausführungsbetriebsmitteln zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardwarestrang typischerweise auf eine beliebige Logik, die sich auf einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei sich die unabhängig aufrechterhaltenen Architekturzustände den Zugriff auf Ausführungsbetriebsmittel teilen. Wie ersichtlich ist, überlappen sich die Grenzen zwischen der Nomenklatur eines Hardwarestrangs und des Kerns, wenn bestimmte Betriebsmittel gemeinsam genutzt werden und andere einem Architekturzustand zugeordnet sind. Ein Kern und ein Hardwarestrang werden jedoch häufig von einem Betriebssystem als einzelne logische Prozessoren betrachtet, wobei das Betriebssystem Operationen auf jedem logischen Prozessor einzeln planen kann.
  • Der physische Prozessor 100 umfasst wie in 1 dargestellt zwei Kerne - Kern 101 und 102. Die Kerne 101 und 102 werden als symmetrische Kerne aufgefasst, d. h. als Kerne mit der/n gleichen Konfiguration, Funktionseinheiten und/oder Logik. In einer weiteren Ausführungsform umfasst der Kern 101 einen nicht reihenfolgetreuen Prozessorkern, während der Kern 102 einen reihenfolgetreuen Prozessorkern umfasst. Die Kerne 101 und 102 können jedoch individuell aus beliebigen Typen von Kernen ausgewählt werden wie beispielsweise einem nativen Kern, einem durch Software verwalteten Kern, einem Kern, der zum Ausführen einer nativen Befehlssatzarchitektur (ISA) ausgelegt ist, einem Kern, der zum Ausführen einer übersetzten Befehlssatzarchitektur (ISA) ausgelegt ist, einem Co-Design-Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann irgendeine Form der Übersetzung wie etwa eine binäre Übersetzung verwendet werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Zur weiteren Erörterung werden die in dem Kern 101 dargestellten Funktionseinheiten nachstehend ausführlicher beschrieben, da die Einheiten in dem Kern 102 in der dargestellten Ausführungsform auf ähnliche Weise arbeiten.
  • Wie dargestellt weist der Kern 101 zwei Hardwarestränge 101a und 101b auf, die auch als Hardwarestrangschlitze 101a und 101b bezeichnet werden können. Daher betrachten Softwareentitäten wie beispielsweise ein Betriebssystem in einer Ausführungsform den Prozessor 100 möglicherweise als vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Softwarestränge gleichzeitig auszuführen. Wie oben angedeutet ist ein erster Strang den Architekturzustandsregistern 101a zugeordnet, ein zweiter Strang den Architekturzustandsregistern 101b zugeordnet, ein dritter Strang den Architekturzustandsregistern 102a zugeordnet und ein vierter Strang den Architekturzustandsregistern 102b zugeordnet. Hier können die Architekturzustandsregister (101a, 101b, 102a und 102b) jeweils als Verarbeitungselemente, Strangschlitze oder Strangeinheiten bezeichnet werden, wie sie oben beschrieben sind. Wie dargestellt werden Architekturzustandsregister 101a in Architekturzustandsregistern 101b repliziert, so dass einzelne Architekturzustände/-kontexte für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert werden können. In dem Kern 101 können auch andere kleinere Betriebsmittel wie beispielsweise Befehlszeiger und Umbenennungslogik in dem Zuweisungs-und-Umbenennungsblock 130 für die Stränge 101a und 101b repliziert werden. Einige Betriebsmittel wie z. B. Puffer in einer Umordnungs-/Stilllegungseinheit 135, einem ILTB 120, einem Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung gemeinsam genutzt werden. Andere Betriebsmittel wie etwa interne Allzweckregister, Seitentabellen-Basisregister, DatenCache und Daten-TLB 115 niedriger Ebene, Ausführungseinheit(en) 140 und Teile der nicht reihenfolgetreuen Einheit 135 werden möglicherweise vollständig gemeinsam genutzt.
  • Der Prozessor 100 umfasst häufig andere Betriebsmittel, die vollständig gemeinsam genutzt werden können, durch Partitionierung gemeinsam genutzt werden können oder von/für Verarbeitungselemente(n) reserviert sind. In 1 ist eine Ausführungsform eines rein beispielhaften Prozessors mit beispielhaften logischen Einheiten/Betriebsmitteln eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor jede dieser Funktionseinheiten enthalten oder weglassen kann, sowie beliebige andere bekannte Funktionseinheiten, Logik oder Firmware enthalten kann, die nicht dargestellt sind. Wie dargestellt umfasst der Kern 101 einen vereinfachten, repräsentativen, nicht reihenfolgetreuen Prozessorkern (OOO-Prozessorkern). In verschiedenen Ausführungsformen kann jedoch ein reihenfolgetreuer Prozessor verwendet werden. Der OOO-Kern enthält einen Verzweigungszielpuffer 120 zum Vorhersagen von auszuführenden bzw. zu nehmenden Verzweigungen und einen Befehlsübersetzungspuffer (I-TLB) 120 zum Speichern von Adressübersetzungseinträgen für Befehle.
  • Der Kern 101 umfasst ferner ein Decodiermodul 125, das mit der Abrufeinheit 120 gekoppelt ist, um abgerufene Elemente zu decodieren. In einer Ausführungsform umfasst die Abruflogik einzelne Sequenzer, die den Strangschlitzen 101a bzw. 101b zugeordnet sind. Üblicherweise ist der Kern 101 einer ersten ISA zugeordnet, die auf dem Prozessor 100 ausführbare Befehle definiert/spezifiziert. Häufig enthalten Maschinencodebefehle, die Teil der ersten ISA sind, einen Befehlsabschnitt (als Opcode bezeichnet), der einen auszuführenden Befehl oder eine auszuführende Operation referenziert oder festlegt. Die Decodierlogik 125 weist eine Schaltung auf, die diese Befehle anhand ihrer Opcodes erkennt und die decodierten Befehle in der Pipeline zum Verarbeiten weiterleitet, wie es von der ersten ISA definiert wird. Wie später näher erörtert wird, haben bei einer Ausführungsform die Decodierer 125 beispielsweise eine Logik, die so ausgelegt oder eingerichtet ist, dass sie spezielle Befehle erkennt, wie etwa einen transaktionalen Befehl. Als Ergebnis der Erkennung durch die Decodierer 125 trifft die Architektur oder der Kern 101 spezielle festgelegte Maßnahmen, um Aufgaben auszuführen, die dem entsprechenden Befehl zugeordnet sind. Es ist wichtig zu beachten, dass alle hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren als Antwort auf einen oder mehrere Befehle ausgeführt werden können, wobei einige davon neue oder alte Befehle sein können. Es ist zu beachten, dass die Decodierer 126 in einer Ausführungsform die gleiche ISA (oder eine Teilmenge davon) 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 weist der Zuweisungs-und-Umbenennungsblock 130 einen Zuweiser zum Reservieren von Betriebsmitteln wie z. B. Registersätzen zum Speichern von Befehlsverarbeitungsergebnissen auf. Die Stränge 101a und 101b können jedoch möglicherweise nicht nicht reihenfolgetreu ausgeführt werden, wobei der Zuweisungs-und-Umbenennungsblock 130 zudem andere Betriebsmittel reserviert wie beispielsweise Umordnungspuffer zum Verfolgen von Befehlsergebnissen. Die Einheit 130 kann zudem einen Registerumbenenner enthalten, um Programm-/Befehlsreferenzregister in andere Register innerhalb des Prozessors 100 umzubenennen. Die Umordnungs-/Stilllegungseinheit 135 enthält Komponenten wie die oben erwähnten Umordnungspuffer, Ladepuffer und Speicherpuffer, um die nicht reihenfolgetreue Ausführung und spätere reihenfolgetreue Stilllegung von nicht reihenfolgetreu ausgeführten Befehlen zu unterstützen.
  • Der Scheduler-und-Ausführungseinheit-Block 140 enthält in einer Ausführungsform eine Scheduler-Einheit zum Planen von Befehlen/Operationen an Ausführungseinheiten. Beispielsweise wird ein Gleitkommabefehl an einem Port einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit hat. Registersätze, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Informationen zu Befehlsverarbeitungsergebnissen zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Der Datencache niedrigerer Ebene und der Datenübersetzungspuffer (D-TLB) 150 sind mit der Ausführungseinheit (den Ausführungseinheiten) 140 gekoppelt. Der Datencache dient zum Speichern kürzlich verwendeter/bearbeiteter Elemente wie beispielsweise Datenoperanden, die möglicherweise in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zum Speichern aktueller virtueller/linearer/physischer Adressübersetzungen. Als ein spezielles Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physischen Speicher in mehrere virtuelle Seiten aufzuteilen.
  • Hier teilen sich die Kerne 101 und 102 den Zugriff auf einen Cache höherer oder entfernterer Ebene wie beispielsweise einen Cache zweiter Ebene, der einer chipinternen Schnittstelle 110 zugeordnet ist. Es ist zu beachten, dass höhere oder entferntere Ebene sich drauf bezieht, dass Cache-Ebenen zunehmen oder sich von der/den Ausführungseinheit(en) entfernen. In einer Ausführungsform ist der Cache höherer Ebene ein Datencache letzter Ebene - ein letzter Cache in der Speicherhierarchie auf dem Prozessor 100 - wie etwa ein Datencache zweiter oder dritter Ebene. Der Cache höherer Ebene ist jedoch nicht darauf beschränkt, da er einem Befehls-Cache zugeordnet sein kann oder diesen enthalten kann. Ein Verfolgungs-Cache - eine Art Befehls-Cache - kann stattdessen nach dem Decodierer 125 eingekoppelt sein, um kürzlich decodierte Verfolgungen zu speichern. Hier bezieht sich ein Befehl möglicherweise auf einen Makrobefehl (d. h. einen von den Decodierern erkannten allgemeinen Befehl), der in eine Anzahl von Mikrobefehlen (Mikrooperationen) decodiert werden kann.
  • In der dargestellten Konfiguration umfasst der Prozessor 100 auch ein chipinternes Schnittstellenmodul 110. In der Vergangenheit war ein Speichercontroller, der nachstehend ausführlicher beschrieben ist, in einem Rechensystem außerhalb des Prozessors 100 enthalten. In diesem Szenario dient die chipinterne Schnittstelle 11 zur Kommunikation mit Vorrichtungen außerhalb des Prozessors 100 wie beispielsweise dem Systemspeicher 175, einem Chipsatz (der häufig einen SpeicherController-Hub zur Verbindung mit dem Speicher 175 und einen E/A-Controller-Hub zur Verbindung mit Peripherievorrichtungen enthält), einem SpeicherController-Hub, einer Northbridge oder einer anderen integrierten Schaltung. In diesem Szenario kann der Bus 105 zudem eine beliebige bekannte Zwischenverbindung wie beispielsweise einen Mehrpunktbus, eine Punkt-zu-Punkt-Zwischenverbindung, eine serielle Zwischenverbindung, einen parallelen Bus, einen kohärenten (z. B. einen cachekohärenten) Bus, eine geschichtete Protokollarchitektur, einen differentiellen Bus und einen GTL-Bus umfassen.
  • Der Speicher 175 kann dem Prozessor 100 zugewiesen sein oder mit anderen Vorrichtungen in einem System gemeinsam genutzt werden. Übliche Beispiele für Speichertypen 175 umfassen DRAM, SRAM, nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 180 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, der/die mit einem SpeicherController-Hub gekoppelt ist, einen Datenspeicher, der mit einem E/A-Controller-Hub gekoppelt ist, einen drahtlosen Sendeempfänger, eine Flash-Vorrichtung, einen Audiocontroller, einen Netzcontroller oder einen andere bekannte Vorrichtung umfassen kann.
  • In jüngerer Zeit kann jedoch, da mehr Logik und Vorrichtungen auf einem einzelnen Chip wie beispielsweise einem SOC integriert sind, jede dieser Vorrichtungen auf dem Prozessor 100 eingebaut sein. In einer Ausführungsform befindet sich beispielsweise ein Speichercontroller-Hub auf derselben Baugruppe und/oder demselben Chip wie der Prozessor 100. Hier weist ein Abschnitt des Kerns (ein On-Core-Abschnitt) 110 einen oder mehrere Controller zum Verbinden mit anderen Vorrichtungen wie einem Speicher 175 oder einer Grafikvorrichtung 180 auf. Die Konfiguration, die eine Zwischenverbindung und Controller zum Bilden einer Schnittstelle mit solchen Vorrichtungen aufweist, wird häufig als On-Core (oder Un-Core-Konfiguration) bezeichnet. Beispielsweise weist die chipinterne Schnittstelle 110 eine Ringzwischenverbindung für die chipinterne Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 für die chipexterne Kommunikation auf. In der SOC-Umgebung können jedoch noch mehr Vorrichtungen wie z. B. die Netzschnittstelle, Koprozessoren, der Speicher 175, der Grafikprozessor 180 und andere bekannte Computervorrichtungen/Schnittstellen auf einem einzelnen Chip oder einer integrierten Schaltung integriert sein, um einen geringen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 100 in der Lage, einen Kompilier-, Optimierungs- und/oder Übersetzercode 177 auszuführen, um den Anwendungscode 176 zu kompilieren, zu übersetzen und/oder zu optimieren, um die hierin beschriebenen Vorrichtungen und Verfahren zu unterstützen oder eine Schnittstelle damit zu bilden. Ein Kompilierer weist häufig ein Programm oder eine Reihe von Programmen auf, um Quelltext/-code in Zieltext/-code zu übersetzen. In der Regel erfolgt die Kompilierung von Programm-/Anwendungscode mit einem Kompilierer in mehreren Phasen und Durchläufen zum Umsetzen von Hochprogrammiersprachencode in Maschinen- oder Assemblersprachencode niedrigerer Ebene. Kompilierer mit einmaligem Durchlauf können jedoch weiterhin für die einfache Kompilierung verwendet werden. Ein Kompilierer kann alle bekannten Kompilierungstechniken verwenden und alle bekannten Kompilieroperationen ausführen, wie z. B. lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
  • Größere Kompilierer enthalten häufig mehrere Phasen, aber am häufigsten sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) einem Frontend, d. h. im Allgemeinen dort, wo syntaktische Verarbeitung, semantische Verarbeitung und einige Transformationen/Optimierungen stattfinden können, und (2) einem Backend, d. h. im Allgemeinen dort, wo Analysen, Transformationen, Optimierungen und Codeerzeugung stattfinden. Einige Kompilierer verweisen auf eine Mitte, was die Unschärfe der Abgrenzung zwischen einem Frontend und einem Backend eines Kompilierers zeigt. Infolgedessen können Verweise auf Einfügen, Verknüpfen, Erstellen oder andere Operationen eines Kompilierers in einer der oben genannten Phasen oder Durchgänge sowie in anderen bekannten Phasen oder Durchgängen eines Kompilierers erfolgen. Als anschauliches Beispiel fügt ein Kompilierer möglicherweise Operationen, Aufrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung ein, z. B. das Einfügen von Aufrufen/Operationen in eine Frontend-Phase der Kompilierung und anschließend eine Transformation der Aufrufe/Operationen in einen Code niedrigerer Ebene während einer Transformationsphase. Es ist zu beachten, dass während der dynamischen Kompilierung Kompilierercode oder dynamischer Optimierungscode möglicherweise solche Operationen/Aufrufe einfügen kann und den Code für die Ausführung während der Laufzeit optimieren kann. Als spezielles anschauliches Beispiel kann Binärcode (bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
  • Ähnlich wie ein Kompilierer übersetzt ein Übersetzer wie etwa ein Binärübersetzer den Code entweder statisch oder dynamisch, um den Code zu optimieren und/oder zu übersetzen. Daher kann sich der Verweis auf die Ausführung eines Codes, Anwendungscodes, Programmcodes oder einer Software-Umgebung auf Folgendes beziehen: (1) dynamische oder statische Ausführung eines oder mehrerer Kompilierprogramme, eines Optimierungscode-Optimierers oder -Übersetzers, um den Programmcode zu kompilieren, Software-Strukturen aufrechtzuerhalten, andere Operationen auszuführen, Code zu optimieren oder Code zu übersetzen; (2) Ausführung eines Hauptprogrammcodes mit Operationen/Aufrufen wie etwa eines Anwendungscodes, der optimiert/kompiliert worden ist; (3) Ausführung eines anderen Programmcodes wie etwa Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Software-Strukturen aufrechtzuerhalten, andere softwarebezogene Operationen auszuführen oder den Code zu optimieren; oder (4) eine Kombination davon.
  • Das Umkonfigurieren von Fähigkeiten einer Rechensystemarchitektur kann Anpassungsfähigkeit, Robustheit, Skalierbarkeit und Zuverlässigkeit für die ständig wachsenden Anwendungsfälle in der gegenwärtigen Computer- und Speicherindustrie erleichtern. Die Granularität der dynamischen Umkonfigurierbarkeit für bestimmte Verbindungskomponenten ist jedoch auf die Fähigkeiten beschränkt, die von jeder Funktion während der anfänglichen Aufzählung verkündet werden. Normalerweise wird nach der Aufzählung das Fähigkeitsprofil für eine bestimmte Funktion, die von einer angeschlossenen Vorrichtung angeboten wird, für alle logischen Entitäten in der PCIe-Hierarchie identisch aufgedeckt.
  • Wenn eine Entität diese spezifische Funktion verwenden soll, um eine bestimmte exklusive Fähigkeit zu unterstützen, ist die Fähigkeit für andere Entitäten sichtbar, was negative Nebeneffekte wie Treiberkompatibilitätsprobleme oder Konfigurationskonflikte verursachen kann. Infolgedessen kann dieses Problem verhindern, dass das System bezüglich Kosten und Effizienz besser optimiert wird.
  • Diese Offenbarung beschreibt einen Mechanismus in einem Host und einer Vorrichtung, um eine oder mehrere bestimmte Zwischenverbindungsfähigkeitsstrukturen innerhalb einer Funktion basierend darauf, auf welche Anforderungsentität (wie BIOS, Firmware, OS, Treiber usw.) die Funktion antwortet, zu verbergen oder zu präsentieren. Diese Offenbarung beschreibt zudem ein dynamisches Ändern der Sichtbarkeit bestimmter Zwischenverbindungsfähigkeitsstrukturen basierend auf neuen Systempräferenzen während der Systeminitialisierung oder des normalen Betriebs.
  • Diese Offenbarung beschreibt zudem ein Ermöglichen anderer Optimierungen innerhalb einer einzelnen Funktion hinsichtlich des Teilens und/oder Ausschließens von Betriebsmitteln, die einer oder mehreren bestimmten Fähigkeitsstrukturen zugeordnet sind.
  • Die hier beschriebenen Mechanismen und Techniken gehören zu den Unterscheidungsmerkmalen von 2LM gegenüber der PCI-Express-Schnittstelle (PCIe-Schnittstelle).
  • Ausführungsformen hierin beschreiben sichere TLP-basierte Handshake-Mechanismen zwischen dem SoC-Host und der PCIe-Vorrichtung. Dem Host wird die ultimative und hardwareautonome Kontrolle darüber gegeben, wann und welche PCIe-Fähigkeitsstruktur(en) präsentiert oder verborgen sein sollen.
  • Bei Bedarf kann ein Host die Vorrichtungs-PCIe-Fähigkeitsverknüpfungsliste dynamisch konfigurieren und die Vorrichtung ergreift Maßnahmen, um bestimmte PCIe-Fähigkeitsstrukturen zu präsentieren oder zu verbergen.
  • Vorteile der vorliegenden Offenbarung sind für Fachleute leicht ersichtlich. Beispielsweise können Ausführungsformen auf Zwei-Ebenen-Speicher (2LM) bezogene Systeme und andere potenzielle Rechensysteme stärken, indem sie Merkmale untersuchen und verwalten, die einer oder mehreren anbieterspezifischen kritischen Fähigkeitsstrukturen zugeordnet sind (z. B. unter Verwendung des BIOS), und verhindern, dass sie für irrelevante Systemhardware-/Software-Entitäten (wie OS oder Treiber) aufgedeckt werden, wodurch eine umfassendere Wiederverwendbarkeit von Software/Treiber gewährleistet wird.
  • Ausführungsformen stellen hardwareautonome (OS-, SW-, treiberunabhängige) und/oder mehr Systemoptimierungen basierend auf Systemkenntnissen, die dem Host gehören, bereit. Ausführungsformen bieten eine feine Granularität auf Fähigkeitsstrukturebene, die potenziell beim Aufbau zukünftiger Rechensysteme in Bezug auf Anpassungsfähigkeit, Robustheit, Skalierbarkeit und Zuverlässigkeit genutzt werden kann.
  • 2 ist eine schematische Darstellung eines Systems 200, das einen Host aufweist, der mit einer stromabwärtigen Vorrichtung verbunden ist, gemäß Ausführungsformen der vorliegenden Offenbarung. Das System 200 kann einen Host 202 aufweisen. Der Host 202 kann einen Kernprozessor aufweisen und kann ein komplexes Root-System zum Verbinden verschiedener verbundener Vorrichtungen mit dem Host 202 aufweisen. Der Host 202 kann ein Ein-Chip-System-Entwurf oder eine unabhängige Einheit sein und kann über eine Verbindung 220 wie beispielsweise mit einer Zwischenverbindung, die mit einem PCIe-basierten Protokoll kompatibel ist, mit anderen Vorrichtungen gekoppelt werden können. Der Host 202 kann einen mit dem Zwischenverbindungsprotokoll (z. B. PCIe) kompatiblen Root-Port-Controller aufweisen.
  • Der Host 202 kann einen Superuser 204 enthalten. Superanwender 204 kann als Begriff verwendet werden, um ein beliebiges Hostsystem darzustellen, das Systemoperationen verwalten kann; beispielsweise kann der Superanwender 204 ein System-BIOS, Betriebssysteme, Firmware usw. umfassen.
  • Der Host 202 kann eine Hostanwendungsschicht 206 aufweisen. Die Hostanwendungsschicht 206 kann einen Anforderungserzeuger 210 aufweisen, der in Hardware, Software oder einer Kombination von Hardware und Software implementiert ist. Der Anforderungserzeuger 210 kann in der Anwendungsschicht 206 des Hosts 202 implementiert sein, um Anforderungsnachrichten zusammenzustellen und sie der Standard-PCIe-Transaktionsschicht in dem Verbindungsstapel 208 zur Übertragung über die Verbindung 220 zu präsentieren. Der Anforderungserzeuger 210 kann eine in der Hostanwendungsschicht 206 implementierte Komponente sein, um die zugehörigen Transaktionsschichtpakete (TLPs) zusammenzusetzen und sie der Standardzwischenverbindungs-Transaktionsschicht zur Übertragung zu präsentieren. In einigen Ausführungsformen kann der Anforderungserzeuger 210 anbieterdefinierte Nachrichten (VDM) erzeugen, von denen einige Beispiele nachstehend ausführlicher beschrieben sind.
  • Der Host 202 kann in der Hostanwendungsschicht 206 zudem einen Antwortempfänger 212 aufweisen, der in Hardware, Software oder einer Kombination von Hardware und Software implementiert ist. Beispielsweise kann der Antwortempfänger 212 ein VDM-Empfänger sein, der VDM-Nachrichten über eine Zwischenverbindung empfangen kann. Der Antwortempfänger 212 kann eine eingehende Antwortnachricht parsen, interpretieren oder entschlüsseln. In Ausführungsformen kann der Antwortempfänger 212 Antworten auf Antwortnachrichten bestimmen, indem er die Antwortnachricht parst und Informationen als Antwort auf die Antwortnachricht abruft (z. B. durch Zugreifen auf geeignete Speicherorte, Tabellen, Datenbanken, funktionelle oder logische Komponenten usw.).
  • Das System 200 kann ein oder mehrere verbundene Vorrichtungen wie beispielsweise die Vorrichtung 222 aufweisen. Die Vorrichtung 222 kann einen PCIe-Endpunkt oder einen speziellen Typ eines im Root-Komplex integrierten Endpunktes (RCiEP) umfassen. In Ausführungsformen kann der RCiEP ein Endpunkt sein, der die PCIe-Verbindung nutzt, um mit seinem zugeordneten Root-Komplex zu kommunizieren, der der Superanwender 204 sein kann. Ein Beispiel ist ein 2LM-Speichercache, der ein erweiterter RCiEP ist.
  • Die Vorrichtung 222 kann eine Vorrichtungsanwendungsschicht 224 aufweisen. Die Vorrichtungsanwendungsschicht 224 kann einen Anforderungsempfänger 230 und einen Antworterzeuger 232 aufweisen, die den oben beschriebenen ähnlich sind. Der Anforderungsempfänger 230 kann empfangene Nachrichten wie beispielsweise VDM-Nachrichten empfangen, parsen, interpretieren und/oder entschlüsseln. Der Anforderungsempfänger 230 kann die zugehörigen TLPs von einer Standardzwischenverbindungs-Transaktionsschicht empfangen, die TLPs parsen (und bei Bedarf entschlüsseln) und andere Schritte basierend auf den Informationen in den TLPs ausführen. Die Vorrichtung 222 zudem auch einen Antworterzeuger 232 aufweisen, um die zugehörigen TLPs (Antworten) zusammenzustellen und sie der Standard-PCIe-Transaktionsschicht zur Übertragung zu präsentieren.
  • Die Vorrichtungsanwendungsschicht 224 weist zudem eine Komponente auf, die hier als Fähigkeitszeigerweiche 228 bezeichnet wird. Die Fähigkeitszeigerweiche 228 kann in Hardware, Software oder einer Kombination von Hardware und Software implementiert werden. Die Fähigkeitszeigerweiche 228 kann eine Logik zum Steuern des Inhalts des Feldwerts des Versatzes zur nächsten Fähigkeit der zugehörigen Fähigkeitsstrukturen (nachstehend beschrieben) enthalten. Die Fähigkeitszeigerweiche 228 kann von dem Host 202 über die übertragenen TLPs gesteuert werden.
  • Die Vorrichtungsanwendungsschicht 224 kann eine Fähigkeitsstrukturkonfiguration 226 aufweisen. Die Fähigkeitsstrukturkonfiguration 226 kann eine Tabelle umfassen, die der Host 202 prüfen und konfigurieren kann, mit Informationen über die vorgeschlagene Fähigkeitsstrukturkonfiguration, die die Vorrichtung unterstützt. Auf die Fähigkeitsstrukturkonfiguration 226 kann der Host 202 über TLPs zugreifen. Ein Beispiel einer Fähigkeitsstrukturtabelle 226 ist in Tabelle 1 gezeigt. Tabelle 1. Beispielhafte Fähigkeitsstrukturkonfigurationstabelle (Cap-Strukturkonfigurationstabelle).
    Fähigkeitsstrukturindex (RO zu Host) Anforderer-ID-Prüfungs-Freigabe (RW) Gültige Anforderer-ID (RW) Fähigkeitsverbergun gs- Freigabe (RW)
    16'h0 (Alle Caps) 1b 16'h0000 0000 0b
    16'0008h (Cap 1:MFVC) 1b 16'h0000 0000 0b ⇒1b
    16'0017h (Cap 2) 1b 16'h0000 0000 0b
    . . . . . . . . . . . .
    16'hxxxx xxxx (Cap N) 1b 16'h0000 0000 0b
  • 3 ist eine schematische Darstellung des Systems von 2, die ein Beispiel einer Fähigkeitsstrukturkonfigurationsinitialisierung gemäß Ausführungsformen der vorliegenden Offenbarung zeigt. 4 ist ein Schwimmbahndiagramm, das eine beispielhafte Fähigkeitsstrukturkonfigurationsinitialisierung gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. 3 und 4 können zusammen betrachtet werden.
  • Um die Aspekte der Ausführungsformen zu implementieren, werden bestimmte Handshake-Mechanismen zwischen dem Host 202 und der Vorrichtung 222 verwendet, um Steuer-/Statusinformationen zu übermitteln. Für den Handshake können verschiedene TLP-basierte Mechanismen wie beispielsweise anbieterdefinierte Nachrichten (VDM) (7 liefert ein Beispiel für eine VDM-Struktur), spezielles Speicher Rd/Wr, das auf bestimmte speicherabgebildete E/A-Räume abzielt, oder Cfg-Rd/Wr-Anforderungen, die auf anbieterspezifische erweiterte Fähigkeiten (VSEC) oder designierte anbieterspezifische erweiterte Funktionen (DVSEC) abzielen, usw. verwendet werden.
  • Der Host 202 und die Vorrichtung 222 können eine Anwendungsschichtübereinkunft darüber haben, wie Fähigkeitsstrukturkonfigurationsinformationen über einen Satz von Standard-TLP-Paketen gepackt werden.
  • Angesichts des Obigen können mehrere TLPs definiert werden, um den Fähigkeitsstrukturkonfigurationsinitialisierungsprozess zu erleichtern.
  • Es gibt im Allgemeinen zwei Arten von Hostanforderungs-TLPs; nämlich:
  • CAP CFG RD REQ (keine Nutzdaten): wird verwendet, um die „Fähigkeitsstrukturtabelle“ zu lesen; und
  • CAP_CFG_WR_REQ (mit Nutzdaten): wird verwendet, um die „Fähigkeitsstrukturtabelle“ zu konfigurieren.
  • Aus der Perspektive der Vorrichtung 222 werden verschiedene Arten von Antworten als Beispiel entworfen, um den Mechanismus zu veranschaulichen, nämlich:
  • CAP_CFG_RD_RSP (mit Nutzdaten): wird verwendet, um auf CAP_CFG_RD_REQ mit Informationen in der „Fähigkeitsstrukturtabelle“ zu antworten; und
  • CAP_CFG_WR_RSP (keine Nutzdaten): wird verwendet, um auf CAP_CFG_WR_REQ dahingehend zu antworten, ob die Konfiguration aus dem Host 202 erfolgreich ist oder nicht (reflektiert durch das Feld „RSP-Code“ in 7).
  • In Anbetracht der obigen Definition zeigen 3 und 4 ein Systembeispiel für die Fähigkeitsstrukturkonfigurationsinitialisierung. Darüber hinaus ist hier eine kurze Zusammenfassung der hervorgehobenen Blöcke:
  • 1) Während des normalen Systemstarts beginnt die „Superanwender“-Entität 204 (beispielsweise BIOS oder Firmware) auf dem Host 202, das zusätzliche „Fähigkeitsstrukturkonfigurations“-Merkmal auf der Vorrichtungsseite durch Zusammenstellen einer CAP_CFG_RD_REQ auf dem Hostanwendungsschicht zu untersuchen.
  • 2) CAP_CFG_RD_REQ wird von den Vorrichtungszwischenverbindungsschichten 234 empfangen, die sie wiederum an den Anforderungsempfänger 230 auf der Anwendungsschicht 224 weiterleiten. Der Anforderungsempfänger 230 ist mit Informationen (basierend auf der oben diskutierten Übereinkunft) der CAP_CFG_RD_REQ-Rahmenregeln vorprogrammiert und kann die Fähigkeitsstrukturtabelleninformationen aus der Fähigkeitsstrukturkonfiguration 226 extrahieren. Wie es in Tabelle 1 gezeigt ist, kann es N Fähigkeitsstrukturen geben, die dynamisch präsentiert oder verborgen sein können, wobei jede davon durch einen anderen Fähigkeitsstrukturindex reflektiert wird, wie er in der ersten Spalte von Tabelle 1 gezeigt ist. Der Index kann direkt der „Fähigkeits-ID“ oder „erweiterten PCIe-Fähigkeits-ID“ zugeordnet sein, wie es am Beispiel in 7 gezeigt ist. In Ausführungsformen kann der Index basierend auf einer vorbestimmten Übereinkunft zwischen dem Host 202 und der Vorrichtung 222 einem beliebigen Wert für jede Fähigkeit zugeordnet sein.
  • Angesichts dessen kann sich der „Superanwender“ 204 dazu entscheiden, ein oder mehrere Felder jedes indexierten Eintrags so zu konfigurieren, dass die Vorrichtung bestimmte Fähigkeiten präsentiert oder verbirgt, oder zusätzlich sogar basierend auf Konfigurationsbedingungen wie „gültige Anforderer-ID“ usw.
  • Das Fähigkeitsstrukturindex-Feld in Tabelle 1 ist aus Host-Sicht schreibgeschützt, ist jedoch durch die Vorrichtungsfirmware konfigurierbar. Es ist auch zu beachten, dass Tabelle 1 nur ein Beispiel für eine Fähigkeitsstrukturkonfigurationstabelle ist und die hier beschriebenen Techniken nicht auf die zugehörigen Felder beschränkt sind, die in Tabelle 1 zur Implementierung aufgezählt sind.
  • 3) Die Vorrichtung 222 übergibt die Standard-Fähigkeitsstrukturkonfigurationsinformationen an den Antworterzeuger 232. Der Antworterzeuger 232 konstruiert ein CAP_CFG_RD_RSP-TLP, das die Informationen mit optionalen Verschlüsselungen als Abschlussnachricht als Antwort auf CAP_CFG_RD_REQ trägt.
  • 4) CAP CFG_RD_RSP durchläuft die PCIe-Verbindung und -Schichten und erreicht den Antwortempfänger 212 auf der Hostanwendungsschicht 206. Dann kann die Hostanwendungsschicht 206 die bestätigten Informationen an den „Superanwender“ 204 senden, was den Initialisierungsprozess abschließt.
  • In einigen Ausführungsformen kann der Host 202 vorprogrammiert sein, um Kenntnis von der Fähigkeitsstrukturtabelle 226 der Vorrichtung zu haben. Unter solchen Umständen wäre der Konfigurationsinitialisierungsprozess, der durch den Text zu 3 und 4 beschrieben wird, optional. Während der Aufzählung kann beispielsweise das „Untersystem-Anbieter-ID-Register“ der PCIe-Vorrichtung von dem Host 202 erfasst werden, um die Fähigkeiten der Vorrichtung zu identifizieren, um das dynamische Präsentieren oder Verbergen von Fähigkeiten zu unterstützen.
  • 5 ist eine schematische Darstellung des Systems von 2, die ein Beispiel einer Fähigkeitsstrukturkonfiguration gemäß Ausführungsformen der vorliegenden Offenbarung zeigt. 6 ist ein Schwimmbahndiagramm, das eine beispielhafte Fähigkeitsstrukturkonfigurationsprozedur gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. 5 und 6 können zusammen betrachtet werden.
  • 5) Während des normalen Betriebs bestimmt der Host „Superanwender“ 204, dass ein Bedarf oder Wunsch besteht, bestimmte Fähigkeitsstrukturen der Vorrichtung 222 für eine oder mehrere bestimmte Host-Entitäten (wie etwa ein Systemabbild oder einen CPU-Kern) zu präsentieren oder zu verbergen. Basierend auf dieser Bestimmung kann der Hostanforderungserzeuger 210 ein CAP_CFG_WR_REQ-TLP auf der Hostanwendungsschicht 206 als „Fähigkeitsstrukturkonfigurationsanforderung“ zusammenstellen, wobei die Konfigurationsinformationen auf die bestimmte Fähigkeitsstruktur abzielen. Basierend auf dem Beispiel in Tabelle 1 kann die neue Einstellung für diese RW-Felder über die jeweiligen Felder des in 7 gezeigten beispielhaften VDM-TLP-Rahmens als VDM-basiertes TLP-Beispiel übermittelt werden, egal ob verschlüsselt (falls erforderlich) oder nicht.
  • 6) CAP_CFG_WR_REQ, die die Konfigurationsinformationen trägt, wird von den Vorrichtungs-PCIe-Schichten 234 empfangen, die sie wiederum an den Anforderungsempfänger 230 auf der Anwendungsschicht 224 weiterleiten. Der Anforderungsempfänger 230 kann vorkonfiguriert sein, um Informationen (basierend auf der Übereinkunft) zu CAP_CFG_WR_REQ-Rahmenregeln zu enthalten oder Zugriff darauf zu haben und decodiert das TLP, um die „Fähigkeitsstrukturkonfigurations“-Einstellungsinformationen zu extrahieren. Beispielsweise kann ein Host „Superanwender“ 204 sich dazu entscheiden, die erweiterte Fähigkeit „virtueller Multifunktions-Kanal (MFVC)“ zu konfigurieren, die dem zweiten Indexeintrag in Tabelle 1 zugeordnet ist (wobei der Index die erweiterte Fähigkeits-ID als 16'h0008 ist). Der Host „Superanwender“ 204 kann diese Fähigkeitsstruktur vor allen Anforderern verbergen, deren Anforderer-ID nicht nur aus Nullen besteht, indem er das Feld „Fähigkeitsverbergungs-Freigabe“ auf „1b“ setzt. Dieses Beispiel zeigt, wie der Anforderungsempfänger das TLP unter Verwendung der Fähigkeitsstrukturkonfigurationstabelle 226 decodieren kann.
  • 7) Die aktualisierte Hosteinstellung in der „Fähigkeitsstrukturtabelle“ steuert die „Fähigkeitszeigerweiche“ 228 an, um die Fähigkeitsstrukturverknüpfungsliste 235 innerhalb der Vorrichtung 222 so zu modifizieren, dass die MFVC-Fähigkeitsstruktur nicht über den „Versatz zur nächsten Fähigkeit“ in die Fähigkeitsstrukturverknüpfungsliste 235 eingebunden wird.
  • Das Verfahren zum Hinzufügen/Entfernen einer Fähigkeitsstruktur zu/aus der Verknüpfungsliste ist implementierungsspezifisch. Ein Beispiel ist jedoch ein Aktualisieren des Feldes „Zeiger/Versatz auf/zu nächste(r) Fähigkeit“ in der Verknüpfungsliste (in 8B gezeigt).
  • 8) Der Anforderungsempfänger 230 benachrichtigt den Antworterzeuger 232 in der Vorrichtungsanwendungsschicht 224, um eine CAP_CFG_WR_RSP mit optionalen Verschlüsselungen als Abschlussnachricht als Antwort auf CAP_CFG_WR_REQ zu konstruieren.
  • 9) Die CAP_CFG_WR_RSP durchläuft die Zwischenverbindung 220 und Schichten und erreicht den Antwortempfänger 212 auf der Hostanwendungsschicht 206. Dann kann die Hostanwendungsschicht 206 die Bestätigungsinformationen an das BIOS oder das System-OS senden, was den Fähigkeitsstrukturkonfigurationsprozess abschließt.
  • Nach den obigen Schritten kann die Vorrichtung 222 wie gewohnt arbeiten. Wenn beispielsweise „Systemabbild 1“ (mit einer Anforderer-ID, die nicht nur aus Nullen besteht) in 5 eine Fähigkeitserkundung oder -aufzählung auf der Vorrichtung 222 anordnet, kann die Vorrichtung 222 dem „Systemabbild 1“ eine Verknüpfungsliste präsentieren, die die MFVC-Fähigkeitsstruktur nicht enthält (Fortsetzung des obigen Beispiels). Auf diese Weise wird die MFVC-Fähigkeitsstruktur vor dem Systemabbild 1 verborgen. Wenn das „Systemabbild 1“ die Verknüpfungsliste ignoriert und die Konfigurationsanforderung, die „direkt“ auf die MFVC-Fähigkeitsstruktur abzielt, (erweiterte Fähigkeits-ID als 16'h0008) angeordnet hat, kann die Vorrichtung 222 die Anforderung unter Verwendung der Anforderer-ID-Prüfung gemäß dem Einstellungsbeispiel für Tabelle 1 validieren und dem „Systemabbild 1“ mit dem Abschluss „nicht unterstützte Anforderung (UR)“ antworten.
  • Es ist zu beachten, dass das Beispiel des Verbergens der MFVC-Fähigkeitsstruktur einen realen Anwendungsfall in einer 2LM-bezogenen Architektur hat, da bestimmte virtuelle Kanalbetriebsmittel nur für bestimmte vom BIOS gewährte Logikeinheiten in dem Host 202 reserviert sein können und das Verbergen der MFVC-Fähigkeitsstruktur vor den irrelevanten Entitäten in dem Host, wie z. B. dem NVMe-Treiber, die Kompatibilität aus Sicht des NVMe-Treibers erhält, wodurch die Vorrichtung 222 flexibel sowohl 2LM- als auch Nicht-2LM-Systeme unterstützen kann.
  • Das Vorstehende kann ein sicherer Mechanismus zum dynamischen Verbergen oder Präsentieren von Fähigkeiten sein, indem Informationsverschlüsselung/- entschlüsselung auf Anwendungsschichten eingeführt wird, so dass alle Konfigurationsinformationen auf der physischen PCIe-Verbindung/den physischen PCIe-Bahnen verschlüsselt werden können.
  • Zusätzlich kann das Vorstehende die Systemeffizienz verbessern, z. B. wenn mehrere Fähigkeitsstrukturen in einer oder mehreren Funktionen geändert werden müssen. Beispielsweise können eine oder mehrere Fähigkeitsstrukturkonfigurationstabellen auf der Vorrichtungsanwendungsschicht basierend auf dem Übereinkunftswissen aus dem Host implementiert werden. Auf diese Weise können die in 5 verwendeten TLPs Informationen tragen, die so einfach sind wie eine Auswahl des Konfigurations-„Modus“. Wenn die Vorrichtung die „Modus“-Konfiguration empfängt, kann sie Änderungen an allen zugehörigen Funktionsstrukturen in der Vorrichtung basierend auf der Wahl des „Modus“ durch den Host-Superanwender vornehmen. Darüber hinaus ist dieses Verfahren sehr sicher, da alle Konfigurationsinformationen vor der physischen PCIe-Verbindung/den physischen PCIe-Bahnen verborgen sind.
  • In Ausführungsformen kann eine Bahn einen Satz von Differenzpaaren elektrischer Signalleiter umfassen. Ein Paar elektrischer Signalleiter kann zum Senden verwendet werden und ein Paar elektrischer Signalleiter kann zum Empfangen verwendet werden. Eine xN-Verbindung umfasst N Bahnen.
  • 7 ist eine schematische Darstellung eines beispielhaften anbieterdefinierten Nachrichtenrahmens 700 gemäß Ausführungsformen der vorliegenden Offenbarung. Basierend auf der PCIe-Definition für anbieterdefinierte Nachrichten (PCIe-VDM-Definition) ist in 7 ein Beispiel für VDM-Formate gezeigt. Das Bytefeld „Anbieternachricht“ definiert den Detailtyp des Befehls Anforderung oder Antwort, der jeder einzelnen VDM zugeordnet ist. Abhängig davon, ob jeder Typ Nutzdaten zugeordnet werden müssen, kann das letzte Doppelwort (Datenbyte 0-3) der VDM zugeordnet sein oder nicht. Daher kann der Feldwert „Länge“ zwischen 1 (1DW Nutzdaten) und 0 (reservierter Wert als keine Nutzdaten) variieren. Es ist zu beachten, dass dies nur ein Beispiel für die Definition des VDM-Formats ist und die vorgeschlagene Idee keineswegs durch diese spezifische Definition des VDM-Formats eingeschränkt ist.
  • 8A ist eine beispielhafte zwischenverbindungsprotokollbasierte Definition eines Zeigers auf nächste Fähigkeit und einer Fähigkeitskennung als Teil eines Leistungsverwaltungsfähigkeitsregisters 800 gemäß Ausführungsformen der vorliegenden Offenbarung. Das Bit [31:16] kann unter verschiedenen Fähigkeitsstrukturen variieren, während die Feldstrukturen „Zeiger auf nächste Fähigkeit“ und „Fähigkeits-ID“ gleich bleiben. Eine Definition der Fähigkeits-ID und des Zeigers auf nächste Fähigkeit (aus PCI-Express-Basisspezifikation, Revision 4.0, Version 1.0):
  • Als Teil des Fähigkeitskopfs in jeder PCIe-Fähigkeitsstruktur enthält das Feld „Zeiger auf nächste Fähigkeit“ den Versatz zu der nächsten PCI-Fähigkeitsstruktur oder 00h, wenn keine anderen Elemente in der Verknüpfungsliste von Fähigkeiten vorhanden sind.
  • In ähnlicher Weise ist eine exklusive „Fähigkeits-ID“ in jedem PCIe-Fähigkeitsstruktur-Kopf enthalten, um anzugeben, welche bestimmte Fähigkeit diese Struktur ist.
  • 8B ist eine beispielhafte zwischenverbindungsprotokollbasierte Definition von Feldern erweiterter Fähigkeitskopf und Versatz zur nächsten Fähigkeit in einer Fähigkeitsverknüpfungsliste 850 gemäß Ausführungsformen der vorliegenden Offenbarung. Die Verknüpfungslistenfelder liefern eine Definition einer erweiterten Fähigkeits-ID und eines Versatzes zur nächsten Fähigkeit (aus PCI-Express-Basisspezifikation, Revision 4.0, Version 1.0). Es ist zu beachten, dass für erweiterte PCIe-Fähigkeitsstrukturen die erweiterte Fähigkeits-ID stattdessen 16-Bit ist. In diesem Beispiel wird zudem der Begriff „Versatz zur nächsten Fähigkeit“ verwendet, aber „Zeiger auf nächste Fähigkeit“ kann auch für denselben Zweck verwendet werden.
  • Eine Zwischenverbindungsstrukturarchitektur umfasst die Peripheriekomponentenzwischenverbindungs-Express-Architektur (PCIe-Architektur). Ein Ziel von PCIe ist es, Komponenten und Vorrichtungen verschiedener Hersteller in eine offene Architektur zu integrieren, die sich über mehrere Marktsegmente erstreckt; Clients (Desktop- und Mobilvorrichtungen), Server (Standard und Unternehmen) sowie eingebettete Vorrichtungen und Kommunikationsvorrichtungen. PCI Express ist eine hochleistungsfähige Allzweck-E/A-Zwischenverbindung, die für eine Vielzahl zukünftiger Rechen- und Kommunikationsplattformen definiert ist. Einige PCI-Eigenschaften wie das Nutzungsmodell, die Lade-Speicher-Architektur und die Softwareschnittstellen wurden durch die Überarbeitungen hindurch beibehalten, während frühere parallele Busimplementierungen durch eine stark skalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express nutzen die Fortschritte bei Punkt-zu-Punkt-Verbindungen, switchbasierter Technologie und paketiertem Protokoll, um neue Stufen von Leistungsfähigkeit und Funktionen bereitzustellen. Leistungsverwaltung, Dienstgüte (QoS), Hot-Plug-/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung gehören zu den erweiterten Funktionen, die von PCI Express unterstützt werden.
  • Unter Bezugnahme auf 9 ist eine Ausführungsform einer Fabric dargestellt, die aus Punkt-zu-Punkt-Verbindungen besteht, die eine Menge von Komponenten miteinander verbinden. Das System 900 umfasst einen Prozessor 905 und einen Systemspeicher 910, die mit dem Controller-Hub 915 verbunden sind. Der Prozessor 905 umfasst ein beliebiges Verarbeitungselement wie etwa einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Koprozessor oder einen anderen Prozessor. Der Prozessor 905 ist über den Vorderseitenbus (FSB) 906 mit dem Controller-Hub 915 verbunden. In einer Ausführungsform ist der FSB 906 eine serielle Punkt-zu-Punkt-Verbindung, wie es nachstehend beschrieben ist. In einer weiteren Ausführungsform weist die Verbindung 906 eine serielle, differentielle Zwischenverbindungsarchitektur auf, die mit einem anderen Zwischenverbindungsstandard kompatibel ist.
  • Der Systemspeicher 910 umfasst eine beliebige Speichervorrichtung wie etwa einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen Speicher (NV) oder einen anderen Speicher, auf den Vorrichtungen in dem System 900 zugreifen können. Der Systemspeicher 910 ist über eine Speicherschnittstelle 916 mit dem Controller-Hub 915 verbunden. Beispiele für eine Speicherschnittstelle umfassen eine Doppeldatenraten-Speicherschnittstelle (DDR-Speicherschnittstelle), eine DDR-Speicherschnittstelle mit zwei Kanälen und eine Speicherschnittstelle für dynamischen RAM (DRAM-Speicherschnittstelle).
  • In einer Ausführungsform ist der Controller-Hub 915 ein Root-Hub, ein Root-Komplex oder ein Root-Controller in einer Peripheriekomponentenzwischenverbindungs-Express-Verbindungshierarchie (PCIe- oder PCIE-Verbindungshierarchie). Beispiele für den Controller-Hub 915 umfassen einen Chipsatz, einen SpeicherController-Hub (MCH), eine Northbridge, einen Zwischenverbindungs-Controller-Hub (ICH), eine Southbridge und einen Root-Port-Controller/-Hub. Häufig bezieht sich der Begriff Chipsatz auf zwei physisch getrennte Controller-Hubs, d. h. Einen SpeicherController-Hub (MCH), der mit einem Zwischenverbindungs-Controller-Hub (ICH) gekoppelt ist. Es ist zu beachten, dass aktuelle Systeme häufig den in den Prozessor 905 integrierten MCH enthalten, während der Controller 915 auf ähnliche Weise wie nachstehend beschrieben mit E/A-Vorrichtungen kommunizieren soll. In einigen Ausführungsformen wird das Peer-zu-Peer-Routing optional durch den Root-Komplex 915 unterstützt.
  • Hier ist der Controller-Hub 915 über eine serielle Verbindung 919 mit dem Switch bzw. der Brücke 920 gekoppelt. Eingabe-/Ausgabemodule 917 und 921, die auch als Schnittstellen/Ports 917 und 921 bezeichnet werden können, umfassen/implementieren einen geschichteten Protokollstapel zum Herstellen von Kommunikation zwischen dem Controller-Hub 915 und dem Switch 920. In einer Ausführungsform können mehrere Vorrichtungen mit dem Switch 920 koppelbar sein.
  • Der Switch bzw. die Brücke 920 leitet Pakete/Nachrichten von der Vorrichtung 925 stromaufwärts, d. h. eine Hierarchie hinauf zu einem Root-Komplex, zu dem Controller-Hub 915 und stromabwärts, d. h. eine Hierarchie hinunter weg von einem Root-Port-Controller, von dem Prozessor 905 oder dem Systemspeicher 910 zu der Vorrichtung 925. Der Switch 920 wird in einer Ausführungsform als eine logische Anordnung mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 925 umfasst eine beliebige interne oder externe Vorrichtung oder eine beliebige externe Komponente, die mit einem elektronischen System verbunden werden soll, beispielsweise eine E/A-Vorrichtung, einen Netzschnittstellen-Controller (NIC), eine Zusatzkarte, einen Audioprozessor, einen Netzprozessor und ein Festplattenlaufwerk, eine Speichervorrichtung, CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine USB-Vorrichtung, einen Scanner und andere Eingabe-/Ausgabevorrichtungen. In der PCIe-Umgangssprache wird eine Vorrichtung häufig als Endpunkt bezeichnet. Obwohl dies nicht speziell gezeigt ist, kann die Vorrichtung 925 eine PCIe-zu-PCI/PCI-X-Brücke aufweisen, um ältere oder andere PCI-Vorrichtungen zu unterstützen. Endpunktvorrichtungen in PCIe werden häufig als Alt-Endpunkte, PCIe-Endpunkte oder in den Root-Komplex integrierte Endpunkte klassifiziert.
  • Der Grafikbeschleuniger 930 ist über die serielle Verbindung 932 auch mit dem Controller-Hub 915 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 930 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 920, und dementsprechend die E/A-Vorrichtung 925, ist dann mit dem ICH gekoppelt. Die E/A-Module 931 und 918 sollen auch einen geschichteten Protokollstapel implementieren, um zwischen dem Grafikbeschleuniger 930 und dem Controller-Hub 915 zu kommunizieren. Ähnlich wie bei der obigen MCH-Diskussion kann ein Grafik-Controller oder der Grafikbeschleuniger 930 selbst in den Prozessor 905 integriert sein.
  • Unter Bezugnahme auf 10 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Der geschichtete Protokollstapel 1000 umfasst eine beliebige Form eines geschichteten Kommunikationsstapels, beispielsweise einen QuickPath-Zwischenverbindungsstapel (QPI), einen PCIe-Stapel, einen Hochleistungsrechnungs-Zwischenverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl sich die unmittelbar folgenden Erläuterungen unter Bezugnahme auf 9-12 auf einen PCIe-Stapel beziehen, können die gleichen Konzepte auf andere Zwischenverbindungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 1000 ein PCIe-Protokollstapel, der eine Transaktionsschicht 1005, eine Verbindungsschicht 1010 und die Bitübertragungsschicht 1020 aufweist. Eine Schnittstelle, wie beispielsweise die Schnittstellen 917, 918, 921, 922, 926 und 931 in 1, kann als Kommunikationsprotokollstapel 1000 dargestellt werden. Die Darstellung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert/umfasst.
  • PCI Express verwendet Pakete, um Informationen zwischen Komponenten zu übermitteln. Pakete werden in der Transaktionsschicht 1005 und der Datenverbindungsschicht 1010 gebildet, um die Informationen von der sendenden Komponente zu der empfangenden Komponente zu übertragen. Während die gesendeten Pakete durch die anderen Schichten laufen, werden sie mit zusätzlichen Informationen erweitert, die zur Behandlung von Paketen in diesen Schichten erforderlich sind. Auf der Empfangsseite erfolgt der umgekehrte Prozess und Pakete werden von ihrer Darstellung in der Bitübertragungsschicht 1020 in die Darstellung in der Datenverbindungsschicht 1010 und schließlich (für Transaktionsschichtpakete) in die Form, das von der Transaktionsschicht 1005 der Empfangsvorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 1005 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur wie etwa der Datenverbindungsschicht 1010 und der Bitübertragungsschicht 1020 bereitstellen. In dieser Hinsicht ist eine Hauptaufgabe der Transaktionsschicht 1005 das Zusammenstellen und Zerlegen von Paketen (d. h. Transaktionsschichtpaketen oder TLPs). Die Übersetzungsschicht 1005 verwaltet typischerweise die kreditbasierte Flusssteuerung für TLPs. PCIe implementiert geteilte Transaktionen, d. h. Transaktionen, bei denen Anforderung und Antwort zeitlich getrennt sind, wodurch eine Verbindung anderen Verkehr transportieren kann, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Zusätzlich verwendet PCIe eine kreditbasierte Flusssteuerung. In diesem Schema gibt eine Vorrichtung einen anfänglichen Kreditbetrag für jeden der Empfangspuffer in der Transaktionsschicht 1005 bekannt. Eine externe Vorrichtung auf der gegenüberliegenden Seite der Verbindung, wie beispielsweise der Controller-Hub 115 in 1, zählt den von jedem TLP verbrauchten Kreditbetrag. Eine Transaktion kann gesendet werden, wenn die Transaktion ein Kreditlimit nicht überschreitet. Nach Erhalt einer Antwort wird der Kreditbetrag wiederhergestellt. Ein Vorteil eines Kreditschemas besteht darin, dass die Latenz der Kreditrückgabe die Leistung nicht beeinträchtigt, sofern das Kreditlimit eingehalten wird.
  • In einer Ausführungsform umfassen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe-/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherraumtransaktionen umfassen eine oder mehrere von Leseanforderungen und Schreibanforderungen zum Übertragen von Daten zu/von einem speicherabgebildeten Ort. In einer Ausführungsform können Speicherraumtransaktionen zwei verschiedene Adressformate verwenden, z. B. ein kurzes Adressformat wie eine 32-Bit-Adresse oder ein langes Adressformat wie eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen in den Konfigurationsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind definiert, um die bandinterne Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher setzt in einer Ausführungsform die Transaktionsschicht 1005 Paketkopf/Nutzdaten 1006 zusammen. Das Format für aktuelle Paketköpfe/Nutzdaten kann in der PCIe-Spezifikation der PCIe-Spezifikations-Webpräsenz gefunden werden.
  • Unter kurzer Bezugnahme auf 11 ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. In einer Ausführungsform ist der Transaktionsdeskriptor 1100 ein Mechanismus zum Übertragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 1100 die Identifizierung von Transaktionen in einem System. Andere mögliche Anwendungen umfassen ein Verfolgen von Änderungen der Standardtransaktionsreihenfolge und eine Zuordnung von Transaktionen zu Kanälen.
  • Der Transaktionsdeskriptor 1100 umfasst ein globales Kennungsfeld 1102, ein Attributfeld 1104 und ein Kanalkennungsfeld 1106. In dem dargestellten Beispiel ist ein globales Kennungsfeld 1102 dargestellt, das ein lokales Transaktionskennungsfeld 1108 und ein Quellenkennungsfeld 1110 umfasst. In einer Ausführungsform ist die globale Transaktionskennung 1102 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das lokale Transaktionskennungsfeld 1108 ein Feld, das von einem anfordernden Agenten erzeugt wird, und es ist eindeutig für alle ausstehenden Anforderungen, die einen Abschluss für diesen anfordernden Agenten erfordern. Darüber hinaus identifiziert in diesem Beispiel die Quellenkennung 1110 den anfordernden Agenten innerhalb einer PCIe-Hierarchie eindeutig. Zusammen mit der Quellen-ID 1110 stellt das Feld der lokalen Transaktionskennung 1108 dementsprechend eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Das Attributfeld 1104 spezifiziert Eigenschaften und Beziehungen der Transaktion. In dieser Hinsicht wird das Attributfeld 1104 möglicherweise verwendet, um zusätzliche Informationen zu liefern, die eine Modifizierung der Standardbehandlung von Transaktionen ermöglichen. In einer Ausführungsform umfasst das Attributfeld 1104 ein Prioritätsfeld 1112, ein reserviertes Feld 1114, ein Ordnungsfeld 1116 und ein Nicht-Überprüfungs-Feld 1118. Hier kann das Prioritätsunterfeld 1112 von einem Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 1114 bleibt für die zukünftige oder vom Anbieter definierte Verwendung reserviert. Mögliche Nutzungsmodelle unter Verwendung von Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 1116 verwendet, um optionale Informationen zu liefern, die die Art der Ordnung übermitteln, die Standardordnungsregeln modifizieren kann. Gemäß einer beispielhaften Implementierung gilt ein Ordnungsattribut von „0“, das die Standardordnungsregeln bezeichnet, wobei ein Ordnungsattribut von „1“ eine entspannte Ordnung bezeichnet, bei der Schreibvorgänge Schreibvorgänge in derselben Richtung überholen können und Leseabschlüsse Schreibvorgänge in der gleichen Richtung überholen können. Das Überprüfungsattributfeld 1118 wird verwendet, um zu bestimmen, ob Transaktionen abgehört werden. Wie gezeigt identifiziert das Kanal-ID-Feld 1106 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 1010, die auch als Datenverbindungsschicht 1010 bezeichnet wird, fungiert als eine Zwischenstufe zwischen der Transaktionsschicht 1005 und der Bitübertragungsschicht 1020. In einer Ausführungsform ist es eine Aufgabe der Datenverbindungsschicht 1010, einen zuverlässigen Mechanismus für den Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 1010 akzeptiert TLPs, die von der Transaktionsschicht 1005 zusammengestellt werden, wendet eine Paketsequenzkennung 1011, d. h. eine Identifikationsnummer oder Paketnummer, an, berechnet einen Fehlererkennungscode, d. h. CRC 1012, und wendet diesen an und übermittelt die modifizierten TLPs an die Bitübertragungsschicht 1020 zur Übertragung über etwas Physisches zu einer externen Vorrichtung.
  • Bitübertragungsschicht
  • In einer Ausführungsform umfasst die Bitübertragungsschicht 1020 einen logischen Unterblock 1021 und einen elektrischen Unterblock 1022, um ein Paket physisch an eine externe Vorrichtung zu übertragen. Hier ist der logische Unterblock 1021 für die „digitalen“ Funktionen der Bitübertragungsschicht 1021 verantwortlich. In dieser Hinsicht umfasst der logische Unterblock einen Sendeabschnitt, um ausgehende Informationen für die Übertragung durch den physischen Unterblock 1022 vorzubereiten, und einen Empfangsabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie an die Verbindungsschicht 1010 weitergeleitet werden.
  • Der physische Block 1022 umfasst einen Sender und einen Empfänger. Der Sender wird von dem logischen Unterblock 1021 mit Symbolen beliefert, die der Sender serialisiert und an eine externe Vorrichtung sendet. Der Empfänger wird von einer externen Vorrichtung mit serialisierten Symbolen beliefert und setzt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird entserialisiert und dem logischen Unterblock 1021 zugeführt. In einer Ausführungsform wird ein 8b/10b-Übertragungscode verwendet, bei dem Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 1023 auszubilden. Zusätzlich stellt der Empfänger in einem Beispiel auch einen Symboltakt bereit, der aus dem eingehenden seriellen Strom wiederhergestellt wird.
  • Obwohl die Transaktionsschicht 1005, die Verbindungsschicht 1010 und die Bitübertragungsschicht 1020 unter Bezugnahme auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, ist ein geschichteter Protokollstapel wie oben angegeben nicht darauf beschränkt. Tatsächlich kann ein beliebiges Schichtprotokoll enthalten/implementiert sein. Als ein Beispiel umfasst ein Port bzw. eine Schnittstelle, die als ein geschichtetes Protokoll dargestellt wird, Folgendes: (1) eine erste Schicht zum Zusammenstellen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Übertragen der Pakete, d. h. eine Bitübertragungsschicht. Als spezielles Beispiel wird ein geschichtetes Protokoll mit allgemeiner Standardschnittstelle (CSI) verwendet.
  • Unter Bezugnahme auf 12 ist eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Fabric dargestellt. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung dargestellt ist, ist eine serielle Punkt-zu-Punkt-Verbindung nicht darauf beschränkt, da sie einen beliebigen Übertragungspfad zum Übertragen serieller Daten umfasst. In der gezeigten Ausführungsform enthält eine Basis-PCIe-Verbindung zwei differentiell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 1206/1211 und ein Empfangspaar 1212/1207. Dementsprechend umfasst die Vorrichtung 1205 eine Sendelogik 1206 zum Senden von Daten an die Vorrichtung 1210 und eine Empfangslogik 1207 zum Empfangen von Daten von der Vorrichtung 1210. Mit anderen Worten sind zwei Sendepfade, d. h. Pfade 1216 und 1217, und zwei Empfangspfade, d. h. Pfade 1218 und 1219, in einer PCIe-Verbindung enthalten.
  • Ein Übertragungspfad bezieht sich auf einen beliebigen Pfad zum Übertragen von Daten wie beispielsweise 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. Vorrichtung 1205 und Vorrichtung 1210, wird als Verbindung wie z. B. Verbindung 415 bezeichnet. Eine Verbindung kann eine Bahn unterstützen - wobei jede Bahn einen Satz von Differenzsignalpaaren darstellt (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren, kann eine Verbindung mehrere Bahnen zusammenfassen, was mit xN bezeichnet ist, wobei N eine unterstützte Verbindungsbreite ist, beispielsweise 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein Differenzpaar bezieht sich auf zwei Übertragungswege, wie beispielsweise Leitungen 416 und 417, um Differenzsignale zu übertragen. Wenn beispielsweise die Leitung 416 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. eine ansteigende Flanke, steuert die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel, d. h. eine abfallende Flanke. Differenzsignale weisen potenziell bessere elektrische Eigenschaften auf, wie beispielsweise eine bessere Signalintegrität, d. h. Übersprechkopplung, Spannungsüberschwingen/-unterschwingen, Überschwingen usw. Dies ermöglicht ein besseres Zeitvorgabefenster, das schnellere Übertragungsfrequenzen ermöglicht.
  • Unter Bezugnahme auf 13 ist ein Blockdiagramm eines beispielhaften Computersystems dargestellt, das mit einem Prozessor ausgebildet ist, der Ausführungseinheiten zum Ausführen eines Befehls umfasst, wobei eine oder mehrere der Zwischenverbindungen ein oder mehrere Merkmale gemäß einer Ausführungsform der vorliegenden Offenbarung implementieren. Das System 1300 umfasst eine Komponente wie beispielsweise einen Prozessor 1302, um Ausführungseinheiten mit Logik zum Ausführen von Algorithmen für Prozessdaten gemäß der vorliegenden Offenbarung wie beispielsweise in der hier beschriebenen Ausführungsform zu verwenden. Das System 1300 ist repräsentativ für Verarbeitungssysteme, die auf den Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™ basieren, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Arbeitsplätze, Beistellkästen und dergleichen) ebenfalls verwendet werden können. In einer Ausführungsform führt das beispielhafte System 1300 eine Version des WINDOWS™-Betriebssystems aus, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder grafische Anwenderoberflächen verwendet werden können. Somit sind Ausführungsformen der vorliegenden Offenbarung nicht auf irgendeine spezielle Kombination von Hardwareschaltungen und Software beschränkt.
  • Ausführungsformen sind nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Offenbarung können in anderen Vorrichtungen wie Handvorrichtungen und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen können einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein Ein-Chip-System, Netzcomputer (NetPCs), Beistellkästen, Netz-Hubs, Weitbereichsnetz-Switches (WAN-Switches) oder ein beliebiges anderes System umfassen, das eine einen oder mehrere Befehle gemäß mindestens einer Ausführungsform durchführen kann.
  • In dieser veranschaulichten Ausführungsform umfasst der Prozessor 1302 eine oder mehrere Ausführungseinheiten 1308 zum Implementieren eines Algorithmus, der mindestens einen Befehl ausführen soll. Eine Ausführungsform kann im Kontext eines Einprozessor-Desktop- oder -Server-Systems beschrieben werden, aber alternative Ausführungsformen können in einem Mehrprozessorsystem enthalten sein. Das System 1300 ist ein Beispiel für eine „Hub“-Systemarchitektur. Das Computersystem 1300 weist einen Prozessor 1302 zum Verarbeiten von Datensignalen auf. Der Prozessor 1302 umfasst als ein veranschaulichendes Beispiel einen Mikroprozessor für Berechnungen mit komplexem Befehlssatz (CISC-Mikroprozessor), Mikroprozessor für Berechnungen mit reduziertem Befehlssatz (RISC-Mikroprozessor), einen Mikroprozessor mit sehr langem Befehlswort (VLIW-Mikroprozessor), einen Prozessor, der eine Kombination von Befehlssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung wie beispielsweise einen Digitalsignalprozessor. Der Prozessor 1302 ist mit einem Prozessorbus 1310 gekoppelt, der Datensignale zwischen dem Prozessor 1302 und anderen Komponenten in dem System 1300 überträgt. Die Elemente des Systems 1300 (z. B. Grafikbeschleuniger 1312, Speichercontroller-Hub 1316, Speicher 1320, E/A-Controller-Hub 1324, drahtloser Sendeempfänger 1326, Flash-BIOS 1328, Netz-Controller 1334, Audio-Controller 1336, serieller Erweiterungsport 1338, E/A-Controller 1340 usw.) führen ihre herkömmlichen Funktionen aus, die Fachleuten wohlbekannt sind.
  • In einer Ausführungsform umfasst der Prozessor 1302 einen internen Cache-Speicher 1304 der Ebene 1 (L1-Cache). Abhängig von der Architektur kann der Prozessor 1302 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. Andere Ausführungsformen umfassen eine Kombination von sowohl internem als auch externem Cache in Abhängigkeit von der speziellen Implementierung und den Bedürfnissen. Der Registersatz 1306 dient zum Speichern verschiedener Arten von Daten in verschiedenen Registern einschließlich Ganzzahlregistern, Gleitkommaregistern, Vektorregistern, Bankregistern, Schattenregistern, Prüfpunktregistern, Zustandsregistern und Befehlszeigerregistern.
  • Die Ausführungseinheit 1308, die Logik zum Durchführen von Ganzzahl- und Gleitkommaoperationen aufweist, ist auch in dem Prozessor 1302 untergebracht. Der Prozessor 1302 beinhaltet in einer Ausführungsform auch einen Mikrocode-ROM (u-Code-ROM), der zum Speichern von Mikrocode dient, der bei Ausführung Algorithmen für bestimmte Makrobefehle durchführen oder komplexe Szenarien behandeln soll. Hier ist Mikrocode potenziell aktualisierbar, um Logik-Fehler/Fehlerbehebungen für den Prozessor 1302 zu behandeln. Bei einer Ausführungsform beinhaltet die Ausführungseinheit 1308 Logik zum Handhaben eines gepackten Befehlssatzes 1309. Durch Einschließen des gepackten Befehlssatzes 1309 in den Befehlssatz eines Universalprozessors 1302 zusammen mit dazugehörigen Schaltungen zum Ausführen der Befehle können die Operationen, die von vielen Multimedia-Anwendungen verwendet werden, mit Hilfe gepackter Daten in einem Universalprozessor 1302 durchgeführt werden. So können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors für die Durchführung von Operationen an gepackten Daten genutzt wird. Dies beseitigt potenziell den Bedarf daran, kleinere Dateneinheiten über den Datenbus des Prozessors hinweg zu übertragen, um eine oder mehrere Operationen mit einem Datenelement nach dem anderen durchzuführen.
  • Alternative Ausführungsformen einer Ausführungseinheit 1308 können auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von logischen Schaltungen eingesetzt werden. Das System 1300 beinhaltet einen Speicher 1320. Der Speicher 1320 umfasst eine dynamische Zufallszugriffsspeicher-Vorrichtung (DRAM-Vorrichtung), eine statische Zufallszugriffsspeicher-Vorrichtung (SRAM-Vorrichtung), eine Flash-Speicher-Vorrichtung oder eine andere Speichervorrichtung. Der Speicher 1320 speichert Befehle und/oder Daten, die durch Datensignale dargestellt werden, welche durch den Prozessor 1302 ausgeführt werden sollen.
  • Es ist zu beachten, dass jegliche vorgenannten Merkmale oder Aspekte der Offenbarung auf einer oder mehreren in 13 dargestellten Zwischenverbindungen verwendet werden können. Beispielsweise implementiert eine nicht gezeigte chipinterne Zwischenverbindung (ODI) zum Koppeln von internen Einheiten des Prozessors 1302 einen oder mehrere Aspekte der oben beschriebenen Offenbarung. Oder die Offenbarung ist einem Prozessorbus 1310 (z. B. Intels QuickPath-Zwischenverbindung (QPI) oder einer anderen bekannten Hochleistungsrechnungs-Zwischenverbindung), einem Speicherpfad 1318 mit hoher Bandbreite zu dem Speicher 1320, einer Punkt-zu-Punkt-Verbindung zu dem Grafikbeschleuniger 1312 (z. B. einer PCIe-kompatiblen Fabric), einer Controller-Hub-Zwischenverbindung 1322, einer E/A-Zwischenverbindung oder einer anderen Zwischenverbindung (z. B. USB, PCI, PCIe) zum Koppeln der anderen dargestellten Komponenten zugeordnet. Einige Beispiele für solche Komponenten umfassen den Audio-Controller 1336, den Firmware-Hub (Flash-BIOS) 1328, den drahtlosen Sendeempfänger 1326, den Datenspeicher 1324, den Alt-E/A-Controller 1310, der Anwendereingabe- und Tastaturschnittstellen 1342 enthält, einen seriellen Erweiterungsport 1338 wie USB und einen Netz-Controller 1334. Die Datenspeichervorrichtung 1324 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Unter Bezugnahme auf 14 ist ein Blockdiagramm eines zweiten Systems 1400 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie es in 14 gezeigt ist, ist das Mehrprozessorsystem 1400 ein Punkt-zu-Punkt-Zwischenverbindungssystem und umfasst einen ersten Prozessor 1470 und einen zweiten Prozessor 1480, die über eine Punkt-zu-Punkt-Zwischenverbindung 1450 gekoppelt sind. Jeder der Prozessoren 1470 und 1480 kann irgendeine Version eines Prozessors sein. In einer Ausführungsform sind 1452 und 1454 Teil einer seriellen, kohärenten Punkt-zu-Punkt-Zwischenverbindungs-Fabric, wie beispielsweise der Intels QuickPath-Zwischenverbindungs-Architektur (QPI-Architektur). Infolgedessen kann die Offenbarung innerhalb der QPI-Architektur implementiert werden.
  • Obwohl nur zwei Prozessoren 1470, 1480 gezeigt sind, versteht es sich, 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 gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 1470 und 1480 sind mit integrierten Speichercontrollereinheiten 1472 bzw. 1482 gezeigt. Der Prozessor 1470 enthält als Teil seiner Buscontrollereinheiten auch Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1476 und 1478; in ähnlicher Weise enthält der zweite Prozessor 1480 P-P-Schnittstellen 1486 und 1488. Die Prozessoren 1470, 1480 können Informationen über eine Punkt-zu-Punkt-Schnittstelle (P-P-Schnittstelle) 1450 unter Verwendung von P-P-Schnittstellenschaltungen 1478, 1488 austauschen. Wie es in 14 gezeigt ist, koppeln die IMCs 1472 und 1482 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1432 und einem Speicher 1434, die Teile des Hauptspeichers sein können, die lokal an die jeweiligen Prozessoren angebunden sind.
  • Die Prozessoren 1470, 1480 tauschen jeweils Informationen mit einem Chipsatz 1490 über einzelne P-P-Schnittstellen 1452, 1454 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1476, 1494, 1486, 1498 aus. Der Chipsatz 1490 tauscht auch Informationen mit einer Hochleistungs-Grafikschaltung 1438 über eine Schnittstellenschaltung 1492 entlang einer Hochleistungs-Grafikverbindung 1439 aus.
  • Ein gemeinsam genutzter Cache (nicht gezeigt) kann entweder in einem Prozessor enthalten sein oder sich außerhalb beider Prozessoren befinden, aber über eine P-P-Verbindung mit den Prozessoren verbunden sein, so dass die lokalen Cache-Informationen eines oder beider Prozessoren in dem gemeinsam genutzten Cache gespeichert werden können, wenn ein Prozessor in einen Energiesparmodus versetzt wird.
  • Der Chipsatz 1490 kann über eine Schnittstelle 1496 mit einem ersten Bus 1416 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1416 ein Peripheriekomponentenzwischenverbindungs-Bus (PCI-Bus) oder ein Bus wie etwa ein PCI Express-Bus oder ein anderer E/A-Zwischenverbindungsbus der dritten Generation sein, obwohl der Umfang der vorliegenden Offenbarung nicht darauf beschränkt ist.
  • Wie es in 14 gezeigt ist, sind verschiedene E/A-Vorrichtungen 1414 mit dem ersten Bus 1416 gekoppelt, zusammen mit einer Busbrücke 1418, die den ersten Bus 1416 mit einem zweiten Bus 1420 koppelt. In einer Ausführungsform umfasst der zweite Bus 1420 einen Bus mit niedriger Stiftzahl (LPC-Bus). Verschiedene Vorrichtungen sind in einer Ausführungsform mit dem zweiten Bus 1420 verbunden, einschließlich beispielsweise einer Tastatur und/oder Maus 1422, Kommunikationsvorrichtungen 1427 und einer Speichereinheit 1428 wie beispielsweise einem Plattenlaufwerk oder einer anderen Massenspeichervorrichtung, die häufig Befehle/Code und Daten 1430 enthält. Ferner ist gezeigt, dass eine Audio-E/A 1424 mit dem zweiten Bus 1420 gekoppelt ist. Es ist zu beachten, dass andere Architekturen möglich sind, bei denen die enthaltenen Komponenten und Zwischenverbindungsarchitekturen variieren. Beispielsweise kann anstelle der Punkt-zu-Punkt-Architektur von 14 ein System einen Mehrpunktbus oder eine andere solche Architektur implementieren.
  • Unter Bezugnahme auf das Diagramm 1500 von 15 ist eine beispielhafte Verbindungstrainingszustandsmaschine wie beispielsweise die PCIe-Verbindungstrainings- und Verbindungsstatus-Zustandsmaschine (LTSSM) gezeigt. Für ein System, das eine PHY gemäß einem bestimmten Protokoll verwendet, um mehrere alternative Protokolle zu unterstützen (d. h. um auf der PHY aufzusetzen), können geordnete Mengen definiert werden, die zwischen zwei oder mehr Vorrichtungen auf einer Verbindung im Zusammenhang mit dem Training der Verbindung übermittelt werden. Beispielsweise können geordnete Mengen (OS) einer Trainingsmenge (TS) gesendet werden. In einer Implementierung, in der PCIe als das PHY-Protokoll verwendet wird, können die geordneten TS-Mengen unter anderen beispielhaften geordneten Mengen eine geordnete TS1- und eine geordnete TS2-Menge umfassen. Die während des Verbindungstrainings gesendeten geordneten Mengen und Trainingssequenzen können auf dem bestimmten Verbindungstrainingszustand basieren, wobei verschiedene Verbindungstrainingszustände verwendet werden, um entsprechende Verbindungstrainingsaktivitäten und -ziele zu erreichen.
  • In einem Beispiel, wie es beispielhaften in 15 dargestellt ist, kann eine Verbindungstrainingszustandsmaschine 1600 solche Zustände wie einen Rücksetzzustand, einen Detektionszustand (z. B. zum Detektieren einer Beendigung an dem fernen Ende (z. B. an einer anderen Vorrichtung, das mit den Bahnen verbunden ist), einen Abfragezustand (z. B. zum Herstellen einer Symbolsperre und zum Konfigurieren der Bahnpolarität), einen Konfigurationszustand (oder „Config“-Zustand) (z. B. zum Konfigurieren der physischen Bahnen eines Anschlusses zu einer Verbindung mit einer bestimmten Bahnbreite, Bahnnummerierung usw., Durchführen einer Bahn-zu-Bahn-Entzerrung und anderer Verbindungskonfigurationsaktivitäten), einen Rückschleifen-Zustand (z. B. zum Durchführen von Tests, Fehlerisolierung, Entzerrung und anderen Aufgaben), einen Wiederherstellungszustand (z. B. zum Ändern der Operationsdatenrate, zum Wiederherstellen der Bit-Sperre, der Symbolsperre oder der Blockausrichtung, zum Durchführen von Bahn-zu-Bahn-Entzerrung usw.) unter anderen Zuständen, die verwendet werden können, um die Verbindung in einen aktiven Verbindungszustand (z. B. L0) zu bringen, umfassen. In einem Beispiel können Trainingssequenzen, die in einem (oder mehreren) bestimmten der Verbindungstrainingszustände gesendet werden sollen, definiert sein, um die Aushandlung eines bestimmten der unterstützten Protokolle einer bestimmten Vorrichtung zu ermöglichen. Beispielsweise kann der bestimmte Trainingszustand unter anderem ein Trainingszustand, der dem Eintritt in einen aktiven Verbindungszustand vorausgeht, oder ein Trainingszustand, in dem die Datenrate hochskaliert werden kann (z. B. über die hinaus, die von mindestens einem der unterstützten Protokolle unterstützt wird), wie etwa ein PCIe-Zustand, in dem eine Datenrate von einer Geschwindigkeit von Gen1 zu einer Geschwindigkeit von Gen3 und höher übergeht, sein. Beispielsweise kann in der beispielhaften Implementierung, die in 15 gezeigt ist, ein Konfigurationszustand (z. B. 1505) verwendet und erweitert werden, um die Aushandlung eines bestimmten von mehreren Protokollen parallel zu den Verbindungstrainingsaktivitäten zu ermöglichen, die nativ in dem Trainingszustand definiert sind (z. B. Bestimmung der Bahnbreite, Bahnnummerierung, Entzerrung, Ausgleich usw.). Beispielsweise können bestimmte Trainingssequenzen für den Trainingszustand definiert sein und diese Trainingssequenzen können erweitert werden, um die Übermittlung von Informationen zu ermöglichen (z. B. in einem oder mehreren Feldern oder Symbolen der geordneten Menge), um zu identifizieren, ob jede Vorrichtung auf der Verbindung mehrere Protokolle (z. B. mindestens einen anderen Protokollstapel als den Protokollstapel der Bitübertragungsschicht und die entsprechende Verbindungstrainingszustandsmaschine) unterstützt, die von jeder Vorrichtung unterstützten bestimmten Protokolle zu identifizieren und ein oder mehrere Protokolle zu vereinbaren, die für die bestimmte PHY verwendet werden sollen (z. B. durch einen Handshake, der durch die Übertragung dieser Trainingssequenzen über die Verbindung (sowohl in der Aufwärts- als auch in der Abwärtsrichtung) ausgeführt wird).
  • In einem Beispiel kann eine PCIe-Bitübertragungsschicht verwendet werden, um mehrere unterschiedliche Protokolle zu unterstützen. Dementsprechend kann ein bestimmter Trainingszustand in einer PCIe-LTSSM für die Aushandlung von Protokollen zwischen Vorrichtungen auf einer Verbindung verwendet werden. Wie oben erwähnt kann die Protokollbestimmung erfolgen, noch bevor die Verbindung in einen aktiven Zustand (z. B. L0) mit der niedrigsten unterstützten Datenrate (z. B. der PCIe-Gen-1-Datenrate) übergeht. In einem Beispiel kann der PCIe-Konfigurationszustand verwendet werden. In der Tat kann die PCIe-LTSSM verwendet werden, um das Protokoll unter Verwendung modifizierter PCIe-Trainingsmengen (z. B. TS1 und TS2) nach der Verbindungsbreitenaushandlung und (zumindest teilweise) parallel zu der während des Konfigurationszustands durchgeführten Bahnnummerierung auszuhandeln.
  • Obwohl diese Offenbarung unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen beschrieben ist, werden Fachleute zahlreiche Abwandlungen und Variationen daraus erkennen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Abwandlungen und Variationen abdecken, die unter den wahren Gedanken und Umfang dieser vorliegenden Offenbarung fallen.
  • Ein Entwurf kann verschiedene Stadien durchlaufen, von der Erzeugung über die Simulation bis zur Herstellung. Daten, die einen Entwurf repräsentieren, können den Entwurf auf eine Reihe von Arten darstellen. Zuerst kann die Hardware, wie es in Simulationen nützlich ist, unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt werden. Zusätzlich kann ein Schaltungsebenenmodell mit Logik- und/oder Transistorgattern in einigen Stufen des Entwurfsprozesses erzeugt werden. Darüber hinaus erreichen die meisten Entwürfe zu einem bestimmten Zeitpunkt ein Datenniveau, das die physische Anordnung verschiedener Vorrichtungen in dem Hardwaremodell darstellt. In dem Fall, in dem herkömmliche Halbleiterherstellungstechniken 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 der integrierten Schaltung verwendet werden. In jeder Darstellung des Entwurfs können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder ein magnetischer oder optischer Datenspeicher wie etwa eine Platte kann das maschinenlesbare Medium zum Speichern von Informationen sein, die über optische oder elektrische Wellen übertragen werden, die moduliert oder auf andere Weise erzeugt werden, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder den Entwurf angibt oder trägt, übertragen wird, wird, soweit das Kopieren, Puffern oder erneute Senden des elektrischen Signals durchgeführt wird, eine neue Kopie erstellt. Somit kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem konkreten, maschinenlesbaren Medium zumindest vorübergehend ein Element, beispielsweise in eine Trägerwelle codierte Informationen, speichern, das Techniken von Ausführungsformen der vorliegenden Offenbarung verkörpert.
  • Ein Modul bezieht sich wie hierin verwendet auf irgendeine Kombination von Hardware, Software und/oder Firmware. Als ein Beispiel enthält ein Modul Hardware wie beispielsweise einen Mikrocontroller, der einem nichtflüchtigen Medium zugeordnet ist, um Code zu speichern, der dazu ausgelegt ist, von dem Mikrocontroller ausgeführt zu werden. Daher bezieht sich der Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die speziell dazu ausgelegt ist, den auf einem nichtflüchtigen Medium zu haltenden Code zu erkennen und/oder auszuführen. Ferner bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls auf das nichttransitorische Medium, das den Code enthält, der speziell dazu ausgelegt ist, von dem Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Und wie daraus geschlossen werden kann, kann sich in einer weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nichttransitorischen Mediums beziehen. Häufig variieren Modulgrenzen, die separat dargestellt sind, und überlappen sich möglicherweise. Zum Beispiel können sich ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während möglicherweise einige unabhängige Hardware, Software oder Firmware beibehalten wird. In einer Ausführungsform umfasst die Verwendung des Begriffs Logik Hardware wie z. B. Transistoren, Register oder andere Hardware wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „zum“ oder „dazu ausgelegt“ bezieht sich in einer Ausführungsform auf ein Anordnen, Zusammenstellen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Entwerfen einer Vorrichtung, Hardware, Logik oder eines Elements zum Ausführen einer zugewiesenen oder bestimmten Aufgabe. In diesem Beispiel ist eine Vorrichtung oder ein Element davon, die/das nicht in Betrieb ist, immer noch dazu ausgelegt, eine bestimmte Aufgabe auszuführen, wenn sie entworfen, angekoppelt und/oder angeschlossen wird, um die bestimmte Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 liefern. Ein Logikgatter, das „dazu ausgelegt“ ist, ein Freigabesignal an einen Takt zu liefern, umfasst jedoch nicht jedes mögliche Logikgatter, das eine 1 oder 0 liefern kann. Stattdessen ist das Logikgatter auf irgendeine Weise so gekoppelt, dass während des Betriebs die Ausgabe 1 oder 0 dazu dient, den Takt freizugeben. Es ist noch einmal anzumerken, dass die Verwendung des Ausdrucks „dazu ausgelegt“ keine Operation erfordert, sondern stattdessen auf den latenten Zustand einer Vorrichtung, einer Hardware und/oder eines Elements abzielt, wobei die Vorrichtung, die Hardware und/oder das Element in dem latenten Zustand dazu ausgelegt ist, eine bestimmte Aufgabe auszuführen, wenn die Vorrichtung, die Hardware und/oder das Element in Betrieb ist.
  • Ferner bezieht sich die Verwendung der Ausdrücke „dazu fähig“ und/oder „dazu betreibbar“ in einer Ausführungsform auf eine Vorrichtung, eine Logik, eine Hardware und/oder ein Element, die so gestaltet sind, dass sie die Verwendung der Vorrichtung, Logik, Hardware und/oder des Elements in einer bestimmten Art und Weise ermöglichen. Wie oben erwähnt bezieht sich die Verwendung von „dazu fähig“ und/oder „dazu betreibbar“ in einer Ausführungsform auf den latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements, in dem die Vorrichtung Logik, Hardware und/oder das Element nicht in Betrieb ist, sondern derart ausgelegt ist, dass die Verwendung einer Vorrichtung in einer bestimmten Art und Weise ermöglicht wird.
  • Ein Wert umfasst wie hierin verwendet jede bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1 und 0 bezeichnet, was einfach binäre logische Zustände darstellt. Zum Beispiel bezieht sich 1 auf einen hohen Logikpegel und 0 auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle wie etwa ein Transistor oder eine Flashzelle in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. Es wurden jedoch andere Darstellungen von Werten in Computersystemen verwendet. Zum Beispiel kann die Dezimalzahl zehn auch als ein Binärwert 1010 und ein hexadezimaler Buchstabe A dargestellt werden. Daher umfasst ein Wert irgendeine 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 ein Beispiel kann ein erster Wert wie beispielsweise eine logische Eins einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert wie beispielsweise eine logische Null einen Nicht-Standardzustand darstellen kann. Außerdem beziehen sich die Begriffe „zurückgesetzt“ und „gesetzt“ in einer Ausführungsform auf einen Standardwert bzw. einen aktualisierten Wert bzw. Zustand. Zum Beispiel umfasst ein Standardwert möglicherweise einen hohen logischen Wert, d. h. zurückgesetzt, während ein aktualisierter Wert möglicherweise einen niedrigen logischen Wert umfasst, d. h. gesetzt. Es ist zu beachten, dass eine beliebige Kombination von Werten verwendet werden kann, um eine beliebige Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die oben dargelegt sind, können mittels Befehlen oder Code implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind und die durch ein Verarbeitungselement ausführbar sind. Ein nichttransitorisches maschinenzugängliches/-lesbares Medium umfasst irgendeinen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die von einer Maschine wie etwa einem Computer oder einem elektronischen System gelesen werden kann. Zum Beispiel umfasst ein nichttransitorisches, maschinenzugängliches Medium einen Direktzugriffsspeicher (RAM) wie etwa einen statischen RAM (SRAM) oder einen dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die aus transitorischen (sich ausbreitenden) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von den nichttransitorischen Medien zu unterscheiden sind, die daraus Informationen empfangen können.
  • Befehle, die verwendet werden, um Logik zum Ausführen von Ausführungsformen der Offenbarung zu programmieren, können in einem Speicher in dem System gespeichert sein, wie beispielsweise einem DRAM, einem Cache, einem Flash-Speicher oder einem anderen Speicher. Darüber hinaus können die Befehle über ein Netz oder über andere computerlesbare Medien verteilt werden. Somit kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form, die von einer Maschine (z. B. einem Computer) lesbar ist, umfassen, ist aber nicht darauf beschränkt auf Disketten, optische Disketten, CD-Nur-Lese-Speicher (CD-ROMs) und magnetooptische Platten, Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen konkreten, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) verwendet wird. Dementsprechend umfasst das computerlesbare Medium irgendeinen Typ eines konkreten, maschinenlesbaren Mediums, das zum Speichern oder Übertragen elektronischer Befehlen oder Informationen in einer Form, die von einer Maschine (z. B. einem Computer) gelesen werden kann, geeignet ist.
  • Die Bezugnahme auf „eine Ausführungsform“ in dieser Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wurde, in mindestens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit bezieht sich das Auftauchen des Ausdrucks „in einer Ausführungsform“ an verschiedenen Stellen in dieser Beschreibung nicht notwendigerweise immer auf die gleiche Ausführungsform. Darüber hinaus können die besonderen Merkmale, Strukturen oder Eigenschaften in irgendeiner geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Beschreibung ist eine genaue Beschreibung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen gegeben worden. Es ist jedoch offensichtlich, dass verschiedene Abwandlungen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Gedanken und Schutzumfang der Erfindung abzuweichen, wie sie in den beigefügten Ansprüchen dargelegt ist. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden Sinne und nicht ein einem einschränkenden Sinne zu betrachten. Ferner bezieht sich die vorstehende Verwendung von Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich auf verschiedene und unterschiedliche Ausführungsformen sowie möglicherweise die gleiche Ausführungsform beziehen.
  • Die Systeme, Verfahren und Vorrichtungen können eines oder eine Kombination der folgenden Beispiele umfassen:
  • Beispiel 1 ist eine Einrichtung, die umfasst: einen ersten Port zum Empfangen einer Fähigkeitskonfigurationsnachricht über eine Verbindung; eine Nachrichtenanforderungsempfangslogik, die eine Hardwareschaltungsanordnung für Folgendes aufweist: Identifizieren einer oder mehrerer Fähigkeiten der in der Fähigkeitskonfigurationsnachricht identifizierten Vorrichtung, Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die eine oder die mehreren Fähigkeiten präsentiert oder für den Betrieb verborgen werden sollen; und Konfigurieren einer Fähigkeitsverknüpfungsliste basierend auf der Bestimmung, um die eine oder die mehreren Fähigkeiten zu präsentieren oder zu verbergen. Die Einrichtung umfasst zudem eine Nachrichtenantworterzeugerlogik, die eine Hardwareschaltungsanordnung zum Erzeugen einer Antwortnachricht, die angibt, dass die eine oder die mehreren Fähigkeiten präsentiert oder für den Betrieb verborgen werden sollen, umfasst. Die Vorrichtung umfasst zudem einen zweiten Port zum Senden der Antwortnachricht über die Verbindung.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 umfassen, wobei die Fähigkeitskonfigurationsnachricht und/oder die Antwortnachricht ein Transaktionsschichtpaket (TLP) umfasst, das auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  • Beispiel 3 kann den Gegenstand eines der Beispiele 1-2 umfassen, wobei die Fähigkeitskonfigurationsnachricht und/oder die Antwortnachricht ein Transaktionsschichtpaket für anbieterdefinierte Nachrichten (VDM-Transaktionsschichtpaket) umfasst.
  • Beispiel 4 kann den Gegenstand eines der Beispiele 1-3 umfassen, wobei die Fähigkeitskonfigurationsnachricht eine Fähigkeitsstrukturkonfigurationsanforderungsnachricht umfasst, die eine oder mehrere Fähigkeiten der Einrichtung identifiziert, die zu präsentieren oder zu verbergen sind.
  • Beispiel 5 kann den Gegenstand eines der Beispiele 1-4 umfassen, der ferner eine Fähigkeitszeigerweichenlogik zum Aktualisieren eines Feldes nächste Fähigkeit in der Fähigkeitsverknüpfungsliste umfasst.
  • Beispiel 6 kann den Gegenstand von Beispiel 5 umfassen, wobei die Fähigkeitsverknüpfungsliste eine Fähigkeitskennung und einen Zeiger auf nächste Fähigkeit umfasst, wobei die Fähigkeitskennung eine Kennung für jede Fähigkeit angibt und der Zeiger auf nächste Fähigkeit auf eine nächste Fähigkeit in der Fähigkeitsverknüpfungsliste zeigt.
  • Beispiel 7 kann den Gegenstand eines der Beispiele 1-6 umfassen, wobei die Nachrichtenanforderungsempfangslogik für die Einrichtung eine Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle identifizieren soll; und die Antwortnachrichtenerzeugerlogik eine Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt, zusammenstellen soll.
  • Beispiel 8 kann den Gegenstand von Beispiel 6 umfassen, wobei die Nachrichtenanforderungsempfangslogik zu Folgendem ausgelegt ist: Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
  • Beispiel 9 ist ein System, das umfasst: eine Hostvorrichtung, die zumindest teilweise in einer Hardwareschaltungsanordnung implementiert ist, die umfasst: einen Systemadministrator zum Bestimmen eines oder mehrerer Fähigkeitsstrukturkonfigurationsmerkmale einer verbundenen Vorrichtung; eine Anforderungsnachrichtenerzeugerschaltung zum Erzeugen einer Fähigkeitskonfigurationsleseanforderungsnachricht und eine Antwortnachrichtenempfängerschaltung zum Empfangen von Antwortnachrichten. Das System kann eine verbundene Vorrichtung umfassen, die über eine Verbindung mit der Hostvorrichtung verbunden ist, wobei die verbundene Vorrichtung umfasst: eine Anforderungsnachrichtenempfängerschaltung zum Empfangen der Konfigurationsleseanforderungsnachricht und zum Bestimmen von Fähigkeitsstrukturkonfigurationsinformationen aus einer auf der verbundenen Vorrichtung gespeicherten Fähigkeitsstrukturkonfigurationstabelle. Die verbundene Vorrichtung kann zudem eine Antwortnachrichtenerzeugerschaltung umfassen, die zu Folgendem ausgelegt ist: Zusammenstellen einer Fähigkeitskonfigurationsantwortnachricht, die eine Zuordnung zwischen einer Fähigkeitskennung und einem Fähigkeitsstrukturindex angibt; und Veranlassen der Übertragung der Fähigkeitskonfigurationsantwortnachricht an die Hostvorrichtung.
  • Beispiel 10 kann den Gegenstand von Beispiel 9 umfassen, wobei die Hostvorrichtung eine Hostcontrollerlogik umfasst, die zu Folgendem ausgelegt ist: Bestimmen zumindest teilweise basierend auf einer empfangenen Fähigkeitskonfigurationsantwortnachricht, dass die eine oder die mehreren Fähigkeiten präsentiert oder vor dem Betrieb verborgen werden sollen.
  • Beispiel 11 kann den Gegenstand eines der Beispiele 9-10 umfassen, wobei der Systemadministrator bestimmen soll, dass eine oder mehrere Fähigkeitsstrukturen verborgen oder präsentiert werden sollen, um eine Entität unter Verwendung der verbundenen Vorrichtung zu unterstützen. Der Anforderungsnachrichtenerzeuger ist zu Folgendem ausgelegt: Erstellen einer Fähigkeitskonfigurationsschreibanforderungsnachricht, die ein Bit enthält, das einen Fähigkeitsverbergungsindikator aktiviert oder deaktiviert, und Veranlassen der Übertragung der Fähigkeitskonfigurationsschreibanforderungsnachricht an die verbundene Vorrichtung.
  • Beispiel 12 kann den Gegenstand eines der Beispiele 9-11 umfassen, wobei eine Anforderungsnachrichtenempfängerschaltung zu Folgendem ausgelegt ist: Empfangen der Fähigkeitskonfigurationsschreibanforderungsnachricht; Bestimmen basierend auf der Fähigkeitskonfigurationsschreibanforderungsnachricht, dass eine oder mehrere Fähigkeitsstrukturen verborgen oder präsentiert werden sollen. Das System umfasst eine Fähigkeitszeigerweichenlogik zum Ändern einer Fähigkeitsverknüpfungsliste basierend auf der einen oder den mehreren bestimmten Fähigkeitsstrukturen, die verborgen oder präsentiert werden sollen.
  • Beispiel 13 kann den Gegenstand von Beispiel 12 umfassen, wobei die verbundene Vorrichtung einen Antwortnachrichtenerzeuger zum Senden einer Fähigkeitskonfigurationsantwortnachricht umfasst.
  • Beispiel 14 kann den Gegenstand eines der Beispiele 9-13 umfassen, wobei die Fähigkeitskonfigurationsleseanforderungsnachricht und/oder die Fähigkeitskonfigurationsantwortnachricht ein Transaktionsschichtpaket (TLP) aufweist, das auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  • Beispiel 15 kann den Gegenstand eines der Beispiele 9-14 enthalten, wobei die Fähigkeitskonfigurationleseanforderungssnachricht und/oder die Fähigkeitskonfigurationsantwortnachricht ein Transaktionsschichtpaket für anbieterdefinierte Nachrichten (VDM-Transaktionsschichtpaket) umfasst.
  • Beispiel 16 kann den Gegenstand eines der Beispiele 9-15 umfassen, wobei die Fähigkeitskonfigurationsleseanforderungsnachricht eine Fähigkeitsstrukturkonfigurationsanforderungsnachricht umfasst, die eine oder mehrere Fähigkeiten der verbundenen Vorrichtung identifiziert, die zu präsentieren oder zu verbergen sind.
  • Beispiel 17 kann den Gegenstand eines der Beispiele 9-16 umfassen, wobei die Nachrichtenanforderungsempfangslogik für die verbundene Vorrichtung eine Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle identifizieren soll; und die Antwortnachrichtenerzeugerlogik eine Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt, zusammenstellen soll.
  • Beispiel 18 kann den Gegenstand eines der Beispiele 9-17 enthalten, wobei die Nachrichtenanforderungsempfangslogik zu Folgendem ausgelegt ist: Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
  • Beispiel 19 kann den Gegenstand eines der Beispiele 9-18 umfassen, wobei die Verbindung auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  • Beispiel 20 kann den Gegenstand eines der Beispiele 9-19 umfassen, wobei der Systemadministrator ein Host-Betriebssystem (Host-OS) oder ein Host-System-BIOS umfasst.
  • Beispiel 21 kann den Gegenstand eines der Beispiele 9-20 umfassen, wobei die verbundene Vorrichtung einen im Root-Komplex integrierten Endpunkt (RCiEP) aufweist, der mit einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) kompatibel ist.
  • Beispiel 22 ist ein Verfahren, das Folgendes umfasst: Identifizieren einer oder mehrerer Fähigkeiten der Vorrichtung, die in der Fähigkeitskonfigurationsnachricht identifiziert ist; Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die eine oder die mehreren Fähigkeiten präsentiert oder für den Betrieb verborgen werden sollen; Konfigurieren einer Fähigkeitsverknüpfungsliste basierend auf der Bestimmung, um die eine oder die mehreren Fähigkeiten zu präsentieren oder zu verbergen; Erzeugen einer Antwortnachricht, die angibt, dass die eine oder die mehreren Fähigkeiten präsentiert oder für den Betrieb verborgen werden sollen; und Übertragen der Antwortnachricht über eine Verbindung.
  • Beispiel 23 kann den Gegenstand von Beispiel 22 enthalten, der ferner ein Aktualisieren eines Feldes nächste Fähigkeit in der Fähigkeitsverknüpfungsliste durch eine Fähigkeitszeigerweichenlogik umfasst.
  • Beispiel 24 kann den Gegenstand von Beispiel 23 umfassen, der ferner umfasst: Aktualisieren einer Fähigkeitskennung und eines Zeigers auf nächste Fähigkeit der Fähigkeitsverknüpfungsliste, wobei die Fähigkeitskennung eine Kennung für jede Fähigkeit angibt und der Zeiger auf nächste Fähigkeit auf eine nächste Fähigkeit in der Fähigkeitsverknüpfungsliste zeigt.
  • Beispiel 25 kann den Gegenstand eines der Beispiele 22-24 umfassen, der ferner umfasst: Identifizieren einer Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle; Zusammenstellen einer Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt; Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
  • Beispiel 26 ist eine Einrichtung, die umfasst: einen ersten Port zum Empfangen einer Fähigkeitskonfigurationsnachricht über eine Verbindung; ein Mittel zum Identifizieren einer oder mehrerer Fähigkeiten der Vorrichtung, die in der Fähigkeitskonfigurationsnachricht identifiziert ist, Mittel zum Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die eine oder die mehreren Fähigkeiten präsentiert oder vor dem Betrieb verborgen werden sollen; Mittel zum Konfigurieren einer Fähigkeitsverknüpfungsliste basierend auf der Bestimmung, um die eine oder die mehreren Fähigkeiten zu präsentieren oder zu verbergen; Mittel zum Erzeugen einer Antwortnachricht, die angibt, dass die eine oder die mehreren Fähigkeiten präsentiert oder vor dem Betrieb verborgen werden sollen; und einen zweiten Port zum Übertragen der Antwortnachricht über die Verbindung.

Claims (25)

  1. Einrichtung, die Folgendes umfasst: einen ersten Port zum Empfangen einer Fähigkeitskonfigurationsnachricht über eine Verbindung; eine Nachrichtenanforderungsempfangslogik, die eine Hardwareschaltungsanordnung für Folgendes aufweist: Identifizieren einer Fähigkeit der in der Fähigkeitskonfigurationsnachricht identifizierten Vorrichtung, Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll; und Konfigurieren einer Fähigkeitsverknüpfungsliste, um die Fähigkeit basierend auf der Bestimmung zu präsentieren oder zu verbergen; eine Nachrichtenantworterzeugerlogik, die eine Hardwareschaltungsanordnung zum Erzeugen einer Antwortnachricht, die angibt, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll, umfasst; und einen zweiten Port zum Übertragen der Antwortnachricht über die Verbindung.
  2. Einrichtung nach Anspruch 1, wobei die Fähigkeitskonfigurationsnachricht oder die Antwortnachricht ein Transaktionsschichtpaket (TLP) umfasst, das auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  3. Einrichtung nach Anspruch 1 oder 2, wobei die Fähigkeitskonfigurationsnachricht oder die Antwortnachricht ein Transaktionsschichtpaket für anbieterdefinierte Nachrichten (VDM-Transaktionsschichtpaket) umfasst.
  4. Einrichtung nach Anspruch 1, wobei die Fähigkeitskonfigurationsnachricht eine Fähigkeitsstrukturkonfigurationsanforderungsnachricht umfasst, die eine Fähigkeit der Einrichtung identifiziert, die zu präsentieren oder zu verbergen ist.
  5. Einrichtung nach Anspruch 1, die ferner eine Fähigkeitszeigerweichenlogik zum Aktualisieren eines Feldes nächste Fähigkeit in der Fähigkeitsverknüpfungsliste umfasst.
  6. Einrichtung nach Anspruch 5, wobei die Fähigkeitsverknüpfungsliste eine Fähigkeitskennung und einen Zeiger auf nächste Fähigkeit umfasst, wobei die Fähigkeitskennung eine Kennung für jede Fähigkeit angibt und der Zeiger auf nächste Fähigkeit auf eine nächste Fähigkeit in der Fähigkeitsverknüpfungsliste zeigt.
  7. Einrichtung nach Anspruch 1, wobei die Nachrichtenanforderungsempfangslogik für die Einrichtung eine Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle identifizieren soll; und die Antwortnachrichtenerzeugerlogik eine Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt, zusammenstellen soll.
  8. Einrichtung nach Anspruch 6, wobei die Nachrichtenanforderungsempfangslogik zu Folgendem ausgelegt ist: Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
  9. System, das Folgendes umfasst: eine Hostvorrichtung, die in einer Hardwareschaltungsanordnung implementiert ist, die umfasst: einen Systemadministrator zum Bestimmen eines Fähigkeitsstrukturkonfigurationsmerkmals einer verbundenen Vorrichtung; eine Anforderungsnachrichtenerzeugerschaltung zum Erzeugen einer Fähigkeitskonfigurationsleseanforderungsnachricht und eine Antwortnachrichtenempfängerschaltung zum Empfangen von Antwortnachrichten; eine verbundene Vorrichtung, die über eine Verbindung mit der Hostvorrichtung verbunden ist, wobei die verbundene Vorrichtung umfasst: eine Anforderungsnachrichtenempfängerschaltung, die zu Folgendem ausgelegt ist: Empfangen der Konfigurationsleseanforderungsnachricht und Bestimmen von Fähigkeitsstrukturkonfigurationsinformationen aus einer auf der verbundenen Vorrichtung gespeicherten Fähigkeitsstrukturkonfigurationstabelle; eine Antwortnachrichtenerzeugerschaltung, die zu Folgendem ausgelegt ist: Zusammenstellen einer Fähigkeitskonfigurationsantwortnachricht, die eine Zuordnung zwischen einer Fähigkeitskennung und einem Fähigkeitsstrukturindex angibt; und Übertragen der Fähigkeitskonfigurationsantwortnachricht an die Hostvorrichtung.
  10. System nach Anspruch 9, wobei die Hostvorrichtung eine Hostcontrollerlogik umfasst, die zu Folgendem ausgelegt ist: Bestimmen basierend auf einer empfangenen Fähigkeitskonfigurationsantwortnachricht, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll.
  11. System nach Anspruch 9, wobei der Systemadministrator bestimmen soll, dass eine Fähigkeitsstruktur verborgen oder präsentiert werden soll, um eine Entität unter Verwendung der verbundenen Vorrichtung zu unterstützen; und der Anforderungsnachrichtenerzeuger zu Folgendem ausgelegt ist: Zusammenstellen einer Fähigkeitskonfigurationsschreibanforderungsnachricht, die ein Bit enthält, das einen Fähigkeitsverbergungsindikator aktiviert oder deaktiviert, und Übertragen der Fähigkeitskonfigurationsschreibanforderungsnachricht an die verbundene Vorrichtung.
  12. System nach Anspruch 11, wobei eine Anforderungsnachrichtenempfängerschaltung zu Folgendem ausgelegt ist: Empfangen der Fähigkeitskonfigurationsschreibanforderungsnachricht; Bestimmen basierend auf der Fähigkeitskonfigurationsschreibanforderungsnachricht, dass eine Fähigkeitsstruktur verborgen oder präsentiert werden soll; wobei das System umfasst: eine Fähigkeitszeigerweichenlogik zum Ändern einer Fähigkeitsverknüpfungsliste basierend auf der bestimmten Fähigkeitsstruktur auf Verbergen oder Präsentieren.
  13. System nach Anspruch 12, wobei die verbundene Vorrichtung einen Antwortnachrichtenerzeuger zum Übertragen einer Fähigkeitskonfigurationsantwortnachricht umfasst.
  14. System nach Anspruch 9, wobei die Fähigkeitskonfigurationsleseanforderungsnachricht oder die Fähigkeitskonfigurationsantwortnachricht ein Transaktionsschichtpaket (TLP) aufweist, das auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  15. System nach Anspruch 14, wobei die Fähigkeitskonfigurationsleseanforderungsnachricht oder die Fähigkeitskonfigurationsantwortnachricht ein Transaktionsschichtpaket für anbieterdefinierte Nachrichten (VDM-Transaktionsschichtpaket) umfasst.
  16. System nach Anspruch 9, wobei die Fähigkeitskonfigurationsleseanforderungsnachricht eine Fähigkeitsstrukturkonfigurationsanforderungsnachricht umfasst, die eine Fähigkeit der verbundenen Vorrichtung identifiziert, die zu präsentieren oder zu verbergen ist.
  17. System nach Anspruch 9, wobei die Nachrichtenanforderungsempfangslogik für die verbundene Vorrichtung eine Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle identifizieren soll; und die Antwortnachrichtenerzeugerlogik eine Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt, zusammenstellen soll.
  18. System nach Anspruch 17, wobei die Nachrichtenanforderungsempfangslogik zu Folgendem ausgelegt ist: Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
  19. System nach Anspruch 9, wobei die Verbindung auf einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) basiert.
  20. System nach Anspruch 9, wobei der Systemadministrator ein Host-Betriebssystem (Host-OS) oder ein Host-System-BIOS umfasst.
  21. System nach Anspruch 9, wobei die verbundene Vorrichtung einen im Root-Komplex integrierten Endpunkt (RCiEP) aufweist, der mit einem Peripheriekomponentenzwischenverbindungs-Express-Protokoll (PCIe-Protokoll) kompatibel ist.
  22. Verfahren, das Folgendes umfasst: Identifizieren einer Fähigkeit der Vorrichtung, die in der Fähigkeitskonfigurationsnachricht identifiziert ist; Bestimmen basierend auf einem Fähigkeitsverbergungs-Freigabebit in der Fähigkeitskonfigurationsnachricht, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll; Konfigurieren einer Fähigkeitsverknüpfungsliste, um die Fähigkeit basierend auf der Bestimmung zu präsentieren oder zu verbergen; Erzeugen einer Antwortnachricht, die angibt, dass die Fähigkeit präsentiert oder vor dem Betrieb verborgen werden soll; und Übertragen der Antwortnachricht über eine Verbindung.
  23. Verfahren nach Anspruch 22, das ferner ein Aktualisieren eines Feldes nächste Fähigkeit in der Fähigkeitsverknüpfungsliste durch eine Fähigkeitszeigerweichenlogik umfasst.
  24. Verfahren nach Anspruch 23, das ferner umfasst: Aktualisieren einer Fähigkeitskennung und eines Zeigers auf nächste Fähigkeit der Fähigkeitsverknüpfungsliste, wobei die Fähigkeitskennung eine Kennung für jede Fähigkeit angibt und der Zeiger auf nächste Fähigkeit auf eine nächste Fähigkeit in der Fähigkeitsverknüpfungsliste zeigt.
  25. Verfahren nach Anspruch 22, das ferner umfasst: Identifizieren einer Zuordnung zwischen einer Fähigkeit und einem entsprechenden Fähigkeitsindex aus einer Fähigkeitsstrukturtabelle; Zusammenstellen einer Antwortnachricht, die die Zuordnung zwischen der Fähigkeit und dem entsprechenden Fähigkeitsindex angibt; Empfangen einer Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; Extrahieren von Fähigkeitsstrukturkonfigurationsinformationen aus der Fähigkeitskonfigurationsinitialisierungsanforderungsnachricht; und Aktualisieren der Fähigkeitsstrukturtabelle mit den Fähigkeitsstrukturkonfigurationsinformationen.
DE102020115989.7A 2019-07-17 2020-06-17 Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen Pending DE102020115989A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/513,941 2019-07-17
US16/513,941 US11080223B2 (en) 2019-07-17 2019-07-17 Dynamic presentation of interconnect protocol capability structures

Publications (1)

Publication Number Publication Date
DE102020115989A1 true DE102020115989A1 (de) 2021-01-21

Family

ID=68383909

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020115989.7A Pending DE102020115989A1 (de) 2019-07-17 2020-06-17 Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen

Country Status (2)

Country Link
US (2) US11080223B2 (de)
DE (1) DE102020115989A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132321B2 (en) * 2020-02-26 2021-09-28 Quanta Computer Inc. Method and system for automatic bifurcation of PCIe in BIOS
US11907035B2 (en) 2020-05-15 2024-02-20 Intel Corporation Sideband signaling over existing auxiliary pins of an interface
JP7161125B2 (ja) * 2021-02-08 2022-10-26 富士通クライアントコンピューティング株式会社 情報処理システム、情報処理装置及び情報処理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647434B1 (en) * 1999-12-28 2003-11-11 Dell Usa, L.P. Multifunction device with register space for individually enabling or disabling a function of plurality of functions in response to function configuration
US7318146B2 (en) * 2001-06-19 2008-01-08 Micron Technology, Inc. Peripheral device with hardware linked list
US8332846B2 (en) * 2008-02-28 2012-12-11 Sony Mobile Communications Ab Selective exposure to USB device functionality for a virtual machine by filtering descriptors

Also Published As

Publication number Publication date
US20210357350A1 (en) 2021-11-18
US11704275B2 (en) 2023-07-18
US11080223B2 (en) 2021-08-03
US20190340148A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112013007752B3 (de) Hochleistungsverdrahtungs-Bitübertragungsschicht
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE102019127892A1 (de) Sichern eines Plattform-Links mit Verschlüsselung
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE102018005753A1 (de) Serdes link training
DE102020115989A1 (de) Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen
DE112013007734T5 (de) Mehrchipgehäuseverbindung
DE102019128261A1 (de) Datenfreigabesteuerung auf der Basis von Authentifizierung und Verbindungsstreckenschutz
DE112017001148T5 (de) Abflachende portalbrücke .
DE112018001138T5 (de) Hochleistungsverbindung
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle