DE102020125353A1 - Transaktionsschichtpaketformat - Google Patents

Transaktionsschichtpaketformat Download PDF

Info

Publication number
DE102020125353A1
DE102020125353A1 DE102020125353.2A DE102020125353A DE102020125353A1 DE 102020125353 A1 DE102020125353 A1 DE 102020125353A1 DE 102020125353 A DE102020125353 A DE 102020125353A DE 102020125353 A1 DE102020125353 A1 DE 102020125353A1
Authority
DE
Germany
Prior art keywords
header
packet
field
length
reserved
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
DE102020125353.2A
Other languages
English (en)
Inventor
David J. Harriman
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 DE102020125353A1 publication Critical patent/DE102020125353A1/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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Eine Vorrichtung enthält Protokolllogik zum Bestimmen eines Pakettyps für ein Paket und Erzeugen und Senden des entsprechenden Pakets. Das Paket enthält einen Paket-Header mit einer Header-Basis, wobei die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält. Das Typ-Feld gibt den Pakettyp an, und das Header-Inhalt-Feld gibt an, welcher aus mehreren Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist. Informationen in Feldern der Header-Basis geben eine Gesamtlänge des Pakets an.

Description

  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der laufenden Nr. 62/938,096 , eingereicht am 20. November 2019, die hier durch Bezugnahme vollständig mit aufgenommen ist.
  • GEBIET
  • Diese Offenbarung gehört zu einem Berechnungssystem und insbesondere (jedoch nicht ausschließlich) zu Computer-Schnittstellen.
  • HINTERGRUND
  • Fortschritte in Halbleiterverarbeitung und im Logik-Design haben einen Anstieg der Menge von Logik, die auf Vorrichtungen mit integrierter Schaltung vorhanden sein können, erlaubt. Als logische Konsequenz haben sich Computersystemkonfigurationen von einer einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Strängen [„hardware threads“] und mehreren logischen Prozessoren, die auf individuellen integrierten Schaltungen vorhanden sind, sowie anderen Schnittstellen, die in solchen Prozessoren integriert sind, weiterentwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physikalischen Prozessorbaustein, wobei der Prozessorbaustein eine Anzahl von Kernen, Hardware-Strängen, logischen Prozessoren, Schnittstellen, Speicher, Steuereinheit-Hubs usw. enthalten kann. Da die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Berechnungssystem wächst, wird die Kommunikation zwischen Sockeln und anderen Vorrichtungen wichtiger. Dementsprechend sind Zusammenschaltungen von herkömmlicheren Multi-Drop-Bussen, die primär elektrische Kommunikation behandelten, zu kompletten Zusammenschaltungsarchitekturen, die schnelle Kommunikation unterstützen, gewachsen. Leider wird im Kontext der Anforderung an zukünftige Prozessoren, mit noch höheren Raten zu arbeiten, ein entsprechender Bedarf für die Fähigkeiten existierender Zusammenschaltungsarchitekturen angemeldet. Zusammenschaltungsarchitekturen können auf einer Vielzahl von Technologien basieren, die „Peripheral Component Interconnect Express“ (PCIe), universellen seriellen Bus („Universal Serial Bus“) und andere enthalten.
  • Figurenliste
    • 1 stellt eine Ausführungsform eines Berechnungssystems, das eine Zusammenschaltungsarchitektur enthält, dar.
    • 2 stellt eine Ausführungsform einer Zusammenschaltungsarchitektur, die einen geschichteten Stack enthält, dar.
    • 3 stellt eine Ausführungsform einer Anforderung oder eines Pakets, die/das innerhalb einer Zusammenschaltungsarchitektur erzeugt oder empfangen werden soll, dar.
    • 4 stellt eine Ausführungsform eines Sender- und Empfänger-Paars für eine Zusammenschaltungsarchitektur dar.
    • 5 stellt eine erste Vorrichtung gekoppelt mit einer zweiten Vorrichtung durch eine beispielhafte Verbindungsstrecke dar.
    • 6 stellt ein beispielhaftes Paketformat dar.
    • Die 7A-7B stellen beispielhafte Anforderungspaket-Header für jede von zwei beispielhaften Betriebsarten dar.
    • Die 8A-8B stellen ein weiteres Beispiel für Anforderungspaket-Header für jede von zwei beispielhaften Betriebsarten dar.
    • Die 9A-9B stellen beispielhafte Anforderungspaket-Header für Eingabe/Ausgabe (I/O-) Transaktionen für jede der zwei beispielhaften Betriebsarten dar.
    • Die 10A-10B stellen beispielhafte Konfigurationspaket-Header für jede von zwei beispielhaften Betriebsarten dar.
    • Die 11A-11B stellen beispielhafte Nachrichtenanforderungspaket-Header für jede von zwei beispielhaften Betriebsarten dar.
    • Die 12A-12B stellen beispielhafte Fertigstellungspaket-Header für jede von zwei beispielhaften Betriebsarten dar.
    • 13 stellt eine beispielhaft Fehlerberichtsfähigkeitsstruktur dar.
    • Die 14A-14B sind Ablaufpläne, die beispielhafte Techniken zum Erzeugen und Analysieren eines über eine Verbindungsstrecke gesendeten Pakets darstellen.
    • 15 stellt eine Ausführungsform eines Blockdiagramms für ein Berechnungssystem, das einen Mehrkernprozessor enthält, dar.
    • 16 stellt eine weitere Ausführungsform eines Blockdiagramms für ein Berechnungssystem dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten dargelegt, wie z. B. Beispiele für spezifische Typen von Prozessoren und Systemkonfigurationen, spezifische Hardware-Strukturen, spezifische architektonische und mikroarchitektonische Einzelheiten, spezifische Registerkonfigurationen, spezifisch Befehlstypen, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessor-Pipeline-Stufen und Operationen usw., um ein gründliches Verständnis der vorliegenden Offenbarung bereitzustellen. Es wird jedoch für einen Fachmann offensichtlich sein, dass diese spezifischen Einzelheiten nicht eingesetzt sein müssen, um die Prinzipien und Lösungen, die in dieser Offenbarung diskutiert sind, zu praktizieren. In anderen Fällen sind bekannte Komponenten oder Verfahren, wie z. B. spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltung/Code für beschriebene Algorithmen, spezifischer Firmware-Code, spezifischer Zusammenschaltungsbetrieb, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und Materialien, spezifische Compiler-Implementierungen, spezifischer Ausdruck von Algorithmen in Code, spezifische Abschalt- und Gating-Techniken/Logik und andere spezifische Betriebsdetails von Computersystemen nicht im Einzelnen beschrieben worden, um unnötiges Verdecken der vorliegenden Offenbarung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf Energieeinsparung und Energieeffizienz in spezifischen integrierten Schaltungen wie z. B. Berechnungsplattformen oder Mikroprozessoren beschrieben sein können, sind andere Ausführungsformen auf andere Typen integrierter Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von Ausführungsformen, die hier beschrieben sind, können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewandt werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt. Und sie können auch in anderen Vorrichtungen wie z. B. Hand-Vorrichtungen, Tablets, andere dünnen Notebooks, Einchipsystem- (SOC-) Vorrichtungen und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Hand-Vorrichtungen enthalten Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen enthalten typischerweise eine Mikrosteuereinheit, einen digitalen Signalprozessor (DSP), ein Einchipsystem, Netz-Computer (NetPC), Set-Top-Boxes, Netz-Hubs, Weitbereichsnetz- (WAN-) Switches oder irgendein anderes System, das die nachstehend gelehrten Funktionen und Operationen ausführen kann. Außerdem sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physikalische Berechnungsvorrichtungen beschränkt, sondern können sich auch auf Software-Optimierungen für Energieeinsparung und Effizienz beziehen.
  • Wenn sich Berechnungssysteme weiterentwickeln, werden die Komponenten darin komplexer. Als ein Ergebnis nimmt auch die Komplexität der Zusammenschaltungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten zu, um sicherzustellen, dass Bandbreitenanforderungen für einen optimalen Betrieb der Komponenten erfüllt sind. Darüber hinaus erfordern unterschiedliche Marktsegmente unterschiedliche Aspekte von Zusammenschaltungsarchitekturen, um zu den Bedürfnissen des Marktes zu passen. Beispielsweise erfordern Server eine höhere Leistungsfähigkeit, während das mobile Ökosystem manchmal fähig ist, Gesamtleistung für Energieeinsparungen zu opfern. Dennoch ist es ein einziger Zweck der meisten Fabrics, die höchste mögliche Leistungsfähigkeit mit einem Maximum an Energieeinsparung bereitzustellen. Nachstehend ist eine Anzahl von Zusammenschaltungen diskutiert, die potentiell von Aspekten der hier beschriebenen Lösung profitieren würden.
  • Eine Zusammenschaltungs-Fabric-Architektur enthält die Architektur von „Peripheral Component Interconnect (PCI) Express“ (PCIe). Ein primäres Ziel von PCIe ist es zu ermöglichen, dass Komponenten und Vorrichtungen von unterschiedlichen Lieferanten miteinander in einer offenen Architektur, die mehrere Marktsegmente; Clients (Desktops und mobil), Server (Standard und für Unternehmen) und eingebettet und Kommunikationsvorrichtungen überspannt, zusammenwirken. PCI-Express ist eine Hochleistungs-Allzweck-I/O-Zusammenschaltung, die für eine große Vielzahl von zukünftigen Berechnungs- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute wie z. B. sein Nutzungsmodell, seine Lade-Speicher-Architektur und Software-Schnittstellen sind über seine Überarbeitungen beibehalten worden, während frühere Parallelbusimplementierungen durch eine in hohem Maße skalierbare vollständig serielle Schnittstelle ersetzt worden sind. Die neueren Versionen von PCI-Express nutzen Fortschritte in Punkt-zu-Punkt-Zusammenschaltungen, Switch-basierter Technologie und Paketiert-Protokoll, um neue Niveaus von Leistungsfähigkeit und Merkmalen zu liefern. Leistungsmanagement, Dienstgüte (QoS), „Hot-Plug/Hot-Swap“-Unterstützung, Datenintegrität und Fehlerbehandlung sind unter einigen der weiterentwickelten Merkmale, die durch PCI-Express unterstützt werden.
  • Bezug nehmend auf 1 ist eine Ausführungsform eines Fabric, das aus Punkt-zu-Punkt-Verbindungsstrecken besteht, die eine Gruppe von Komponenten zusammenschalten, dargestellt. Das System 100 enthält einen Prozessor 105 und einen Systemspeicher 110, die mit einem Steuereinheit-Hub 115 gekoppelt sind. Der Prozessor 105 enthält irgendein Verarbeitungselement, wie z. B. einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 105 ist mit dem Steuereinheit-Hub 115 über einen Front-Side-Bus (FSB) 106 gekoppelt. In einer Ausführungsform ist der FSB 106 eine serielle Punkt-zu-Punkt-Zusammenschaltung, wie nachstehend beschrieben. In einer weiteren Ausführungsform enthält die Verbindungsstrecke 106 eine serielle differenzielle Zusammenschaltungsarchitektur, die mit einem anderen Zusammenschaltungsstandard konform ist.
  • Der Systemspeicher 110 enthält irgendeine Speichervorrichtung wie z. B. Direktzugriffsspeicher (RAM), nichtflüchtigen (NV) Speicher, Festkörperspeicher oder einen anderen Speicher, der für Vorrichtungen in dem System 100 zugänglich ist. Der Systemspeicher 110 ist mit dem Steuereinheit-Hub 115 über die Speicherschnittstelle 116 gekoppelt. Beispiele für eine Speicherschnittstelle enthalten eine Doppeldatenraten- (DDR-) Speicherschnittstelle, eine Doppelkanal-DDR-Speicherschnittstelle und eine Speicherschnittstelle für dynamischen RAM (DRAM).
  • In einer Ausführungsform ist der Steuereinheit-Hub 115 ein/3 Wurzel-Hub, Wurzelkomplex oder Wurzelsteuereinheit in einer „Peripheral Component Interconnect Express‟(PCIe oder PCIE)-Zusammenschaltungshierarchie. Beispiele für einen Steuereinheit-Hub 115 enthalten einen Chipsatz, einen Speichersteuereinheit-Hub (MCH), eine Northbridge, einen Zusammenschaltungssteuereinheit-Hub (ICH), eine Southbridge und eine/n Wurzelsteuereinheit/Hub. Häufig bezieht sich der Begriff Chipsatz auf zwei physikalisch getrennte Steuereinheit-Hubs, d. h. einen Speichersteuereinheit-Hub (MCH) gekoppelt mit einem Zusammenschaltungssteuereinheit-Hub (ICH). Es wird darauf hingewiesen, dass aktuelle Systeme häufig den MCH integriert mit dem Prozessor 105 enthalten, während die Steuereinheit 115 zum Kommunizieren mit I/O-Vorrichtungen dient, auf ähnliche Weise wie nachstehend beschrieben. In einigen Ausführungsformen wird optional Peer-to-Peer-Routing über den Wurzelkomplex 115 unterstützt.
  • Hier ist der Steuereinheit-Hub 115 mit dem/der Switch/Bridge 120 über die serielle Verbindungsstrecke 119 gekoppelt. Eingabe/Ausgabe-Module 117 und 121, die auch als Schnittstellen/Anschlüsse 117 und 121 bezeichnet sein können, enthalten/implementieren einen geschichteten Protokoll-Stack, um Kommunikation zwischen dem Steuereinheit-Hub 115 und dem Switch 120 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Switch 120 gekoppelt werden.
  • Der/die Switch/Bridge 120 routet Pakete/Nachrichten von der Vorrichtung 125 nach oben, d. h. nach oben in einer Hierarchie zu einem Wurzelkomplex, zu dem Steuereinheit-Hub 115 und nach unten, d. h. nach unten in einer Hierarchie weg von einer Wurzelsteuereinheit, von dem Prozessor 105 oder dem Systemspeicher 110 zu der Vorrichtung 125. Der Switch 120 ist in einer Ausführungsform als eine logische Anordnung aus mehreren virtuellen PCI-zu-PCI-Bridge-Vorrichtungen bezeichnet. Die Vorrichtung 125 enthält irgendeine interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System zu koppeln ist, wie z. B. eine I/O-Vorrichtung, eine Netzschnittstellensteuereinheit (NIC), eine Zusatzkarte, einen Audio-Prozessor, einen Netzprozessor, ein Festplattenlaufwerk, eine Speichervorrichtung, einen CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine „Universal Serial Bus“- (USB-) Vorrichtung, einen Scanner und andere Eingabe/Ausgabe-Vorrichtungen. Häufig wird eine solche Vorrichtung in der PCIe-Umgangssprache als ein Endpunkt bezeichnet. Obwohl nicht spezifisch gezeigt kann die Vorrichtung 125 eine PCIe-zu-PCI/PCI-X-Bridge enthalten, um alte PCI-Vorrichtungen oder PCI-Vorrichtungen anderer Versionen zu unterstützen. Endpunktvorrichtungen in PCIe sind häufig als alte, PCIe- oder wurzelkomplex-integrierte Endpunkte bezeichnet.
  • Ein Grafikbeschleuniger 130 ist ebenfalls mit dem Steuereinheit-Hub 115 über die serielle Verbindungsstrecke 132 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 120 und dementsprechend die I/O-Vorrichtung 125 ist dann mit dem ICH gekoppelt. Die I/O-Module 131 und 118 dienen außerdem zum Implementieren eines geschichteten Protokoll-Stack, um zwischen dem Grafikbeschleuniger 130 und der Steuereinheit-Hub 115 zu kommunizieren. Ähnlich zu der vorstehenden MCH-Diskussion kann eine Grafiksteuereinheit oder der Grafikbeschleuniger 130 selbst in den Prozessor 105 integriert sein. Es ist zu verstehen, dass eine oder mehrere der in 1 dargestellten Komponenten (z. B. 105, 110, 115, 120, 125, 130) erweitert sein können, um Logik auszuführen, zu speichern und/oder zu verwirklichen, um eine oder mehrere der hier beschriebenen Merkmale zu implementieren.
  • Weiter zu 2 ist eine Ausführungsform eines geschichteten Protokoll-Stacks dargestellt. Der geschichtete Protokoll-Stack 200 enthält irgendeine Form eines geschichteten Kommunikations-Stacks, wie z. B. einen „Quick Path Interconnect“- (QPI-) Stack, einen PCIe-Stack, einen Zusammenschaltungs-Stack für die nächste Generation von Hochleistungsberechnung oder einen anderen geschichteten Stack. Obwohl sich die unmittelbar nachfolgende Diskussion in Bezug auf die 1-4 auf einen PCIe-Stack bezieht, können dieselben Konzepte auf andere Zusammenschaltungs-Stacks angewandt werden. In einer Ausführungsform ist der Protokoll-Stack 200 ein PCIe-Protokoll-Stack, der eine Transaktionsschicht 205, eine Sicherungsschicht 210 und eine Bitübertragungsschicht 220 enthält. Eine Schnittstelle wie z. B. die Schnittstellen 117, 118, 121, 122, 126 und 131 in 1 kann als ein Kommunikationsprotokoll-Stack 200 repräsentiert sein. Die Repräsentation als ein Kommunikationsprotokoll-Stack kann auch als ein Modul oder eine Schnittstelle, das/die einen Protokoll-Stack implementiert/enthält, bezeichnet sein.
  • PCI-Express verwendet Pakete, um Informationen zwischen Komponenten zu kommunizieren. Pakete werden in der Transaktionsschicht 205 und der Sicherungsschicht 210 gebildet, um die Informationen von der sendenden Komponente zu der empfangenden Komponente zu befördern. Wenn die gesendeten Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen, die notwendig sind, um Pakete in diesen Schichten zu handhaben, erweitert. Auf der Empfangsseite findet der umgekehrte Prozess statt, und Pakete werden aus ihrer Repräsentation für die Bitübertragungsschicht 220 in die Repräsentation der Sicherungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form, die durch die Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann, transformiert.
  • Transaktionsschicht
  • In einer Ausführungsform dient die Transaktionsschicht 205 zum Bereitstellen einer Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zusammenschaltungsarchitektur, wie z. B. der Sicherungsschicht 210 und der Bitübertragungsschicht 220. In diesem Zusammenhang ist die primäre Zuständigkeit der Transaktionsschicht 205 das Zusammenstellen und Zerlegen von Paketen (d. h. der Transaktionsschichtpakete oder TLPs). Die Übersetzungsschicht 205 managt typischerweise Credit-basierte Ablaufsteuerung für TLPs. PCIe implementiert aufgeteilte Transaktionen, d. h. Transaktionen, für die Anforderung und Antwort zeitlich getrennt sind, was es ermöglicht, dass eine Verbindungsstrecke anderen Verkehr befördert, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Zusätzlich nutzt PCIe Credit-basierte Ablaufsteuerung. In diesem Schema kündigt eine Vorrichtung eine initiale Menge von Credit für jeden der Empfangspuffer in der Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindungsstrecke, wie z. B. der Steuereinheit-Hub 115 in 1, zählt die Anzahl von Credits, die durch jedes TLP verbraucht werden. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Credit-Grenze nicht übersteigt. Beim Empfangen einer Antwort wird eine Menge von Credits wiederhergestellt. Ein Vorteil eines Credit-Schemas ist, dass die Latenz für die Rückgabe von Credits die Leistungsfähigkeit nicht beeinträchtigt, vorausgesetzt dass die Credit-Grenze nicht berührt wird.
  • In einer Ausführungsform enthalten vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherraumtransaktionen enthalten eine oder mehrere Leseanforderungen und Schreibanforderungen, um Daten zu/von einem speicherabgebildeten Ort zu übertragen. In einer Ausführungsform sind Speicherraumtransaktionen zum Verwenden von zwei unterschiedlichen Adressformaten fähig, z. B. eines kurzen Adressformats wie z. B. einer 32-Bit-Adresse oder eines langen Adressformats wie z. B. einer 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen für den Konfigurationsraum enthalten Leseanforderungen und Schreibanforderungen. Nachrichtentransaktionen sind so definiert, dass sie bandinterne Kommunikation zwischen PCIe-Agenten unterstützen.
  • Deshalb setzt in einer Ausführungsform die Transaktionsschicht 205 Paketkopf/Nutzdaten 156 zusammen. Das Format für aktuelle Paketköpfe/Nutzdaten ist in der PCIe-Spezifikation auf der PCIe-Spezifikations-Website zu finden.
  • Kurz auf 3 Bezug nehmend ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. In einer Ausführungsform ist der Transaktionsdeskriptor 300 ein Mechanismus zum Befördern von Transaktionsinformationen. In diesem Zusammenhang unterstützt der Transaktionsdeskriptor 300 die Identifizierung von Transaktionen in einem System. Andere potentielle Verwendungen enthalten das Verfolgen von Modifikationen einer Standardtransaktionsreihenfolge und Zuordnung von Transaktionen zu Kanälen.
  • Der Transaktionsdeskriptor 300 enthält ein globales Bezeichner-Feld 302, ein Attribute-Feld 304 und ein Kanalbezeichner-Feld 306. In dem dargestellten Beispiel ist das globale Bezeichner-Feld 302 so abgebildet, dass es ein lokales Transaktionsbezeichner-Feld 308 und ein Ursprungsbezeichner-Feld 310 umfasst. In einer Ausführungsform ist der globale Transaktionsbezeichner 302 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das lokale Transaktionsbezeichner-Feld 308 ein Feld, das durch einen anfordernden Agenten erzeugt wird, und es ist eindeutig für alle ausstehenden Anforderungen, die eine Fertigstellung für diesen anfordernden Agenten erfordern. Darüber hinaus identifiziert in diesem Beispiel der Ursprungsbezeichner 310 den Anfordereragenten innerhalb einer PCIe-Hierarchie eindeutig. Dementsprechend stellt das Feld des lokalen Transaktionsbezeichners 308 zusammen mit der Ursprungs-ID 310 eine globale Identifizierung einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Das Attribute-Feld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. In diesem Zusammenhang wird das Attribut-Feld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardhandhabung von Transaktionen erlauben. In einer Ausführungsform enthält das Attribute-Feld 304 ein Priorität-Feld 312, ein reserviertes Feld 314, ein Reihenfolge-Feld 316 und ein No-Snoop-Feld 318. Hier kann das Prioritäts-Unterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attribute-Feld 314 ist für die Zukunft oder für eine anbieterspezifische Verwendung reserviert. Mögliche Verwendungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, können unter Verwendung des reservierten Attribute-Felds implementiert werden.
  • In diesem Beispiel wird das Reihenfolgeattribute-Feld 316 verwendet, um optionale Informationen, die den Typ der Reihenfolge befördern, der Standardreihenfolgeregeln modifizieren kann, bereitzustellen. Gemäß einer Beispielimplementierung bezeichnet ein Reihenfolgeattribut „0“, dass Standardreihenfolgeregeln anzuwenden sind, wobei ein Reihenfolgeattribut „1“ eine lockere Reihenfolge bezeichnet, wobei Schreiboperationen Schreiboperationen in derselben Richtung überholen können und Lesefertigstellungen Leseoperationen in derselben Richtung überholen können. Das Snoop-Attributfeld 318 wird benutzt, um zu bestimmen, ob Transaktionen ausgeforscht werden. Wie gezeigt identifiziert das Kanal-ID-Feld 306 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Sicherungsschicht
  • Die Sicherungsschicht 210, auch als Datensicherungsschicht 210 bezeichnet, agiert als eine Zwischenstufe zwischen der Transaktionsschicht 205 und der Bitübertragungsschicht 220. In einer Ausführungsform ist es eine Zuständigkeit der Sicherungsschicht 210, einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindungsstrecke bereitzustellen. Eine Seite der Sicherungsschicht 210 nimmt TLPs, die durch die Transaktionsschicht 205 zusammengestellt sind, an, wendet einen Paketsequenzbezeichner 211, d. h. eine Identifizierungsnummer oder eine Paketnummer, an, berechnet und wendet einen Fehlerdetektionscode, d. h. CRC 212, an und übergibt die modifizierten TLPs an die Bitübertragungsschicht 220 zum Senden über eine physikalische zu einer externen Vorrichtung.
  • Bitübertragungsschicht
  • In einer Ausführungsform enthält die Bitübertragungsschicht 220 einen logischen Unterblock 221 und einen elektrischen Unterblock 222, um ein Paket physikalisch zu einer externen Vorrichtung zu senden. Hier ist der logische Unterblock 221 für die „digitalen“ Funktionen der Bitübertragungsschicht 221 zuständig. In diesem Zusammenhang enthält der logische Unterblock einen Sendeabschnitt zum Vorbereiten ausgehender Informationen zum Senden durch den physikalischen Unterblock 222, und einen Empfängerabschnitt zum Identifizieren und Vorbereiten empfangener Informationen, bevor sie zu der Sicherungsschicht 210 weitergegeben werden.
  • Der physikalische Block 222 enthält einen Sender und einen Empfänger. Der Sender wird durch den logischen Unterblock 221 mit Symbolen versorgt, die der Sender serialisiert und zu einer externen Vorrichtung weiter sendet. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und dem logischen Teilblock 221 zugeführt. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 einzurahmen. Zusätzlich stellt in einem Beispiel der Empfänger außerdem einen Symboltakt bereit, der aus dem eingehenden seriellen Strom wiederhergestellt wird.
  • Wie vorstehend festgestellt ist, obwohl die Transaktionsschicht 205, die Sicherungsschicht 210 und die Bitübertragungsschicht 220 mit Bezug auf eine spezifische Ausführungsform eines PCIe-Protokoll-Stacks diskutiert sind, ein geschichteter Protokoll-Stack nicht so eingeschränkt. Tatsächlich kann irgendein geschichtetes Protokoll enthalten/implementiert sein. Als ein Beispiel enthält ein/e Anschluss/Schnittstelle, der/die als ein geschichtetes Protokoll repräsentiert ist, Folgendes: (1) eine erste Schicht zum Zusammenstellen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Sicherungsschicht; und eine dritte Schicht zum Senden der Pakete, d. h. eine Bitübertragungsschicht. Als ein spezifisches Beispiel wird ein geschichtetes Protokoll einer üblichen Standardschnittstelle (CSI) benutzt.
  • Als Nächstes auf 4 Bezug nehmend ist eine Ausführungsform eines seriellen PCIe-Punkt-zu-Punkt-Fabric dargestellt. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindungsstrecke dargestellt ist, ist eine serielle Punkt-zu-Punkt-Verbindungsstrecke nicht so eingeschränkt, da sie irgendeinen Sendepfad zum Senden serieller Daten enthält. In der gezeigten Ausführungsform enthält eine grundlegende PCIe-Verbindungsstrecke zwei differentiell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 406/412 und ein Empfangspaar 411/407. Dementsprechend enthält die Vorrichtung 405 Sendelogik 406 zum Senden von Daten zu der Vorrichtung 410 und Empfangslogik 407 zum Empfangen von Daten von der Vorrichtung 410. Mit anderen Worten sind zwei Sendepfade, d. h. die Pfade 416 und 417, und zwei Empfangspfade, d. h. die Pfade 418 und 419, in einer PCIe-Verbindungsstrecke enthalten.
  • Ein Sendepfad bezieht sich auf irgendeinen Pfad zum Senden von Daten, wie z. B. eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen Drahtloskommunikationskanal, eine Infrarotkommunikationsverbindungsstrecke oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen wie z. B. der Vorrichtung 405 und der Vorrichtung 410 ist als eine Verbindungsstrecke bezeichnet, wie z. B. die Verbindungsstrecke 415. Eine Verbindungsstrecke kann eine Spur unterstützen - wobei jede Spur eine Gruppe von differenziellen Signalpaaren (ein Paar zum Senden, ein Paar zum Empfangen) repräsentiert. Um die Bandbreite zu skalieren, kann eine Verbindungsstrecke mehrere Spuren, die als xN bezeichnet sind, zusammenfassen, wobei N irgendeine unterstützte Verbindungsstreckenbreite ist, wie z. B. 1, 2, 4, 8, 12, 16, 32, 64 oder breiter. In einigen Implementierungen beinhaltet jede symmetrische Spur ein differenzielles Sendepaar und ein differenzielles Empfangspaar. Asymmetrische Spuren können ungleiche Verhältnisse von Sende- und Empfangspaaren beinhalten. Einige Technologien können symmetrische Spuren (z. B. PCIe) benutzen, während andere (z. B. Displayport) das nicht können und sogar nur Sende- oder nur Empfangspaare enthalten können, unter anderen Beispielen.
  • Ein differenzielles Paar bezieht sich auf zwei Sendepfade, wie z. B. die Leitungen 416 und 417, um differenzielle Signale zu senden. Als ein Beispiel treibt, wenn die Leitung 416 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel schaltet, d. h. eine steigende Flanke, die Leitung 417 von einem hohen Logikpegel zu einem tiefen Logikpegel, d. h. eine fallende Flanke. Differenzielle Signale zeigen potentiell bessere elektrische Eigenschaften, wie z. B. bessere Signalintegrität, d. h. Kreuzkopplung, Spannungsüberschwingen/unterschwingen, Überschwingen usw. Das erlaubt ein besseres Zeitfenster, was schnellere Sendefrequenzen ermöglicht.
  • In PCIe finden schnelle Fortschritte statt, wenn sich das Protokoll von der Generation 4.0 zu den Generationen 5.0 und 6.0 weiterentwickelt. PCIe 4.0 kann Verbindungsstrecken mit 16 Spuren mit effektiven Bandbreiten von 64 GB/s und erweiterte Unterstützung für „Retimer“ und andere Merkmale unterstützen. PCIe 5.0 behält die 16-Spur-Verbindungsstreckenbreite bei, während es die effektive Bandbreite auf 128 GB/s verdoppelt. Um diese Fortschritte in der Bandbreite beizubehalten, behält PCIe 6.0 die 16-Spur-Verbindungsstrecke und setzt Impulsamplitudenmodulation(PAM)-Codierung (z. B. PAM4-Codierung) ein, im Gegensatz zu der herkömmlichen „Non-Return-To-Zero‟(NRZ)-Codierung (z. B. 8b/10b, 128b/130b), um die Anzahl von Bits zu erhöhen, die auf einem seriellen Kanal innerhalb eines einzigen Einheitsintervalls (UI) gesendet werden können. Dementsprechend verdoppelt PCIe 6.0 ferner die Bandbreiten auf 64 GT/s von 32 GT/s in PCIe 5.0 und ermöglicht dadurch 256 GB/s bidirektionaler Bandbreite. Solche Verbindungsstrecken können nützlich zum Koppeln von Vorrichtungen eingesetzt werden, z. B. Hardware-Beschleunigervorrichtungen für tiefes Lernen und künstliche Intelligenz; Hochgeschwindigkeitsgrafikprozessoreinheiten, Tensorprozessoreinheiten und andere Prozessoren für tiefes Lernen; Hochgeschwindigkeitsspeicher; und andere Hardware in einer Vielzahl aufkommender Berechnungsanwendungen, aus Anwendungen für tiefes Lernen, autonome Fahrzeuge, Robotertechnik und Hochleistungsspeicherarchitekturen, unter anderen Beispielen. PCIe 6.0 enthält ferner Vorwärtsfehlerkorrektur (FEC) mit geringer Latenz und andere Merkmale, um die Bandbreiteneffizienz zu verbessern, während es die Abwärtskompatibilität mit früheren PCIe-Generationen und ähnliche Kanalreichweite wie in PCIe 5.0 verfügbar beibehält.
  • Obwohl Hochgeschwindigkeits-PAM4-Codierung ermöglicht, dass Verbindungsstrecken neue und verbesserte Anwendungen realisieren, können solche Verbindungsstrecken anfälliger für Fehler sein. In einigen Implementierungen können eine Verbindungsstrecke und ein entsprechendes Protokoll konfiguriert sein, in mehreren Betriebsarten zu arbeiten, wie z. B. einer Flit-Betriebsart, wenn Hochgeschwindigkeits-PAM4-Codierung benutzt wird, und einer weiteren (z. B. Nicht-Flit) Betriebsart, wenn Codierung mit geringerer Geschwindigkeit (z. B. 8b/10b, 128b/130b NRZ) verwendet wird. Beispielsweise kann eine Betriebsart mit höherer Geschwindigkeit benutzt werden und insbesondere von der Vorwärtsfehlerkorrektur profitieren. Dementsprechend kann eine Flit-Betriebsart implementiert sein, die das Senden eines einzelnen Pakets in eine Gruppe aus einer oder mehreren definierten Flusssteuerungseinheiten, oder „Flits“, an der Sicherungsschicht oder logischen PHY-Schicht unterteilt. Solche Merkmale können jedoch das Analysieren des Pakets an dem Empfänger verkomplizieren. Jede Flit kann einen entsprechenden Header mit Informationen, die der Flit und dem Paket entsprechen, enthalten, was ermöglicht, dass einige Informationen, die herkömmlicherweise für den Paket-Header reserviert sind, weggelassen werden, falls sie redundant sind. In einigen Implementierungen können zwei (oder mehr) separate Paket-Header-Formate für eine Zusammenschaltung (z. B. für PCIe 6.0-basierte Zusammenschaltungen) definiert sein, wobei ein erstes Paket-Header-Format für eine Betriebsart benutzt wird, die Flits für die Paketübertragung benutzt, und ein anderes, unterschiedliches Paket-Header-Format für eine Betriebsart benutzt wird, die keine Flits verwendet, (z. B. eine in dem Protokoll definierte alte Betriebsart), unter anderen Beispielimplementierungen. In einigen Implementierungen kann es wünschenswert sein, Flits zur Paketübertragung zu benutzen, wenn in Betriebsarten mit geringerer Geschwindigkeit (z. B. 8b/10b, 128b/130b NRZ) gearbeitet wird.
  • In dem Fall von PCIe hat sich die Header-Struktur eines Transaktionsschichtpakets (TLP) langsam weiterentwickelt, blieb jedoch größtenteils unverändert. Mit dem Einsatz von PAM4-Codierung und einer Verschiebung zu Flit-basierter Datenintegrität mit PCIe 6.0 kann ein neues, überarbeitetes TLP-Header-Format benutzt werden. Der neue TLP-Header der Flit-Betriebsart kann auch die Tatsache adressieren, dass in existierenden PCIe-TLP-Headern verbleibende reservierte Bits fehlen, um die Merkmale und Informationen, die in entsprechenden Paket-Header-Feldern kommuniziert werden können, zu erweitern. In einer Beispielimplementierung kann ein TLP-Header der Flit-Betriebsart die herkömmlichen orthogonalen Format- (Fmt) und Typ-Felder durch ein vollständig decodiertes 8-Bit-TLP-Typ-Feld ersetzen, das mit Werten codiert sein kann, die alle (oder im Wesentlichen alle) existierenden TLP-Typen in PCIe angeben, während neue TLP-Typen für „No-Op“- (NOP-) und „End-Bad“- (EDB-) Pakettypen hinzugefügt sind. Tatsächlich kann in der Flit-Betriebsart irgendeine Anzahl von NOP-TLPs vor oder nach irgendeinem anderen TLP gesendet werden, wobei NOP-TLPs ohne Effekt durch den Empfänger verworfen werden. Ferner kann der TLP-Header der Flit-Betriebsart neue erweiterte Header-Elemente hinzufügen, um das aufzunehmen, was früher unter Verwendung von TLP-Präfixen und anderen Mechanismen in PCIe kommuniziert wurde, die unter anderen Beispielen Prozessadressraumbezeichner (PASID), TLP-Verarbeitungshinweise und sichere TLPs enthalten. Andere beispielhafte Modifikationen können unter anderen beispielhaften Modifikationen das Hinzufügen einer 8-Bit-Segment-ID (SBDF) zu der Anforderer- und Fertigsteller-ID, das Erhöhen der Tag-Feld-Bits (z. B. 12, 14 oder 16 Bits), das Entfernen veralteter Felder und Elemente (z. B. des „Byte Count“-Felds) enthalten.
  • Unter den beispielhaften Vorteilen, die durch einen Paket-Header der Flit-Betriebsart realisiert sein können, kann der Header die Fähigkeit für die Transaktionsschicht des Empfängers bereitstellen, eingehenden TLP-Inhalt robust zu analysieren, ohne von TLP-Abgrenzungsinformationen aus der Bitübertragungs- oder Sicherungsschicht abzuhängen. Als ein weiteres Beispiel kann die Erweiterbarkeit von Paketen über eine flexible TLP-Struktur, die aus einer TLP-Header-Basis gefolgt von flexibel hinzugefügtem zusätzlichem Header-Inhalt (z. B. null bis 7 zusätzliche Doppelwörter (DW) mit Inhalt) besteht, besser unterstützt werden. In einem Beispiel kann der PCIe-Transaktions-„Digest“ in Paketen der Flit-Betriebsart durch einen Anhang von null bis 3 DW ersetzt werden. In einigen Implementierungen enthält das erste DW der Header-Basis alle Informationen, die erforderlich sind, um die vollständige Größe des TLP zu bestimmen, das den Header selbst, irgendwelche Nutzdaten und den Anhang, falls vorhanden, enthält. Die End-Bad- (EDB) und „Poisoned“-TLP-Mechanismen können ebenfalls modifiziert sein, und in der Flit-Betriebsart angegeben über Suffixe, die, falls vorhanden, dem TLP, für das sie gelten, unmittelbar folgen und die, für Poisoned, Ende-zu-Ende mit dem TLP über Wurzelkomplexe, die Peer-to-Peer unterstützen, und alle Switches befördert werden. Ferner können allen Codierungen vom TLP-Typ, die für Header der Flit-Betriebsart definiert sind, Ablaufsteuerung und Routing für „Vorwärtskompatibilität“ zugewiesen sein, so dass neue Opcodes zugewiesen werden können, ohne Modifikation an dem existierenden Switch und den generischen Blöcken der Hardware der PCIe-Steuereinheit zu erfordern.
  • Weiter zu 5 ist ein vereinfachtes Blockdiagramm 500 gezeigt, das eine beispielhafte PCIe-Verbindungsstrecke 505 darstellt, die eine erste Vorrichtung 510 mit einer zweiten Vorrichtung 515 koppelt. Jede der Vorrichtungen 510, 515 kann mit einem oder mehreren Mehrfachanschlüssen (z. B. 520, 525) ausgestattet sein, um eine oder mehrere Mehrfachverbindungen mit anderen Vorrichtungen (z. B. auf demselben/derselben oder einem/einer anderen Baustein oder Baugruppe) zu unterstützen. Der Anschluss (z. B. 520, 525) kann sowohl Sende- und Empfangsschaltungsanordnung als auch Logik (z. B. in einer Hardware-Schaltungsanordnung implementiert) enthalten, um ein oder mehrere Zusammenschaltungsprotokolle zu implementieren, die den Betrieb einer entsprechenden Verbindung steuern. Beispielsweise können die Anschlüsse 520, 525 jeweils eine Schaltungsanordnung enthalten, um einen geschichteten Protokoll-Stack eines PCIe-basierten Protokolls zu implementieren. Das PCIe-Protokoll (z. B. PCIe 6.0) kann sowohl eine Flit-Betriebsart als auch eine weitere Nicht-Flit-Betriebsart unterstützen. Die entsprechende Protokoll-Schaltungsanordnung (z. B. der Anschlüsse 520, 525) kann benutzt werden, um Pakete (z. B. 530, 535) mit Paket-Headern gemäß jeder aus der Flit-Betriebsart und der Nicht-Flit-Betriebsart zu erzeugen, wie z. B. in den Beispielen hier diskutiert ist. Ähnlich kann die Protokoll-Logik in den Vorrichtungen 510, 515 (z. B. entsprechend den Empfängern der Anschlüsse 520, 525) Pakete (z. B. 530, 535), die durch eine weitere Vorrichtungen erzeugt und gesendet werden, empfangen und Informationen innerhalb der Pakete benutzen, um Grenzen des Pakets zu identifizieren und das Paket und seinen Inhalt zu analysieren (z. B. unter Verwendung von Feldern wie sie z. B. in den nachstehenden Beispielen diskutiert sind).
  • Wie vorstehend eingeführt kann in der Flit-Betriebsart die Verbindungsstrecke konfiguriert sein, eingehenden TLP-Inhalt robust zu analysieren, ohne von TLP-Abgrenzungsinformationen aus der Bitübertragungs- und Sicherungsschicht abhängig zu sein. Zusätzlich können die PCIe-TLP-Header der Flit-Betriebsart mehrere Änderungen gegenüber herkömmlichen PCIe-TLP-Headern enthalten, um die Erweiterbarkeit im Vergleich zu diesen Header-Strukturen der Nicht-Flit-Betriebsart, wo alle reservierten Bits aufgebraucht werden, zu verbessern. Tatsächlich kann in einigen Fällen das Fehlen eines verbleibenden Platzes in herkömmlichen PCIe-TLP-Headern zu Implementierungen führen, in denen Informationen zwischen dem Header selbst und TLP-Präfixen vermischt sind, unter anderen beispielhaften Problemen. In einer beispielhaften Flit-Betriebsart können die lokalen TLP-Präfixe einer Verbindungsstrecke beibehalten werden, Ende-zu-Ende-TLP-Präfixe werden jedoch entfernt und durch eine flexiblere TLP-Struktur, die aus einer definierten TLP-Header-Basis optional gefolgt von 0-7 zusätzlichen DW mit Header-Inhalt besteht, ersetzt werden. Ferner ist in einigen Implementierungen der PCIe-Transaktions-Digest-Mechanismus durch einen Anhang aus 0-3 DW ersetzt. In einem Beispiel kann das erste DW der Header-Basis der Flit-Betriebsart formatiert sein, so dass es alle Informationen enthält, die erforderlich sind, um die vollständige Größe des TLP, das den Header selbst, irgendwelche Nutzdaten und irgendeinen Anhang, falls vorhanden, enthält, zu bestimmen.
  • Zusätzliche Merkmale können in einem beispielhaften TLP-Format der Flit-Betriebsart vorgesehen sein. Beispielsweise können die PCIe-End-Bad- (EDB) und Poisoned-TLP-Mechanismen in der Flit-Betriebsart modifiziert und über Suffixe angegeben sein, die, falls vorhanden, dem TLP, für das sie gelten, unmittelbar folgen und die, für Poisoned, Ende-zu-Ende mit dem TLP über Wurzelkomplexe, die Peer-to-Peer unterstützen, und alle Switches befördert werden. In einigen Fällen muss in der Flit-Betriebsart der Sender eine vollständige TLP-Übertragung beenden in dem Sinn, dass er in jeder angegebenen Position etwas senden muss, das Nutzdaten und Anhänge enthält, und nicht versuchen darf, die TLP-Übertragung früh zu beenden. In solchen Fällen muss der Sender falls erforderlich „Füller“-Inhalt senden, um die vollständige TLP-Größe, die am Beginn der Übertragung angegeben ist, aufzufüllen (z. B. in den Feldern des Headers des TLP basierend darauf, dass der Sender keinen zu sendenden Inhalt mehr hat), und dann der Übertragung ein EDB-Suffix folgen lassen. In anderen Fällen können Fehler in einem TLP durch ein EDB-Suffix (oder andere Felder) angegeben sein, und entsprechende Empfänger können ohne Auswirkungen alle TLPs mit solchen EDB-Kennzeichnungen verwerfen, unter anderen beispielhaften Merkmalen.
  • Weiter zu 6 ist eine Repräsentation 600 eines Formats eines beispielhaften Pakets der Flit-Betriebsart (z. B. TLP) dargestellt. Beispielsweise kann das Format des Pakets der Flit-Betriebsart sowohl eine Header-Basis 605, die aus einer Gruppe von Feldern (z. B. 640, 645) besteht, die durch einen Empfänger analysiert werden können, um eine Gesamtlänge des Pakets zu bestimmen, als auch andere Informationen, wie z. B. einen Bezeichner des Ursprungs des Pakets, Adressinformationen (z. B. für ein Ziel des Pakets), einen Transaktionsbezeichner unter anderen beispielhaften Informationen enthalten. Die Felder und Formate der Header-Basis 605 können auf dem Typ des Pakets basieren und ihm entsprechen. Beispielsweise können die Header einiger Pakettypen variierende Längen (z. B. 3 DW oder 4 DW), Kombinationen und Typen von Feldern und andere variierende Eigenschaften, die dem Pakettyp entsprechen, aufweisen. Einige Header-Felder können in Headern jedes Pakettyps vorhanden sein, wie z. B. ein Typ-Feld (z. B. 640), um den Pakettyp anzugeben, unter anderen Beispielen.
  • In dem Beispiel von 6 können zusätzlich zu einer Header-Basis zusätzliche Felder selektiv zu dem Header als Header-Inhaltsblöcke oder „orthogonaler Header-Inhalt (OHC)“ hinzugefügt sein. In einem Beispiel kann eine Gruppe von Header-Inhaltsblöcken selektiv an die Header-Basis 605 angehängt sein, um den vollständigen Header für ein Paket zu bilden. Beispielsweise können einer, mehr als einer oder keiner der Header-Inhaltsblöcke an die Header-Basis angehängt werden, basierend auf einer Codierung eines Felds für orthogonalen Header-Inhalt (OHC-Feld) (z. B. 645) in der Header-Basis 605. In einigen Implementierungen kann das OHC-Feld One-Hot-Codierung oder eine andere Codierungstechnik verwenden, um zu identifizieren, welcher (falls vorhanden) der Header-Inhaltsblöcke (z. B. 610, 615, 620, 625, 630, 635) in den Header aufzunehmen sind. Felder des Headers und/oder Header-Inhaltsblöcke können ferner die Länge des restlichen Pakets (z. B. der Paket-Nutzdaten), das Vorhandensein und den Charakter von Suffixen, Anhängen und/oder Präfixen, die in dem Paket enthalten sind, unter anderen Paketkomponenten identifizieren.
  • In einigen Fällen kann die Transaktionsschicht-Paketgrammatik eines Pakets der Flit-Betriebsart so definiert sein, dass es null oder mehr 1 DW lokaler TLP-Präfixe, eine TLP-Header-Basis (z. B. 3 DW oder 4 DW basierend auf dem Pakettyp), eine TLP-Datennutzlast (z. B. aus 0 bis 1024 DW), einen TLP-Anhang (falls vorhanden), 0 oder mehrere 1 DW Ende-zu-Ende-Suffixe usw. enthält. Felder des Paket-Headers (z. B. der Header-Basis oder ein oder mehrere der Header-Inhaltsblöcke) können die Länge der Nutzdaten, die Kombination enthaltener Header-Inhaltsblöcke, das Vorhandensein und den Charakter von Präfixen, Anhängen, Suffixen und andere Informationen, die es einem Empfänger ermöglichen, den Header zu analysieren und die Länge des Headers und des Pakets zu bestimmen, identifizieren.
  • In einer Beispielimplementierung können einer oder mehrere der Header-Inhaltsblöcke (z. B. 610, 615, 620, 625, 630, 635) eine variable Länge aufweisen, wobei deren Länge auch in einem Feld der Header-Basis angegeben sein kann. Beispielsweise können zwei oder mehr Typen von Header-Inhaltsblöcken (z. B. OHC-A (610), OHC-B (615), OHC-C (620) und OHC-E) definiert sein. Wenigstens einer der Typen von Header-Inhaltsblöcken (z. B. OHC-E) kann mehrere mögliche Längen (z. B. 625, 630, 635) aufweisen. In einem Beispiel kann ein 5-Bit-OHC-Feld in der Header-Basis (z. B. in einem ersten DW der Header-Basis) definiert sein, um die Header-Inhaltsblöcke, die an die Header-Basis anzuhängen sind, zu identifizieren. In einem Beispiel können Codierungen für das OCH-Feld (z. B. OHC[4:0]) definiert sein wie z. B.
    00000b = kein OHC vorhanden
    xxxx1b = OHC-A vorhanden
    xxx1xb = OHC-B vorhanden
    xx1xxb = OHC-C vorhanden
    00xxxb = kein OHC-Ex vorhanden
    01xxxb = OHC-E1 vorhanden
    10xxxb = OHC-E2 vorhanden
    11xxxb = OHC-E4 vorhanden
    wobei ein ‚x‘ angibt, dass entweder eine 1 oder eine 0 vorhanden sein kann, und diese Codierungen nicht gegenseitig ausschließend sind.
  • Es kann erlaubt sein, dass irgendeine Kombination der Header-Inhaltsblöcke in dem Header vorhanden ist (z. B. OHC-B und OHC-C sind vorhanden ohne OHC-A oder OHC-E). In einigen Implementierungen kann, wenn bestimmt ist, dass zwei oder mehr Header-Inhaltsblöcke in dem Header enthalten sein sollen, definiert sein, dass die Header-Inhaltsblöcke in einer definierten Reihenfolge vorhanden sein sollen (z. B. die Header-Inhaltsblöcke folgen der Header-Basis und dann in der Reihenfolge OHC-A, OHC-B, OHC-C, OHC-E). In einigen Implementierungen können die Inhalte eines Header-Inhaltsblocks abhängig von dem TLP-Typ variieren (wie z. B. in den Beispielen der 7B, 8B, 9B, 10B, 11B, 12B gezeigt ist).
  • In einigen Implementierungen enthält, wenn TLP-Verarbeitungshinweise (TPH) verwendet sind (z. B. in TLPs für speicher-geroutete Anforderungen) ein OHC-B-Header-Inhaltsblock einen geeigneten Verarbeitungshinweis (PH), Lenkungs-Tag (ST), Adressenübersetzungsdienst (ATS), Speicherattribut (AMA) und AMA-gültig- (AV-) Werte, unter anderen Beispielen. In einigen Implementierungen ist, anders als ein Header der Nicht-Flit-Betriebsart, ein ST-Feld in einem Paket der Flit-Betriebsart nicht mit Byte-Freigaben oder anderen Feldern überlagert. Wenn OHC-B enthalten ist, können, falls TPH nicht verwendet ist, die PH- und ST-Felder überall mit 0 codiert sein.
  • In einigen Fällen können Speicheranforderungspakete, die Byte-Freigaben verwenden, um die Adresse/den Bereich von Bytes, die zu lesen/schreiben sind, auszudrücken, und/oder einen Prozessadressraumbezeichner (PASID) verwenden, solche Felder über einen speziellen Header-Inhaltsblock (z. B. OHC-A) integrieren. Als eine logische Konsequenz können Speicheranforderungen, die die Verwendung von Byte-Freigaben nicht erfordern, um die Adresse/den Bereich von Bytes, die zu lesen/schreiben sind, auszudrücken, und PASID nicht erfordern, den speziellen Header-Inhaltsblock (z. B. OHC-A) weglassen. In einigen Implementierungen können, wenn ein solcher spezieller Header-Inhaltsblock ist wenn OHC-A in einem TLP enthalten ist, falls Byte-Freigaben für den TLP-Typ gelten, dann die Werte in den Byte-Freigabe-Feldern codiert sein, um die freigegebenen Bytes genau anzugeben. Ferner kann, falls der PASID nicht bekannt ist oder nicht zugewiesen worden ist, wenn ein spezieller Header-Inhaltsblock (z. B. OHC-A) enthalten ist, dann der PASID-Feldwert des speziellen Header-Inhaltsblocks überall 0 sein.
  • Einige Typen von Paketen oder Transaktionen können immer das Aufnehmen eines oder mehrere definierter Header-Inhaltsblöcke einbeziehen. Beispielsweise können IO-Anforderungen und Konfigurationsanforderungen immer OHC-A-Blöcke mit Byte-Freigaben in ihren Paket-Headern benutzen. Als ein weiteres Beispiel können Nachrichtenanforderungen immer einen speziellen Header-Inhaltsblock (z. B. OHC-B) mit einem Nachrichtencode[7:0]-Feld enthalten, unter anderen Beispielen. Beispielsweise können Konfigurationsanforderungen immer einen OHC-B-Block enthalten, der ein Zielsegment-Feld enthält. In solchen Fällen gibt ein Wurzelkomplex den korrekten Segmentwert in dem Zielsegment-Feld an (z. B. selbst wenn nur ein Segment implementiert ist). Der Completer erfasst dann den Segmentwert, der in dem Zielsegment angegeben ist, zusammen mit dem zugewiesenen Bus-, Vorrichtungs-, Funktions- (BDF-) Wert, und gibt dieses als seinen Completer-Segmentwert zurück, wenn das Completer-Segment verwendet wird (z. B. ähnlich zu der Art, wie BDF heute zurückgegeben wird (z. B. als ein Segment-, Bus-, Vorrichtungs-, Funktions- (SBDF-) Wert)). Dementsprechend können in einigen Implementierungen alle Konfigurationsfertigstellungen ebenfalls einen OHC-B-Block mit sowohl Anforderer-Segment- als auch Completer-Segment-Feldern enthalten. In einigen Fällen müssen, falls die erfasste Segment-Anzahl nicht null ist, dann alle nachfolgenden TLPs den OHC-B-Block in ihre Header mit dem erfassten Anforderer/Completer-Segmentwert aufnehmen. Für eine Anforderung müssen dann, falls das Anforderer-Segment nicht null ist, alle Fertigstellungen für die Anforderung OHC-B mit Anforderer-Segment- und Completer-Segment-Werten aufnehmen. Das Zielsegment-Feld kann in einigen Implementierungen als reserviert für TLPs, die keine Konfigurationsanforderungen sind, gehalten werden.
  • In einigen Fällen können ein oder mehrere Header-Inhaltsblöcke (z. B. OHC-C) vorgesehen und zur Verwendung bei der Unterstützung von Datensicherheit definiert sein, wie z. B. durch Felder, um Datenintegrität, Datenverschlüsselung und andere Merkmale (z. B. Unterstützung von aufkommenden Integritäts- und Datenverschlüsselungsmerkmalen von PCIe) zu ermöglichen. Dementsprechend können sichere TLPs solche Header-Inhaltsblöcke enthalten, um das gewünschte (oder geforderte) Sicherheitsniveau oder andere Erweiterungen zu unterstützen, unter anderen beispielhaften Header-Inhaltsblöcken.
  • Die 7A-12B stellen Beispiele für jeweilige Paket-Header-Formate für Nicht-Flit-Betriebsart und Flit-Betriebsart für jeden aus einer Anzahl von beispielhaften Transaktions- oder Pakettypen dar. In einem Beispiel können Paket-Header-Formate der Nicht-Flit-Betriebsart auf einem alten Paketformat basieren (oder es sogar vollständig einsetzen) (z. B. einem existierenden PCIe-Paket-Header-Format). Obwohl der Typ die Gesamtlänge und einige der Felder, die in der entsprechenden Header-Basis für den Header des Pakets enthalten sind, beeinflussen kann, kann die Header-Basis eines Paket-Headers der Flit-Betriebsart auf einer Menge gemeinsamer Prinzipien basieren und/oder eine gemeinsame Menge von Feldern enthalten. In einem Beispiel können alle TLPs der Flit-Betriebsart, unabhängig vom Typ, ein vollständig decodiertes 8b-Pakettyp-Feld, ein Tag-Feld, ein OHC-Feld, Anhangsgrößen-Felder enthalten, unter anderen Beispielen. Alle Typen-Codierungen können eine definierte Header-Größe und Ablaufsteuerungsparameter aufweisen. Tag-Felder in einer TLP-Header-Basis der Flit-Betriebsart können relativ zu einem Nicht-Flit-Tag[]-Feld erweitert sein (z. B. 12 oder mehr Bits (z. B. 14 Bits)). Das Header-Basis-Format der Flit-Betriebsart kann für einige Felder einen Abschnitt des allgemeinen Layouts des Headers der Nicht-Flit-Betriebsart beibehalten, jedoch Bits einiger Felder zusammenführen, um Bits zur Erweiterung des Tag-Felds frei zu machen. Byte-Freigabe-Werte, die in den Paket-Headern der Nicht-Flit-Betriebsart enthalten sind, können aus der Header-Basis der Pakete der Flit-Betriebsart heraus verlagert und nur bei Bedarf durch die ausgewählte Aufnahme eines entsprechenden einen oder mehrerer Header-Inhaltsblöcke (wie in dem OHC-Feld angegeben) aufgenommen werden. Ähnlich können Byte-Zahl-Felder, LowerAdress-Felder, Byte-Zahlmodifiziert- (BCM-) Bits und andere Felder, die herkömmlicherweise in Headern der Nicht-Flit-Betriebsart enthalten sind, entfernt werden und selbst vollständig aus den Headern der Flit-Betriebsart abgeschafft werden (z. B. nicht in irgendeiner Header-Inhaltsblock-Definition enthalten sein), oder sie können durch Verwendung anderer OCH-Feld-Definitionen aufgenommen werden.
  • Zusätzlich zu den vorstehenden Merkmalen können Header der Flit-Betriebsart ferner Segmentbezeichner (z. B. einen 8-Bit-SBDF-Wert) in Anforderer- und Completer-Bezeichnern enthalten. Ende-zu-Ende-TLP-Präfixe können in dem Header integriert sein, entweder als „erste Klasse“ oder als zusätzliche Informationen, die am Ende des Headers selektiv aufgenommen sind. Es kann erlaubt sein, dass PASID-Werte auf alle Speicheroperationen der Flit-Betriebsart angewandt werden. Lenkungs-Tags in der Flit-Betriebsart können ent-überladen sein, und PH, Lenkungs-Tags und AMA/AV-Felder können zusammengeführt sein. Leichtgewicht-Meldungen (LN) können in Paketen der Flit-Betriebsart entfernt sein (und der LN-Mechanismus abgelehnt werden). Anhänge können durch Codierungen eines Anhangsgröße-Felds angegeben sein, um Empfänger bei dem Bestimmen der Länge und der Merkmale des Pakets zu unterstützen. Als ein Beispiel kann die folgende Codierung definiert sein, um die Verwendung und die Größe von Trailern innerhalb eines entsprechenden Pakets anzugeben:
    00b - Kein Anhang
    01b - 1DW Anhang enthält ECRC
    10b - 2DW Anhang - Inhalt reserviert
    11b - 3DW Anhang zum Verwenden für TLP-Sicherheitsmechanismus
    unter anderen Beispielen. In einigen Fällen können Switches und Wurzelkomplexe mit zusätzlicher Schaltungsanordnung oder Logik ausgestattet sein, um Peer-to-Peer-Implementierungen, Abbildung zwischen TLPs der Flit-Betriebsart und der Nicht-Flit-Betriebsart zu unterstützen.
  • Mehrere Merkmale können zwischen Paketen der Flit-Betriebsart und Paketen der Nicht-Flit-Betriebsart gemeinsam oder ähnlich bleiben. Beispielsweise können für Nachrichtenanforderungen die Definitionen der Inhalte der Bytes 8-15 gegenüber der Nicht-Flit-Betriebsart unverändert sein. ATS-Übersetzungsanforderungen können den Speicherlese-Formaten (z. B. wobei AT = 01b eine Übersetzungsanforderung unterscheidet) unverändert gegenüber einer definierten Nicht-Flit-Betriebsart folgen. Ähnlich kann das Format des Übersetzungsfertigstellungsdateneintrags gegenüber einer früher definierten Nicht-Flit-Betriebsart unverändert sein. Zusätzlich können lokale TLP-Präfixe gegenüber denen in einer Nicht-Flit-Betriebsart definierten im Wesentlichen unverändert sein, unter anderen Merkmalen. In einigen Implementierungen können, falls die erfasste Segmentanzahl nicht null ist, dann die ATS-Invalidierungs-Anforderung, Invalidierungs-Fertigstellung, Seitenanforderung, Stop-Marker und PRG-Antwortnachrichten einen speziellen Header-Inhaltsblock mit Anforderer/Completer-Segment (z. B. OHC-B) enthalten.
  • 7A stellt ein Header-Format der Nicht-Flit-Betriebsart für ein PCIe-Anforderungs-Header-Format der Nicht-Flit-Betriebsart für 64-Bit-Adressierung dar, das herkömmliche PCIe-TLP-Header-Felder wie z. B. ein 3-Bit-Format-Feld, ein 5-Bit-Typ-Feld, Verkehrsklasse- (TC-) Feld, LN-Bit, TLP-Hinweis- (TH-) Bit, TLP-Digest- (TD-) Feld, Adresstyp- (AT-) Feld, Fehler-Poisoned- (EP-) Feld, Attribut- (Attr-) Felder, Länge-Feld, Anforderer-ID-Feld und Adress-Felder enthält. 7B stellt ein Header-Format der Flit-Betriebsart für ein PCIe-Anforderungs-Header-Format für 64-Bit-Adressierung dar. Die Header-Basis 705 der Flit-Betriebsart enthält Flit-Betriebsart-Typ-, OHC- und TS-Felder und erweitertes Flit-Betriebsart-Tag, zusammen mit herkömmlichen Anforderer-ID-, Attr-, AT-, Länge- und Adress-Feldern. 7B zeigt ferner Inhalt-Header-Blöcke (z. B. OHC-A 710, OHC-B 715, OHC-C 720), die für Anforderungstyp-Pakete definiert sind. (Felder, die als „R“ oder „Reserviert“ in den Beispielen der 7A-12B gekennzeichnet sind, geben reservierte Felder/Bits an.)
  • 8A stellt einen PCIe-Anforderungs-Header der Nicht-Flit-Betriebsart für 32-Bit-Adressierung dar, mit einem Format, das dem 64-Bit-Adressierungsanforderunges-Header in 7A ähnlich ist, jedoch Byte-Freigabe-Felder (z. B. erste und letzte DW-Byte-Freigabe- (BE-) Felder) und ein Verarbeitungshinweis- (PH-) Feld enthält. 8B stellt ein entsprechendes PCIe-Anforderungs-Header-Feld der Flit-Betriebsart für 32-Bit-Adressierung dar, das die Header-Basis 805 und entsprechende Inhalts-Header-Blöcke 810, 815, 820, die der Header-Basis hinzugefügt sein können, enthält. 9A stellt ein PCIe-Anforderungs-Header-Format der Nicht-Flit-Betriebsart für I/O-Transaktionen dar. 9B stellt ein PCIe-Anforderungs-Header-Format der Flit-Betriebsart für I/O-Transaktionen dar, das eine entsprechende Header-Basis 905 und Header-Inhaltsblöcke 910, 915, 920 enthält.
  • 10A stellt ein PCIe-Header-Format der Nicht-Flit-Betriebsart für Konfigurationstransaktionen dar, das Bus-Nummer-, Vorrichtungs-Nummer- und Funktions-Nummer-Felder und Register-Nummer-Felder (und außerdem vorstehend diskutierte Felder) enthält. 10B stellt ein PCIe-Header-Format der Flit-Betriebsart für KonfigurationsTransaktionen dar, das eine entsprechende Header-Basis 1005 und Header-Inhaltsblöcke 1010, 1015, 1020 enthält.
  • 11A stellt ein PCIe-Nachrichtenanforderungs-Header-Format der Nicht-Flit-Betriebsart, das ein Nachrichten-Code-Feld enthält, dar. 11B stellt ein PCIe-Nachrichtenanforderungs-Header-Format der Flit-Betriebsart dar. Die Nachrichtenanforderungs-Header-Basis 1105 der Flit-Betriebsart ist, anders als in den Beispielen der 7B, 8B, 9B und 10B, als 4 DW anstatt als 3 DW definiert. 11B zeigt ferner die Header-Inhaltsblöcke 1110, 115, 1120, die für Nachrichtenanforderungen definiert sind.
  • 12A stellt ein PCIe-Fertigstellungs-Header-Format der Nicht-Flit-Betriebsart dar, das ein Completer-ID-Feld, Fertigstellungsstatus-Feld und Untere-Adresse-Felder unter anderen vorstehend diskutierten enthält. 12B stellt ein PCIe-Fertigstellungs-Header-Format der Flit-Betriebsart dar, das entsprechende OHC-A- 1210, OHC-B-1215 und OHC-C- 1220 Header-Inhaltsblöcke enthält, wie z. B. in den anderen vorstehenden Beispielen.
  • Obwohl die Beispiele der 7B, 8B, 9B, 10B, 11B, 12B jeweilige typbasierte Implementierungen von OHC-A-, OHC-B- und OHC-C-Header-Inhaltsblöcken darstellen, ist zu verstehen, dass auch andere Header-Inhaltsblöcke definiert und zur Aufnahme in einen Header der Flit-Betriebsart verfügbar gemacht (und in einem entsprechenden OHC-Feld der Header-Basis identifiziert) sein können. Beispielsweise können die OHC-E-Header-Inhaltsblöcke (z. B. wie in 6 dargestellt) auch verfügbar sein, um an die Header-Basis angefügt zu werden (z. B. nach dem Aufnehmen irgendeines aus den OHC-A-, OHC-B- und OHC-C-Header-Inhaltsblöcken). Beispielsweise können die OHC-E-Header-Inhaltsblöcke in der Größe variabel sein und entweder als 1DW-, 2DW oder 4DW-Header-Inhaltsblöcke aufgenommen sein, unter anderen Beispielen. In einigen Implementierungen kann der OHC-E-Header-Inhaltsblock zur Verwendung zum Transportieren von durch den Anbieter definierten Inhalt zusammen mit einem TLP bestimmt sein, wobei die Beschaffenheit des Anbieterinhalts steuert, ob die 1DW-, 2DW- oder 4DW-Version des OHC-E zu verwenden ist, unter anderen Beispielen.
  • In einigen Implementierungen kann die Flit-Betriebsart die Vorabdefinition aller oder im Wesentlichen aller codierbaren Werte eines Typ-Felds (z. B. Typ[7:0]) in der Header-Basis der Flit-Betriebsart bereitstellen. Während Format- und Typ-Feld-Codierungen in PCIe der Nicht-Flit-Betriebsart auf organische Weise entwickelt und zugewiesen wurden, machte das in der Praxis den Einsatz von Hardware dieser erweiterbaren und sich ändernden Menge von Typ-Codierungen schwierig zu implementieren. Dementsprechend können in einigen Implementierungen einer Flit-Betriebsart Typ-Feld-Codierungen zusammen mit dem entsprechenden Routing, Ablaufsteuerungs- (FC-) Typ, Header-Basis-Größe und ob Nutzdaten dem Typ zugeordnet sind oder nicht, vordefiniert sein, so dass Hardware und andere Logik der PCIe-Vorrichtungen entsprechend konfiguriert sein können, um jede der potentiellen codierten Typen zu verstehen und zu handhaben. Beispielsweise stellt Tabelle 1 eine beispielhafte Definition von Werten für das Typ[7:0]-Feld in Header-Basen der Flit-Betriebsart dar. In diesem Beispiel ist das Routing in dem Beschreibung-Feld angegeben, und die verwendeten Header-Basis-Felder sind an demselben Ort innerhalb des Headers wie bei den bereits definierten Header-Basis-Formaten. In einigen Implementierungen folgen die Routing-Regeln der Flit-Betriebsart dem angegebenen Routing-Typ, wie für die bereits definierten TLP-Typen. Obwohl einige Typen im Namen „reserviert“ sein können, können in einer Implementierung Merkmale des Typs (z. B. Routing, Ablaufsteuerung-Typ usw.) nichtsdestotrotz definiert sein, so dass Switch und PCIe-Anschlusssteuereinheitsschaltungsanordnung vorwärts kompatibel und fähig sein können, grundlegende Verarbeitung und Routing für bisher undefinierte Operationen auszuführen. TABELLE A
    Typ [7:0]
    Nr. 7 6 5 4 3 2 1 0 Beschreibung Name FC-Typ Nutzdaten ? Header -Basis-Größe (DW) Neu für Flit-Betriebsart
    0 0 0 0 0 0 0 0 0 Speicherleseanforderung, 32b-Adressierung MRd NPR n 3 n
    1 0 0 0 0 0 0 0 1 Speicherleseanforderung gesperrt, 32b-Adressierung MRdLk NPR n 3 n
    2 0 0 0 0 0 0 1 0 IO-Leseanforderung IORd NPR n 3 n
    3 0 0 0 0 0 0 1 1 {reservierte Einträge sehen so aus} NPR n 3 j
    4 0 0 0 0 0 1 0 0 Konfigurationsleseanforderung, Typ 0 CfgRd0 NPR n 3 N
    5 0 0 0 0 0 1 0 1 Konfigurationsleseanforderung, Typ 1 CfgRdl NPR n 3 N
    6 0 0 0 0 0 1 1 0 Reserviert - 32b-Adresse geroutet NPR n 3 j
    7 0 0 0 0 0 1 1 1 Reserviert - 32b-Adresse geroutet NPR n 3 j
    8 0 0 0 0 1 0 0 0 Reserviert - ID geroutet CPL n 3 j
    9 0 0 0 0 1 0 0 1 Reserviert - ID geroutet CPL n 3 j
    10 0 0 0 0 1 0 1 0 Fertigstellung ohne Daten Cpl CPL n 3 n
    11 0 0 0 0 1 0 1 1 Fertigstellung ohne Daten, gesperrt (nur für Fehlerfälle) CplLk CPL n 3 n
    12 0 0 0 0 1 1 0 0 Reserviert - ID geroutet CPL n 3 j
    13 0 0 0 0 1 1 0 1 Reserviert - ID geroutet CPL n 3 j
    14 0 0 0 0 1 1 1 0 Reserviert - ID geroutet CPL n 3 j
    15 0 0 0 0 1 1 1 1 Reserviert - ID geroutet CPL n 3 j
    16 0 0 0 1 0 0 0 0 Reserviert - 32b-Adresse geroutet PR n 3 j
    17 0 0 0 1 0 0 0 1 Reserviert - 32b-Adresse geroutet PR n 3 j
    18 0 0 0 1 0 0 1 0 Reserviert - 32b-Adresse geroutet PR n 3 j
    19 0 0 0 1 0 0 1 1 Reserviert - 32b-Adresse geroutet PR n 3 j
    20 0 0 0 1 0 1 0 0 Reserviert - 32b-Adresse geroutet PR n 3 j
    21 0 0 0 1 0 1 0 1 Reserviert - 32b-Adresse geroutet PR n 3 j
    22 0 0 0 1 0 1 1 0 Reserviert - 32b-Adresse geroutet PR n 3 j
    23 0 0 0 1 0 1 1 1 Reserviert - 32b-Adresse geroutet PR n 3 j
    24 0 0 0 1 1 0 0 0 Reserviert - 32b-Adresse geroutet NPR n 3 j
    25 0 0 0 1 1 0 0 1 Reserviert - 32b-Adresse geroutet NPR n 3 j
    26 0 0 0 1 1 0 1 0 Reserviert - 32b-Adresse geroutet NPR n 3 j
    27 0 0 0 1 1 0 1 1 Reserviert - 32b Adresse geroutet [War: Lesen vertrauenswürdiger Konfiguration (abgelehnt)] TCfgRd NPR n 3 n
    28 0 0 0 1 1 1 0 0 Reserviert - ID geroutet NPR n 3 j
    29 0 0 0 1 1 1 0 1 Reserviert - ID geroutet NPR n 3 j
    30 0 0 0 1 1 1 1 0 Reserviert - ID geroutet NPR n 3 j
    31 0 0 0 1 1 1 1 1 Reserviert - ID geroutet NPR n 3 j
    32 0 0 1 0 0 0 0 0 Speicherleseanforderung, 64b-Adressierung MRd NPR n 4 n
    33 0 0 1 0 0 0 0 1 Speicherleseanforderung gesperrt, 64b-Adressierung MRdLk NPR n 4 n
    34 0 0 1 0 0 0 1 0 Reserviert - 64b-Adresse geroutet NPR n 4 j
    35 0 0 1 0 0 0 1 1 Reserviert - 64b-Adresse geroutet NPR n 4 j
    36 0 0 1 0 0 1 0 0 Reserviert - 64b-Adresse geroutet NPR n 4 j
    37 0 0 1 0 0 1 0 1 Reserviert - 64b-Adresse geroutet NPR n 4 j
    38 0 0 1 0 0 1 1 0 Reserviert - 64b-Adresse geroutet NPR n 4 j
    39 0 0 1 0 0 1 1 1 Reserviert - 64b-Adresse geroutet NPR n 4 j
    40 0 0 1 0 1 0 0 0 Reserviert - ID geroutet CPL n 4 j
    41 0 0 1 0 1 0 0 1 Reserviert - ID geroutet CPL n 4 j
    42 0 0 1 0 1 0 1 0 Reserviert - ID geroutet CPL n 4 j
    43 0 0 1 0 1 0 1 1 Reserviert - ID geroutet CPL n 4 j
    44 0 0 1 0 1 1 0 0 Reserviert - ID geroutet CPL n 4 j
    45 0 0 1 0 1 1 0 1 Reserviert - ID geroutet CPL n 4 j
    46 0 0 1 0 1 1 1 0 Reserviert - ID geroutet CPL n 4 j
    47 0 0 1 0 1 1 1 1 Reserviert - ID geroutet CPL n 4 j
    48 0 0 1 1 0 0 0 0 Nachricht ohne Daten, geroutet mit Wurzelkomplex Msg PR n 4 n
    49 0 0 1 1 0 0 0 1 Nachricht ohne Daten, geroutet mit Adresse (64b) - KEINE DEFINIERT Msg PR n 4 n
    50 0 0 1 1 0 0 1 0 Nachricht ohne Daten, geroutet mit ID Msg PR n 4 n
    51 0 0 1 1 0 0 1 1 Nachricht ohne Daten, rundgesendet von Wurzelkomplex Msg PR n 4 n
    52 0 0 1 1 0 1 0 0 Nachricht ohne Daten, lokal - endet am Empfänger Msg PR n 4 n
    53 0 0 1 1 0 1 0 1 Nachricht ohne Daten, gesammelt und geroutet zu RC (PME TO Ack) Msg PR n 4 n
    54 0 0 1 1 0 1 1 0 Nachricht ohne Daten - RESERVIERT Msg PR n 4 n
    55 0 0 1 1 0 1 1 1 Nachricht ohne Daten - RESERVIERT Msg PR n 4 n
    56 0 0 1 1 1 0 0 0 Reserviert - 64b-Adresse geroutet NPR n 4 j
    57 0 0 1 1 1 0 0 1 Reserviert - 64b-Adresse geroutet NPR n 4 j
    58 0 0 1 1 1 0 1 0 Reserviert - 64b-Adresse geroutet NPR n 4 j
    59 0 0 1 1 1 0 1 1 Reserviert - 64b-Adresse geroutet NPR n 4 j
    60 0 0 1 1 1 1 0 0 Reserviert - ID geroutet NPR n 4 j
    61 0 0 1 1 1 1 0 1 Reserviert - ID geroutet NPR n 4 j
    62 0 0 1 1 1 1 1 0 Reserviert - ID geroutet NPR n 4 j
    63 0 0 1 1 1 1 1 1 Reserviert - ID geroutet NPR n 4 j
    64 0 1 0 0 0 0 0 0 Speicherschreibanforderun g, 32b-Adressierung MWr PR Länge 3 n
    65 0 1 0 0 0 0 0 1 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    66 0 1 0 0 0 0 1 0 IO-Schreibanforderung IOWr NPR Länge 3 n
    67 0 1 0 0 0 0 1 1 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    68 0 1 0 0 0 1 0 0 Konfigurationsschreibanforderung, Typ 0 CfgWr0 NPR Länge 3 n
    69 0 1 0 0 0 1 0 1 Konfigurationsschreibanforderung, Typ 1 CfgWrl NPR Länge 3 n
    70 0 1 0 0 0 1 1 0 Reserviert - ID geroutet NPR Länge 3 j
    71 0 1 0 0 0 1 1 1 Reserviert - ID geroutet NPR Länge 3 j
    72 0 1 0 0 1 0 0 0 Reserviert - ID geroutet CPL Länge 3 j
    73 0 1 0 0 1 0 0 1 Reserviert - ID geroutet CPL Länge 3 j
    74 0 1 0 0 1 0 1 0 Fertigstellung mit Daten CplD CPL Länge 3 n
    75 0 1 0 0 1 0 1 1 Fertigstellung mit Daten, gesperrt CpIDLk CPL Länge 3 n
    76 0 1 0 0 1 1 0 0 AtomicOP-Anforderung abholen und hinzufügen, 32b-Adressierung FetchAdd NPR Länge 3 n
    77 0 1 0 0 1 1 0 1 AtomicOP-Anforderung bedingungslos austauschen, 32b-Adressierung Swap NPR Länge 3 n
    78 0 1 0 0 1 1 1 0 AtomicOP-Anforderung vergleichen und austauschen, 32b-Adressierung CAS NPR Länge 3 n
    79 0 1 0 0 1 1 1 1 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    80 0 1 0 1 0 0 0 0 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    81 0 1 0 1 0 0 0 1 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    82 0 1 0 1 0 0 1 0 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    83 0 1 0 1 0 0 1 1 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    84 0 1 0 1 0 1 0 0 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    85 0 1 0 1 0 1 0 1 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    86 0 1 0 1 0 1 1 0 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    87 0 1 0 1 0 1 1 1 Reserviert - 32b-Adresse geroutet PR Länge 3 j
    88 0 1 0 1 1 0 0 0 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    89 0 1 0 1 1 0 0 1 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    90 0 1 0 1 1 0 1 0 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    91 0 1 0 1 1 0 1 1 Aufschiebbare Speicherschreibanforderun g, 32b-Adressierung war: Schreiben vertrauenswürdiger Konfiguration (abgelehnt)} DMWr NPR Länge 3 n
    92 0 1 0 1 1 1 0 0 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    93 0 1 0 1 1 1 0 1 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    94 0 1 0 1 1 1 1 0 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    95 0 1 0 1 1 1 1 1 Reserviert - 32b-Adresse geroutet NPR Länge 3 j
    96 0 1 1 0 0 0 0 0 Speicherschreibanforderun g, 64b-Adressierung MWr PR Länge 4 n
    97 0 1 1 0 0 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    98 0 1 1 0 0 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    99 0 1 1 0 0 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 0 0 1 1 0 0 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 1 0 1 1 0 0 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 2 0 1 1 0 0 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 3 0 1 1 0 0 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 4 0 1 1 0 1 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 5 0 1 1 0 1 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 6 0 1 1 0 1 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 7 0 1 1 0 1 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 4 j
    10 8 0 1 1 0 1 1 0 0 AtomicOP-Anforderung abholen und hinzufügen, 64b-Adressierung FetchAdd NPR Länge 4 n
    10 9 0 1 1 0 1 1 0 1 AtomicOP-Anforderung bedingungslos austauschen, 64b-Adressierung Swap NPR Länge 4 n
    11 0 0 1 1 0 1 1 1 0 AtomicOP-Anforderung vergleichen und austauschen, 64b-Adressierung CAS NPR Länge 4 n
    11 1 0 1 1 0 1 1 1 1 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    11 2 0 1 1 1 0 0 0 0 Nachricht mit Daten, geroutet mit Wurzelkomplex MsgD PR Länge 4 n
    11 3 0 1 1 1 0 0 0 1 Nachricht mit Daten, geroutet mit Adresse (64b) - KEINE DEFINIERT MsgD PR Länge 4 n
    11 4 0 1 1 1 0 0 1 0 Nachricht mit Daten, geroutet mit ID MsgD PR Länge 4 n
    11 5 0 1 1 1 0 0 1 1 Nachricht mit Daten, rundgesendet von Wurzelkomplex MsgD PR Länge 4 n
    11 6 0 1 1 1 0 1 0 0 Nachricht mit Daten, lokal - endet am Empfänger MsgD PR Länge 4 n
    11 7 0 1 1 1 0 1 0 1 Nachricht mit Daten, gesammelt und geroutet to RC (MsgD NICHT VERWENDET) MsgD PR Länge 4 n
    11 8 0 1 1 1 0 1 1 0 Nachricht mit Daten - RESERVIERT MsgD PR Länge 4 n
    11 9 0 1 1 1 0 1 1 1 Nachricht mit Daten - RESERVIERT MsgD PR Länge 4 n
    12 0 0 1 1 1 1 0 0 0 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 1 0 1 1 1 1 0 0 1 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 2 0 1 1 1 1 0 1 0 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 3 0 1 1 1 1 0 1 1 Aufschiebbare Speicherschreibanforderun g, 64b-Adressierung DMWr NPR Länge 4 n
    12 4 0 1 1 1 1 1 0 0 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 5 0 1 1 1 1 1 0 1 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 6 0 1 1 1 1 1 1 0 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 7 0 1 1 1 1 1 1 1 Reserviert - 64b-Adresse geroutet NPR Länge 4 j
    12 8 1 0 0 0 0 0 0 0 Reserviert - lokal keine n 1 n
    12 9 1 0 0 0 0 0 0 1 Reserviert - lokal keine n 1 n
    13 0 1 0 0 0 0 0 1 0 Reserviert - lokal keine n 1 n
    13 1 1 0 0 0 0 0 1 1 Reserviert - lokal keine n 1 n
    13 2 1 0 0 0 0 1 0 0 Reserviert - lokal keine n 1 n
    13 3 1 0 0 0 0 1 0 1 Reserviert - lokal keine n 1 n
    13 4 1 0 0 0 0 1 1 0 Reserviert - lokal keine n 1 n
    13 5 1 0 0 0 0 1 1 1 Reserviert - lokal keine n 1 n
    13 6 1 0 0 0 1 0 0 0 NOP - 1DW keine n 1 n
    13 7 1 0 0 0 1 0 0 1 Reserviert - lokal keine n 1 n
    13 8 1 0 0 0 1 0 1 0 Reserviert - lokal keine n 1 n
    13 9 1 0 0 0 1 0 1 1 Reserviert - lokal keine n 1 n
    14 0 1 0 0 0 1 1 0 0 Reserviert - lokal keine n 1 n
    14 1 1 0 0 0 1 1 0 1 Reserviert - lokal keine n 1 n
    14 2 1 0 0 0 1 1 1 0 1 DW-Präfix - durch Anbieter definiert lokal 0 keine n 1 n
    14 3 1 0 0 0 1 1 1 1 1 DW Präfix - durch Anbieter definiert lokal 1 keine n 1 n
    14 4 1 0 0 1 0 0 0 0 EDB-Suffix keine n 1 j
    14 5 1 0 0 1 0 0 0 1 Poisoned TLP-Suffix keine n 1 j
    14 6 1 0 0 1 0 0 1 0 Reserviert - Suffix keine n 1 j
    14 7 1 0 0 1 0 0 1 1 Reserviert - Suffix keine n 1 j
    14 8 1 0 0 1 0 1 0 0 Reserviert - Suffix keine n 1 j
    14 9 1 0 0 1 0 1 0 1 Reserviert - Suffix keine n 1 j
    15 0 1 0 0 1 0 1 1 0 Reserviert - Suffix keine n 1 j
    15 1 1 0 0 1 0 1 1 1 Reserviert - Suffix keine n 1 j
    15 2 1 0 0 1 1 0 0 0 Reserviert - Suffix keine n 1 j
    15 3 1 0 0 1 1 0 0 1 Reserviert - Suffix keine n 1 j
    15 4 1 0 0 1 1 0 1 0 Reserviert - Suffix keine n 1 j
    15 5 1 0 0 1 1 0 1 1 Reserviert - Suffix keine n 1 j
    15 6 1 0 0 1 1 1 0 0 Reserviert - Suffix keine n 1 j
    15 7 1 0 0 1 1 1 0 1 Reserviert - Suffix keine n 1 j
    15 8 1 0 0 1 1 1 1 0 Reserviert - Suffix keine n 1 j
    15 9 1 0 0 1 1 1 1 1 Reserviert - Suffix keine n 1 j
    16 0 1 0 1 0 0 0 0 0 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 1 1 0 1 0 0 0 0 1 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 2 1 0 1 0 0 0 1 0 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 3 1 0 1 0 0 0 1 1 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 4 1 0 1 0 0 1 0 0 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 5 1 0 1 0 0 1 0 1 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 6 1 0 1 0 0 1 1 0 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 7 1 0 1 0 0 1 1 1 Reserviert - 64b-Adresse geroutet NPR n 5 j
    16 8 1 0 1 0 1 0 0 0 Reserviert - ID geroutet CPL n 4 j
    16 9 1 0 1 0 1 0 0 1 Reserviert - ID geroutet CPL n 4 j
    17 0 1 0 1 0 1 0 1 0 Reserviert - ID geroutet CPL n 4 j
    17 1 1 0 1 0 1 0 1 1 Reserviert - ID geroutet CPL n 4 j
    17 2 1 0 1 0 1 1 0 0 Reserviert - ID geroutet CPL Länge 4 j
    17 3 1 0 1 0 1 1 0 1 Reserviert - ID geroutet CPL Länge 4 j
    17 4 1 0 1 0 1 1 1 0 Reserviert - ID geroutet CPL Länge 4 j
    17 5 1 0 1 0 1 1 1 1 Reserviert - ID geroutet CPL Länge 4 j
    17 6 1 0 1 1 0 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    17 7 1 0 1 1 0 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    17 8 1 0 1 1 0 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    17 9 1 0 1 1 0 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 0 1 0 1 1 0 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 1 1 0 1 1 0 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 2 1 0 1 1 0 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 3 1 0 1 1 0 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 4 1 0 1 1 1 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 5 1 0 1 1 1 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 6 1 0 1 1 1 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 7 1 0 1 1 1 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 8 1 0 1 1 1 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    18 9 1 0 1 1 1 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    19 0 1 0 1 1 1 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    19 1 1 0 1 1 1 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 5 j
    19 2 1 1 0 0 0 0 0 0 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 3 1 1 0 0 0 0 0 1 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 4 1 1 0 0 0 0 1 0 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 5 1 1 0 0 0 0 1 1 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 6 1 1 0 0 0 1 0 0 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 7 1 1 0 0 0 1 0 1 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 8 1 1 0 0 0 1 1 0 Reserviert - 64b-Adresse geroutet NPR n 6 j
    19 9 1 1 0 0 0 1 1 1 Reserviert - 64b-Adresse geroutet NPR n 6 j
    20 0 1 1 0 0 1 0 0 0 Reserviert - ID geroutet CPL n 5 j
    20 1 1 1 0 0 1 0 0 1 Reserviert - ID geroutet CPL n 5 j
    20 2 1 1 0 0 1 0 1 0 Reserviert - ID geroutet CPL n 5 j
    20 3 1 1 0 0 1 0 1 1 Reserviert - ID geroutet CPL n 5 j
    20 4 1 1 0 0 1 1 0 0 Reserviert - ID geroutet CPL Länge 5 j
    20 5 1 1 0 0 1 1 0 1 Reserviert - ID geroutet CPL Länge 5 j
    20 6 1 1 0 0 1 1 1 0 Reserviert - ID geroutet CPL Länge 5 j
    20 7 1 1 0 0 1 1 1 1 Reserviert - ID geroutet CPL Länge 5 j
    20 8 1 1 0 1 0 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    20 9 1 1 0 1 0 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 0 1 1 0 1 0 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 1 1 1 0 1 0 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 2 1 1 0 1 0 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 3 1 1 0 1 0 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 4 1 1 0 1 0 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 5 1 1 0 1 0 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 6 1 1 0 1 1 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 7 1 1 0 1 1 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 8 1 1 0 1 1 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    21 9 1 1 0 1 1 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    22 0 1 1 0 1 1 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    22 1 1 1 0 1 1 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    22 2 1 1 0 1 1 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    22 3 1 1 0 1 1 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 6 j
    22 4 1 1 1 0 0 0 0 0 Reserviert - lokal keine n 4 j
    22 5 1 1 1 0 0 0 0 1 Reserviert - lokal keine n 4 j
    22 6 1 1 1 0 0 0 1 0 Reserviert - lokal keine n 4 j
    22 7 1 1 1 0 0 0 1 1 Reserviert - lokal keine n 4 j
    22 8 1 1 1 0 0 1 0 0 Reserviert - lokal keine n 4 j
    22 9 1 1 1 0 0 1 0 1 Reserviert - lokal keine n 4 j
    23 0 1 1 1 0 0 1 1 0 Reserviert - lokal keine n 4 j
    23 1 1 1 1 0 0 1 1 1 Reserviert - lokal keine n 4 j
    23 2 1 1 1 0 1 0 0 0 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 3 1 1 1 0 1 0 0 1 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 4 1 1 1 0 1 0 1 0 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 5 1 1 1 0 1 0 1 1 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 6 1 1 1 0 1 1 0 0 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 7 1 1 1 0 1 1 0 1 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 8 1 1 1 0 1 1 1 0 Reserviert - 64b-Adresse geroutet NPR n 7 j
    23 9 1 1 1 0 1 1 1 1 Reserviert - 64b-Adresse geroutet NPR n 7 j
    24 0 1 1 1 1 0 0 0 0 Reserviert - ID geroutet CPL n 6 j
    24 1 1 1 1 1 0 0 0 1 Reserviert - ID geroutet CPL n 6 j
    24 2 1 1 1 1 0 0 1 0 Reserviert - ID geroutet CPL n 6 j
    24 3 1 1 1 1 0 0 1 1 Reserviert - ID geroutet CPL n 6 j
    24 4 1 1 1 1 0 1 0 0 Reserviert - ID geroutet CPL Länge 6 j
    24 5 1 1 1 1 0 1 0 1 Reserviert - ID geroutet CPL Länge 6 j
    24 6 1 1 1 1 0 1 1 0 Reserviert - ID geroutet CPL Länge 6 j
    24 7 1 1 1 1 0 1 1 1 Reserviert - ID geroutet CPL Länge 6 j
    24 8 1 1 1 1 1 0 0 0 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    24 9 1 1 1 1 1 0 0 1 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 0 1 1 1 1 1 0 1 0 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 1 1 1 1 1 1 0 1 1 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 2 1 1 1 1 1 1 0 0 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 3 1 1 1 1 1 1 0 1 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 4 1 1 1 1 1 1 1 0 Reserviert - 64b-Adresse geroutet PR Länge 7 j
    25 5 1 1 1 1 1 1 1 1 Reserviert - 64b-Adresse geroutet PR Länge 7 j
  • Weiter zu 13 ist eine beispielhafte erweiterte Version 1300 einer weiterentwickelten PCIe-Fehlerberichtsstruktur mit erweiterten Fähigkeiten gezeigt, die benutzt werden kann, um zu ermöglichen, dass größere Header durch PCIe der Flit-Betriebsart bereitgestellt werden (z. B. basierend auf dem potentiellen Vorhandensein von OHC-x-Blöcken, die den Headern hinzugefügt sind). Beispielsweise können Header-Log-Register-Felder vorgesehen sein (z. B. DW5-11), die an eine herkömmliche Fähigkeitsstruktur angeheftet sind, unter anderen beispielhaften Modifikationen.
  • 14A ist ein Ablaufplan 1400a, der eine beispielhafte Technik zum Erzeugen eines Paktes innerhalb einer Flit-Betriebsart einer PCIe-basierten Zusammenschaltung darstellt. Beispielsweise kann die Vorrichtung ein Paket in Verbindung mit einer Transaktion vorbereiten, wie z. B. Senden einer Anforderung oder Nachricht oder Antworten mit einer Fertigstellung oder einer anderen Antwort, unter anderen Beispielen. Ein entsprechender Typ des Pakets kann basierend auf der Beschaffenheit oder dem Typ der Transaktion bestimmt werden 1405, und ein entsprechendes Paket kann erzeugt werden 1410. Beispielsweise kann in einer PCIe-Flit-Betriebsart das Paket so erzeugt werden, dass es einen Paket-Header enthält, der eine Header-Basis mit Feldern enthält, die verwendet werden können, um die Gesamtlänge des Pakets zu identifizieren (z. B. in dem ersten DW der Header-Basis), um die Empfangsvorrichtung bei dem Analysieren des Pakets zu unterstützen. Beispielsweise kann die Header-Basis ein Typ-Feld (z. B. zum Ersetzen der Format- und Typ-Felder einer früheren Generation von PCIe-TLP-Headern) und ein Header-Inhalt-Feld, um zu identifizieren, welche aus einer Menge definierter Header-Inhaltsblöcke (falls vorhanden) an die Header-Basis anzuhängen sind, um den Header des TLP der Flit-Betriebsart zu bilden, sowie andere Felder, wie z. B. ein Tag-Feld, Längen-Feld, Trailer-Größen-Feld und andere enthalten. Die Vorrichtung kann das gebildet Paket auf einer Verbindungsstrecke zu einer weiteren Vorrichtung unter Verwendung eines Anschlusses der Sendevorrichtung senden 1415. In einigen Implementierungen codiert die Verbindungsstrecke, wenn sie in der Flit-Betriebsart arbeitet, Daten auf der Verbindungsstrecke unter Nutzung von PAM- (z. B. PAM4-) Codierung.
  • 14B ist ein Ablaufplan 1400b, der eine beispielhafte Technik zum Analysieren eines empfangenen Pakets der Flit-Betriebsart in einer PCIe-basierten Zusammenschaltung darstellt. Eine Vorrichtung kann an einem Anschluss, der mit einer Verbindungsstrecke verbunden ist, die die Vorrichtung mit einer weiteren Vorrichtung kommunikationstechnisch koppelt, ein Paket empfangen, das durch die andere Vorrichtung gesendet wird, während die Verbindungsstrecke in einer PCIe-Flit-Betriebsart arbeitet. Das Paket kann durch die Empfangsvorrichtung basierend auf Feldern, die in einer Header-Basis des Headers des Pakets enthalten sind, analysiert werden 1425, wobei die Felder ein Typ-Feld und ein Header-Inhalt-Feld enthalten. Eine Gesamtlänge des empfangenen Pakets kann aus den Feldern, die in der Header-Basis enthalten sind, wie z. B. dem Typ-Feld, dem Header-Inhalt-Feld, einem Länge-Feld und einer Anhangsgröße-Feld, bestimmt werden 1430. Zusätzlich zu der Länge des Pakets kann die Empfangsvorrichtung auch bestimmen, wo Segmente des Pakets beginnen und enden, wie z. B. das Aufnehmen eines oder mehrerer Header-Inhaltsblöcke, die durch das Header-Inhalt-Feld angegeben sind, das Ende des Headers, die Nutzdaten und den Anhang, unter anderen Beispielen. Aus diesem Analysieren kann die Empfangsvorrichtung das Paket verarbeiten und in einigen Fällen ein Paket erzeugen, das eine entsprechende Antwort enthält, unter anderen Beispielen.
  • Es wird darauf hingewiesen, dass die Einrichtungen, Verfahren und Systeme, die vorstehend beschrieben sind, in irgendeiner/irgendeinem elektronischen Vorrichtung oder System wie vorstehend genannt implementiert sein können. Als spezifische Darstellungen stellen die nachstehenden Figuren beispielhafte Systeme zum Nutzen der Konzepte, wie sie hier beschrieben sind, dar. Da die nachstehenden Systeme genauer beschrieben sind, sind eine Anzahl unterschiedlicher Zusammenschaltungen offenbart, beschrieben und aus der vorstehenden Diskussion wiederaufgenommen. Und wie leicht offensichtlich ist, können die vorstehend beschriebenen Fortschritte auf irgendwelche solcher Zusammenschaltungen, Fabrics oder Architekturen angewandt werden.
  • Bezug nehmend auf 15 ist eine Ausführungsform eines Blockdiagramms für ein Berechnungssystem, das einen Mehrkernprozessor enthält, abgebildet. Der Prozessor 1500 enthält irgendeine/n Prozessor oder Verarbeitungsvorrichtung, wie z. B. einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen Handprozessor, einen Anwendungsprozessor, einen Coprozessor, ein Einchipsystem (SOC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 1500 enthält in einer Ausführungsform wenigstens zwei Kerne - Kern 1501 und 1502, die asymmetrische Kerne oder symmetrische Kerne (die dargestellte Ausführungsform) enthalten können. Der Prozessor 1500 kann jedoch irgendeine Anzahl von Verarbeitungselementen, die symmetrisch oder asymmetrisch sein können, enthalten.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Strangs. Beispiele für Hardware-Verarbeitungselemente enthalten: eine Strang-Einheit, einen Strang-Steckplatz, einen Strang, eine Verarbeitungseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Strang, einen Kern und/oder irgendein anderes Element, das zum Halten eines Zustands für einen Prozessor, wie z. B. eines Ausführungszustands oder architektonischen Zustands, fähig ist. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf irgendeine Hardware, die fähig ist, unabhängig Code wie z. B. einem Software-Strang, Betriebssystem, Anwendung oder anderem Code zugeordnet zu sein. Ein physikalischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die potentiell irgendeine Anzahl anderer Verarbeitungselemente wie z. B. Kerne oder Hardware-Stränge enthält.
  • Ein Kern bezieht sich häufig auf Logik, die sich auf einer integrierten Schaltung befindet, die zum Beibehalten eines unabhängigen architektonischen Zustands fähig ist, wobei jeder unabhängig beibehaltene architektonische Zustand wenigstens einigen dedizierten Ausführungsbetriebsmitteln zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Strang typischerweise auf irgendeine Logik, die sich auf einer integrierten Schaltung befindet, die zum Beibehalten eines unabhängigen architektonischen Zustands fähig ist, wobei die unabhängig beibehaltenen architektonischen Zustände den Zugriff auf Ausführungsbetriebsmittel gemeinsam verwenden. Wie zu sehen ist, überlappt, wenn spezielle Betriebsmittel gemeinsam verwendet werden und andere für einen architektonischen Zustand dediziert sind, die Grenze zwischen der Terminologie eines Hardware-Strangs und eines Kerns. Häufig jedoch werden ein Kern und ein Hardware-Strang durch ein Betriebssystem als individuelle logische Prozessoren betrachtet, wobei das Betriebssystem fähig ist, Operationen auf jedem logischen Prozessor individuell zu planen.
  • Der physikalische Prozessor 1500, wie er in 15 dargestellt ist, enthält zwei Kerne - Kern 1501 und 1502. Hier sind die Kerne 1501 und 1502 als symmetrische Kerne betrachtet, d. h. Kerne mit den gleichen Konfigurationen, Funktionseinheiten und/oder Logik. In einer weiteren Ausführungsform enthält der Kern 1501 einen „Out-of-Order“-Prozessorkern, während der Kern 1502 einen „In-Order“-Prozessorkern enthält. Die Kerne 1501 und 1502 können jedoch individuell aus irgendeinem Typ von Kernen ausgewählt werden, z. B. einem nativen Kern, einem Software-gemanagten Kern, einem Kern, der ausgelegt ist, eine native Befehlssatzarchitektur (ISA) auszuführen, einem Kern, die ausgelegt ist, eine übersetzte Befehlssatzarchitektur (ISA) auszuführen, einem co-designten Kern oder anderen bekannten Kernen. In einer heterogenen Kern-Umgebung (d. h. asymmetrische Kerne) kann eine Form einer Übersetzung, bei z. B. einer Binär-Übersetzung, benutzt werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Um jedoch die Diskussion voranzutreiben, sind die Funktionseinheiten, die in dem Kern 1501 dargestellt sind, nachstehend genauer beschrieben, da die Einheiten in Kern 1502 in der abgebildeten Ausführungsform auf eine ähnliche Weise arbeiten.
  • Wie abgebildet enthält der Kern 1501 zwei Hardware-Stränge 1501a und 1501b, die auch als Hardware-Strang-Schlitze 1501a und 1501b bezeichnet sein können. Deshalb betrachten Software-Entitäten wie z. B. ein Betriebssystem in einer Ausführungsform den Prozessor 1500 potentiell aus vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die zum gleichzeitigen Ausführen von vier Software-Strängen fähig sind. Wie vorstehend erwähnt ist ein erster Strang Architekturzustandsregistern 1501a zugeordnet, ein zweiter Strang ist Architekturzustandsregistern 1501b zugeordnet, ein dritter Strang kann Architekturzustandsregistern 1502a zugeordnet sein, und ein vierter Strang kann Architekturzustandsregistern 1502b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (z. B. 1501a, 1501b, 1502a und 1502b) als Verarbeitungselemente, Strang-Schlitze oder Strang-Einheiten wie vorstehend beschrieben bezeichnet sein. Wie dargestellt sind die Architekturzustandsregister 1501a in den Architekturzustandsregistern 1501b repliziert, somit können individuelle Architekturzustände/Kontexte für den logischen Prozessor 1501a und den logischen Prozessor 1501b gespeichert werden. Im Kern 1501 können andere kleinere Betriebsmittel wie z. B. Befehlszeiger und Umbenennungslogik im Zuweiser- und Umbenennungs-Block 1530 ebenfalls für die Stränge 1501a und 1501b repliziert sein. Einige Betriebsmittel wie z. B. Umordnungs-Puffer in der Umordnungs-/Rückzugseinheit 1535, ILTB 1520, Lade/Speicher-Puffer und Warteschlangen können durch Partitionierung gemeinsam verwendet werden. Andere Betriebsmittel wie z. B. interne Allzweckregister, Seiten-Tabellen-Basisregister, Daten-Cache niedriger Ebene und Daten-TLB 1515, Ausführungseinheit(en) 1540 und Abschnitte der „Out-of-Order“-Einheit 1535 werden potentiell vollständig gemeinsam verwendet.
  • Der Prozessor 1500 enthält häufig andere Betriebsmittel, die vollständig gemeinsam verwendet werden, durch Partitionierung gemeinsam verwendet werden oder durch/für Verarbeitungselemente dediziert sein können. In 15 ist eine Ausführungsform eines rein beispielhaften Prozessors mit anschaulichen logischen Einheiten/Betriebsmitteln eines Prozessors dargestellt. Es wird darauf hingewiesen, dass ein Prozessor sowohl irgendwelche dieser Funktionseinheiten enthalten oder weglassen kann als auch irgendwelche anderen bekannten Funktionseinheiten, Logik, Firmware, die nicht abgebildet sind, enthalten kann. Wie dargestellt enthält der Kern 1501 einen vereinfachten repräsentativen „Out-of-Order“- (OOO-) Prozessorkern. Es kann in anderen Ausführungsformen jedoch ein „In-Order“-Prozessor benutzt werden. Der OOO-Kern enthält einen Zweigziel-Puffer 1520, um Zweige, die ausgeführt/genommen werden sollen, vorherzusagen, und einen Befehlsübersetzungs-Puffer (1-TLB) 1520, um Adressübersetzungseinträge für Befehle zu speichern.
  • Der Kern 1501 enthält ferner ein Decodiermodul 1525, das mit der Abholeinheit 1520 gekoppelt ist, um abgeholte Elemente zu decodieren. Die Abhollogik enthält in einer Ausführungsform individuelle Sequenzer, die jeweils den Strang-Schlitzen 1501a, 1501b zugeordnet sind. Normalerweise ist der Kern 1501 einer ersten ISA zugeordnet, die Befehle definiert/spezifiziert, die auf dem Prozessor 1500 ausführbar sind. Häufig enthalten Maschinencodebefehle, die Teil der ersten ISA sind, einen Abschnitt des Befehls (als ein Opcode bezeichnet), der einen Befehl oder eine Operation, der/die auszuführen ist, referenziert/spezifiziert. Die Decodierlogik 1525 enthält eine Schaltungsanordnung, die diese Befehle aus ihren Opcodes erkennt und die decodierten Befehle in der Pipeline zum Verarbeiten wie durch die erste ISA definiert weitergibt. Beispielsweise enthalten, wie nachstehend genauer diskutiert ist, die Decodierer 1525 in einer Ausführungsform Logik, die konstruiert oder ausgelegt ist, spezifische Befehle wie z. B. Transaktionsbefehle zu erkennen. Als ein Ergebnis der Erkennung durch die Decodierer 1525 ergreift die Architektur oder der Kern 1501 spezifische vorbestimmte Maßnahmen, um Aufgaben, die dem entsprechenden Befehl zugeordnet sind, auszuführen. Es ist wichtig darauf hinzuweisen, dass irgendwelche der Aufgaben, Blöcke, Operationen und Verfahren, die hier beschrieben sind, in Reaktion auf einen einzelnen oder mehrere Befehle ausgeführt werden können; einige davon können neue oder alte Befehle sein. Es wird darauf hingewiesen, dass die Decodierer 1526 in einer Ausführungsform dieselbe ISA (oder eine Teilmenge davon) erkennen. Alternativ erkennen in einer heterogenen Kern-Umgebung die Decodierer 1526 eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine unterschiedliche ISA).
  • In einem Beispiel enthält der Zuweiser- und Umbenenner-Block 1530 einen Zuweiser zum Reservieren von Betriebsmitteln, wie z. B. Registerdateien, um Befehlsausführungsergebnisse zu speichern. Die Stränge 1501a und 1501b sind jedoch potentiell zur „Out-of-Order“-Ausführung fähig, wobei der Zuweiser- und Umbenenner-Block 1430 auch andere Betriebsmittel wie z. B. Umordnungs-Puffer zum Verfolgen der Befehlsergebnisse reserviert. Die Einheit 1530 kann außerdem einen Registerumbenenner enthalten, um Programm/Befehls-Referenzregister auf andere Register, die intern zu den Prozessor 1500 sind, umzubenennen. Die Umordnungs-/Rückszugs-Einheit 1535 enthält Komponenten wie z. B. den vorstehend genannten Umordnungs-Puffer, Lade-Puffer und Speicher-Puffer, um „Out-of-Order“-Ausführung und später „In-Order“-Rückzug von „outof-order“ ausgeführten Befehlen zu unterstützen.
  • Der Scheduler- und Ausführungseinheit(en)-Block 1540 enthält in einer Ausführungsform eine Scheduler-Einheit zum Planen von Befehlen/Betrieb auf Ausführungseinheiten. Beispielsweise wird ein Gleitkommabefehl auf einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit aufweist. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Datenbefehlsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Daten-Cache der unteren Ebene und Datenübersetzungspuffer (D-TLB) 1550 sind mit der/den Ausführungseinheit(en) 1540 gekoppelt. Der Daten-Cache dient zum Speichern kürzlich verwendeter/bearbeiteter Elemente, wie z. B. Datenoperanden, die potentiell in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zum Speichern kürzlicher Virtuell/Linear-zu-Physikalisch-Adressübersetzungen. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physikalischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier verwenden die Kerne 1501 und 1502 den Zugang zu dem Cache höherer Ebene oder weiter außen gelegenen Cache wie z. B. einem Cache zweiter Ebene, der einer chipinternen Schnittstelle 1510 zugeordnet ist, gemeinsam. Es wird darauf hingewiesen, dass sich höhere Ebene oder weiter außen gelegen auf Cache-Ebenen bezieht, die ansteigen oder sich weiter von der/den Ausführungseinheit(en) weg bewegen. In einer Ausführungsform ist der Cache höherer Ebene ein Daten-Cache letzter Ebene - letzter Cache in der Speicherhierarchie auf dem Prozessor 1500 - wie z. B. ein Daten-Cache zweiter oder dritter Ebene. Ein Cache höherer Ebene ist jedoch nicht so eingeschränkt, da er einem Befehls-Cache zugeordnet sein oder ihn enthalten kann. Ein Spur-Cache - ein Typ des Befehls-Cache - kann stattdessen nach dem Decodierer 1525 gekoppelt sein, um kürzlich decodierte Spuren zu speichern. Hier bezieht sich ein Befehl potentiell auf einen Makro-Befehl (d. h. einen allgemeinen Befehl, der durch die Decodierer erkannt wird), der in eine Anzahl von Mikro-Befehlen (Mikro-Operationen) decodieren kann.
  • In der abgebildeten Konfiguration enthält der Prozessor 1500 außerdem das chipinterne Schnittstellenmodul 1510. Historisch war eine Speichersteuereinheit, die nachstehend genauer beschrieben ist, in einem Berechnungssystem außerhalb des Prozessors 1500 enthalten. In diesem Szenario dient die chipinterne Schnittstelle 1510 zum Kommunizieren mit Vorrichtungen außerhalb des Prozessors 1500, wie z. B. einem Systemspeicher 1575, einem Chipsatz (der häufig einen Speichersteuereinheit-Hub, um mit dem Speicher 1575 zu verbinden, und einen I/O-Steuereinheit-Hub, um mit Peripheriegeräten zu verbinden, enthält), einem Speichersteuereinheit-Hub, einer Northbridge und anderer integrierter Schaltung. Und in diesem Szenario kann der Bus 1505 irgendeine bekannte Zusammenschaltung enthalten, z. B. einen Mehrpunkt-Bus, eine Punkt-zu-Punkt-Zusammenschaltung, eine serielle Zusammenschaltung, einen Parallel-Bus, einen kohärenten (z. B. Cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differentiellen Bus und eine GTL-Bus.
  • Der Speicher 1575 kann für den Prozessor 1500 dediziert sein oder mit anderen Vorrichtungen in einem System gemeinsam verwendet werden. Übliche Beispiele für Typen des Speichers 1575 enthalten DRAM, SRAM, nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es wird darauf hingewiesen, dass die Vorrichtung 1580 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, die mit dem Speichersteuereinheit-Hub gekoppelt ist, Datenspeicher, der mit einem I/O-Steuereinheit-Hub gekoppelt ist, einen Drahtlos-Sender/Empfänger, eine Flash-Vorrichtung, eine Audio-Steuereinheit, eine Netzsteuereinheit oder eine andere bekannte Vorrichtung enthalten kann.
  • In letzter Zeit, da mehr Logik und Vorrichtungen auf einem einzigen Baustein wie z. B. einem SOC integriert werden, kann jedoch jede dieser Vorrichtungen auf dem Prozessor 1500 integriert sein. Beispielsweise ist in einer Ausführungsform der Speichersteuereinheit-Hub auf derselben Baugruppe und/oder demselben Baustein mit dem Prozessor 1500. Hier enthält ein Abschnitt des Kerns (ein intern-interner Abschnitt) 1510 eine oder mehrere Steuereinheit(en) als Schnittstelle mit anderen Vorrichtungen wie z. B. dem Speicher 1575 oder einer Grafikvorrichtung 1580. Die Konfiguration, die eine Zusammenschaltung und Steuereinheiten als Schnittstelle mit solchen Vorrichtungen enthält, ist häufig als kernintern (oder „un-Core“-Konfiguration) bezeichnet. Als ein Beispiel enthält die chipinterne Schnittstelle 1510 eine Ringzusammenschaltung zur chipinternen Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindungsstrecke 1505 zur chipexternen Kommunikation. Dennoch können in der SOC-Umgebung sogar mehr Vorrichtungen wie z. B. die Netzschnittstelle, Coprozessoren, der Speicher 1575, der Grafikprozessor 1580 und irgendwelche anderen bekannten Computer-Vorrichtungen/Schnittstelle auf einem einzigen Baustein oder einer einzigen integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 1500 zum Ausführen eines Compiler-, Optimierungs- und/oder Übersetzer-Codes 1577 fähig, um Anwendungscode 1576 zu kompilieren, übersetzen und/oder optimieren, um die Einrichtungen und Verfahren, die hier beschrieben sind, zu unterstützen oder eine Schnittstelle mit ihnen zu bilden. Ein Compiler enthält häufig ein Programm oder eine Gruppe von Programmen, um Quelltext/code in Zieltext/code zu übersetzen. Üblicherweise wird die Kompilierung von Programm/Anwendungscode mit einem Compiler in mehreren Phasen und Durchgängen vorgenommen, um Code einer Programmierhochsprache in Maschinen- oder Assemblerprachencode niedriger Ebene zu transformieren. Dennoch können Compiler mit einem Durchgang für einfache Kompilierung immer noch benutzt werden. Ein Compiler kann irgendwelche bekannten Kompilierungstechniken nutzen und irgendwelche bekannten Compiler-Operationen ausführen, wie z. B. lexikalische Analyse, Vorverarbeitung, Analysieren, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
  • Größere Compiler enthalten häufig mehrere Phasen, jedoch sind diese Phasen am häufigsten in zwei allgemeinen Phasen enthalten: (1) ein Frontend, d. h. wo allgemein syntaktische Verarbeitung, semantische Verarbeitung und einige Transformation/Optimierung stattfinden kann, und (2) ein Backend, d. h. wo allgemein Analyse, Transformationen, Optimierungen und Codeerzeugung stattfindet. Einige Compiler beziehen sich auf eine Mitte, was das Verwischen der Abgrenzung zwischen einem Frontend und einem Backend eines Compilers darstellt. Als ein Ergebnis kann eine Bezugnahme auf Einfügung, Zuordnung, Erzeugung oder andere Operationen eines Compilers sowohl in irgendeiner/irgendeinem der vorstehend genannten Phasen oder Durchgängen als auch in irgendwelchen anderen bekannten Phasen oder Durchgängen eines Compilers stattfinden. Als ein anschauliches Beispiel fügt ein Compiler potentiell Operationen, Aufrufe, Funktionen usw. in einer oder mehreren Phasen der Kompilierung ein, wie z. B. Einfügen von Aufrufen/Operationen in einer Frontend-Phase der Kompilierung und dann Transformation der Aufrufe/Operationen in einen Code niedrigerer Ebene während einer Transformationsphase. Es wird darauf hingewiesen, dass während dynamischer Kompilierung sowohl der Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen kann als auch den Code zur Ausführung während der Laufzeit optimieren kann. Als ein spezifisches 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 daraus enthalten.
  • Ähnlich einem Compiler übersetzt ein Übersetzer wie z. B. ein Binärübersetzer Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Deshalb können sich Bezugnahmen auf die Ausführung von Code, Anwendungscode, Programmcode oder einer anderen Software-Umgebung beziehen auf: (1) Ausführung eines Compiler-Programms (-Programmen), Optimierungscode-Optimierers oder Übersetzers entweder dynamisch oder statisch, um Programmcode zu kompilieren, Software-Strukturen beizubehalten, andere Operationen auszuführen, Code zu optimieren oder Code zu übersetzen; (2) Ausführung von Hauptprogrammcode, der Operationen/Aufrufe enthält, wie z. B. Anwendungscode, der optimiert/kompiliert worden ist; (3) Ausführung von anderem Programmcode, wie z. B. Bibliotheken, der dem Hauptprogrammcode zugeordnet ist, um Software-Strukturen beizubehalten, andere Software-bezogene Operationen auszuführen oder den Code zu optimieren; oder (4) eine Kombination daraus.
  • Jetzt auf 16 Bezug nehmend ist ein Blockdiagramm eines zweiten Systems 1600 in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie in 16 gezeigt ist das Mehrprozessorsystem 1600 ein Punkt-zu-Punkt-Zusammenschaltungssystem und enthält einen ersten Prozessor 1670 und einen zweiten Prozessor 1680, die über eine Punkt-zu-Punkt-Zusammenschaltung 1650 gekoppelt sind. Jeder der Prozessoren 1670 und 1680 kann eine Version eines Prozessors sein. In einer Ausführungsform sind 1652 und 1654 Teil eines seriellen kohärenten Punkt-zu-Punkt-Zusammenschaltungs-Fabric.
  • Obwohl nur mit zwei Prozessoren 1670, 1680 gezeigt, ist zu verstehen, dass der Umfang der vorliegenden Offenbarung nicht so beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 1670 und 1680 sind so gezeigt, dass sie integrierte Speichersteuereinheiten 1672 bzw. 1682 enthalten. Der Prozessor 1670 enthält außerdem als Teil seiner Bus-Steuereinheiten die Punkt-zu-Punkt- (P-P-) Schnittstellen 1676 und 1678, ähnlich enthält der zweite Prozessor 1680 die P-P-Schnittstellen 1686 und 1688. Die Prozessoren 1670, 1680 können über eine Punkt-zu-Punkt- (P-P-) Schnittstelle 1650 unter Verwendung der P-P-Schnittstellenschaltungen 1678, 1688 Informationen austauschen. Wie in 16 gezeigt ist, koppeln die IMCs 1672 und 1682 die Prozessoren mit entsprechenden Speichern, und zwar einem Speicher 1632 und einem Speicher 1634, die Abschnitte des Hauptspeichers sein können, der lokal an den jeweiligen Prozessoren angeschlossen ist.
  • Die Prozessoren 1670, 1680 tauschen Informationen mit einem Chipsatz 1690 über individuelle P-P-Schnittstellen 1652, 1654 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 1676, 1694, 1686, 1698 aus. Der Chipsatz 1690 tauscht außerdem Informationen mit einer Hochleistungsgrafikschaltung 1638 über eine Schnittstellenschaltung 1692 entlang einer Hochleistungsgrafikzusammenschaltung 1639 aus.
  • Ein gemeinsam verwendeter Cache (nicht gezeigt) kann in jedem Prozessor oder außerhalb beider Prozessoren enthalten sein, jedoch verbunden mit den Prozessoren über eine P-P-Zusammenschaltung, so dass lokale Cache-Informationen eines oder beider Prozessoren in dem gemeinsam verwendeten Cache gespeichert werden können, falls ein Prozessor in einen Niederleistungszustand versetzt wird.
  • Der Chipsatz 1690 kann mit einem ersten Bus 1616 über eine Schnittstelle 1696 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1616 ein „Peripheral Component Interconnect“- (PCI-) Bus oder ein Bus wie z. B. ein PCI-Express-Bus oder ein anderer I/O-Zusammenschaltungs-Bus der dritten Generation sein, obwohl der Umfang der vorliegenden Offenbarung nicht so beschränkt ist.
  • Wie in 16 gezeigt ist, sind verschiedene I/O-Vorrichtungen 1614 mit dem ersten Bus 1616 gekoppelt, zusammen mit einer Bus-Bridge 1618, die den ersten Bus 1616 mit einem zweiten Bus 1620 koppelt. In einer Ausführungsform enthält der zweite Bus 1620 einen Bus mit geringer Pin-Zahl (LPC-Bus). Verschiedene Vorrichtungen sind mit dem zweiten Bus 1620 gekoppelt, die beispielsweise eine Tastatur und/oder Maus 1622, Kommunikationsvorrichtungen 1627 und eine Speichereinheit 1628 wie z. B. ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die häufig Befehle/Code und Daten 1630 enthält, in einer Ausführungsform enthalten. Ferner ist eine Audio-I/O 1624 als mit dem zweiten Bus 1620 gekoppelt gezeigt. Es wird darauf hingewiesen, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zusammenschaltungsarchitekturen variieren. Beispielsweise kann ein System anstelle der Punkt-zu-Punkt-Architektur von 16 ein System einen Mehrpunkt-Bus oder eine andere solche Architektur implementieren.
  • Berechnungssysteme können verschiedene Kombinationen von Komponenten enthalten. Diese Komponenten können als ICs, Abschnitte davon, diskrete elektronische Vorrichtungen oder andere Module, Logik, Hardware, Software, Firmware oder eine Kombination daraus, die ein einem Computersystem eingesetzt sind, oder als Komponenten, die auf andere Weise in ein Gehäuse des Computersystems integriert sind, implementiert sein. Es ist jedoch zu verstehen, dass in anderen Implementierungen einige der gezeigten Komponenten weggelassen sein können, zusätzliche Komponenten vorhanden sein können und eine unterschiedliche Anordnung der gezeigten Komponenten auftreten kann. Als ein Ergebnis können die vorstehend beschriebenen Lösungen in irgendeinem Abschnitt einer oder mehrerer der dargestellten oder nachstehend beschriebenen Zusammenschaltungen implementiert sein.
  • Ein Prozessor enthält in einer Ausführungsform einen Mikroprozessor, einen Mehrkernprozessor, einen Prozessor mit mehreren Strängen, einen Ultraniederspannungs-Prozessor, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement. In der dargestellten Implementierung agiert der Prozessor als eine Hauptverarbeitungseinheit und ein zentraler Hub für die Kommunikation mit vielen der verschiedenen Komponenten des Systems. Als ein Beispiel ist der Prozessor als ein Einchipsystem (SoC) implementiert. Als ein spezifisches erläuterndes Beispiel enthält der Prozessor einen Intel® Architecture Core™-basierten Prozessor wie z. B. einen i3, i5, i7 oder einen anderen solchen Prozessor, die von Intel Corporation, Santa Clara, CA, erhältlich sind. Es ist jedoch zu verstehen, dass andere Prozessoren mit geringem Energieverbrauch wie z. B. erhältlich von Advanced Micro Devices, Inc., (AMD) aus Sunnyvale, CA, ein MIPS-basiertes Design von MIPS Technologies, Inc., aus Sunnyvale, CA, ein ARM-basiertes Design lizenziert durch ARM Holdings, Ltd. oder einem seiner Kunden oder ihrer Lizenznehmer oder Nutzern stattdessen in anderen Ausführungsformen vorhanden sein können, wie z. B. ein Apple A5/A6-Prozessor, ein Qualcomm Snapdragon-Prozessoren oder ein TI OMAP-Prozessor. Es wird darauf hingewiesen, dass viele der Kundenversionen solcher Prozessoren modifiziert und variiert sind; sie können jedoch einen spezifischen Befehlssatz, der definierte Algorithmen wie sie durch den Lizenzgeber des Prozessors dargelegt sind, unterstützen oder erkennen. Hier kann die mikroarchitektonische Implementierung variieren, jedoch ist die architektonische Funktion des Prozessors üblicherweise konsistent. Spezielle Einzelheiten, die die Architektur und den Betrieb des Prozessors in einer Implementierung betreffen, werden nachstehend weiter diskutiert, um ein anschauliches Beispiel bereitzustellen.
  • Der Prozessor in einer Ausführungsform kommuniziert mit einem Systemspeicher. Als ein anschauliches Beispiel, das in einer Ausführungsform über mehrere Speichervorrichtungen implementiert sein kann, um eine gegebene Größe des Systemspeichers bereitzustellen. Als Beispiele kann der Speicher in Übereinstimmung mit einem auf „Joint Electron Devices Engineering Council (JEDEC) Low Power Double Data Rate (LPDDR)“ basierenden Design wie z. B. der aktuelle LPDDR2-Standard gemäß JEDEC JESD 209-2E (veröffentlicht im April 2009) oder einem LPDDR-Standard der nächsten Generation, der als LPDDR3 oder LPDDR4 bezeichnet werden soll, der Erweiterungen für LPDDR2 anbieten wird, sein, um die Bandbreite zu vergrößern. In verschiedenen Implementierungen können die individuellen Speichervorrichtungen von unterschiedlichen Baugruppentypen sein, wie z. B. eine Einbaustein-Baugruppe (SDP), eine Zweibaustein-Baugruppe (DDP) oder eine Vierbaustein-Baugruppe (13P). Diese Vorrichtungen sind in einigen Ausführungsformen direkt auf eine Hauptplatine gelötet, um eine Lösung mit niedrigem Profil bereitzustellen, während die Vorrichtungen in anderen Ausführungsformen als ein oder mehrere Speichermodule konfiguriert sind, die wiederum durch ein gegebenes Verbindungselement mit der Hauptplatine gekoppelt sind. Und es sind selbstverständlich andere Speicherimplementierungen möglich, wie z. B. andere Typen von Speichermodulen, z. B. „Dual Inline Memory Modules“ (DIMMs) unterschiedlicher Variationen, die, ohne jedoch darauf beschränkt zu sein, microDIMMs, MiniDIMMs enthalten. In einer speziellen erläuternden Ausführungsform ist der Speicher in einer Größe im Bereich von 2 GB und 16 GB und kann als eine DDR3LM-Baugruppe oder ein LPDDR2- oder LPDDR3-Speicher, der über eine Kugelgitteranordnung (BGA) auf eine Hauptplatine gelötet ist, konfiguriert sein.
  • Um persistentes Speichern von Informationen wie z. B. Daten, Anwendungen, eines oder mehrerer Betriebssysteme und so weiter bereitzustellen, kann auch ein Massenspeicher mit dem Prozessor gekoppelt sein. In verschiedenen Ausführungsformen kann dieser Massenspeicher über eine SSD implementiert sein, um ein dünneres und leichteres System-Design zu ermöglichen und außerdem die Systemreaktionsfähigkeit zu verbessern. In anderen Ausführungsformen kann jedoch der Massenspeicher primär unter Verwendung eines Festplattenlaufwerks (HDD) mit einer kleinen Menge von SSD-Speicher, um als ein SSD-Cache zu agieren, um nichtflüchtiges Speichern von Kontextzustand und anderen solchen Informationen während Abschaltereignissen zu speichern, so dass ein schnelles Hochlaufen bei der Wiederaufnahme der Systemaktivitäten stattfinden kann, implementiert sein. Eine Flash-Vorrichtung kann mit dem Prozessor gekoppelt sein, z. B. über eine serielle Peripherieschnittstelle (SPI). Diese Flash-Vorrichtung kann nichtflüchtigen Speicher für die System-Software, die sowohl eine Basis-Eingabe/Ausgabe-Software (BIOS) als auch andere Firmware des Systems enthält, bereitstellen.
  • In verschiedenen Ausführungsformen ist der Massenspeicher des Systems allein durch eine SSD oder als ein optisches oder anderes Plattenlaufwerk mit einem SSD-Cache implementiert. In einigen Ausführungsformen ist der Massenspeicher als eine SSD oder als ein HDD zusammen mit einem Wiederherstellungs- (RST-) Cache-Modul implementiert. In verschiedenen Implementierungen stellt das HDD Speicher im Bereich von 320 GB - 4 Terabytes (TB) und darüber hinaus bereit, während der RST-Cache mit einer SSD implementiert ist, die eine Kapazität im Bereich von 24 GB - 256 GB aufweist. Es wird darauf hingewiesen, dass ein solcher SSD-Cache wahlweise als ein Cache einer einzigen Ebene (SLC) oder ein Cache mit mehreren Ebenen (MLC) konfiguriert sein kann, um ein geeignetes Niveau der Reaktionsfähigkeit bereitzustellen. In einer Option mit nur einer SSD kann das Modul an verschiedenen Orten wie z. B. in einem mSATA- oder NGFF-Steckplatz untergebracht sein. Als ein Beispiel weist eine SSD eine Kapazität im Bereich von 120 GB - 1 TB auf.
  • Verschiedene Peripheriegeräte können über eine Zusammenschaltung mit geringer Pin-Zahl (LPC) mit dem Prozessor gekoppelt sein. In der gezeigten Ausführungsform können verschiedene Komponenten über eine eingebettete Steuereinheit gekoppelt sein. Solche Komponenten können eine Tastatur (z. B. über eine PS2-Schnittstelle gekoppelt), einen Lüfter und eine Wärmesensor enthalten. In einigen Ausführungsformen kann auch ein Touchpad mit EC über eine PS2-Schnittstelle gekoppelt sein. Zusätzlich kann ein Sicherheitsprozessor wie z. B. ein „Trusted Platform Module“ (TPM) in Übereinstimmung mit der Trusted Computing Group (TCG) TPM Spezifikation Version 1.2, datiert auf den 2. Oktober 2003, ebenfalls über diese LPC-Zusammenschaltung mit dem Prozessor gekoppelt sein. Es ist jedoch zu verstehen, dass der Umfang der vorliegenden Offenbarung in dieser Hinsicht nicht eingeschränkt ist, und sichere Verarbeitung und Speichern von sicheren Informationen an einem anderen geschützten Ort stattfinden können, wie z. B. einem statischen Direktzugriffsspeicher (SRAM) in einem Sicherheits-Coprozessor, oder als verschlüsselte Daten-Blobs, die nur entschlüsselt werden, wenn sie durch eine Prozessorbetriebsart einer sicheren Enklave (SE) geschützt sind.
  • In einer speziellen Implementierung können Peripherieanschlüsse ein Verbindungselement der hochauflösenden Medienschnittstelle (HDMI) (der von unterschiedlichen Formfaktoren sein kann, wie z. B. volle Größe Mini oder Mikro); ein oder mehrere USB-Anschlüsse, wie z. B. externe Anschlüsse mit voller Größe in Übereinstimmung mit der Überarbeitung 3.0 der Spezifikation des universellen seriellen Busses (November 2008), enthalten, wobei wenigstens einer mit Energie versorgt wird zum Laden von USB-Vorrichtungen (wie z. B. Smartphones), wenn das System in einem „Connected Standby“-Zustand ist und in eine Wechselstromsteckdose eingesteckt ist. Zusätzlich können ein oder mehrere Thunderbolt™-Anschlüsse bereitgestellt sein. Andere Anschlüsse können ein von außen zugängliches Kartenlesegerät wie z. B. ein SD-XC-Kartenlesegerät von voller Größe und/oder ein SIM-Kartenlesegerät für WWAN (z. B. ein 8-Pin-Kartenlesegerät) enthalten. Für Audio kann eine 3,5 mm Buchse mit Stereoklang und Mikrofonfähigkeit (z. B. Kombinationsfunktionalität) vorhanden sein, mit Unterstützung für Buchsenerkennung (z. B. eine Unterstützung nur für Kopfhörer unter Verwendung eines Mikrofons im Deckel oder Kopfhörer mit Mikrofon im Kabel). In einigen Ausführungsformen kann diese Buchse zwischen Stereo-Kopfhörer und Stereo-Mikrofoneingang umschaltbar sein. Außerdem kann eine Strombuchse zum Koppeln mit einem Wechselstrom-Brick vorgesehen sein.
  • Das System kann mit externen Vorrichtungen in einer Vielzahl von Arten kommunizieren, einschließlich drahtlos. In einigen Fällen sind verschiedene Drahtlosmodule vorhanden, von denen jedes einer Funkeinrichtung entsprechen kann, die für ein spezielles Drahtloskommunikationsprotokoll konfiguriert ist. Eine Art der Drahtloskommunikation in einem Nahbereich wie z. B. einem Nahfeld kann über eine Nahfeldkommunikations- (NFC-) Einheit sein, die in einer Ausführungsform mit dem Prozessor über einen SMBus kommunizieren kann. Es wird darauf hingewiesen, dass über diese NFC-Einheit Vorrichtungen in unmittelbarer Nähe zueinander kommunizieren können. Beispielsweise kann ein Anwender dem System ermöglichen, mit einer weiteren (z. B.) tragbaren Vorrichtung wie z. B. einem Smartphone des Anwenders über Anpassen der zwei Vorrichtungen zusammen in naher Beziehung und Ermöglichen der Übertragung von Informationen wie z. B. Identifizierungsinformationen, Bezahlinformationen, Daten wie z. B. Bilddaten und so weiter zu kommunizieren. Drahtlose Energieübertragung kann ebenfalls unter Verwendung eines NFC-Systems ausgeführt werden.
  • Unter Verwendung der hier beschriebenen NFC-Einheit können Anwender Vorrichtungen nebeneinander anstoßen lassen und Vorrichtungen nebeneinander für Nahfeldkopplungsfunktionen (wie z. B. Nahfeldkommunikation und drahtlose Energieübertragung (WPT)) durch Einsetzen der Kopplung zwischen Spulen einer oder mehrerer solcher Vorrichtungen platzieren. Insbesondere stellen Ausführungsformen Vorrichtungen mit strategisch geformten und platzierten Ferritmaterialien bereit, um bessere Kopplung der Spulen bereitzustellen. Jede Spule weist eine Induktivität auf, die ihr zugeordnet ist, die in Zusammenhang mit den resistiven, kapazitiven und anderen Merkmalen des Systems gewählt sein kann, um eine gemeinsame Resonanzfrequenz für das System zu ermöglichen.
  • Ferner können zusätzliche Drahtloseinheiten andere drahtlose Nahbereichs-Engines enthalten, die eine WLAN-Einheit und eine Bluetooth-Einheit enthalten. Unter Verwendung einer WLAN-Einheit kann Wi-Fi™ Kommunikation in Übereinstimmung mit einem gegebenen Standard 802.11 des „Institute of Electrical and Electronics Engineers“ (IEEE) realisiert sein, während über die Bluetooth-Einheit Nahbereichskommunikation über ein Bluetooth-Protokoll stattfinden kann. Diese Einheiten können mit dem Prozessor über z. B. eine USB-Verbindungsstrecke oder eine universelle asynchrone Verbindungsstrecke für Empfänger-Sender (UART) kommunizieren. Oder diese Einheiten können mit dem Prozessor über eine Zusammenschaltung gemäß dem „Peripheral Component Interconnect Express™ (PCIe™)“-Protokoll gekoppelt sein, z. B. in Übereinstimmung mit der PCI Express™-Spezifikation Basis-Spezifikation Version 3.0 (veröffentlicht am 17. Januar 2007) oder einem anderen derartigen Protokoll wie z. B. einem seriellen Daten-Eingabe/Ausgabe- (SDIO-) Standard. Selbstverständlich kann die tatsächliche physikalische Verbindung zwischen diesen Peripheriegeräten, die auf einer oder mehreren Steckkarten konfiguriert sein können, mit Hilfe der NGFF-Verbindungselemente sein, die an die Hauptplatine angeschlossen sind.
  • Zusätzlich kann drahtlose Weitbereichskommunikation, z. B. gemäß einem Mobilfunk- oder anderen Drahtlosweitbereichsprotokoll, über eine WWAN-Einheit stattfinden, die wiederum mit einem Teilnehmeridentifikationsmodul (SIM) gekoppelt sein kann. Zusätzlich kann, um dem Empfang und die Verwendung von Ortsinformationen zu ermöglichen, auch ein GPS-Modul vorhanden sein. Die WWAN-Einheit und eine integrierte Aufnahmevorrichtung wie z. B. ein Kameramodul können über eine Verbindungsstrecke eines gegebenen USB-Protokolls wie z. B. USB 2.0- oder 3.0 oder ein UART- oder I2C-Protokoll kommunizieren. Wieder kann die tatsächliche physikalische Verbindung dieser Einheiten über einen Anschluss einer NGFF-Steckkarte an ein NGFF-Verbindungselement, das auf der Hauptplatine konfiguriert ist, sein.
  • In einer speziellen Ausführungsform kann Drahtlosfunktionalität modular bereitgestellt sein, z. B. mit einer Lösung mit WiFi™ 802.11ac (z. B. eine Steckkarte, die abwärts kompatibel ist mit IEEE 802.1 1abgn) mit Unterstützung für Windows 8 CS. Diese Karte kann in einem internen Steckplatz (z. B. über einen NGFF-Adapter) konfiguriert sein. Ein zusätzliches Modul kann sowohl Bluetooth-Fähigkeit (z. B. Bluetooth 4.0 mit Abwärtskompatibilität) als auch „Intel® Wireless Display“-Funktionalität bereitstellen. Zusätzlich kann NFC-Unterstützung über eine separate Vorrichtung oder eine Multifunktionsvorrichtung bereitgestellt sein und kann als ein Beispiel für einfachen Zugang in einem vorderen rechten Abschnitt des Gehäuses positioniert sein. Noch ein zusätzliches Modul kann eine WWAN-Vorrichtung sein, die Unterstützung für 3G/4G/LTE und GPS bereitstellen kann. Dieses Modul kann in einem internen (z. B. NGFF-) Steckplatz implementiert sein. Integrierte Antennenunterstützung kann für WiFi™, Bluetooth, WWAN, NFC und GPS bereitgestellt sein, was nahtlosen Übergang von WiFi™- zu WWAN-Funkeinrichtungen, drahtlosem Gigabit (WiGig) in Übereinstimmung mit der Drahtlos-Gigabit-Spezifikation (Juli 2010) und umgekehrt ermöglicht.
  • Wie vorstehend beschrieben kann eine integrierte Kamera in dem Deckel eingebaut sein. Als ein Beispiel kann die Kamera eine hochauflösende Kamera sein, die z. B. eine Auflösung von wenigstens 2,0 Megapixel (MP) und erweitert auf 6,0 MP und darüber hinaus aufweist.
  • Um Audioeingaben und -ausgaben zu bereitzustellen, kann ein Audio-Prozessor über einen digitalen Signalprozessor (DSP) implementiert sein, der mit dem Prozessor über eine hochauflösende Audio- (HDA-) Verbindungsstrecke gekoppelt sein kann. Ähnlich kann der DSP mit einem integrierten Codierer/Decodierer (CODEC) und Verstärker kommunizieren, der wiederum mit Ausgabelautsprechern, die innerhalb des Gehäuses implementiert sein können, gekoppelt sein kann. Ähnlich können der Verstärker und der CODEC gekoppelt sein, um Audioeingaben von einem Mikrofon zu empfangen, das in einer Ausführungsform über eine Doppelmikrofonanordnung (wie z. B. eine digitale Mikrofonanordnung) implementiert sein, kann, um Audioeingabe hoher Qualität bereitzustellen, um sprachaktivierte Steuerung verschiedener Operationen innerhalb des Systems zu ermöglichen. Es wird außerdem darauf hingewiesen, dass Audioausgaben aus dem Verstärker/CODEC für eine Kopfhörerbuchse bereitgestellt werden können.
  • In einer speziellen Ausführungsform sind der digitale Audio-Codec und Verstärker zum Ansteuern der Stereokopfhörerbuchse, der Stereomikrofonbuchse, einer internen Mikrofonanordnung und Stereolautsprechern fähig. In anderen Implementierungen kann der Codec in einen Audio-DSP integriert sein oder über einen HD-Audiopfad mit einem peripheren Steuereinheit-Hub (PCH) gekoppelt sein. In einigen Implementierungen können zusätzlich zu integrierten Stereolautsprechern ein oder mehrere Basslautsprecher vorgesehen sein, und die Lautsprecherlösung kann DTS-Audio unterstützen.
  • In einigen Ausführungsformen kann der Prozessor durch einen externen Spannungsregulierer (VR) und mehrere interne Spannungsregulierer, die innerhalb des Prozessorbausteins integriert sind, als vollständig integrierte Spannungsregulierer (FIVRs) bezeichnet, mit Leistung versorgt werden, Die Verwendung mehrere FIVRs in dem Prozessor ermöglicht das Gruppieren von Komponenten in separate Leistungsebenen, so dass die Leistung durch den FIVR reguliert und nur den Komponenten in der Gruppe zugeführt wird. Während des Leistungsmanagements kann eine gegebene Leistungsebene eines FIVR herunter geregelt oder abgeschaltet werden, wenn der Prozessor in einen speziellen Niederleistungszustand versetzt wird, während eine weitere Leistungsebene eines weiteren FIVR aktiv oder vollständig mit Leistung versorgt bleibt.
  • In einer Ausführungsform kann eine Stützleistungsebene während einiger tiefer Schlafzustände verwendet werden, um die I/O-Pins für verschiedene I/O-Signale mit Leistung zu versorgen, wie z. B. die Schnittstelle zwischen dem Prozessor und einem PCH, die Schnittstelle zwischen der externen VR und die Schnittstelle mit EC. Diese Stützleistungsebene versorgt auch den bausteininternen Spannungsregulierer mit Leistung, der den bordeigenen SRAM oder anderen Cache-Speicher, in dem der Prozessorkontext während des Schlafzustands gespeichert ist, unterstützt. Die Stützleistungsebene ist auch verwendet, um die Aufwecklogik des Prozessors, die die verschiedenen Aufweckquellensignale überwacht und verarbeitet, mit Leistung zu versorgen.
  • Während des Leistungsmanagements bleibt die Stützleistungsebene angeschaltet, während andere Leistungsebenen heruntergefahren oder abgeschaltet werden, wenn der Prozessor in spezielle Schlafzustände eintritt, um die vorstehend genannten Komponenten zu unterstützen. Das kann jedoch zu unnötigem Leistungsverbrauch oder Verschwendung führen, wenn diese Komponenten nicht benötigt werden. Zu diesem Zweck können Ausführungsformen einen verbundenen Bereitschaftsschlafzustand bereitstellen, um den Prozessorkontext beizubehalten, unter Verwendung einer dedizierten Leistungsebene. In einer Ausführungsform unterstützt der verbundene Bereitschaftsschlafzustand das Aufwecken des Prozessors unter Verwendung von Betriebsmitteln eines PCH, der selbst in einer Baugruppe mit dem Prozessor vorhanden sein kann. In einer Ausführungsform unterstützt der verbundene Bereitschaftsschlafzustand das Erhalten von architektonischen Prozessorfunktionen in dem PCH, bis der Prozessor aufwacht, was das Abschalten aller unnötigen Prozessorkomponenten ermöglicht, die früher während tiefer Schlafzustände angeschaltet gelassen wurden, einschließlich des Abschaltens aller Takte. In einer Ausführungsform beinhaltet der PCH einen Zeitstempelzähler (TSC) und verbundene Bereitschaftslogik zum Steuern des Systems während des verbundenen Bereitschaftszustands. Der integrierte Spannungsregulierer für die Stützleistungsebene kann ebenfalls auf dem PCH residieren.
  • In einer Ausführungsform kann während des verbundenen Bereitschaftszustand ein integrierter Spannungsregulierer als eine dedizierte Leistungsebene funktionieren, die angeschaltet bleibt, um den dedizierten Cache-Speicher zu unterstützen, in dem der Prozessorkontext wie z. B. kritische Zustandsvariablen gespeichert wird, wenn der Prozessor in die tiefen Schlafzustände und den verbundenen Bereitschaftszustand eintritt. Dieser kritische Zustand kann Zustandsvariablen, die dem architektonischen, mikroarchitektonischen, Fehlersuche-Zustand zugeordnet sind, und/oder ähnliche Zustandsvariablen, die dem Prozessor zugeordnet sind, enthalten.
  • Die Aufweckquellensignale von der EC können zu dem PCH anstelle des Prozessors während des verbundenen Bereitschaftszustands gesendet werden, so dass der PCH die Aufweckverarbeitung anstelle des Prozessors managen kann. Zusätzlich wird der TSC in dem PCH gehalten, um das Erhalten der architektonischen Prozessorfunktionen zu unterstützen.
  • Die Leistungssteuerung in dem Prozessor kann zu verbesserter Energieeinsparung führen. Beispielsweise kann die Leistung dynamisch zwischen Kernen zugewiesen werden, einzelne Kerne können die Frequenz/Spannung ändern und mehrere tiefe Niederleistungszustände können vorgesehen sein, um einen sehr geringen Energieverbrauch zu ermöglichen. Zusätzlich kann die dynamische Steuerung der Kerne oder unabhängiger Kernabschnitte reduzierten Energieverbrauch durch Abschalten von Komponenten, wenn sie nicht verwendet werden, bereitstellen.
  • In unterschiedlichen Implementierungen kann ein Sicherheitsmodul wie z. B. ein TPM in den Prozessor integriert sein oder kann eine diskrete Vorrichtung wie z. B. eine TPM 2.0-Vorrichtung sein. Mit einem integrierten Sicherheitsmodul, auch als „Platform Trust Technology“ (PTT) bezeichnet, kann ermöglicht werden, dass BIOS/Firmware spezielle Hardware-Merkmale für spezielle Sicherheitsmerkmale zeigt, die sichere Befehle, sicheres Booten, Intel® Antidiebstahls-Technologie, Intel® Identitätsschutz-Technologie, Intel® vertrauenswürdige Ausführungs-Technologie (TXT) und Intel® Handhabbarkeits-Engine-Technologie zusammen mit sicheren Anwenderschnittstellen wie z. B. einer sicheren Tastatur und Anzeigevorrichtung enthalten
  • Obwohl die vorstehenden Konzepte mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden sind, werden Fachleute zahlreiche Modifikationen und Variation daraus erkennen. Es ist vorgesehen, dass die beigefügten Ansprüche alle solche Modifikationen und Variation als in den wahren Geist und Schutzbereich dieser Offenbarung fallend abdecken.
  • Ein Design kann verschiedene Stufen durchlaufen, von der Erzeugung über die Simulation zur Herstellung. Daten, die ein Design repräsentieren, können das Design auf eine Anzahl von Arten repräsentieren. Zuerst kann, wie es für die Simulation nützlich ist, kann die Hardware unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache repräsentiert sein. Zusätzlich kann ein Modell auf Schaltungsebene mit Logik- und/oder Transistor-Gattern an einigen Stufen des Design-Prozesses produziert werden. Darüber hinaus erreichen die meisten Designs an einer Stufe eine Ebene von Daten, die die physikalische Platzierung verschiedener Vorrichtungen in dem Hardware-Modell repräsentieren. In dem Fall, in dem herkömmliche Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardware-Modell repräsentieren, die Daten sein, die das Vorhandensein oder Fehlen verschiedener Merkmale auf unterschiedlichen Maskenschichten für Masken, die verwendet werden, um die integrierte Schaltung zu produzieren, spezifizieren. In irgendeiner Repräsentation des Designs können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder eine magnetische oder optische Speichereinrichtung wie z. B. 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 sind, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder das Design angibt oder führt, übertragen wird, wird in dem Umfang, in dem Kopieren, Puffern oder erneutes Übertragen des elektrischen Signals ausgeführt wird, eine neue Kopie hergestellt. Somit kann ein Kommunikationsanbieter oder ein Netzanbieter einen Artikel wie z. B. Informationen, die in eine Trägerwelle codiert sind, die Techniken von Ausführungsformen der vorliegenden Offenbarung verwirklichen, auf einem greifbaren maschinenlesbaren Medium wenigstens temporär speichern.
  • Ein Modul, wie es hier verwendet ist, bezieht sich auf irgendeine Kombination aus Hardware, Software und/oder Firmware. Als ein Beispiel enthält ein Modul Hardware wie z. B. eine Mikrosteuereinheit, die einem nicht-transitorischen Medium zugeordnet ist, um Code, der dafür ausgelegt ist, durch die Mikrosteuereinheit ausgeführt zu werden, zu speichern. Deshalb bezieht sich die Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, den Code, der auf einem nicht-transitorischen Medium gehalten werden soll, zu erkennen und/oder auszuführen. Darüber hinaus bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls auf das nicht-transitorische Medium, das den Code enthält, der spezifisch dafür ausgelegt ist, durch die Mikrosteuereinheit ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und, wie abgeleitet werden kann, kann sich in noch einer weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination aus der Mikrosteuereinheit und dem nicht-transitorischen Medium beziehen. Häufig variieren und potentiell überlappen gewöhnlich Modulgrenzen, die als separat dargestellt sind. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination daraus gemeinsam verwenden, während sie potentiell einige unabhängige Hardware, Software oder Firmware behalten. In einer Ausführungsform enthält die Verwendung des Begriffs Logik Hardware, wie z. B. Transistoren, Register, oder andere Hardware, wie z. B. programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „zum“ oder „konfiguriert zum“ bezieht sich in einer Ausführungsform auf Anordnen, Zusammenfügen, Herstellen, zum Verkauf Anbieten, Importieren und/oder Konstruieren einer Einrichtung, Hardware, Logik oder eines Elements zum Ausführen einer festgelegten oder bestimmten Aufgabe. In diesem Beispiel ist eine Einrichtung oder ein Element davon, die/das nicht arbeitet, immer noch „konfiguriert zum“ Ausführen einer festgelegten Aufgabe, falls sie/es konstruiert, gekoppelt und/oder zusammengeschaltet ist, um diese festgelegte Aufgabe auszuführen. Als ein rein erläuterndes Beispiel kann ein Logikgatter eine 0 oder eine 1 während des Betriebs bereitstellen. Ein Logikgatter jedoch, das „konfiguriert ist zum“ Bereitstellen eines Aktivierungssignals für einen Takt, enthält nicht jedes potentielle Logikgatter, das eine 1 oder eine 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das auf eine Weise gekoppelt ist, dass die während des Betriebs ausgegebene 1 oder 0 dazu dient, den Takt zu aktivieren. Es wird noch einmal darauf hingewiesen, dass der Begriff „konfiguriert zum“ keinen Betrieb erfordert, sondern stattdessen auf den latenten Zustand einer Einrichtung, Hardware und/oder eines Elements fokussiert, wobei der latente Zustand der Einrichtung, Hardware und/oder des Elements konstruiert ist, eine spezielle Aufgabe auszuführen, wenn die Einrichtung, Hardware und/oder das Element im Betrieb ist.
  • Darüber hinaus bezieht sich die Verwendung der Ausdrücke „fähig zum“ und/oder „betreibbar zum“ in einer Ausführungsform auf eine Einrichtung, Logik, Hardware und/oder ein Element, die/das auf eine solche Weise konstruiert ist, um die Verwendung der Einrichtung, Logik, Hardware und/oder des Elements auf eine spezifizierte Weise zu ermöglichen. Wie vorstehend wird darauf hingewiesen, dass die sich Verwendung von zum, fähig zum oder betreibbar zum in einer Ausführungsform auf den latenten Zustand einer Einrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Einrichtung, Logik, Hardware und/oder das Element nicht in Betrieb ist, jedoch auf eine solche Weise konstruiert ist, dass sie/es die Verwendung einer Einrichtung auf eine spezifizierte Weise ermöglicht.
  • Ein Wert, wie er hier verwendet ist, enthält irgendeine bekannte Repräsentation einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig ist die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1 oder 0 bezeichnet, was einfach binäre Logikzustände repräsentiert. Beispielsweise bezieht sich eine 1 auf einen hohen Logikpegel, und 0 bezieht sich auf einen tiefen Logikpegel. In einer Ausführungsform kann eine Speicherzelle wie z. B. ein Transistor oder ein Flash-Zelle, zum Halten eines einzelnen logischen Werts oder mehrerer logischer Werte fähig sein. Andere Repräsentationen von Werten in Computersystemen sind jedoch verwendet worden. Beispielsweise kann eine Dezimalzahl zehn auch als ein Binärwert 1010 und ein Hexadezimalbuchstabe A repräsentiert sein. Deshalb enthält ein Wert irgendeine Repräsentation von Informationen, die in einem Computersystem gehalten werden können.
  • Außerdem können Zustände durch Werte oder Abschnitte von Werten repräsentiert sein. Als ein Beispiel kann ein erster Wert, wie z. B. eine logische Eins, einen Standard- und Initialzustand repräsentieren, während ein zweiter Wert, wie z. B. eine logische Null, einen Nicht-Standardzustand repräsentieren kann. Zusätzlich beziehen sich die Begriffe Einstellen und Zurücksetzen in einer Ausführungsform auf einen Standard- und einen aktualisierten Wert bzw. Zustand. Beispielsweise enthält ein Standardwert potentiell einen hohen logischen Wert, d. h. Zurücksetzen, während ein aktueller Wert potentiell einen tiefen logischen Wert, d. h. Einstellen, enthält. Es wird darauf hingewiesen, dass irgendeine Kombination von Werten benutzt werden kann, um irgendeine Anzahl von Zuständen zu repräsentieren.
  • Die folgenden Beispiele gehören zu Ausführungsformen in Übereinstimmung mit dieser Spezifikation. Beispiel 1 ist eine Einrichtung, die Folgendes enthält: einen Anschluss zum Koppeln mit einer Verbindungsstrecke; Protokollschaltungsanordnung zum Implementieren eines geschichteten Protokoll-Stacks, wobei die Protokollschaltungsanordnung dient zum: Bestimmen eines Pakettyps für ein Paket; Erzeugen des Pakets, wobei das Paket einen Paket-Header enthält, der Paket-Header eine Header-Basis enthält und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält, wobei das Typ-Feld Angaben des Pakettyps enthält, das Header-Inhalt-Feld angibt, welcher aus mehreren Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, wobei Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben, wobei der Anschluss zum Senden der Pakete auf der Verbindungsstrecke zu einer weiteren Vorrichtung dient.
  • Beispiel 2 enthält den Gegenstand von Beispiel 1, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  • Beispiel 3 enthält den Gegenstand von Beispiel 2, wobei Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  • Beispiel 4 enthält den Gegenstand eines der Beispiele 2-3, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen enthalten.
  • Beispiel 5 enthält den Gegenstand eines der Beispiele 1-4, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) enthält.
  • Beispiel 6 enthält den Gegenstand von Beispiel 5, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge enthält und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  • Beispiel 7 enthält den Gegenstand von Beispiel 6, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  • Beispiel 8 enthält den Gegenstand eines der Beispiele 1-7, wobei das Paket mit einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll konform ist.
  • Beispiel 9 enthält den Gegenstand von Beispiel 8, wobei das Paket in einer PCIe-Flit-Betriebsart zu verwenden ist, wobei ein unterschiedliches PCIe-Paketformat in einer Nicht-Flit-Betriebsart zu verwenden ist.
  • Beispiel 10 enthält den Gegenstand von Beispiel 9, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  • Beispiel 11 enthält den Gegenstand eines der Beispiele 9-10, wobei die Flit-Betriebsart PAM-Codierung benutzt und die Nicht-Flit-Betriebsart „Non-Return-To-Zero“-(NRZ-) Codierung benutzt.
  • Beispiel 12 enthält den Gegenstand eines der Beispiele 1-11, wobei die Header-Basis ferner ein Anhangsgröße-Feld enthält, um anzugeben, ob ein Anhang in dem Paket enthalten ist.
  • Beispiel 13 enthält den Gegenstand eines der Beispiele 1-12, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW enthält.
  • Beispiel 14 ist eine Einrichtung, die Folgendes enthält: einen Anschluss, der einen Empfänger zum Empfangen eines Pakets von einer weiteren Vorrichtung über eine Verbindungsstrecke enthält, wobei das Paket einen Paket-Header enthält, der Paket-Header eine Header-Basis enthält und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält; und Protokollschaltungsanordnung zum: Analysieren des Pakets basierend auf der Header-Basis; Bestimmen einer Länge des Pakets aus wenigstens dem Typ-Feld und dem Header-Inhalt-Feld; und Identifizieren eines speziellen Header-Inhaltsblocks, der in dem Header enthalten ist, basierend auf einem Wert des Header-Inhaltsfelds.
  • Beispiel 15 enthält den Gegenstand von Beispiel 14, wobei die Verbindungsstrecke auf einem „Peripheral Component Interconnect Express“- (PCIe-) basierten Protokoll basiert und Pulsamplitudenmodulations(PAM)-Codierung benutzt.
  • Beispiel 16 enthält den Gegenstand eines der Beispiele 14-15, wobei das Header-Inhalt-Feld einen Wert enthält, um anzugeben, dass eine Teilmenge der mehreren definierten Header-Inhaltsblöcke in dem Paket-Header enthalten ist, wobei die Teilmenge der Header-Inhaltsblöcke den speziellen Header-Inhaltsblock enthält.
  • Beispiel 17 enthält den Gegenstand von Beispiel 16, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW enthält.
  • Beispiel 18 enthält den Gegenstand eines der Beispiele 14-17, wobei die Länge aus Feldern in einem ersten DW der Header-Basis bestimmt wird und die Felder in dem ersten DW der Header-Basis Folgendes enthalten: das Typ-Feld; das Header-Inhalt-Feld; ein Anhangsgröße-Feld; und ein Länge-Feld.
  • Beispiel 19 enthält den Gegenstand von Beispiel 18, wobei das Anhangsgröße-Feld zum Angeben dient, ob ein Anhang in dem Paket enthalten ist.
  • Beispiel 20 enthält den Gegenstand eines der Beispiele 14-19, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  • Beispiel 21 enthält den Gegenstand von Beispiel 20, wobei das Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  • Beispiel 22 enthält den Gegenstand eines der Beispiele 20-21, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen enthalten.
  • Beispiel 23 enthält den Gegenstand eines der Beispiele 14-22, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) enthält.
  • Beispiel 24 enthält den Gegenstand von Beispiel 23, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge enthält und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  • Beispiel 25 enthält den Gegenstand von Beispiel 24, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  • Beispiel 26 enthält den Gegenstand eines der Beispiele 14-25, wobei das Paket mit einem „Peripheral Component Interconnect Express“- (PCIe-) basierten Protokoll konform ist.
  • Beispiel 27 enthält den Gegenstand von Beispiel 26, wobei das Paket in einer PCIe-Flit-Betriebsart zu verwenden ist, wobei ein unterschiedliches PCIe-Paketformat in einer Nicht-Flit-Betriebsart zu verwenden ist.
  • Beispiel 28 enthält den Gegenstand von Beispiel 27, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  • Beispiel 29 enthält den Gegenstand eines der Beispiele 27-28, wobei die Flit-Betriebsart PAM-Codierung benutzt und die Nicht-Flit-Betriebsart „Non-Return-To-Zero“-(NRZ)-Codierung benutzt.
  • Beispiel 30 ist ein System, das Folgendes enthält: eine erste Vorrichtung; und eine zweite Vorrichtung, die mit der ersten Vorrichtung durch eine Verbindungsstrecke gekoppelt ist, wobei die zweite Vorrichtung eine Protokollschaltungsanordnung enthält zum: Bestimmen eines Pakettyps für ein Paket, das auf der Verbindungsstrecke gesendet werden soll; Erzeugen des Pakets, wobei das Paket einen Paket-Header enthält, der Paket-Header eine Header-Basis enthält und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält, wobei das Typ-Feld den Pakettyp angibt, das Header-Inhalt-Feld angibt, welcher aus mehreren unterschiedlichen Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben und die zweite Vorrichtung dazu dient, das Paket auf der Verbindungsstrecke zu der ersten Vorrichtung zu senden.
  • Beispiel 31 enthält den Gegenstand von Beispiel 30, wobei die Verbindungsstrecke auf einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll basiert und Pulsamplitudenmodulations(PAM)-Codierung benutzt.
  • Beispiel 32 enthält den Gegenstand von Beispiel 31, wobei die erste und die zweite Vorrichtung Logik zum Kommunizieren über die Verbindungsstrecke in entweder einer Flit-Betriebsart oder einer Nicht-Flit-Betriebsart enthalten, die Flit-Betriebsart die PAM-Codierung benutzt, die Nicht-Flit-Betriebsart „Non-Return-To-Zero‟(NRZ)-Codierung benutzt, das Paket auf einem Paketformat der Flit-Betriebsart basiert und ein unterschiedliches Paketformat in der Nicht-Flit-Betriebsart verwendet wird.
  • Beispiel 33 enthält den Gegenstand von Beispiel 32, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  • Beispiel 34 enthält den Gegenstand eines der Beispiele 30-33, wobei die zweite Vorrichtung einen Prozessor enthält und die erste Vorrichtung eine Grafikkarte oder ein Festkörperlaufwerk enthält.
  • Beispiel 35 enthält den Gegenstand eines der Beispiele 30-34, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  • Beispiel 36 enthält den Gegenstand von Beispiel 35, wobei das Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  • Beispiel 37 enthält den Gegenstand eines der Beispiele 35-36, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen enthalten.
  • Beispiel 38 enthält den Gegenstand eines der Beispiele 30-37, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) enthält.
  • Beispiel 39 enthält den Gegenstand von Beispiel 38, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge enthält und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  • Beispiel 40 enthält den Gegenstand von Beispiel 39, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  • Beispiel 41 enthält den Gegenstand eines der Beispiele 30-40, wobei die Header-Basis ferner ein Anhangsgröße-Feld enthält, um anzugeben, ob ein Anhang in dem Paket enthalten ist.
  • Beispiel 42 enthält den Gegenstand eines der Beispiele 30-41, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW enthält.
  • Beispiel 43 ist ein Verfahren, das Folgendes enthält: Bestimmen eines Pakettyps für ein Paket, das von einer ersten Vorrichtung auf einer Verbindungsstrecke zu einer zweiten Richtung gesendet werden soll; Erzeugen des Pakets in der ersten Vorrichtung, wobei das Paket einen Paket-Header enthält, der Paket-Header eine Header-Basis enthält und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält, wobei das Typ-Feld den Pakettyp angibt, das Header-Inhalt-Feld angibt, welcher aus mehreren Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, wobei Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben; und Senden des Pakets auf der Verbindungsstrecke zu der zweiten Vorrichtung.
  • Beispiel 44 enthält den Gegenstand von Beispiel 43, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  • Beispiel 45 enthält den Gegenstand von Beispiel 44, wobei das Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  • Beispiel 46 enthält den Gegenstand eines der Beispiele 44-45, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen enthalten.
  • Beispiel 47 enthält den Gegenstand eines der Beispiele 43-46, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) enthält.
  • Beispiel 48 enthält den Gegenstand von Beispiel 47, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge enthält und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  • Beispiel 49 enthält den Gegenstand von Beispiel 48, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  • Beispiel 50 enthält den Gegenstand eines der Beispiele 43-49, wobei das Paket mit einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll konform ist.
  • Beispiel 51 enthält den Gegenstand von Beispiel 50, wobei das Paket in einer PCIe-Flit-Betriebsart zu verwenden ist, wobei ein unterschiedliches PCIe-Paketformat in einer Nicht-Flit-Betriebsart zu verwenden ist.
  • Beispiel 52 enthält den Gegenstand von Beispiel 51, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  • Beispiel 53 enthält den Gegenstand eines der Beispiele 50-52, wobei die Flit-Betriebsart PAM-Codierung benutzt und die Nicht-Flit-Betriebsart „Non-Return-To-Zero“-(NRZ)-Codierung benutzt.
  • Beispiel 54 enthält den Gegenstand eines der Beispiele 43-53, wobei die Header-Basis ferner ein Anhangsgröße-Feld enthält, um anzugeben, ob ein Anhang in dem Paket enthalten ist.
  • Beispiel 55 enthält den Gegenstand eines der Beispiele 43-54, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW enthält.
  • Beispiel 56 ist ein System, das Mittel zum Ausführen des Verfahrens nach einem der Beispiele 43-55 enthält.
  • Beispiel 57 ist ein Verfahren, das Folgendes enthält: Empfangen eines Pakets an einem Anschluss einer ersten Vorrichtung von einer weiteren Vorrichtung über eine Verbindungsstrecke, wobei das Paket einen Paket-Header enthält, der Paket-Header eine Header-Basis enthält und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld enthält; und Analysieren des Pakets basierend auf der Header-Basis; Bestimmen einer Länge des Pakets aus wenigstens dem Typ-Feld und dem Header-Inhalt-Feld; und Identifizieren eines speziellen Header-Inhaltsblocks, der in dem Header enthalten ist, basierend auf einem Wert des Header-Inhalt-Felds.
  • Beispiel 58 enthält den Gegenstand von Beispiel 57, wobei die Verbindungsstrecke auf einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll basiert und Pulsamplitudenmodulations(PAM)-Codierung benutzt.
  • Beispiel 59 enthält den Gegenstand eines der Beispiele 57-58, wobei das Header-Inhalt-Feld einen Wert enthält, um anzugeben, dass eine Teilmenge aus mehreren definierten Header-Inhaltsblöcke in dem Paket-Header enthalten ist, wobei die Teilmenge der Header-Inhaltsblöcke den speziellen Header-Inhaltsblock enthält.
  • Beispiel 60 enthält den Gegenstand von Beispiel 59, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW enthält.
  • Beispiel 61 enthält den Gegenstand eines der Beispiele 57-60, wobei die Länge aus Feldern in einem ersten DW der Header-Basis bestimmt wird und die Felder in dem ersten DW der Header-Basis Folgendes enthalten: das Typ-Feld; das Header-Inhalt-Feld; ein Anhangsgröße-Feld; und ein Länge-Feld.
  • Beispiel 62 enthält den Gegenstand von Beispiel 61, wobei das Anhangsgröße-Feld zum Angeben dient, ob ein Anhang in dem Paket enthalten ist.
  • Beispiel 63 enthält den Gegenstand eines der Beispiele 57-62, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  • Beispiel 64 enthält den Gegenstand von Beispiel 63, wobei das Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  • Beispiel 65 enthält den Gegenstand eines der Beispiele 63-64, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen enthalten.
  • Beispiel 66 enthält den Gegenstand eines der Beispiele 57-65, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) enthält.
  • Beispiel 67 enthält den Gegenstand von Beispiel 66, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge enthält und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  • Beispiel 68 enthält den Gegenstand von Beispiel 67, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  • Beispiel 69 enthält den Gegenstand eines der Beispiele 57-68, wobei das Paket mit einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll konform ist.
  • Beispiel 70 enthält den Gegenstand von Beispiel 69, wobei das Paket in einer PCIe-Flit-Betriebsart zu verwenden ist, wobei ein unterschiedliches PCIe-Paketformat in einer Nicht-Flit-Betriebsart zu verwenden ist.
  • Beispiel 71 enthält den Gegenstand von Beispiel 70, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  • Beispiel 72 enthält den Gegenstand eines der Beispiele 70-71, wobei die Flit-Betriebsart PAM-Codierung benutzt und die Nicht-Flit-Betriebsart „Non-Return-To-Zero“-(NRZ)-Codierung benutzt.
  • Beispiel 73 ist ein System, das Mittel zum Ausführen des Verfahrens nach einem der Beispiele 57-72 enthält.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die vorstehend dargelegt sind, können über Befehle und Code, die auf einem für eine Maschine zugänglichen, maschinenlesbaren, für einen Computer zugänglichen oder computerlesbaren Medium gespeichert sind, die durch ein Verarbeitungselement ausführbar sind, implementiert sein. Ein nicht-transitorisches für eine Maschine zugängliches / maschinenlesbares Medium enthält irgendeinen Mechanismus, der Informationen in einer durch eine Maschine wie z. einen Computer oder ein elektronisches System lesbaren Form bereitstellt (d. h. speichert und/oder überträgt). Beispielsweise enthält ein nicht-transitorisches für eine Maschine zugängliches Medium Direktzugriffsspeicher (RAM) wie z. B. statischen RAM (SRAM) oder 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 (verbreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von nicht-transitorischen Medien, die Informationen daraus enthalten können, zu unterscheiden sind.
  • Befehle, die verwendet werden, um Logik zu programmieren, Ausführungsformen der Offenbarung auszuführen, können innerhalb eines Speichers in dem System wie z. B. DRAM, Cache, Flash-Speicher oder einer anderen Speichereinrichtung gespeichert sein. Darüber hinaus können die Befehle über ein Netz oder mit Hilfe anderer computerlesbarer Medien verteilt werden. Somit kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form enthalten, ist jedoch nicht beschränkt auf Floppy-Disketten, optische Platten, Compact Disc-Festwertspeicher (CD-ROMs) und magneto-optische Platten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAM), löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder eine greifbare maschinenlesbare Speichereinrichtung, die zur Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen verbreiteter Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) verwendet wird. Dementsprechend enthält ein computerlesbares Medium irgendeinen Typ eines greifbaren maschinenlesbaren Mediums, das zum Speichern oder Übertragen elektronischer Befehle oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form geeignet ist.
  • Bezugnahme auf „eine Ausführungsform“ bedeutet durchgehend in dieser Spezifikation, dass ein/e spezielle/s Merkmal, Struktur oder Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit bezieht sich das Auftreten des Ausdrucks „in einer Ausführungsform“ an verschiedenen Orten durchgehend in dieser Spezifikation nicht notwendigerweise immer auf dieselbe Ausführungsform. Darüber hinaus können die speziellen Merkmale, Strukturen oder Eigenschaften auf irgendeine geeignete Weise in einer oder mehreren Ausführungsformen kombiniert sein.
  • In der vorstehenden Spezifikation ist eine genaue Beschreibung mit Bezug auf spezifische beispielhafte Ausführungsformen gegeben worden. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Veränderungen daran vorgenommen werden können, ohne von dem weiteren Geist und Schutzbereich der Offenbarung, wie er in den beigefügten Ansprüchen dargelegt ist, abzuweichen. Die Spezifikation und die Zeichnungen sind dementsprechend eher in einem erläuternden Sinn als in einem einschränkenden Sinn zu betrachten. Darüber hinaus bezieht sich die vorstehende Verwendung von Ausführungsform und anderer beispielhafter Ausdrucksweise nicht notwendigerweise immer auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich sowohl auf unterschiedliche und unterscheidbare Ausführungsformen als auch auf potentiell dieselbe Ausführungsform beziehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/938096 [0001]

Claims (24)

  1. Einrichtung, die Folgendes umfasst: einen Anschluss zum Koppeln mit einer Verbindungsstrecke; eine Protokollschaltungsanordnung zum Implementieren eines geschichteten Protokoll-Stacks, wobei die Protokollschaltungsanordnung dient zum: Bestimmen eines Pakettyps für ein Paket; Erzeugen des Pakets, wobei das Paket einen Paket-Header umfasst, der Paket-Header eine Header-Basis umfasst und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld umfasst, wobei das Typ-Feld den Pakettyp angibt, das Header-Inhalt-Feld angibt, welcher aus mehreren Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, wobei Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben; wobei der Anschluss dazu dient, das Paket auf der Verbindungsstrecke zu einer weiteren Vorrichtung zu senden.
  2. Einrichtung nach Anspruch 1, wobei jeder der mehreren Header-Inhaltsblöcke verwendet wird, um unterschiedliche jeweilige Informationen, die dem Paket zugeordnet sind, zu identifizieren, und das Header-Inhalt-Feld das Aufnehmen entweder keines aus den mehreren Header-Inhaltsblöcken, einer Teilmenge der mehreren Header-Inhaltsblöcke oder alle aus den mehreren Header-Inhaltsblöcken in den Header angibt.
  3. Einrichtung nach Anspruch 2, wobei das Header-Inhalt-Feld „One-Hot“-Codierung verwendet, um zu identifizieren, welche aus den mehreren Header-Inhaltsblöcken in das Paket aufzunehmen sind.
  4. Einrichtung nach einem der Ansprüche 2-3, wobei die mehreren Header-Inhaltsblöcke einen ersten Header-Inhaltsblock zum Angeben eines Byte-Freigabewerts und eines Prozessadressraumbezeichners (PASID), einen zweiten Inhaltsblock zum Identifizieren von Segmentinformationen für das Paket, einen dritten Header-Inhaltsblock zum Identifizieren von Datenverschlüsselungsinformationen für das Paket und einen vierten Header-Inhaltsblock für durch den Anbieter definierte Informationen umfassen.
  5. Einrichtung nach einem der Ansprüche 1-4, wobei jeder der mehreren Header-Inhaltsblöcke ein ganzzahliges Vielfaches eines Doppelworts (DW) umfasst.
  6. Einrichtung nach Anspruch 5, wobei ein spezieller aus den mehreren Header-Inhaltsblöcken einen Header-Inhaltsblock variabler Länge Folgendes umfasst und die Länge des speziellen Header-Inhaltsblocks in dem Header-Inhalt-Feld anzugeben ist.
  7. Einrichtung nach Anspruch 6, wobei die Länge des speziellen Header-Inhaltsblocks aus einer 1 DW-Länge, 2 DW-Länge oder 4 DW-Länge ausgewählt ist.
  8. Einrichtung nach einem der Ansprüche 1-7, wobei das Paket mit einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll konform ist.
  9. Einrichtung nach Anspruch 8, wobei das Paket in einer PCIe-Flit-Betriebsart zu verwenden ist, wobei ein unterschiedliches PCIe-Paketformat in einer Nicht-Flit-Betriebsart zu verwenden ist.
  10. Einrichtung nach Anspruch 9, wobei das Paketformat der Nicht-Flit-Betriebsart ein Paket-Header-Format mit einem Format-Feld, einem Byte-Freigabe-Feld und einem Typ-Feld kürzer als das Typ-Feld des Paket-Headers der Flit-Betriebsart enthält und das Header-Inhalt-Feld nicht enthält.
  11. Einrichtung nach einem der Ansprüche 1-10, wobei die Header-Basis ferner ein Anhangsgröße-Feld umfasst, um anzugeben, ob ein Anhang in dem Paket enthalten ist.
  12. Einrichtung, die Folgendes umfasst: einen Anschluss, der einen Empfänger zum Empfangen eines Pakets von einer weiteren Vorrichtung über eine Verbindungsstrecke umfasst, wobei das Paket einen Paket-Header umfasst, der Paket-Header eine Header-Basis umfasst und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld umfasst; und eine Protokollschaltungsanordnung zum: Analysieren des Pakets basierend auf der Header-Basis; Bestimmen einer Länge des Pakets aus wenigstens dem Typ-Feld und dem Header-Inhalt-Feld; und Identifizieren eines speziellen Header-Inhaltsblocks, der in dem Header enthalten ist, basierend auf einem Wert des Header-Inhalt-Felds.
  13. Einrichtung nach Anspruch 12, wobei die Verbindungsstrecke auf einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll basiert und Pulsamplitudenmodulations(PAM)-Codierung benutzt.
  14. Einrichtung nach einem der Ansprüche 12-13, wobei das Header-Inhalt-Feld einen Wert umfasst, um anzugeben, dass eine Teilmenge von mehreren definierten Header-Inhaltsblöcken in dem Paket-Header enthalten ist, wobei die Teilmenge der Header-Inhaltsblöcke den speziellen Header-Inhaltsblock umfasst.
  15. Einrichtung nach Anspruch 14, wobei die Header-Basis entweder 3 Doppelwörter (DW) oder 4 DW lang ist, basierend auf einem Typ des Pakets, und jeder der mehreren Header-Inhaltsblöcke eine entsprechende Länge eines ganzzahligen Vielfachen von 1 DW umfasst.
  16. Einrichtung nach einem der Ansprüche 12-15, wobei die Länge aus Feldern in einem ersten DW der Header-Basis bestimmt wird und die Felder in dem ersten DW der Header-Basis Folgendes umfassen: das Typ-Feld; das Header-Inhalt-Feld; ein Anhangsgröße-Feld; und ein Länge-Feld.
  17. Verfahren, das Folgendes umfasst: Bestimmen eines Pakettyps für ein Paket, das von einer ersten Vorrichtung auf einer Verbindungsstrecke zu einer zweiten Richtung gesendet werden soll; Erzeugen des Pakets in der ersten Vorrichtung, wobei das Paket einen Paket-Header umfasst, der Paket-Header eine Header-Basis umfasst und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld umfasst, wobei das Typ-Feld einen Code umfasst, um den Pakettyp anzugeben, das Header-Inhalt-Feld einen Code umfasst, um anzugeben, welcher aus mehreren Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, wobei Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben; und Senden des Pakets auf der Verbindungsstrecke zu der zweiten Vorrichtung.
  18. System, das Mittel zum Ausführen des Verfahrens nach Anspruch 17 umfasst.
  19. Verfahren, das Folgendes umfasst: Empfangen eines Pakets an einem Anschluss einer ersten Vorrichtung von einer weiteren Vorrichtung über eine Verbindungsstrecke, wobei das Paket einen Paket-Header umfasst, der Paket-Header eine Header-Basis umfasst und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld umfasst; und Analysieren des Pakets basierend auf der Header-Basis; Bestimmen einer Länge des Pakets aus wenigstens dem Typ-Feld und dem Header-Inhalt-Feld; und Identifizieren eines speziellen Header-Inhaltsblocks, der in dem Header enthalten ist, basierend auf einem Wert des Header-Inhalt-Felds.
  20. System, das Mittel zum Ausführen des Verfahrens nach Anspruch 19 umfasst.
  21. System, das Folgendes umfasst: eine erste Vorrichtung; und eine zweite Vorrichtung, die mit der ersten Vorrichtung durch eine Verbindungsstrecke gekoppelt ist, wobei die zweite Vorrichtung eine Protokoll schaltungsanordnung umfasst zum: Bestimmen eines Pakettyps für ein Paket, das auf der Verbindungsstrecke gesendet werden soll; Erzeugen des Pakets, wobei das Paket einen Paket-Header umfasst, der Paket-Header eine Header-Basis umfasst und die Header-Basis ein Typ-Feld und ein Header-Inhalt-Feld umfasst, wobei das Typ-Feld den Pakettyp angibt, das Header-Inhalt-Feld angibt, welcher aus mehreren unterschiedlichen Header-Inhaltsblöcken in den Paket-Header mit der Header-Basis aufzunehmen ist, Informationen in Feldern der Header-Basis eine Gesamtlänge des Pakets angeben und die zweite Vorrichtung dazu dient, das Paket auf der Verbindungsstrecke zu der ersten Vorrichtung zu senden.
  22. System nach Anspruch 21, wobei die Verbindungsstrecke auf einem „Peripheral Component Interconnect Express‟(PCIe)-basierten Protokoll basiert und Pulsamplitudenmodulations(PAM)-Codierung benutzt.
  23. System nach Anspruch 22, wobei die erste und die zweite Vorrichtung Logik zum Kommunizieren über die Verbindungsstrecke in entweder einer Flit-Betriebsart oder einer Nicht-Flit-Betriebsart umfassen, die Flit-Betriebsart die PAM-Codierung benutzt, die Nicht-Flit-Betriebsart „Non-Return-To-Zero‟(NRZ)-Codierung benutzt, das Paket auf einem Paketformat der Flit-Betriebsart basiert und ein unterschiedliches Paketformat in der Nicht-Flit-Betriebsart verwendet wird.
  24. System nach Anspruch 21, wobei die zweite Vorrichtung einen Prozessor umfasst und die erste Vorrichtung eine Grafikkarte oder ein Festkörperlaufwerk umfasst.
DE102020125353.2A 2019-11-20 2020-09-29 Transaktionsschichtpaketformat Pending DE102020125353A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962938096P 2019-11-20 2019-11-20
US62/938,096 2019-11-20
US16/831,634 2020-03-26
US16/831,634 US11775470B2 (en) 2019-11-20 2020-03-26 Transaction layer packet format

Publications (1)

Publication Number Publication Date
DE102020125353A1 true DE102020125353A1 (de) 2021-05-20

Family

ID=71517584

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020125353.2A Pending DE102020125353A1 (de) 2019-11-20 2020-09-29 Transaktionsschichtpaketformat

Country Status (5)

Country Link
US (2) US11775470B2 (de)
KR (1) KR20210061921A (de)
CN (2) CN112825066A (de)
BR (1) BR102020019501A2 (de)
DE (1) DE102020125353A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191457B2 (en) * 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
CN113498596B (zh) * 2020-01-22 2022-10-11 华为技术有限公司 一种基于PCIe的数据传输方法及装置
CN113439268B (zh) * 2020-01-22 2023-01-06 华为技术有限公司 一种基于PCIe的数据传输方法、装置及系统
US20210240655A1 (en) * 2020-11-16 2021-08-05 Intel Corporation Source ordering in device interconnects
US20210255973A1 (en) * 2020-12-17 2021-08-19 Intel Corporation Stream routing and ide enhancements for pcie
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102509491B1 (ko) * 2021-04-13 2023-03-14 에스케이하이닉스 주식회사 PCIe 인터페이스 시스템 및 그 동작 방법
US11782497B2 (en) 2021-06-01 2023-10-10 SK Hynix Inc. Peripheral component interconnect express (PCIE) interface device and method of operating the same
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits
CN115102780B (zh) * 2022-07-15 2022-12-06 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922486A (en) * 1988-03-31 1990-05-01 American Telephone And Telegraph Company User to network interface protocol for packet communications networks
US6636912B2 (en) 1999-10-07 2003-10-21 Intel Corporation Method and apparatus for mode selection in a computer system
US7099318B2 (en) 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
NO2776466T3 (de) * 2014-02-13 2018-01-20
US9632862B2 (en) * 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
US20160283303A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
US11216396B2 (en) * 2016-09-29 2022-01-04 Intel Corporation Persistent memory write semantics on PCIe with existing TLP definition
US11232058B2 (en) * 2019-03-08 2022-01-25 Intel Corporation Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect

Also Published As

Publication number Publication date
CN112825066A (zh) 2021-05-21
US20240028551A1 (en) 2024-01-25
BR102020019501A2 (pt) 2021-05-25
KR20210061921A (ko) 2021-05-28
US20200226091A1 (en) 2020-07-16
CN114528241A (zh) 2022-05-24
US11775470B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112016003693T5 (de) Abschwächung von Pinfeldübersprechen
DE102018005753A1 (de) Serdes link training
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112014006183T5 (de) Vorrichtung, Verfahren und System für einen Schnellkonfigurationsmechanismus
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112017006523T5 (de) Retimer mit kurzer latenzzeit

Legal Events

Date Code Title Description
R130 Divisional application to

Ref document number: 102020008136

Country of ref document: DE