DE112018001088T5 - Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung - Google Patents

Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung Download PDF

Info

Publication number
DE112018001088T5
DE112018001088T5 DE112018001088.0T DE112018001088T DE112018001088T5 DE 112018001088 T5 DE112018001088 T5 DE 112018001088T5 DE 112018001088 T DE112018001088 T DE 112018001088T DE 112018001088 T5 DE112018001088 T5 DE 112018001088T5
Authority
DE
Germany
Prior art keywords
framing token
received
symbol
token
framing
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
DE112018001088.0T
Other languages
English (en)
Inventor
Debendra Das Sharma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112018001088T5 publication Critical patent/DE112018001088T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Aspekte der Ausführungsformen sind auf Systeme, Verfahren und Vorrichtungen zur Fehlerhandhabung für Daten gerichtet, die über eine Multi-Lane-Verbindung empfangen wurden, die mit einem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist. Das System kann eine Upstream-Vorrichtung, um ein Datenpaket über eine Multi-Lane-Verbindung zu übertragen, die mit dem PCIe-Protokoll kompatibel ist, und eine Downstream-Vorrichtung, die mit der Upstream Vorrichtung über eine Multi-Lane-Verbindung verbunden ist, enthalten, wobei die Downstream-Vorrichtung einen Empfänger umfasst, der eine Deframer-Logik umfasst. Die Deframer-Logik kann einen Framing-Fehler in einem empfangenen Datenpaket identifizieren, das auf einer Verbindung der Multi-Lane-Verbindung empfangen wurde; feststellen, dass ein oder mehr andere Datenpaket, die auf einer oder mehr anderen Verbindungen der Multi-Lane-Verbindung empfangen wurden, keinen Framing-Fehler darstellen; und das empfangene Datenpaket auf Grundlage des einen oder der mehr anderen Datenpakete verarbeiten, die auf der einen oder den mehr anderen Verbindungen empfangen wurden.

Description

  • GEBIET DER ERFINDUNG
  • Diese Offenbarung bezieht sich auf eine oder mehr Framing-Regeln für Fehler in Datenpaketen, die über eine Hochgeschwindigkeitsdatenverbindung empfangen werden.
  • ALLGEMEINER STAND DER TECHNIK
  • Große Rechenzentren nutzen zehntausende von Knoten, um kollaborativ an bestimmten Aufgaben zu arbeiten, wobei jeder Knoten mehrere Hochgeschwindigkeitsdatenverbindungen aufweist (wie etwa „Peripheral Component Interconnect Express“- (PCIe) Datenverbindungen). Die Knoten verlangen eine vorhersehbare Leistung über alle ihre Komponenten/Verbindungen hinweg, einschließlich solcher mit PCIe-Verbindungen. Als Teil der vorhersehbaren Leistungsgarantie verlangen einige Rechenzentrumskunden eine Bitfehlerrate (Bit Error Rate; BER), die wesentlich besser ist als die 10-12 BER, die Baseline-PCIe-Vorgaben verlangen.
  • Figurenliste
    • 1 illustriert eine Ausführungsform eines Blockdiagramms für ein Rechnersystem, das einen Mehrkernprozessor enthält.
    • 2 ist ein Schema- und Timingdiagramm, das eine Beispieltopologie mit zwei Retimem zwischen einer Upstream-Komponente und einer Downstream-Komponente nach Ausführungsformen dieser Offenbarung illustriert.
    • 3 ist ein Schemadiagramm eines Physische-Schicht-Schaltungsdiagramms, das eine Deframer-Schaltung und ein Fehlerlog nach Ausführungsformen dieser Offenbarung enthält.
    • 4A ist ein Prozessablaufdiagramm zur Handhabung eines Sync-Header-Fehlers, der über eine Multi-Lane-Verbindung nach Ausführungsformen dieser Offenbarung empfangen wurde.
    • 4B ist ein Prozessablaufdiagramm zur Handhabung eines Idle-Tokens, das über eine Multi-Lane-Verbindung nach Ausführungsformen dieser Offenbarung empfangen wurde.
    • 5A ist ein Prozessablaufdiagramm zur Handhabung eines Symbolfehlers in einem Framing-Token, das über eine Multi-Lane-Verbindung nach Ausführungsformen dieser Offenbarung empfangen wurde.
    • 5B ist ein Prozessablaufdiagramm zur Handhabung eines Fehlers in einem nachfolgenden Symbol eines SDP-Framing-Tokens nach Ausführungsformen dieser Offenbarung.
    • 5C ist ein Prozessablaufdiagramm zur Handhabung eines Fehlers in einem nachfolgenden Symbol eines End-Bad- (EDB) Framing-Tokens nach Ausführungsformen dieser Offenbarung.
    • 6 illustriert eine Ausführungsform eines Rechnersystems, das eine Verbindungsarchitektur enthält.
    • 7 illustriert eine Ausführungsform einer Verbindungsarchitektur, die einen geschichteten Stapel enthält.
    • 8 illustriert eine Ausführungsform einer Anfrage oder eines Pakets, die/das innerhalb einer Verbindungsarchitektur erzeugt oder empfangen werden soll.
    • 9 illustriert eine Ausführungsform eines Sender- und Empfängerpaars für eine Verbindungsarchitektur.
    • 10 illustriert ein Blockdiagramm einer Ausführungsform eines Mehrkernprozessors.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind zahlreiche spezifischen Einzelheiten festgelegt, wie etwa Beispiele spezifischer Typen von Prozessoren und Systemkonfiguration, spezifischen Hardwarestrukturen, spezifischen architektonischen und mikroarchitektonischen Details, spezifischen Registerkonfigurationen, spezifischen Anweisungstypen, spezifischen Systemkomponente, spezifischen Abmaßen/Höhen, spezifischen Prozessorpipelinestufen und Betrieb usw., um ein ausführliches Verständnis der vorliegenden Offenbarung bereitzustellen. Es ist für einen Fachmann jedoch offensichtlich, dass diese spezifischen Einzelheiten nicht eingesetzt werden müssen, um die vorliegende Offenbarung zu praktizieren. In anderen Fällen wurden bekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Code für beschriebene Algorithmen, spezifischer Firmwarecode, spezifische Verbindungsbedingung, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und Materialien, spezifische Compilerumsetzungen, spezifischer Ausdruck der Algorithmen im Code, spezifische Leitungsverringerungs- und Gatingtechniken/Logik und andere spezifische betriebliche Details des Computersystems nicht ausführlich beschrieben, um die vorliegende Offenbarung nicht unnötig zu verschleiern.
  • Wenn auch die folgenden Ausführungsformen mit Verweis auf Energieerhalt und Energieeffizienz in spezifischen integrierten Schaltungen beschrieben sein können, wie etwa in Rechnerplattformen oder Mikroprozessoren, gelten andere Ausführungsformen für andere Typen von integrierten Schaltungen und Logikvorrichtungen. Ähnliche Techniken und Lehren der hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung einen Nutzen ziehen könnten. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktopcomputersysteme oder Ultrabooks™ beschränkt. Und können außerdem in anderen Vorrichtungen verwendet werden, wie etwa in tragbaren Vorrichtungen, Tablets, anderen dünnen Notebooks, Vorrichtungen für Systeme auf einem Chip (SOC) und eingebettete Anwendungen. Einige Beispiele von tragbaren Vorrichtungen enthalten Handys, Internet-Protocol-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und tragbare PCs. Eingebettete Anwendungen enthalten typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzwerkcomputer (NetPC), Set-Top Boxen, Netzwerkhubs, Wide Area Network (WAN) Switches oder jedes andere System umfassen, das sie Funktionen und Operationen ausführen kann, die nachfolgend offenbart werden. Weiterhin sind die hierin beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechnervorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und -effizienz beziehen. Wie in der folgenden Beschreibung leicht deutlich wird, sind die hierin beschriebenen Ausführungsformen von Verfahren, Vorrichtungen und Systemen (egal, ob mit Verweis auf Hardware, Firmware, Software oder einer Kombination daraus) entscheidend für eine Zukunft ‚grüner Technologie‘, die mit Leistungsüberlegungen im Gleichgewicht steht.
  • Mit zunehmendem Fortschritt von Rechnersystemen werden die darin enthaltenen Bauteile komplexer. Daher steigt auch die Komplexität der Verbindungsarchitektur zur Verbindung und Kommunikation zwischen den Bauteilen an, um die Erfüllung der Bandbreitenanforderungen für optimalen Betrieb sicherzustellen. Weiterhin verlangen verschiedene Marktsegmente unterschiedliche Aspekte von Verbindungsarchitekturen, um die Marktbedürfnisse zu erfüllen. Beispielsweise verlangen Server höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, Gesamtleistung zugunsten von Energieeinsparung zu opfern. Dennoch ist es ein einziger Zweck der meisten Gewebe, die höchst mögliche Leistung mit maximaler Leistungseinsparung zu bieten. Nachfolgend wird eine Anzahl von Verbindungen besprochen, die potenziell von Aspekten der hierin beschriebenen Offenbarung profitieren würden.
  • Mit Verweis auf 1 ist eine Ausführungsform eines Blockdiagramms für ein Rechnersystem, das einen Mehrkernprozessor enthält, dargestellt. Der Prozessor 100 enthält jeden Prozessor oder jeder Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SOC) oder eine andere Vorrichtung, um Code auszuführen. Der Prozessor 100 enthält in einer Ausführungsform mindestens zwei Kerne - Kern 101 und 102, die asymmetrische Kerne oder symmetrische Kerne enthalten können (die illustrierte Ausführungsform). Prozessor 100 kann jedoch jede Anzahl von Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele von Hardware-Verarbeitungselementen enthalten: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardwarethread, einen Kern, und/oder jedes andere Element, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie etwa einen Ausführungszustand oder Architektonischen Zustand. In anderen Worten: ein Verarbeitungselement bezieht sich in einer Ausführungsform auf jede Hardware, die in der Lage ist, unabhängig mit Code assoziiert zu werden, wie etwa ein Software-Thread, ein Betriebssystem, eine Anwendung oder ein anderer Code. Ein physischer Prozessor (oder Prozessor-Socket) bezieht sich üblicherweise auf eine integrierte Schaltung, die potenziell jede Anzahl anderer Verarbeitungselemente enthält, wie Kerne oder Hardwarethreads.
  • Ein Kern bezieht sich oft auf eine Logik, die sich in einer integrierten Schaltung befindet, der in der Lage einst, einen unabhängigen architektonischen Zustand zu erhalten, wobei jeder unabhängig gehaltene architektonische Zustand mit mindestens einigen speziellen Ausführungsressourcen zusammenhängt. Im Gegensatz zu Kernen, bezieht sich ein Hardwarethread typischerweise auf jede Logik, die sich in einer integrierten Schaltung befindet, der in der Lage ist, einen unabhängigen architektonischen Zustand zu erhalten, wobei die unabhängig erhaltenem architektonischen Zustand gemeinsam auf Ausführungsressourcen zugreifen. Wie zu sehen ist, überlappt sich die Linie zwischen der Benennung eines Hardwarethreads und eines Kerns, wenn bestimmte Ressourcen geteilt und andere speziell einem architektonischen Zustand zugeordnet sind. Oft werden jedoch ein Kern und ein Hardwarethread durch ein Betriebssystem als einzelne logische Prozessoren betrachtet, wenn das Betriebssystem in der Lage ist, Funktionen einzelne auf jedem logischen Prozessor zu planen.
  • Ein physischer Prozessor 100, wie illustriert in 1, enthält zwei Kerne - Kern 101 und 102. Hier werden Kern 101 und 102 als symmetrische Kerne betrachtet, d. h. Kerne mit denselben Konfigurationen, funktionalen Einheiten und/oder Logik. In einer anderen Ausführungsform enthält Kern 101 einen Prozessorkern außerhalb der Reihenfolge, während der Kern 102 einen Prozessorkern in Reihenfolge enthält. Die Kerne 101 und 102 können jedoch einzeln aus jeder Art von Kern gewählt werden wie etwa einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der angepasst ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einen Kern, der angepasst ist, eine übersetzte Anweisungssatzarchitektur (ISA) auszuführen, einen co-designten Kern oder einen anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine Form von Übersetzung wie eine binäre Übersetzung verwendet werden, Code auf einem oder beiden Kernen zu planen oder auszuführen. Um jedoch die Erklärung voranzubringen, sind die funktionalen Einheiten, die in Kern 101 enthalten sind, ausführlicher nachfolgend beschrieben, da die Einheiten im Kern 102 in der dargestellten Ausführungsform in ähnlicher Weise funktionieren.
  • Wie dargestellt, enthält der Kern 101 zwei Hardwarethreads 101a und 101b, die auch als Hardwarethreadslots 101a und 101b bezeichnet werden können. Daher können Softwareeinheiten wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor 100 als vier separate Prozessoren betrachten, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig durchzuführen. Wie oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 101a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 101b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 102a assoziiert sein und ein vierter Thread kann mit Architekturzustandsregistern 102b assoziiert sein. Hier kann jedes der Architekturzustandsregister (101a, 101b, 102a, und 102b) als Verarbeitungselemente, ThreadSlots oder Thread-Einheiten bezeichnet sein, wie oben beschrieben. Wie illustriert, werden die Architekturzustandsregister 101a in Architekturzustandsregistern 101b repliziert, sodass einzelne Architekturzustände/-zusammenhänge in der Lage sind, für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert werden. In Kern 101 können andere kleinere Ressourcen wie Anweisungspointers und Umbenennungslogik im Allokator und Umbenennerblock 130 ebenfalls für die Threads 101a und 101b repliziert werden. Einige Ressourcen, wie etwa die Umsortierungspuffer in der Umsortierungs-/Rücknahmeeinheit 135, ILTB 120, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie etwa ein oder mehrere interne Allzweckregister, Seitentabellenbasisregister, Datencache auf niedriger Ebene und Daten-TLB 115, Ausführungseinheit(en) 140, und Abschnitte der Einheit außerhalb der Reihenfolge 135 sind potenziell vollständig geteilt.
  • Der Prozessor 100 enthält oft andere Ressourcen, die vollständig geteilt, durch Partitionierung geteilt oder speziell durch/für Verarbeitungselemente vorgesehen sein können. In 1 ist eine Ausführungsform eines rein exemplarischen Prozessors mit illustrativen logischen Einheiten/Ressourcen eines Prozessors illustriert. Beachten Sie, dass ein Prozessor jede dieser funktionieren Einheiten enthalten oder auslassen kann, sowie andere bekannte funktionale Einheiten, Logik oder Firmware, die nicht dargestellt sind, enthalten oder auslassen kann. Wie illustriert, enthält der Kern 101 einen vereinfachten, repräsentativen Out-of-Order-(OOO) Prozessorkern. Ein Prozessor innerhalb der Reihenfolge kann jedoch in anderen Ausführungsformen verwendet werden. Der OOO-Kern enthält einen Zweigzielpuffer 120 zum Vorhersagen von Zweigen, die ausgeführt/genommen werden sollen, und einen Anweisungsübersetzungspuffer (1-TLB) 120, um Adressübersetzungseinträge für Anweisungen zu speichern.
  • Der Kern 101 enthält ferner das Decodierungsmodul 125, verbunden mit der Abrufeinheit 120 zum Decodieren der abgerufenen Elemente. Die Abruflogik enthält in einer Ausführungsform einzelne Sequenzer, die mit Threadslots 101a bzw. 101b assoziiert sind. Üblicherweise ist der Kern 101 mit einer ersten ISA assoziiert, die Anweisungen definiert/spezifiziert, die auf Prozessor 100 ausführbar sind. Oft enthalten Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Abschnitt der Anweisung (bezeichnet als ein Opcode), der sich auf eine Anweisung oder Funktion bezieht, die ausgeführt werden soll/diese spezifiziert. Die Decoderlogik 125 enthält Schaltungen, die diese Anweisungen von ihren Opcodes erkannt und die decodierten Anweisungen in der Pipeline für die Verarbeitung weitergibt, wie durch die erste ISA definiert. Beispielsweise enthalten die Decoder 125, wie nachfolgend ausführlicher erklärt, eine Logik, die entworfen oder angepasst sind, um spezifische Anweisungen zu erkennen, wie etwa eine transaktionale Anweisung. Als Ergebnis der Erkennung durch die Decoder 125, ergreift die Architektur oder der Kern 101 spezifische vordefinierte Aktionen zur Durchführung von Aufgaben, die mit den geeigneten Anweisungen assoziiert sind. Es ist wichtig, zu beachten, dass jede der Aufgaben, Blocks, Funktionen und Verfahren, die hierin beschrieben sind, in Reaktion auf eine einzige oder auf mehrere Anweisungen ausgeführt werden können; einige davon können neue oder alte Anweisungen sein. Es ist zu beachten, dass Decoder 126 in einer Ausführungsform dieselbe ISA (oder einen Untersatz davon) erkennen. Alternativ erkennen in einer heterogenen Kernumgebung Decoder 126 eine zweite ISA (entweder ein Untersatz der ersten ISA oder einer speziellen ISA).
  • In einem Beispiel enthält der Allokator- und Umbenennerblock 130 einen Allokator, um Ressourcen, wie etwa Registerdateien, zu reservieren, um Anweisungsverarbeitungsergebnisse zu speichern. Die Threads 101a und 101b sind jedoch potenziell in der Lage, eine Ausführung außerhalb der Reihenfolge durchzuführen, wenn der Allokator- und Umbenennerblock 130 ebenfalls andere Ressourcen reservieren, wie etwa Umsortierungspuffer zum Verfolgen von Anweisungsergebnissen. Einheit 130 kann außerdem einen Registerumbenenner enthalten, um Programm-/Anweisungsreferenzregister auf andere Register umzubenennen, die intern in Prozessor 100 vorhanden sind. Die Umsortierungs-/Rücknahmeeinheit 135 enthält Bauteile, wie etwa die oben genannten Umsortierungspuffer, und Speicherpuffer, um eine Ausführung außerhalb der Reihenfolge und später die Rücknahme der Anweisungen, die außerhalb der Reihenfolge ausgeführt wurden, in Reihenfolge, zu unterstützen.
  • Der Planer- und Ausführungseinheit(en)-Block 140 in einer Ausführungsform enthält eine Planereinheit zur Planung von Anweisungen/Betrieb der Ausführungseinheiten. Beispielsweise ist eine Floating-Point-Anweisung auf einem Port einer Ausführungseinheit geplant, der eine verfügbare Floating-Point-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten assoziiert sind, sind ebenfalls enthalten, um Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Floating-Point-Ausführungseinheit, eine Integer-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencache auf niedriger Ebene und ein Datenübersetzungspuffer (D-TLB) 150 sind mit der oder den Ausführungseinheit(en) 140 verbunden. Der Datencache soll kürzlich verwendete/bediente Elemente verwenden, wie etwa Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll kürzliche virtuelle/zur physischen Adresse lineare Übersetzungen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier teilen sich die Kerne 101 und 102 den Zugriff auf ein Cache auf höherer Ebene oder mit größerem Abstand, wie etwa ein Cache auf zweiter Ebene, das mit einer On-Chip-Schnittstelle 110 assoziiert ist. Es ist zu beachten, dass sich höhere Ebene oder weiter weg auf Cacheebenen bezieht, die ansteigen oder sich weiter von der/den Ausführungseinheit(en) weg befinden. In einer Ausführungsform ist das Cache auf höherer Ebene ein Cache auf letzter Ebene in der Speicherhierarchie des Prozessors 100-wie etwa ein Datencache auf zweiter oder dritter Ebene. Ein Cache auf höherer Ebene ist jedoch nicht so beschränkt, da es mit einem Anweisungscache assoziiert sein oder dieses enthalten kann. Ein Trace-Cache -eine Art von Anweisungscache - kann stattdessen hinter dem Decoder 125 verbunden sein, um kürzlich decodierte Traces zu speichern. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d. h. eine allgemeine Anweisung, die durch die Decoder erkannt wird), die in eine Anzahl von Mikroanweisungen decodieren kann (Mikrofunktionen).
  • In der dargestellten Konfiguration enthält der Prozessor 100 auch das On-Chip-Schnittstellenmodul 110. Historisch wurde ein Speichercontroller, der nachfolgend ausführlicher beschrieben ist, in ein Rechnersystem eingeschlossen, das sich außerhalb des Prozessors 100 befindet. In diesem Szenario soll die On-Chip-Schnittstelle 110 mit Vorrichtungen außerhalb des Prozessors 100 kommunizieren, wie etwa dem Systemspeicher 175, einem Chipset (oft einschließlich einer Speicher-Controllernabe zum Verbinden des Speichers 175 und einer E/A-Controllernabe zum Verbinden der peripheren Vorrichtungen), einer Speicher-Controllernabe, einer Northbridge oder einer anderen integrierten Schaltung. Und in diesem Szenario kann der Bus 105 jede bekannte Verbindung enthalten, wie etwa einen Multidrop-Bus, eine Punkt-zu-Punkt-Verbindung, eine serielle Verbindung, einen parallelen Bus, einen kohärenten (z. B. cachekohärenten) Bus, eine Schichtenprotokollarchitektur, einen Differenzialbus und einen GTL-Bus.
  • Der Speicher 175 kann ausschließlich dem Prozessor 100 dienen oder mit anderen Vorrichtungen in einem System geteilt werden. Häufige Beispiele von Speicherarten 175 enthalten DRAM, SRAM, nichtflüchtiger Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass Vorrichtung 180 einen Grafikbeschleuniger, Prozessor oder eine Karte, die mit einer Speicher-Controllernabe verbunden ist, Datenspeicher, die mit einer E/A-Controllernabe verbunden sind, einem Drahtlosempfänger, eine Flash-Vorrichtung, einen Audiocontroller, einem Netzcontroller, oder einer eine andere bekannte Vorrichtung enthalten kann.
  • In letzter Zeit werden jedoch weitere Logik und Vorrichtungen in eine einzige Matrize integriert, wie etwa ein SOC, wobei jede dieser Vorrichtungen auf dem Prozessor 100 verkörpert sein können. Zum Beispiel ist in einer Ausführungsform eine Speicher-Controllernabe an demselben Paket und/oder derselben Matrize mit dem Prozessor 100. Hier enthält ein Abschnitt des Kerns (ein Abschnitt auf dem Kern) 110 einen oder mehrere Controller als Schnittstelle mit anderen Vorrichtungen wie ein Speicher 175 oder eine Grafikvorrichtung 180. Die Konfiguration, einschließlich einer Verbindung und Controllern als Schnittstelle mit solchen Vorrichtungen wird oft als Auf-Kern (oder Un-Kern-Konfiguration) bezeichnet. Beispielsweise enthält eine On-Chip-Schnittstelle 110 eine Ringverbindung für die On-Chip-Kommunikation und eine serielle Punkt-zu-Punkt Hochgeschwindigkeitsverbindung 105 für Kommunikation außerhalb des Chips. Dennoch können in der SOC-Umgebung noch mehr Vorrichtungen, wie etwa eine Netzschnittstelle, Koprozessoren, Speicher 175, Grafikprozessor 180 und alle anderen bekannten Computervorrichtungen/-schnittstellen auf einer einzigen Matrize oder einer integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 100 in der Lage, einen Compiler, eine Optimierung und/oder einen Übersetzercode 177 auszuführen, um den Anwendungscode 176 zu kompilieren, übersetzen und/oder optimieren, um die Vorrichtung und Verfahren wie hierin beschrieben oder die Schnittstelle damit zu unterstützten. Ein Compiler enthält oft ein Programm oder einen Satz Programme zur Übersetzung von Quelltext/-code in den Zieltext/- code. Üblicherweise erfolgt die Kompilierung des Programm-/Anwendungscodes mit einem Compiler in mehreren Phasen und Durchgängen, um Programmiersprachencode auf hoher Ebene in Maschine- oder Assembliersprachencode auf niedriger Ebene umzuwandeln. Dennoch können Compiler mit einem einzigen Durchgang dennoch für eine einfache Kompilierung verwendet werden. Ein Compiler kann alle bekannten Kompilierungstechniken verwenden und alle bekannten Compilerfunktionen durchführen, wie etwa lexische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codegeneration, Codetransformation und Codeoptimierung.
  • Größere Compiler enthalten oft mehrere Phasen, aber diese Phasen sind meistens innerhalb von zwei allgemeinen Phasen enthalten: (1) ein Frontend, d. h. allgemein wo die syntaktische Verarbeitung, semantische Verarbeitung und einige Transformationen/Optimierungen stattfinden können und (2) ein Backend, d. h. allgemein wo die Analyse, Transformationen, Optimierungen und Codeerzeugung stattfindet. Einige Compiler beziehen sich auf eine Mitte, die das Verschwimmen der Begrenzung zwischen einem FRONTEND und einem Backend eines Compilers illustriert. Als Ergebnis davon kann die Einfügung, Assoziation, Erzeugung oder andere Funktion eines Compilers in jeder der zuvor genannten Phasen oder Durchgänge erfolgen, sowie in allen anderen bekannten Phasen oder Durchgängen eines Compilers. Als illustratives Beispiel fügt ein Compiler potenziell Operationen, Aufrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung ein, wie etwa Einfügung von Aufrufen/Funktionen in einer Frontend-Phase der Kompilierung, gefolgt von der Transformation der Aufrufe/Funktionen in Code niedrigerer Ebene während einer Transformationsphase. Es ist zu beachten, dass während der dynamischen Kompilierung Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen sowie den Code zur Ausführung während der Runtime aufrufen kann. Als ein spezifisches illustratives Beispiel kann Binärcode (bereits kompilierter Code) dynamisch während der Runtime optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer wie etwa ein binärer Übersetzer, Code entweder statisch oder dynamisch zur Optimierung und/oder Übersetzung von Code. Daher kann sich die Ausführung von Code, Anwendungscode, Programmcode oder einer anderen Softwareumgebung auf Folgendes beziehen: (1) Ausführung eines oder mehrerer Compilerprogramm(e), Optimierung des Codeoptimierers oder Übersetzers, dynamisch oder statisch, zur Kompilierung von Programmcode, zum Erhalt von Softwarestrukturen, zur Ausführung anderer Funktionen, zum Optimieren von Code oder zum Übersetzen von Code; (2) Ausführung des Hauptprogrammcodes einschließlich der Funktionen/aufrufe, wie etwa Anwendungscode, der optimiert/kompiliert wurde; (3) Ausführung von anderem Programmcode, wie etwa Bibliotheken, die mit dem Hauptprogramm assoziiert sind, um die Softwarestrukturen zu erhalten, andere softwarebezogenen Funktionen durchzuführen oder Code zu optimieren; oder (4) eine Kombination davon. Wie oben erwähnt, legen die PCIe-Vorgaben einen BER von wenigstens 10-12 fest, was ausreicht, um bei Verwendung in Verbindung mit seinen Fehlererkennungs-/Wiederherstellungsmechanismen (zyklische Redundanzprüfung - CRC, Physische-Schicht-Framingschutz, Retry, Retraining usw.) zu garantieren, dass die Failures-in-Time- (FIT) Rate nahe 0 ist. Einige PCIe-Komponenten können entworfen sein, um das BER-Leistungsziel um mehrere Größenordnungen zu übertreffen, da die PCIe-Komponenten für den PVT und Kanalvariationen des Worst Case entworfen sein müssen. Diese Komponenten neigen dazu, hochwertige Komponenten zu sein, die aus Kostensicht oder aus Sicht der Verarbeitungsressourcen teuer sein können. PCIe-Komponenten, die den BER laut der Vorgaben kaum erfüllen, können einen Engpass darstellen, der es verhindert, eine zuverlässige Datenübertragung mit hoher Geschwindigkeit zu erreichen.
  • Beispielsweise können Bitfehler, die sich in den Framingbits der physischen Schicht manifestieren (wie etwa Sync-Header, Framing-Tokens) dazu führen, dass die Verbindung in den Wiederherstellungszustand eintritt, der mehrere Mikrosekunden andauern kann, bevor die Verbindung wieder den normalen Traffic aufnimmt. Dies kann in einer x16-Gen-4-Verbindung einmal alle 10 Sekunden erfolgen (der BER entspricht einem Fehler pro Minute pro Spur, was einem Fehler alle 4 Sekunden entspricht. Nach der Anwendung eines Deratings für Framingbits können wir einen Fehler in der Größenordnung aller 10 Sekunden erwarten). Designs, von denen erwartet wird, dass sie die BER-Ziele gerade soeben erfüllen, wenn die PCIe-Frequenz ansteigt und die Kanaleinschränkungen an ihre Grenzen kommen. Wenn auch die PCIe-Vorgabe stark empfiehlt, dass die Zeit bis zur Wiederherstellung durch einen Framing-Fehler weniger als 1 µs betragen sollte, brauchen die meisten Umsetzungen die gleichen Zeitdauer, die sie für die Schulung nach einem elektrischen Leerlaufereignis wie einem Niederenergie-L1-Zustand, benötigen würden. Das Problem wird bei Vorhandensein von Retimem verstärkt.
  • Diese Offenbarung beschreibt Framing-Regeln, die die Wirkungen von Framing-Fehlern verringern, die dazu führen, dass die PCIe-Verbindung in Multi-Lane-Verbindungen in die Wiederherstellung eintritt, während die Zuverlässigkeit durch die Triple-Bit-Flip-Erkennungsgarantie (und die daraus entstehende FIT-Rate) der PCIe-Verbindungen erhalten bleibt. Die hierin beschriebenen Systeme und Verfahren nutzen die redundanten Informationen aus den Multi-Lane-Verbindungen zur Korrektur von Bit-Flips in den Framingbits der physischen Schicht. Diese manifestieren sich, indem sie die Framing-Regelanforderungen für die Wiederherstellung und Neuschulung durch Nutzung der Redundanz in einer Multi-Lane-Verbindung nutzen, was durch einen Satz Konfigurationsregister ermöglicht werden kann. Die Systeme und Verfahren, die hierin beschrieben sind, verbessern die Verfügbarkeit der PCIe-Verbindung und führen infolgedessen zu einer vorhersehbaren Leistung durch wesentliche Verbesserung des Eintritts in die Wiederherstellung durch Framing-Fehler in Multi-Lane-Verbindungen, ohne die zugrundeliegende Verbindungszuverlässigkeit zu kompromittieren.
  • 2 ist ein Schema- und Timingdiagramm, das eine Beispieltopologie 200 mit zwei Retimem 204 und 206 zwischen einer Upstream-Komponente 202 und einer Downstream-Komponente 208 nach Ausführungsformen dieser Offenbarung illustriert. Die Upstream-Komponente 202 kann eine PCIe-kompatible Vorrichtung sein, wie etwa eine CPU oder eine andere Vorrichtung, die in der Lage ist, ein Datenpaket zu erzeugen und das Datenpaket über eine Datenverbindung zu übertragen, die mit dem PCIe-Protokoll kompatibel ist. Die Downstream-Komponente 208 kann eine periphere Komponente sein, die ein Datenpaket von einer Verbindung erhalten kann, die mit dem PCIe-Protokoll kompatibel ist. Es versteht sich, dass die Upstream-Komponente 202 und die Downstream-Komponente 208 Datenpakete über eine PCIe-Verbindung senden und empfangen können. Die Upstream-Komponente 202 kann eine Deframer-Logik 212 und ein Fehlerlog 214 enthalten. Die Downstream-Komponente 208 kann eine Deframer-Logik 224 und ein Fehlerlog 226 enthalten.
  • Die Topologie 200 kann einen oder mehr Retimer 204 und 206 enthalten. Ein Retimer 204 und 206 kann als ein Signalrepeater dienen, der auf der physischen Schicht läuft, um das Signal von der Upstream-Komponente 202 und/oder der Downstream-Komponente 208 feineinzustellen. Ein Retimer kann „Continuous Time Linear Equalization“ (CTLE), „Decision Feedback Equalization“ (DFE) verwenden und eine Impulsreaktionsequalisierung (Tx FIR EQ, oder einfach TxEQ) übertragen. Retimer sind transparent für die Datenverbindung und Transaktionsschichten, setzen jedoch die volle physische Schicht um. In Ausführungsformen können die Retimer 204 und/oder 206 eines oder mehr Deframer-Logik 216 und Fehlerlog 218 bzw. Deframer-Logik 220 und Fehlerlog 222 enthalten.
  • Die Upstream-Komponente 202 kann mit dem Retimer 204 durch eine Multi-Lane-PCIe-Verbindung 210 gekoppelt sein. Die Multi-Lane-PCIe-Verbindung ist in jeder Richtung in drei Linksegmente (LS) unterteilt, wie etwa das Downstream-LS 210a, 210b, und 210c.
  • Bei Multi-Lane-PCIe-Verbindungen wie etwa der Multi-Lane PCIe-Verbindung 210 können die Framing-Regeln, die in der PCIe-Vorgabe skizziert sind, entspannt werden, während die garantierte Triple-Bit-Flip-Erkennung erreicht wird, die durch die Vorgaben vorgegeben ist und ohne Zuverlässigkeitsprobleme/eine FIT-Erhöhung zu verursachen. Die folgende Liste von Framing-Verfahren kann in der Upstream-Komponente 202 und/oder der Downstream-Komponente 208 und/oder in den Retimern 204 und 206 umgesetzt werden. Ein Konfigurationsregister kann die Umsetzung jeder dieser Verfahren ermöglichen, um die Flexibilität der selektiven Entspannung einiger Regeln abhängig von Benutzungsmodellen zu ermöglichen.
  • 1) Fehler im Sync-Header: Beispiele für einen Sync-Header enthalten eine Korruption der Sync-Header-Bits (z. B. 00b, 11b oder den Erhalt eines geordneten Satzes ohne ein EDS-Token). Für Multi-Lane-Verbindungen können eine oder zwei Spuren, die diesen Fehler aufweisen (stellt 1 bis 4 Bit-Flips dar) ignoriert werden und die Datenübertragung kann dennoch als zuverlässig betrachtet werden, solange der Rest der Drähte (2+) den korrekten Sync-Header angibt. Wenn zwei oder mehr Drähte den „korrekten“ Sync-Header angeben und dennoch einen Fehler aufweisen bedeutet dies, dass mindestens 4 Bit-Flips existieren und ein massiver Fehler vorliegen kann, der dazu führt, dass ein EDS-Marker hinzugefügt oder weggelassen wird. In such Situationen kann eine Neuschulung ausgeführt werden. So können für eine x4-, x8- oder x16-Verbindung Sync-Header-Fehler in bis zu 2 Drähten sicher ignoriert werden.
  • 2) Fehler im IDL-Token: Dies ist der häufigste Fehler wenn sich die Verbindung im Leerlaufzustand befindet. Für den Leerlaufzustand sollten alle Spuren IDLs übertragen. Wenn ein IDL auf Spur 0 empfangen wird, können Nicht-IDL-Tokens, die auf den verbleibenden Spuren empfangen wurden, ignoriert werden (die Obergrenze kann auf bis zu 2 bis 3 Spuren gesetzt werden). In einer Multi-Lane-Verbindung starten ein Paket vom Typ Starttransaktionsschichtpaket (STP), ein Paket vom Typ Datenverbindungsschichtpaket (SDP) oder ein Paket vom Typ „End Bad“ (EDB) nicht in einer Nichtspur 0, wenn Spur 0 ein IDL-Token aufweist.
  • 3) Fehler im ersten Symbol des Framing-Tokens: Dieses Szenario verwendet aufeinander folgende Symbole zum Validieren des ersten Symbols, um einen Schluss bezüglich der Art des erhaltenen Pakets vorzunehmen. Die folgenden ersten Symbole werden für Framing-Tokens verwendet: IDL: 0000 0000; STP: 1111_xxx; SDP: 0000_1111; und EDB: 0000_0011. Auf alle diese ersten Symbole folgen nachfolgende Symbole, die zu Validierungszwecken verwendet werden können (in dem Fall einer Multi-Lane-Verbindung). Für IDL, ist das zweite Symbol 0000_0000. Für STP sollten die Länge des zweiten Symbols und die CRC-/-Parity-Felder sich in Symbol 1 und 2 und 3 entsprechen. Für SDP ist das zweite Symbol 0011_0101. Für EDB ist das zweite Symbol 0000_0011. Allgemeiner gesprochen, kann die Deframing-Logik den engsten Hammingabstand des ersten Symbols feststellen und nimmt an, dass dies ein entsprechendes Framing-Token ist. Die Deframing-Logik validiert den Schluss unter Verwendung des folgenden (zweiten) Symbols. Für STP/ IDL/ EDB, weitere nachfolgende (z. B. drittes Symbol), um das Framing-Token weiter zu validieren. Eine mögliche Liste solcher Zuordnungen mit einem einzelnen Bit-Flip ist in der folgenden Tabelle zu sehen:
    Anz. Bit-Flips 1. Symbol des Framing-Tokens mit Fehler (möglich in Spuren 0, 4, 8, 12) Andere Bedingungen Schluss
    1 0000_0001, 0000_0010, 0000_0100, 0000_1000, 0001_0000, 0010_0000, 0100_0000, 1000_0000 Symbol 2 = IDL IDL (0000_0000)
    (0000_0000)
    1 0000_1110, 0000_1101, 0000_1011, 0000_0111, 0001 1111, 0010 1111, 0100_1111, 1000_1111 Symbol 2= ACh SDP (0000_1111)
    (0011_0101)
    1 1110_xxxx, 1101_xxxx, 1011_xxxx, 0111_xxxx Len und CRC/Paritätsfeldübereinstimmung in Symbol 1, 2, 3 Übereinstimmung STP (1111_xxxx)
    1 0000_0111, 0000_1011, 0001_0011, 0010_0011, 0100_0011, 1000_0011 Symbol 2 = 0000_0011 EDB (0000_0011)
    2 Hammingabstand 2 von 0000_0000 Symbol 2 = IDL & Symbol 3 = IDL IDL
    2 Hammingabstand 2 von 1111_xxxx (nur erste 4 Bits) Len und CRC/Paritätsfeldübereinstimmung in Symbol 1, 2, 3 Übereinstimmung STP
    2 Hammingabstand 2 von 0000_1111 Symbol 2 = ACh und Symbol 3 != IDL SDP
    Alles andere außer dem STP, SDP, IDL, EDB Framing-Fehler
  • Unter Verwendung des IDL-Framing-Tokens als Beispiel kann ein erstes Symbol empfangen werden, das ein einzelnes Bit-Flip aufweist (z. B. 0000 0001). Es kann festgestellt werden, dass der nächste Hammingabstand 0000 0000 ist, was IDL entspricht. Der Schluss, dass das Framing-Token ein IDL ist, kann unter Verwendung eines nachfolgenden Symbols validiert werden, das 0000_0000 sein kann.
  • Unter Verwendung von SDP als Beispiel kann das erste Symbol empfangen werden, das ein einzelnes Bit-Flip aufweist (z. B. 0000_1110). Es kann festgestellt werden, dass der nächste Hammingabstand 0000_1111 ist, was SDP entspricht. So ist ein Schluss möglich, dass das Framing-Token SDP ist. Der Schluss kann unter Verwendung eines nachfolgenden Symbols validiert werden unter Verwendung eines nachfolgenden Symbols validiert, das ACh (0011_0101) sein kann. Ein drittes Symbol kann ebenfalls verwendet werden, um das EDB-Framing-Token zu validieren.
  • 4) Wenn das erste Symbol SDP ist und das zweite Symbol bei einem Hammingabstand von 1 oder 2 von ACh liegt, ist anzunehmen, dass es SDP ist.
  • 5) Wenn das erste Symbol EDB ist und zwei der nächsten drei Symbole EDB ist, ist anzunehmen, dass es EDB ist.
  • Für Retimer mit mehreren Spuren verursachen Fehler im Framing-Token keinen Eintritt in die Wiederherstellung. Der Retimer muss SKPs zur Taktkompensierung hinzufügen/löschen. Er kann den korrekten Sync-Header erschließen, indem er einfach eine Mehrheitswahl durchführt, um eine Abweichung in bis zu zwei Spuren zu ignorieren (stellt 1 bis 4 Bit-Flips dar) und noch immer auf der sicheren Seite zu sein, solange der Rest der Spuren (2+) den korrekten und identischen Sync-Header ausgibt. Während die vorgeschlagene Erfindung die Framing-Fehleranforderungen für Multi-Lane-Verbindungen entspannt, muss das Spurfehlerlog die tatsächlichen Fehler, die aufgetreten sind, bis zu der Spur, auf der sie aufgetreten sind, widerspiegeln.
  • 3 ist ein Schemadiagramm einer Physische-Schicht-Schaltung 302, die eine Deframer-Schaltung 304 und ein Fehlerlog 306 nach Ausführungsformen dieser Offenbarung enthält. Die Physische-Schicht-Schaltung 302 ist Teil einer Physische-Schicht-Schnittstelle zwischen den Transaktions- und Verbindungsschichten 314 und der physischen Codierungsunterschicht 316 einer PCIe-konformen Vorrichtung 300 (Upstream- oder Downstream-Vorrichtung und Sender oder Empfänger). Die Physische-Schicht-Schaltung kann ein „Linear Feedback Shift Register“ (LFSR) 308, einen Deskew-Puffer 310, ein „Lane Reversal and Degradation Element“ (LRDE) 312 und den Deframer 304 und das Fehlerlog 306 enthalten. Ein Datenpaket kann durch den Deframer 304 durch das LFSR 308, den Deskew-Puffer 310 und das LRDE 312 enthalten werden.
  • Die Deframer-Schaltung 304 verwendet eine redundante Information, die in Paketen vorhanden ist, die über Multi-Lane-Verbindungen empfangen werden, um Bit-Flips in den Framingbits der physischen Schicht zu korrigieren. Die Deframer-Schaltung 304 kann einen Satz Konfigurationsregister enthalten, um Fehlerprüfungen und Regelhandhabung Spur um Spur auszuführen. Die Deframer-Schaltung 304 kann Fehler durch ein verbundenes Fehlerlog 306 melden. Die Deframer-Schaltung 304 kann eine oder mehr aus den Fehlerhandhabungsoperationen ausführen, die nachfolgend in 4A-4B und 5A-5C beschrieben sind.
  • 4A ist ein Prozessablaufdiagramm 400 zur Handhabung eines Sync-Header-Fehlers, der über eine Multi-Lane-Verbindung mit einer Breite von mehr oder gleich 4 nach Ausführungsformen dieser Offenbarung empfangen wurde. Ein Datenpaket kann von über eine Multi-Lane-Verbindung empfangen werden (402). Es kann festgestellt werden, ob ein Sync-Header-Fehler in weniger als drei der Spuren der Multi-Lane-Verbindung existiert (404). Wenn weniger als drei der Spuren einen Sync-Header-Fehler darstellen, kann der Sync-Header-Fehler ignoriert werden (406). Das Paket kann nach der Art des Datenpakets verarbeitet und/oder übertragen werden (408). Der Fehler kann in ein Fehlerlog gemeldet werden (410). Wenn drei oder mehr Spuren einen Sync-Header-Fehler darstellen, veranlasst der Empfänger eine Verbindung, in die Wiederherstellung einzutreten (412). Der Fehler kann geloggt werden (410).
  • 4B ist ein Prozessablaufdiagramm zur Handhabung eines Idle-Token-Fehlers, der über eine Multi-Lane-Verbindung mit einer Breite von mehr oder gleich 4 nach Ausführungsformen dieser Offenbarung empfangen wurde. Ein Framing-Token kann von über eine Multi-Lane-Verbindung empfangen werden (452). Es kann festgestellt werden, ob eine IDL auf Symbol 0 des Framing-Tokens der Multi-Lane-Verbindung empfangen wird (454). Wenn eine IDL auf dem ersten Symbol des Framing-Token empfangen wird, das sich in Spur 0, 4, 8 oder 12 befindet, können alle nachfolgenden Spuren in derselben Symbolzeit als in dem IDL liegend betrachtet werden (456). Wenn das erste Symbol des Framing-Tokens IDL ist, können alle nachfolgenden Spuren, die nicht IDL-Bits sind, als IDL behandelt werden, und soweit es nachfolgende Symbole gibt, die nicht als IDL vorliegen, kann der Fehler in einem Fehlerlog (458) aufgezeichnet werden.
  • Wenn ein IDL nicht auf Symbol 0 empfangen wird, kann festgestellt werden, ob ein Fehler in dem ersten Symbol existiert (460). Wenn ein Fehler in dem ersten empfangenen Symbol existiert, kann die Verbindung an die Wiederherstellung gesendet werden (462). Der Fehler kann geloggt werden (458). Wenn keine Fehler erkannt werden, kann das Paket nach den Paketinformationen verarbeitet werden (464).
  • 5A ist ein Prozessablaufdiagramm 500 zur Handhabung eines Symbolfehlers in einem Framing-Token, das über eine Multi-Lane-Verbindung nach Ausführungsformen dieser Offenbarung empfangen wurde. Eine Deframer-Schaltung kann ein Datenpaket von über eine Multi-Lane-Verbindung (z. B. eine Multi-Lane-Verbindung, die mit dem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist) empfangen (502). Die Deframer-Schaltung kann feststellen, dass ein Fehler in einem ersten Symbol eines Framing-Tokens vorhanden ist (504). Die Deframer-Schaltung kann einen nächsten Hammingabstand zwischen dem empfangenen ersten Symbol und einem bekannten ersten Symbol für ein bekanntes Framing-Token identifizieren (506).
  • Beispielsweise kann die Deframer-Schaltung feststellen, dass ein empfangenes Paket ein erstes Framing-Token mit einem Fehler (z. B. einem Bit-Flip) auf einem ersten Symbol enthält. Für ein empfangenes erstes Symbol 0000_1110 kann ein nächster Hammingabstand ein einzelnes Bit auf 0000_1111 sein, was einem SDP entsprechen würde. Nach Feststellung des nächsten Hammingabstands, kann die Deframing-Schaltung schließen, dass das korrekte Symbol 0000_1111 sein sollte, was einem SDP-Framing-Token entspricht (508). Die Deframer-Schaltung kann den Schluss unter Verwendung eines zweiten Symbols des Framing-Tokens validieren (510). Für einen Schluss eines SDP-Typ-Pakets kann die Deframer-Schaltung feststellen, dass das zweite Token gleich ACh ist. Der Deframer kann das Paket dann als den bekannten Pakettyp behandeln (512). Wenn der Deframer feststellt, dass das zweite Symbol den Schluss nicht validiert, kann die Deframer-Schaltung ein drittes Symbol zur Validierung verwenden. Wenn keine Validierung erfolgt, sorgt der Deframer dafür, dass die Verbindung in die Wiederherstellung eintritt.
  • In Ausführungsformen kann der Fehler auf dem ersten Symbol des Framing-Tokens zwei Bit-Flips enthalten. Die Deframing-Schaltung kann unter Verwendung des nächsten Hammingabstands zu einem bekannten Bit noch immer einen Schluss ziehen, würde jedoch sowohl die zweiten als auch die dritten Bits verwenden, um den Schluss zu validieren.
  • Beispielsweise kann für ein empfangenes erstes Symbol 0001_1101 die Deframer-Schaltung auf Grundlage eines nächsten Hammingabstands schließen, dass das korrekte erste Symbol 0000_1111 und vom Typ SDP sein sollte. Der Deframer kann dann den Schluss validieren, indem er feststellt, dass das zweite Symbol Ach ist und das dritte Symbol nicht IDL ist. Die Deframer-Schaltung kann das Datenpaket verarbeiten, als wäre es SDP.
  • [5B Hammingabstand für das 2. Symbol ist unnötig - was wir sagen sollten ist, dass, wenn das erste Symbol SDP ist - dann können wir jeden Fehler im 2. Symbol ignorieren (d. h. außer ACh) - es als ein SDP-Token behandeln und den Fehler für das 2. Symbol loggen. Bitte das Diagramm und den Text entsprechend ändern.] In Ausführungsformen kann der Deframer feststellen, dass das erste Symbol korrekt ist, aber dass ein Bit-Flip auf einem zweiten Symbol existiert. 5B ist ein Prozessablaufdiagramm 550 zur Handhabung eines Fehlers in einem nachfolgenden Symbol eines SDP-Framing-Tokens nach Ausführungsformen dieser Offenbarung. Die Deframer-Schaltung kann ein Paket mit einem Framing-Token an einem Empfänger von über einer Verbindung empfangen, die mit einem PCIe-Protokoll kompatibel ist (552). Die Deframer-Schaltung kann auf einem ersten empfangenen Symbol feststellen, dass das Framing-Token ein Framing-Token vom Typ SDP ist (554). Die Deframer-Schaltung kann einen Fehler in einem zweiten Symbol des empfangenen Framing-Tokens identifizieren (556).
  • Die Deframer-Schaltung kann einen nächsten Hammingabstand zwischen dem empfangenen zweiten Symbol und einem zweiten Symbol, das mit einem SDP-Framing-Token assoziiert ist, identifizieren (558). Die Deframer-Schaltung kann auf Grundlage des Hammingabstands des empfangenen zweiten und des zweiten Symbols eines SDP-Framing-Tokens schließen, dass das empfangene Framing-Token ein Typ-SDP-Framing-Token ist (560). Die Deframer-Schaltung kann den Schluss unter Verwendung eines empfangenen nachfolgenden Symbols (z. B. zweites, drittes usw.) validieren (652). Die Deframer-Schaltung kann das Paket auf Grundlage des geschlossenen bekannten Framing-Tokens verarbeiten (564).
  • [Es ist EDB] 5C ist ein Prozessablaufdiagramm 570 zur Handhabung eines Fehlers in einem nachfolgenden Symbol eines End-Bad- (EDB) Framing-Tokens nach Ausführungsformen dieser Offenbarung. Die Deframer-Schaltung kann ein Paket mit einem Framing-Token an einem Empfänger von über einer Verbindung empfangen, die mit einem PCIe-Protokoll kompatibel ist (572). Die Deframer-Schaltung kann über ein erstes Symbol feststellen, dass das Framing-Token einem EDB-Paket entspricht (574). Die Deframer-Schaltung kann einen Fehler in einem nachfolgenden Framing-Token Symbol identifizieren (576). Die Deframer-Schaltung kann feststellen, dass zwei oder mehr nachfolgende Framing-Token Symbole einem EDB Framing-Token entspricht (578). Die Deframer-Schaltung kann auf Grundlage von zwei oder mehr nachfolgenden Symbolen, die einem EDB-Framing-Token entsprechen, schließen, dass das empfangene Framing-Token ein EDB-Framing-Token ist (580). Die Deframer-Schaltung kann das Paket als Paket vom Typ EDB verarbeiten (582).
  • Eine Verbindungsgewebearchitektur erhält die periphere Komponentenverbindungs- (PCI) Express- (PCIe) Architektur. Ein Hauptziel von PCIe ist es, Komponenten und Vorrichtungen von verschiedenen Händlern die Zusammenarbeit in einer offenen Architektur mehrere Marktsegmente, Clients (Desktops und Mobil), Server (Standard und Enterprise) und eingebettete und Kommunikationsvorrichtungen überspannend zu ermöglichen. PCI Express ist eine Allzweck-E/A-Verbindung mit hoher Leistung, die für eine große Vielzahl künftiger Rechner- und Kommunikationsplattformen definiert wurde. Einige PCI-Attribute, wie etwa sein Verwendungsmodell, die Lastspeicherarchitektur und Softwareschnittstellen, wurden durch alle Revisionen erhalten, während vorherige parallele Busumsetzungen durch eine stark skalierbare, vollständig serielle Schnittstelle ersetzt wurde. Die neuesten Versionen von PCI Express nutzen die Vorteile in Punkt-zu-Punkt Verbindungen, switchbasierter Technologie und paketisiertem Protokoll zum Bereitstellen neuer Leistungsebenen und Funktionen. Leistungsmanagement, Quality Of Service (QoS), Hot-Plug/Hot-Swap-Support, Datenintegrität und Fehlerbehandlung sind unter den fortgeschrittenen Funktionen, die durch PCI Express unterstützt werden.
  • Mit Verweis auf 6 ist eine Ausführungsform eines Gewebes, das aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz Komponenten verbinden, illustriert. System 600 enthält Prozessor 605 und Systemspeicher 610, der mit der Controllernabe 615 verbunden ist. Prozessor 605 enthält ein beliebiges Verarbeitungselement, wie etwa einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Prozessor 605 ist mit der Controllernabe 615 über den vorderseitigen Bus (FSB) 606 verbunden. In einer Ausführungsform ist FSB 606 eine serielle Punkt-zu-Punkt-Verbindung wie nachfolgend beschrieben. In einer anderen Ausführungsform enthält die Verbindung 606 enthält eine serielle, differenzielle Verbindungsarchitektur, die verschiedenen Verbindungsstandards entspricht.
  • Der Systemspeicher 610 enthält eine beliebige Speichervorrichtung wie einen Direktzugriffsspeicher (RAM), nichtflüchtigen (NV) Speicher oder anderen Speicher, auf den Vorrichtungen in System 600 zugreifen können. Der Systemspeicher 610 ist mit der Controllernabe 615 über die Speicherschnittstelle 616 verbunden. Beispiele für eine Speicherschnittstelle enthalten eine Double-Data-Rate- (DDR)-Speicherschnittstelle, eine Dualkanal-DDR-Speicherschnittstelle, und eine dynamische RAM- (DRAM) Speicherschnittstelle.
  • In einer Ausführungsform ist die Controllernabe 615 eine Root-Nabe, ein Root-Komplex oder ein Root-Controller in einer Peripheral Component Interconnect Express (PCIe oder PCIE) Verbindungshierarchie. Beispiele der Controllernabe 615 enthalten einen Chipsatz, eine Speicher-Controllernabe (MCH), eine Northbridge, eine Verbindungs-Controllernabe (ICH), eine Southbridge sowie einen Root-Controller/eine Root-Nabe. Oft bezieht sich der Begriff Chipsatz auf zwei physisch separate Controllernaben, d. h. eine Speicher-Controllernabe (MCH), die mit einer Verbindungs-Controllernabe (ICH) verbunden ist. Es ist zu beachten, dass aktuelle Systeme häufig die MCH enthalten, die in Prozessor 605 integriert ist, während der Controller 615 mit E/A-Vorrichtungen in ähnlicher Weise wie unten beschrieben kommunizieren soll. In einigen Ausführungsformen ist Peer-to-Peer-Routing optional durch Root-Komplex 615 unterstützt.
  • Hier ist die Controllernabe 615 mit einem Switch/Bridge 620 durch eine serielle Verbindung 619 verbunden. Eingabe-/Ausgabemodule 617 und 621, die auch als Schnittstellen/Ports 617 und 621 bezeichnet werden können, enthalten/setzen einen Schichtenprotokollstapel um, um die Kommunikation zwischen der Controllernabe 615 und dem Switch 620 bereitzustellen. In einer Ausführungsform sind mehrere Vorrichtungen in der Lage, mit dem Switch 620 verbunden zu werden.
  • Der Switch/Bridge 620 routet Pakete/Nachrichten von der Vorrichtung 625 stromaufwärts, d. h. eine Hierarchie nach oben in Richtung eines Rootkomplex, zur Controllernabe 615 und stromabwärts, d. h. eine Hierarchie nach unten weg von einem Rootcontroller, von dem Prozessor 605 oder Systemspeicher 610 zur Vorrichtung 625. Switch 620 wird in einer Ausführungsform als logische Baugruppe mehrerer virtueller PCI-to-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 625 enthält eine beliebige interne oder externe Vorrichtung oder Komponente zur Verbindung mit einem elektronischen System, wie etwa eine E/A-Vorrichtung, einen Network Interface Controller (NIC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DVD ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal Serial Bus (USB) Vorrichtung, einen Scanner und andere Eingabe-/Ausgabevorrichtungen. Oft wird im Sprachgebrauch des PCIe wie etwa die Vorrichtung als ein Endpunkt bezeichnet. Wenn auch nicht speziell dargestellt, kann die Vorrichtung 625 eine PCIe zu PCI/PCI-X Bridge enthalten, um PCI-Vorrichtungen aus Alt- oder anderen Versionen zu unterstützen. Endpunktvorrichtungen in PCIe sind häufig als Altsystem, PCIe, oder in den Root-Komplex integrierte Endpunkte bezeichnet.
  • Der Grafikbeschleuniger 630 ist ebenfalls mit der Controllernabe 615 über die serielle Verbindung 632 verbunden. In einer Ausführungsform ist der Grafikbeschleuniger 630 mit einer MCH verbunden, die mit einer ICH verbunden ist. Der Switch 620, und dementsprechend die E/A-Vorrichtung 625 wird dann mit dem ICH verbunden. Die E/A-Module 631 und 618 sollen außerdem einen Schichtenprotokollstapel umsetzen, um zwischen dem Grafikbeschleuniger 630 und der Controllernabe 615 zu kommunizieren. Ähnlich wie die obige MCH-Diskussion kann ein Grafikcontroller oder der Grafikbeschleuniger 630 selbst in den Prozessor 605 integriert sein.
  • Bezüglich 7 ist eine Ausführungsform eines geschichteten Protokollstapels, der mit HPI assoziiert ist, illustriert. Der Schichtenprotokollstapel 700 enthält jede Form von Schichtenkommunikationsstapel, wie einen Quick Path Interconnect (QPI) Stapel, einen PCie-Stapel, einem Rechnerverbindungsstapel der nächsten Generation mit hoher Leistung oder andere Schichtenstapel. Auch, wenn die Diskussion direkt nachfolgend mit Verweis auf 6 bis 9 in Zusammenhang mit einem PCIe-Stapel stehen, können dieselben Konzepte für andere Verbindungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 700 ein PCIe-Protokollstapel, der die Transaktionsschicht 705, Verbindungsschicht 710 und physische Schicht 720 enthält. Eine Schnittstelle wie die Schnittstellen 617, 618, 621, 622, 626 und 631 in 6 kann als Kommunikationsprotokollstapel 700 dargestellt sein. Die Darstellung als ein Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, das/die einen Protokollstapel umsetzt/enthält.
  • PCI Express verwendet Pakete zur Kommunikation von Informationen zwischen Komponenten. Pakete werden in der Transaktionsschicht 705 und der Datenverbindungsschicht 710 erzeugt, um die Informationen von der übertragenden Komponente zu der empfangenden Komponente zu tragen. Wenn die gesendeten Pakete durch die anderen Schichten fließen, werden sie um weitere Informationen erweitert, die notwendig sind, Pakete in diesen Schichten zu handhaben. Auf der Empfangsseite erfolgt der umgekehrte Ablauf und die Pakete werden von ihrer Darstellung der physischen Schicht 720 auf die Darstellung der Datenverbindungsschicht 710 und schließlich (für Transaktionsschichtpakete) in die Form, die durch die Transaktionsschicht 705 der empfangenden Vorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 705 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Verbindungsarchitektur bereitstellen, wie etwa einer Datenverbindungsschicht 710 und einer physischen Schicht 720. In dieser Hinsicht ist eine Hauptverantwortung der Transaktionsschicht 705 die Montage und Demontage von Paketen (d. h. Transaktionsschichtpakete oder TLPs). Die Transaktionsschicht 705 verwaltetet üblicherweise die guthabenbasierte Flusskontrolle für TLPs. PCIe setzt geteilte Transaktionen um, d. h. Transaktionen, in denen Anfrage und Antwort zeitlich getrennt sind, wodurch eine Verbindung anderen Traffic tragen kann, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Weiterhin nutzt PCIe guthabenbasierte Flusssteuerung. In diesem Plan bewirbt eine Vorrichtung eine anfängliche Guthabenmenge für jeden der Empfangspuffer in der Transaktionsschicht 705. Eine externe Vorrichtung am gegenüberliegenden Ende der Verbindung, wie die Controllernabe 615 in 6, zählt die Guthabenmenge, die durch jedes TLP verbraucht wird. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Guthabengrenze nicht überschreitet. Nach Empfang einer Antwort wird eine Guthabenmenge wiederhergestellt. Ein Vorteil eines Guthabenplans ist, dass die Latenz der Guthabenrückkehr sich nicht auf die Leistung auswirkt, sofern die Guthabengrenze nicht erreicht wird.
  • In einer Ausführungsform enthalten vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe-/Ausgabeadressraum und einen Meldungsadressraum. Speicherraumtransaktionen enthalten eine oder mehrere Leseanfragen und Schreibanfragen zur Übertragung von Daten an/von einem speicherzugeordneten Ort. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei verschiedene Adressformate zu verwenden, z. B. ein kurzes Adressformat wie eine 32-bit-Adresse, oder ein langes Adressformat, wie eine 64-bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen für den Konfigurationsraum enthalten Leseanfragen und Schreibanfragen. Meldungsraumtransaktionen (oder einfach Nachrichten) sind definiert, um In-Band-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher assembliert in einer Ausführungsform die Transaktionsschicht 705 Paketheader/-ladung 706. Das Format für die aktuellen Paketheader/-ladungen können in der PCIe-Vorgabe auf der PCIe-Vorgabewebsite gefunden werden.
  • Mit schnellem Verweis auf 8 ist eine Ausführungsform einer PCIe-Transaktionsbeschreibung illustriert. In einer Ausführungsform ist die Transaktionsbeschreibung 800 ein Mechanismus zum Tragen der Transaktionsinformationen. Diesbezüglich unterstützt die Transaktionsbeschreibung 800 die Identifizierung von Transaktionen in einem System. Andere potenzielle Verwendungen enthalten Trackingmodifizierungen von Standardtransaktionssortierung und Assoziation der Transaktion mit Kanälen.
  • Die Transaktionsbeschreibung 800 enthält das globale Kennungsfeld 802, Attributefeld 804 und Kanalkennungsfeld 806. In dem illustrierten Beispiel ist das globale Kennungsfeld 802 als ein lokales Transaktionskennungsfeld 808 und Quellkennungsfeld 810 umfassend dargestellt. In einer Ausführungsform ist die globale Transaktionskennung 802 für alle ausstehenden Anfragen eindeutig.
  • Nach einer Umsetzung ist das lokale Transaktionskennungsfeld 808 ein Feld, das durch einen anfragenden Agenten erzeugt wurde, und ist eindeutig für alle ausstehenden Anfragen, die einen Abschluss des anfragenden Agenten verlangen. Weiterhin identifiziert in diesem Beispiel die Quellkennung 810 eindeutig den anfragenden Agenten innerhalb einer PCIe-Hierarchie. Dementsprechend bietet das Feld der örtlichen Transaktionskennung 808 zusammen mit der Quell-ID 810 eine globale Identifizierung einer Transaktion innerhalb einer Hierarchiedomäne.
  • Das Attributefeld 804 gibt Eigenschaften und Beziehungen der Transaktion vor. Diesbezüglich wird das Attributefeld 804 potenziell verwendet, weitere Informationen bereitzustellen, die die Modifizierung der Standardhandhabung von Transaktionen erlaubt. In einer Ausführungsform enthält das Attributefeld 804 ein Prioritätsfeld 812, reserviertes Feld 814, Sortierungsfeld 816 und No-Snoop-Feld 818. Hier kann das Prioritäts-Unterfeld 812 durch einen Initiator modifiziert werden, um einer Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 814 bleibt für die Zukunft oder für händlerdefinierte Verwendung reserviert. Mögliche Verwendungsmodelle unter Verwendung von Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds umgesetzt werden.
  • In diesem Beispiel wird das Sortierungsattributfeld 816 verwendet, um optionale Informationen bereitzustellen, die die Art von Sortierung übermitteln, die Standardsortierregeln modifizieren können. Nach einer Beispielumsetzung bezeichnet ein Sortierungsattribut „0“ Standardsortierungsregeln, während ein Sortierungsattribut „1“ entspannte Sortierung bezeichnet, wobei Schreibvorgänge andere Schreibvorgänge in derselben Richtung überholen können, und Leseabschlüsse Schreibvorgängen in derselben Richtung überholen können. Das Snoop-Attributfeld 818 wird verwendet, um festzustellen, ob Transaktionen im Voraus betrachtet werden. Wie dargestellt, identifiziert das Kanal-ID-Feld 806 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 710, auch bezeichnet als Datenverbindungsschicht 710, handelt als Zwischenstufe zwischen der Transaktionsschicht 705 und der physischen Schicht 720. In einer Ausführungsform ist eine Zuständigkeit der Datenverbindungsschicht 710 die Breitstellung eines zuverlässigen Mechanismus für den Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung. Eine Seite der Datenverbindungsschicht 710 nimmt TLPs an, die durch die Transaktionsschicht 705 assembliert wurden, wendet die Paketsequenzkennung 711 an, d. h. eine Identifizierungsnummer oder Paketnummer, berechnet und wendet einen Fehlererkennungscode an, d. h. CRC 712, und überträgt die modifizierten TLPs auf die physische Schicht 720 zur Übertragung über eine externe Vorrichtung.
  • Physische Schicht
  • In einer Ausführungsform enthält die physische Schicht 720 den logischen Unterblock 721 und elektrischen Unterblock 722 für die physische Übertragung eines Pakets an eine externe Vorrichtung. Hier ist der logische Unterblock 721 zuständig für die „digitalen“ Funktionen der physischen Schicht 721. Diesbezüglich enthält ein logischer Unterblock enthält einen Übertragungsabschnitt zur Vorbereitung ausgehender Informationen zur Übertragung durch den physischen Unterblock 722, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie an die Verbindungsschicht 710 weitergegeben werden.
  • Der physische Block 722 enthält einen Sender und einen Empfänger. Der Sender wird mit einem logischen Unterblock 721 mit Symbolen versorgt, den der Sender serialisiert und an eine externe Vorrichtung überträgt. Der Empfänger wird von einer externen Vorrichtung mit serialisierten Symbolen versorgt und wandelt die empfangenen Signale in einen Bitstream um. Der Bitstream wird entserialisiert und dem logischen Unterblock 721 zugeführt. In einer Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, wobei Zehnbitsymbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 723 zu umgeben. Weiterhin stellt in einem Beispiel der Empfänger auch eine Symboluhr bereit, die von dem eingehenden seriellen Stream abgerufen werden.
  • Wie oben angegeben, werden zwar die Transaktionsschicht 705, Verbindungsschicht 710 und physische Schicht 720 mit Verweis auf eine spezifische Ausführungsform eines PCIe-Protokollstapels besprochen, aber ein Schichtenprotokollstapel ist nicht darauf beschränkt. In der Tat kann jedes Schichtenprotokoll eingeschlossen/umgesetzt sein. Als Beispiel enthält ein Port/eine Schnittstelle, der/die als Schichtenprotokoll dargestellt ist: (1) eine erste Schicht zum Assemblieren von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Übertragen der Pakete, d. h. eine physische Schicht. Als spezifisches Beispiel wird ein Schichtenprotokoll einer Common Standard Interface (CSI) verwendet.
  • Als nächstes wird mit Verweis auf 9 eine Ausführungsform eines seriellen PCIe-Punkt-zu-Punkt-Gewebes illustriert. Wenn auch eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt Verbindung illustriert ist, ist eine serielle Punkt-zu-Punkt Verbindung nicht darauf eingeschränkt, da sie jeden Übertragungspfad für die Übertragung serieller Daten enthält. In der dargestellten Ausführungsform enthält eine grundlegende PCIe-Verbindung zwei Niederspannungssignalpaare, die differenzial angetrieben sind: ein Sendepaar 906/911 und ein Empfangspaar 912/907. Dementsprechend enthält die Vorrichtung 905 eine Übertragungslogik 906 zum Senden von Daten an die Vorrichtung 910 und eine Empfangslogik 907 zum Empfangen von Daten von der Vorrichtung 910. In anderen Worten, zwei Sendepfade, d. h. Pfade 916 und 917, und zwei Empfangspfade, d. h. Pfade 918 und 919, sind in einer PCIe-Verbindung enthalten.
  • Ein Sendepfad bezieht sich auf einen Pfad zum Senden von Daten, wie etwa einer Sendeleitung, einer Kupferleitung, einer optischen Leitung, ein drahtloser Kommunikationskanal, eine infrarote Kommunikationsverbindung oder ein anderer Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen wie etwa Vorrichtung 905 und Vorrichtung 910, wird als eine Vierbindung bezeichnet, wie etwa Verbindung 915. Eine Verbindung kann eine Spur unterstützen- jede Spur stellt einen Satz differenzialer Signalpaare dar (ein Paar für die Übertragung, ein Paar für den Empfang). Zur Skalierung der Bandbreite kann eine Verbindung mehrere Spuren sammeln, die mit xN bezeichnet sind, wobei N jede beliebige unterstützte Verbindungsbreite ist, wie 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein Differenzialpaar bezieht sich auf zwei Übertragungspfade, wie etwa Leitungen 916 und 917, zur Übertragung von Differenzialsignalen. Als ein Beispiel fährt die Leitung 917, wenn die Leitung 916 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. bei einer steigenden Kante, von einem hohen Logikpegel auf einen niedrigen Logikpegel, d. h. eine fallende Kante. Differenzialsignale demonstrieren potenziell bessere elektrische Eigenschaften, wie etwa bessere Signalintegrität, d. h. Querverbindung, Spannungsüber-/-unterschreitung, Klingeln usw. Dies erlaubt ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • Es ist zu beachten, dass die Vorrichtungen, Verfahren und Systeme, die oben beschrieben sind, in jeder elektronischen Vorrichtung oder jedem System wie oben genannt umgesetzt werden können. Als spezifische Illustrationen stellen die folgenden Figuren Beispielsysteme zur Nutzung der hierein beschriebenen Offenbarung bereit. Wie die nachfolgend ausführlicher beschriebenen Systeme wird eine Anzahl verschiedener Verbindungen offenbart, beschrieben und aus der obigen Erklärung erneut aufgegriffen. Und wie klar zu sehen ist, können die Fortschritte, die oben beschrieben sind, auf jede dieser Verbindungen, Gewebe oder Architekturen angewendet werden.
  • Nun wird mit Verweis auf 10 ein Blockdiagramm einer Ausführungsform eines Mehrkernprozessors dargestellt. Wie in der Ausführungsform aus 10 dargestellt, enthält der Prozessor 1000 mehrere Domänen. Genau gesagt enthält eine Kerndomäne 1030 mehrere Kerne 310a bis 1030A-1030N, eine Grafikdomäne 1060 enthält eine oder mehrere Grafikengines, die eine Medienengine 1065 aufweisen, und eine Systemagentendomäne 1010.
  • In verschiedenen Ausführungsformen handhabt die Systemagentdomäne 1010 Leistungssteuerereignisse und Leistungsmanagement, sodass einzelne Einheiten von Domänen 1030 und 1060 (z. B. Kerne und/oder Grafikengines) unabhängig kontrollierbar, um dynamisch mit einem geeigneten Leistungsmodus/-level (z. B. aktiv, Turbo, Sleep, Hibernate, Tiefschlaf oder ein anderer Zustand, der ähnlich wie eine erweiterte Konfigurationsleistungsschnittstelle ist) mit Blick auf die Aktivität (oder Inaktivität) zu laufen, die in der gegebenen Einheit auftritt. Alle der Domänen 1030 und 1060 können bei verschiedenen Spannungen und/oder Leistungen laufen, und die einzelnen Einheiten innerhalb der Domänen können jeweils potenziell mit einer unabhängigen Frequenz und Spannung laufen. Es ist anzumerken, dass zwar nur drei Domänen dargestellt sind, jedoch zu verstehen ist, dass der Umfang dieser Offenbarung diesbezüglich nicht eingeschränkt ist und weitere Domänen in anderen Ausführungsformen vorliegen können.
  • Wie gezeigt enthält jeder Kern 1030 ferner neben verschiedenen Ausführungseinheiten und weiteren Verarbeitungselementen Caches auf niedriger Ebene. Hier werden die verschiedenen Kerne aneinander und mit einem geteilten Cachespeicher gekoppelt, der aus mehreren Einheiten oder Slices eines Last-Level-Cache (LLC) 1040A bis 1040N ausgebildet ist; diese LLCs enthalten oft Speicher- und Controllerfunktionen und werden unter den Kernen und möglicherweise auch mit der Grafikengine geteilt.
  • Wie zu sehen ist, koppelt eine Ringverbindung 1050 die Kerne aneinander und stellt eine Verbindung zwischen der Kerndomäne 1030, der Grafikdomäne 1060 und der Systemagentenschaltung 1010 über mehrere Ringstopps 1052A bis 1052N dar, jeweils an einer Koppelung zwischen einem Kern und einer LLC-Slice. Wie in 10 zu sehen, wird die Verbindung 1050 verwendet, um unterschiedliche Informationen zu tragen, einschließlich Adressinformationen, Dateninformationen, Bestätigungsinformationen und Snoop-/ungültige Informationen zu tragen. Wenn auch eine Ringverbindung illustriert wird, kann jede bekannte On-Die-Verbindung oder jedes Gewebe verwendet werden. Als ein illustratives Beispiel können einige der oben besprochenen Gewebe (z. B. eine andere On-Die-Verbindung, „Intel On-Chip System Fabric“ (IOSF), eine „Advanced Microcontroller Bus Architecture“- (AMBA) Verbindung, ein mehrdimensionale Netzgewebe oder eine andere bekannte Verbindungsarchitektur) in ähnlicher Weise genutzt werden.
  • Wie weiter gezeigt, enthält das Systemagentendomäne 1010 eine Anzeige-Engine 1012, die die Steuerung für und eine Schnittstelle mit einer assoziierten Anzeige steuern soll. Die Systemagentendomäne 1010 kann andere Einheiten enthalten, wie etwa: ein integrierte Speichercontroller 1020, der eine Schnittstelle mit einem Systemspeicher (z. B. ein DRAM, der mit mehreren DIMMs umgesetzt ist; Kohärenzlogik 1022, um Speicherkohärenzoperationen durchzuführen. Mehrere Schnittstellen können vorhanden sein, um eine Verbindung zwischen dem Prozessor und anderen Schaltungen zu aktivieren. Beispielsweise ist in einer Ausführungsform mindestens eine Direktmedienschnittstellen- (DMI) 1016 Schnittstelle eine oder mehrere PCIe™-Schnittstellen 1014 bereitgestellt. Die Anzeige-Engine und diese Schnittstellen koppeln üblicherweise über eine PCIe™-Brücke 1018 mit Speicher. Noch weiter können zur Bereitstellung für Kommunikationen zwischen anderen Agenten, wie etwa weiteren Prozessoren oder anderen Schaltungen, eine oder mehr andere Schnittstellen (z. B. ein Intel® „Quick Path Interconnect“- (QPI) Gewebe) bereitgestellt sein.
  • Während die vorliegende Offenbarung mit Bezug auf eine eingeschränkte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifikationen und Variationen davon erkennen. Es ist vorgesehen, dass die beiliegenden Anhänge alle solchen Modifikationen und Variationen abdecken sollen, die in den wahren Geist und Umfang dieser vorliegenden Offenbarung fallen.
  • Ein Entwurf kann verschiedene Stufen von der Erstellung bis zur Simulation und Herstellung durchlaufen. Daten, die ein Design darstellen, können das Design in einer Reihe von Weisen darstellen. Zuerst kann, wie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen Funktionalen Beschreibungssprache dargestellt werden. Weiterhin kann ein Schaltungsebenenmodell mit Logik- und/oder Transistorgates in einigen Stufen des Designprozesses erzeugt werden. Ferner erreichen die meisten Designs auf einer Stufe eine Datenebene, die die physische Platzierung verschiedener Vorrichtungen in dem Hardwaremodell darstellt. In dem Fall, in dem konventionelle Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die die Anwesenheit oder Abwesenheit verschiedener Eigenschaften auf verschiedenen Maskenschichten für Masken vorgeben, die verwendet werden, um eine integrierte Schaltung zu erzeugen. In jeder Darstellung des Designs können die Daten in jeder Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein Magnet- oder optischer Speicher wie etwa eine Diskette kann das maschinenlesbare Medium darstellen, um Informationen zu speichern, die über optische oder elektrische Wellen übertragen werden, die moduliert oder anderweitig erzeugt werden, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder das Design anzeigt oder trägt übertragen wird, wird, soweit das Kopieren, Puffern oder die erneute Übertragung des elektrischen Signals ausgeführt wird, eine neue Kopie erstellt. So kann ein Kommunikationsprovider oder ein Netzprovider auf einem greifbaren maschinenlesbaren Medium zumindest temporär einen Artikel speichern, wie etwa Informationen, die in eine Trägerwelle codiert sind, die Techniken oder Ausführungsformen der vorliegenden Offenbarung verkörpern.
  • Ein Modul wie hierin verwendet, bezieht sich auf jede Kombination von Hardware, Software und/oder Firmware. Als Beispiel enthält ein Modul Hardware, wie etwa einen Mikrocontroller, die mit einem nicht transitorischen Medium assoziiert ist, um Code zu speichern, der angepasst ist, durch den Mikrocontroller ausgeführt zu werden. Daher bezieht sich ein Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die speziell konfiguriert ist, den Code, der auf einem nicht transitorischen Medium enthalten ist, zu erkennen und/oder auszuführen. Weiter bezieht sich in einer anderen Ausführungsform die Verwendung eines Modus auf das nicht transitorische Medium, das den Code enthält, der speziell angepasst ist, um durch den Mikrocontroller ausgeführt zu werden, um vorgegebene Funktionen durchzuführen. Wie geschlossen werden kann, kann sich in noch einer weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nicht transitorischen Mediums beziehen. Oft variieren Modulgrenzen, die als getrennt illustriert sind, und können sich überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während sie potenziell einige unabhängige Hardware, Software oder Firmware behalten. In einer Ausführungsform enthält der Begriff Logik Hardware, wie etwa Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung des Begriffs ‚um‘ oder ‚konfiguriert, um‘ bezieht sich in einer Ausführungsform auf das Anordnen, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Entwerfen einer Vorrichtung, Hardware, Logik oder eines Elements zur Durchführung einer vorgegebenen oder bestimmten Aufgabe. In diesem Beispiel ist ein Apparat oder Element davon, der/das nicht funktioniert, dennoch ‚konfiguriert, um‘ eine vorgegebene Aufgabe durchzuführen, wenn er/es entworfen, verknüpft und/oder verbunden ist, um die genannte Aufgabe auszuführen. Als ein rein illustratives Beispiel kann ein Logikgate im Betrieb eine 0 oder eine 1 bereitstellen. Aber ein Logikgate, das ‚konfiguriert ist, um‘ ein Aktivierungssignal für einen Taktgeber bereitzustellen, enthält nicht jedes potenzielle Logikgate, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgate eines, das in einer Weise verknüpft ist, dass während des Betriebs die ausgegebene 1 oder 0 den Taktgeber aktivieren soll. Es ist erneut zu beachten, dass die Verwendung des Begriffs ‚konfiguriert, um‘ keine Funktion erlangt, sondern sich auf den latenten Zustand einer Vorrichtung, Hardware und/oder eines Elements bezieht, wobei in dem latenten Zustand die Vorrichtung, Hardware und/oder das Element entworfen ist, eine bestimmte Aufgabe durchzuführen, wenn die Vorrichtung, Hardware und/oder das Element funktioniert.
  • Weiterhin bezieht sich die Verwendung der Begriffe ‚in der Lage, zu‘ und/oder ‚bedienbar, um‘ in einer Ausführungsform auf eine Vorrichtung, Logik, Hardware und/oder ein Element, die/das so entworfen ist, dass sie/es die Verwendung der Vorrichtung, der Logik, der Hardware und/oder des Elements in einer vorgegebenen Weise ermöglicht. Es ist wie oben zu beachten, dass die Verbindung von um, in der Lage, zu, oder bedienbar, um sich in einer Ausführungsform auf einen latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, Logik, Hardware und/oder das Element nicht funktioniert, sondern in einer solchen Weise entworfen ist, um die Verwendung einer Vorrichtung in einer vorgegeben Weise zu ermöglichen.
  • Ein Wert, wie hierin verwendet, enthält jede bekannte Darstellung einer Nummer, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Oft wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch als 1en und 0en bezeichnet, was einfach binäre Logikzustände darstellt. Beispielsweise bezieht sich eine 1 auf eine hohe Logikebene und 0 bezieht sich auf eine niedrige Logikebene. In einer Ausführungsform kann eine Speicherzelle wie etwa ein Transistor oder eine Flashzelle in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Anderer Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Beispielsweise kann die Dezimalzahl zehn auch als binärer Wert 1010 und hexadezimaler Buchstabe A dargestellt werden. Daher enthält ein Wert jede Darstellung von Informationen, die in einem Computersystem enthalten sein können.
  • Weiterhin können Zustände durch Werte oder Abschnitte von Werten dargestellt werden. Beispielsweise kann ein erster Wert wie etwa ein logischer Wert einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie etwa eine logische Null, einen Nichtstandardzustand darstellen kann. Weiterhin beziehen sich die Begriffe zurücksetzen und setzen in einer Ausführungsform auf einen Standard- bzw. einen aktualisierten Wert oder Zustand. Beispielsweise enthält ein Standardwert potenziell einen hohen logischen Wert, d. h. Zurücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert, d. h. Setzen, enthält. Es ist zu beachten, dass jede Kombination von Werten eingesetzt werden kann, um eine beliebige Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von verfahren, Hardware, Software, Firmware oder Code, wie oben dargelegt, kann über Anweisungen oder Code umgesetzt werden, die auf einem maschinenzugriffsfähigen, maschinenlesbaren, computerzugriffsfähigen oder computerlesbaren Medium enthalten sind, die durch ein Verarbeitungselement ausgeführt werden können. Ein nichttransitorisches maschinenzugriffsfähiges/-lesbares Medium enthält einen beliebigen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die durch eine Maschine wie etwa einen Computer oder ein elektronisches System lesbar sind. Beispielsweise enthält ein nicht transitorisches maschinenzugriffsfähiges Medium Direktzugriffsspeicher (RAM), wie statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flashspeichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Aufbewahren von Informationen, die von transitorischen (propagierten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen); usw. übertragen empfangen werden, die von den nichttransitorischen Medium unterschieden werden, die Informationen davon empfangen können.
  • Anweisungen, die zum Programmieren von Logik zur Ausführung von Ausführungsformen der Offenbarung verwendet werden können, können in einem Speicher in dem System gespeichert werden, wie etwa einem DRAM, Cache, Flashspeicher oder einem anderen Speicher. Weiter können die Anweisungen über ein Netz oder durch ein anderes computerlesbares Medium verteilt werden. So kann ein maschinenlesbares Medium jeden Mechanismus zum Speichern oder Übertragen von Informationen in einer Form enthalten, der durch eine Maschine lesbar ist (z. B. durch einen Computer) aber nicht beschränkt ist auf Floppydisketten, optische Disketten, Compact Disc, Read-Only Speicher (CD-ROMs), und magnetooptische Disketten, Read-Only Speicher (ROMs), Direktzugriffspeicher (RAM), Erasable Programmable Read-Only Speicher (EPROM), Electrically Erasable Programmable Read-Only Speicher (EEPROM), magnetische oder optische Karten, Flashspeicher oder ein greifbarer, maschinenlesbarer Speicher, der für die Übertragen von Informationen über das Internet über elektrische, optische, akustische oder andere Formen weitergeleiteter Signale verwendet wird (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.). Dementsprechend enthält das computerlesbare Medium jede Art von greifbarem, maschinenlesbarem Medium, das sich zum Speichern oder Übertragen elektronischer Anweisungen oder Informationen in einer Form eignet, die durch eine Maschine zu lesen ist (z. B. einen Computer)
  • In diesen Vorgaben bedeutet ein Verweis auf „eine Ausführungsform“, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich das Auftreten der Begriffe „in einer Ausführungsform“ an verschiedenen Stellen in dieser Vorgabe nicht notwendigerweise immer auf dieselbe Ausführungsform. Weiter können die spezifischen Funktionen, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der obigen Vorgabe wurde eine ausführliche Beschreibung mit Verweis auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch offenkundig, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Geist und Umfang der Offenbarung abzuweichen, wie in den anhängenden Ansprüchen dargelegt. Die Vorgabe und die Zeichnungen sind entsprechend statt in einschränkender Weise illustrativ zu betrachten. Weiterhin beziehen sich die vorstehenden Verwendungen von Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern können sich auf unterschiedliche und getrennte Ausführungsformen sowie auf möglicherweise dieselbe Ausführungsform beziehen.
  • Die folgenden Anschnitte stellen Beispiele verschiedener der hierin offenbarten Ausführungsformen bereit.
  • Beispiel 1 ist eine Physische-Schicht-Schaltungsvorrichtung zur Verarbeitung eines Fehlers in einem Datenpaket, wobei die Physische-Schicht-Schaltungsvorrichtung einen Empfänger enthält, um ein Datenpaket von über einer Mehrschichtendatenverbindung zu empfangen, das Datenpaket umfassend ein Framing-Token; eine Logikschaltung zum Erkennen eines Fehlers einem empfangenen Symbol eines Framing-Tokens der physischen Schicht; eine Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; und eine Logikschaltung zum Validieren des identifizierten bekannten Tokens durch Vergleich eines des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  • Beispiel 2 kann den Inhalt von Beispiel 1 enthalten, und auch eine Logikschaltung enthalten, um das empfangene Datenpaket auf Grundlage des identifizierten bekannten Framing-Tokens zu verarbeiten.
  • Beispiel 3 kann den Inhalt aus einem der Beispiele 1 oder 2 enthalten, wobei das bekannte Framing-Token eines aus einem Idle-Framing-Token, einem Starttransaktionsschichtpaket- (STP) Framing-Token, Start des Datenverbindungsschichtpaket-(SDP) Framing-Token oder „End Bad“- (EDB) Paket-Framing-Token umfasst.
  • Beispiel 4 kann den Inhalt aus einem der Beispiele 1 bis 3 enthalten, wobei der nächste Hammingabstand zwischen dem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und dem ersten Symbol des bekannten Framing-Tokens ein einzelnes Bit umfasst.
  • Beispiel 5 kann den Inhalt aus einem der Beispiele 1 bis 4 enthalten, and außerdem eine Logikschaltung enthalten, um den Fehler zu loggen, der in dem ersten Symbol des Framing-Tokens der physischen Schicht des empfangenen Datenpakets erkannt wurde.
  • Beispiel 6 kann den Inhalt aus einem der Beispiele 1 bis 5 enthalten, wobei das nachfolgende Bit eines oder mehr aus einem zweiten Symbol des Framing-Tokens des empfangenen Datenpakets oder eines dritten Symbols des Framing-Tokens des empfangenen Datenpakets umfasst.
  • Beispiel 7 kann den Inhalt aus einem der Beispiele 1 bis 6 enthalten, und kann auch eine Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole enthalten, die mit dem empfangenen Framing-Token assoziiert ist, das auf einem nächsten Hammingabstand zwischen einem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und einem ersten Symbol eines bekannten Framing-Tokens basiert; und Logikschaltung zum Validieren des Framing-Tokens durch Vergleich eines zweiten Symbols des bekannten Framing-Tokens mit einem zweiten Symbol des empfangenen Framing-Tokens.
  • Beispiel 8 kann den Inhalt aus Beispiel 7 enthalten, wobei der erkannte Fehler in einem zweiten oder nachfolgenden Symbol des Framing-Tokens vorliegt; die Vorrichtung kann auch eine Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens enthalten; und eine Logikschaltung zum Validieren des bekannten Framing-Tokens durch Feststellung des nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens.
  • Beispiel 9 kann den Inhalt aus Beispiel 7 enthalten, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als einen Start des Datenverbindungsschichtpaket- (SDP) Framing-Tokens identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet, die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein SDP-Framing-Token zu behandeln.
  • Beispiel 10 kann den Inhalt aus Beispiel 7 enthalten, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als einen Start des Datenverbindungsschichtpaket- (SDP) Framing-Tokens identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet, die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein EDP-Framing-Token zu behandeln.
  • Beispiel 11 ist ein Verfahren, das an einem Empfänger durchgeführt wird, der konfiguriert ist, ein Datenpaket von einer Multi-Lane-Verbindung zu empfangen, die mit einem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist, wobei das Verfahren enthält: Empfang eines Datenpakets von über einer Mehrschichtendatenverbindung, und das Datenpaket ein Framing-Token umfasst; Erkennung eines Fehlers an einem empfangenen Symbol eines Framing-Tokens der physischen Schicht; Identifizierung eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; Validierung des identifizierten bekannten Tokens durch Vergleich ein des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  • Beispiel 12 kann den Inhalt aus Beispiel 11 enthalten und kann außerdem enthalten, das identifizierte bekannte Framing-Token zu verwenden, um das empfangene Datenpaket zu verarbeiten.
  • Beispiel 13 kann den Inhalt aus einem der Beispiele 11 bis 12 enthalten, wobei das bekannte Framing-Token eines aus einem Idle-Framing-Token, einem Starttransaktionsschichtpaket- (STP) Framing-Token, Start des Datenverbindungsschichtpaket-(SDP) Framing-Token oder „End Bad“- (EDB) Paket-Framing-Token umfasst.
  • Beispiel 14 kann den Inhalt aus einem der Beispiele 11 bis 13 enthalten, wobei der nächste Hammingabstand zwischen dem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und dem ersten Symbol des bekannten Framing-Tokens ein einzelnes Bit umfasst.
  • Beispiel 15 kann den Inhalt aus einem der Beispiele 11 bis 14 enthalten, and außerdem das Loggen des Fehlers enthalten, der in dem ersten Symbol des Framing-Tokens der physischen Schicht des empfangenen Datenpakets in einem Fehlerlogspeicherelement, das mit der Physische-Schicht-Schaltungsvorrichtung verbunden ist, erkannt wurde.
  • Beispiel 16 kann den Inhalt aus einem der Beispiele 11 bis 15 enthalten, wobei das nachfolgende Bit eines oder mehr aus einem zweiten Symbol des Framing-Tokens des empfangenen Datenpakets oder eines dritten Symbols des Framing-Tokens des empfangenen Datenpakets umfasst.
  • Beispiel 17 kann einen der Inhalte der Beispiele 11 bis 16 enthalten und kann auch das Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem empfangenen Framing-Token assoziiert ist, das auf einem nächsten Hammingabstand zwischen einem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und einem ersten Symbol eines bekannten Framing-Tokens basiert; und das Validieren des Framing-Tokens durch Vergleich eines zweiten Symbols des bekannten Framing-Tokens mit einem zweiten Symbol des empfangenen Framing-Tokens enthalten.
  • Beispiel 18 kann den Inhalt aus Beispiel 17 enthalten, wobei der erkannte Fehler in einem zweiten oder nachfolgenden Symbol des Framing-Tokens vorliegt; das Verfahren kann auch das Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens; und das Validieren des bekannten Framing-Tokens durch Feststellung des nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens enthalten.
  • Beispiel 19 kann den Inhalt aus Beispiel 17 enthalten, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als einen Start des Datenverbindungsschichtpaket- (SDP) Framing-Tokens identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet, die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein SDP-Framing-Token zu behandeln.
  • Beispiel 20 kann den Inhalt aus Beispiel 17 enthalten, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als einen Start des Datenverbindungsschichtpaket- (SDP) Framing-Tokens identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet, die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein EDP-Framing-Token zu behandeln.
  • Beispiel 21 ist ein System, das eine Upstream-Vorrichtung enthält, um ein Datenpaket über eine Multi-Lane-Verbindung zu übertragen, die mit einem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist; und eine Downstream-Vorrichtung, die mit der Upstream-Vorrichtung über eine Multi-Lane-Verbindung verbunden ist, wobei die Downstream-Vorrichtung einen Empfänger umfasst, der eine Deframer-Logik umfasst, wobei die Deframer-Logik einen Framing-Fehler in einem empfangenen Datenpakets identifizieren soll, das auf einer Verbindung der Multi-Lane-Verbindung empfangen wurde; festzustellen soll, dass eines oder mehr andere Datenpaket, die über eine oder mehr der anderen Verbindungen der Multi-Lane-Verbindung empfangen wurden, nicht einen Framing-Fehler darstellen; und das empfangene Datenpaket auf Grundlage des einen oder den mehr anderen Datenpakete, die auf der einen oder den mehr anderen Verbindungen empfangen wurden, verarbeiten soll.
  • Beispiel 22 kann den Inhalt aus Beispiel 21 enthalten, wobei die Deframer-Logik konfiguriert ist, festzustellen, dass ein erstes Datenpaket, das auf einer ersten Verbindung empfangen wurde, einen Fehler in einem Sync-Header als Framing-Fehler umfasst; festzustellen, dass ein zweites Datenpaket, das auf einer zweiten Verbindung empfangen wurde, keinen Fehler in einem Sync-Header umfasst; das erste Datenpaket unter Verwendung einer Richtlinie zu verarbeiten, die dem zweiten Datenpaket entspricht; und den Fehler in dem Sync-Header in einem Fehlerlog zu loggen, der mit der Deframer-Logik gekoppelt ist.
  • Beispiel 23 kann den Inhalt aus Beispiel 21 enthalten, wobei die Deframer-Logik konfiguriert ist, festzustellen, dass ein Idle-Token in Spur 0 der Multi-Lane-Verbindung empfangen wurde; festzustellen, dass ein Nicht-Idle-Token in einer nachfolgenden Spur der Multi-Lane-Verbindung empfangen wurde; und alle Spuren als im Leerlauf zu behandeln, bis ein Nichtleerlaufdatenpaket in Spur 0 empfangen wird; und den Fehler in einem Fehlerlog zu loggen, der mit der Deframer-Logik gekoppelt ist.
  • Beispiel 24 kann den Inhalt aus Beispiel 21 enthalten, wobei die Deframer-Logik konfiguriert ist zum Erkennen eines Fehlers eines empfangenen Symbols eines Framing-Tokens der physischen Schicht in dem empfangenen Datenpaket; zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; und zum Validieren des identifizierten bekannten Tokens durch Vergleich eines des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  • Beispiel 25 kann den Inhalt aus Beispiel 21 enthalten, wobei die Deframer-Logik konfiguriert ist zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens; und zum Validieren des bekannten Framing-Tokens durch Feststellung des nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens enthalten.

Claims (25)

  1. Physische-Schicht-Schaltungsvorrichtung zum Verarbeiten eines Fehlers in einem Datenpaket, die Physische-Schicht-Schaltungsvorrichtung umfassend: einen Empfänger zum Empfangen eines Datenpakets von über einer Mehrschichtendatenverbindung, wobei das Datenpaket ein Framing-Token umfasst; Logikschaltung zum Erkennen eines Fehlers eines empfangenen Symbols eines Framing-Tokens der physischen Schicht; Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; Logikschaltung zum Validieren des identifizierten bekannten Tokens durch Vergleich eines des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  2. Physische-Schicht-Schaltungsvorrichtung aus Anspruch 1, ferner umfassend eine Logikschaltung zum Verarbeiten des empfangenen Datenpakets auf Grundlage des identifizierten bekannten Framing-Tokens.
  3. Physische-Schicht-Schaltungsvorrichtung aus einem der Ansprüche 1 oder 2, wobei das bekannte Framing-Token eines aus einem Idle-Framing-Token, einem Starttransaktionsschichtpaket- (STP) Framing-Token, einem Start-des-Datenverbindungsschichtpaket- (SDP) Framing-Token oder „End Bad“- (EBD) Paket-Framing-Token umfasst.
  4. Physische-Schicht-Schaltungsvorrichtung aus einem der Ansprüche 1 oder 2, wobei der nächste Hammingabstand zwischen dem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und dem ersten Symbol des bekannten Framing-Tokens ein einzelnes Bit umfasst.
  5. Physische-Schicht-Schaltungsvorrichtung aus einem der Ansprüche 1 oder 2, ferner umfassend eine Logikschaltung zum Loggen des Fehlers, der in dem ersten Symbol des Framing-Tokens der physischen Schicht des empfangenen Datenpakets erkannt wurde.
  6. Physische-Schicht-Schaltungsvorrichtung aus einem der Ansprüche 1 oder 2, wobei das nachfolgende Bit eines oder mehr aus einem zweiten Symbol des Framing-Tokens des empfangenen Datenpakets oder einem dritten Symbol des Framing-Tokens des empfangenen Datenpakets umfasst.
  7. Physische-Schicht-Schaltungsvorrichtung aus einem der Ansprüche 1 oder 2, ferner umfassend: Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem empfangenen Framing-Token assoziiert sind, auf Grundlage eines nächsten Hammingabstands zwischen einem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und einem ersten Symbol eines bekannten Framing-Tokens; and Logikschaltung zum Validieren des Framing-Tokens durch Vergleich eines zweiten Symbols des bekannten Framing-Tokens mit einem zweiten Symbol des empfangenen Framing-Tokens.
  8. Physische-Schicht-Schaltungsvorrichtung aus Anspruch 7, wobei sich der erkannte Fehler in einem zweiten oder nachfolgenden Symbol des Framing-Tokens befindet; die Vorrichtung ferner umfassend: Logikschaltung zum Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens; und Logikschaltung zum Validieren des bekannten Framing-Tokens durch Feststellung eines nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens.
  9. Physische-Schicht-Schaltungsvorrichtung aus Anspruch 8, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als ein Start-des-Datenverbindungsschichtpaket- (SDP) Framing-Token identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet und die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein SDP Framing-Token zu behandeln.
  10. Physische-Schicht-Schaltungsvorrichtung aus Anspruch 8, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als ein „End Bad“- (EDB) Framing-Token identifiziert und mindestens zwei aus nachfolgenden drei empfangenen Symbolen des empfangenen Framing-Tokens ein EDB-Symbol umfassen, wobei die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token als ein EDB-Framing-Token zu behandeln.
  11. Verfahren, durchgeführt an einem Empfänger, der konfiguriert ist, ein Datenpaket von einer Multi-Lane-Verbindung zu empfangen, die mit einem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist, das Verfahren umfassend: Empfangen eines Datenpakets von über einer Mehrschichtendatenverbindung, wobei das Datenpaket ein Framing-Token umfasst; Erkennen eines Fehlers eines empfangenen Symbols eines Framing-Tokens der physischen Schicht; Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; Validieren des identifizierten bekannten Tokens durch Vergleich eines des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  12. Verfahren aus Anspruch 11, ferner umfassend die Verwendung des identifizierten bekannten Framing-Tokens zum Verarbeiten des empfangenen Datenpakets.
  13. Verfahren aus einem der Ansprüche 11 oder 12, wobei das bekannte Framing-Token eines aus einem Idle-Framing-Token, einem Starttransaktionsschichtpaket- (STP) Framing-Token, einem Start-des-Datenverbindungsschichtpaket- (SDP) Framing-Token oder „End Bad“-(EBD) Paket-Framing-Token umfasst.
  14. Verfahren aus einem der Ansprüche 11 oder 12, wobei der nächste Hammingabstand zwischen dem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und dem ersten Symbol des bekannten Framing-Tokens ein einzelnes Bit umfasst.
  15. Verfahren aus einem der Ansprüche 11 oder 12, ferner umfassend das Loggen des Fehlers, der in dem ersten Symbol des Framing-Tokens der physischen Schicht des empfangenen Datenpakets in einem Fehlerlogspeicherelement, das mit der Physische-Schicht-Schaltungsvorrichtung verbunden ist, erkannt wurde.
  16. Verfahren aus einem der Ansprüche 11 oder 12, wobei das nachfolgende Bit eines oder mehr aus einem zweiten Symbol des Framing-Tokens des empfangenen Datenpakets oder einem dritten Symbol des Framing-Tokens des empfangenen Datenpakets umfasst.
  17. Verfahren aus einem der Ansprüche 11 oder 12, ferner umfassend: Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem empfangenen Framing-Token assoziiert sind, auf Grundlage eines nächsten Hammingabstands zwischen einem ersten Symbol des Framing-Tokens des empfangenen Datenpakets und einem ersten Symbol eines bekannten Framing-Tokens; and Validieren des Framing-Tokens durch Vergleich eines zweiten Symbols des bekannten Framing-Tokens mit einem zweiten Symbol des empfangenen Framing-Tokens.
  18. Verfahren aus Anspruch 17, wobei sich der erkannte Fehler in einem zweiten oder nachfolgenden Symbol des Framing-Tokens befindet; das Verfahren ferner umfassend: Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens; und Validieren des bekannten Framing-Tokens durch Feststellung eines nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens.
  19. Verfahren aus Anspruch 18, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als ein Start-des-Datenverbindungsschichtpaket- (SDP) Framing-Token identifiziert und sich das zweite Symbol des empfangenen Framing-Tokens in einem Hammingabstand von 1 oder 2 von ACh befindet und die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token auf Grundlage des Hammingabstands als ein SDP Framing-Token zu behandeln.
  20. Verfahren aus Anspruch 18, wobei das erste Symbol des empfangenen Framing-Tokens das empfangene Framing-Token als ein „End Bad“- (EDB) Framing-Token identifiziert und mindestens zwei aus nachfolgenden drei empfangenen Symbolen des empfangenen Framing-Tokens ein EDB-Symbol umfassen, wobei die Physische-Schicht-Schaltungsvorrichtung ferner eine Logikschaltung umfasst, um das Framing-Token als ein EDP-Framing-Token zu behandeln.
  21. System, umfassend: eine Upstream-Vorrichtung, um ein Datenpaket über eine Multi-Lane-Verbindung zu übertragen, die mit einem „Peripheral Component Interconnect Express“- (PCIe) Protokoll kompatibel ist; eine Downstream-Vorrichtung, die mit der Upstream-Vorrichtung über eine Multi-Lane-Verbindung verbunden ist, wobei die Downstream-Vorrichtung einen Empfänger umfasst, der eine Deframer-Logik umfasst und die Deframer-Logik dient: zum Identifizieren eines Framing-Fehlers in einem empfangenen Datenpaket, das auf einer Verbindung der Multi-Lane-Verbindung empfangen wurde; zum Feststellen, dass ein oder mehr andere Datenpakete, die auf einer oder mehr anderen Verbindungen der Multi-Lane-Verbindung empfangen wurden, keinen Framing-Fehler darstellen; und zum Verarbeiten des empfangenen Datenpakets auf Grundlage des einen oder der mehr Datenpakete, die auf der einen oder den mehr anderen Verbindungen empfangen wurden.
  22. System aus Anspruch 21, wobei die Deframer-Logik konfiguriert ist zum: Feststellen, dass ein erstes Datenpaket, das auf einer ersten Verbindung empfangen wurde, einen Fehler in einem Sync-Header als den Framing-Fehler umfasst; Feststellen, dass ein zweites Datenpaket, das auf einer zweiten Verbindung empfangen wurde, keinen Fehler in einem Sync-Header umfasst; Verarbeiten des ersten Datenpakets unter Verwendung einer Richtlinie, die dem zweiten Datenpaket entspricht; und Loggen des Fehlers in dem Sync-Header in einem Fehlerlog, das mit der Deframer-Logik gekoppelt ist.
  23. System aus Anspruch 21, wobei die Deframer-Logik konfiguriert ist zum: Feststellen, dass ein Idle-Token in Spur 0 der Multi-Lane-Verbindung empfangen wurde; Feststellen, dass ein Nicht-Idle-Token in einer folgenden Spur der Multi-Lane-Verbindung empfangen wurde; und Behandeln aller Spuren als Idle, bis ein Nicht-Idle-Datenpaket auf Spur 0 empfangen wird; und Loggen des Fehlers in einem Fehlerlog, das mit der Deframer-Logik gekoppelt ist.
  24. System aus Anspruch 21, wobei die Deframer-Logik konfiguriert ist zum: Erkennen eines Fehlers eines empfangenen Symbols eines Framing-Tokens der physischen Schicht in dem empfangenen Datenpaket; Identifizieren eines bekannten Framing-Tokens auf Grundlage eines oder mehr anderer empfangener Symbole, die mit dem Framing-Token assoziiert sind; und Validieren des identifizierten bekannten Tokens durch Vergleich eines des empfangenen Symbols des identifizierten bekannten Framing-Tokens von mit einem entsprechenden Symbol des bekannten Framing-Tokens.
  25. System aus Anspruch 21, wobei die Deframer-Logik konfiguriert ist zum: Identifizieren eines bekannten Framing-Tokens auf Grundlage eines ersten Symbols des empfangenen Framing-Tokens; und Validieren des bekannten Framing-Tokens durch Feststellung eines nächsten Hammingabstands für ein zweites Symbol des empfangenen Framing-Tokens mit einem zweiten Symbol des bekannten Framing-Tokens.
DE112018001088.0T 2017-03-01 2018-02-26 Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung Pending DE112018001088T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/446,395 US10250436B2 (en) 2017-03-01 2017-03-01 Applying framing rules for a high speed data link
US15/446,395 2017-03-01
PCT/US2018/019702 WO2018160489A1 (en) 2017-03-01 2018-02-26 Applying framing rules for a high speed data link

Publications (1)

Publication Number Publication Date
DE112018001088T5 true DE112018001088T5 (de) 2019-11-14

Family

ID=63355420

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001088.0T Pending DE112018001088T5 (de) 2017-03-01 2018-02-26 Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung

Country Status (3)

Country Link
US (1) US10250436B2 (de)
DE (1) DE112018001088T5 (de)
WO (1) WO2018160489A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
US10771189B2 (en) 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
CN110435634B (zh) * 2019-08-29 2020-09-25 吉林大学 一种基于缩小soc可行域的随机动态规划能量管理策略优化方法
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574238B1 (en) * 1998-08-26 2003-06-03 Intel Corporation Inter-switch link header modification
CN101027862B (zh) * 2004-10-29 2011-06-08 美国博通公司 对通信流量分级的多信道通信
US8102779B2 (en) 2008-10-31 2012-01-24 Howard University System and method of detecting and locating intermittent electrical faults in electrical systems
JP5365234B2 (ja) 2009-02-13 2013-12-11 株式会社明電舎 端末装置間のトークン異常検出/回復方式
US8732536B2 (en) * 2009-08-18 2014-05-20 Mitsubishi Electric Corporation Communication system and communication apparatus state determining method
US9311268B1 (en) * 2012-10-25 2016-04-12 Qlogic, Corporation Method and system for communication with peripheral devices
US20170163286A1 (en) 2013-12-26 2017-06-08 Intel Corporation Pci express enhancements
US9780969B2 (en) * 2014-12-23 2017-10-03 Intel Corporation Transferring data between elements of a cable communication device
US10505850B2 (en) 2015-02-24 2019-12-10 Qualcomm Incorporated Efficient policy enforcement using network tokens for services—user-plane approach
US20160261375A1 (en) * 2015-03-04 2016-09-08 Qualcomm Incorporated Packet format and coding method for serial data transmission
US9660987B2 (en) 2015-07-30 2017-05-23 Oracle International Corporation Storage isolation using I/O authentication
US20170222684A1 (en) * 2016-02-01 2017-08-03 Qualcomm Incorporated Unidirectional clock signaling in a high-speed serial link

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management

Also Published As

Publication number Publication date
US10250436B2 (en) 2019-04-02
WO2018160489A1 (en) 2018-09-07
US20180254943A1 (en) 2018-09-06

Similar Documents

Publication Publication Date Title
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112013003723B4 (de) Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE112016003693T5 (de) Abschwächung von Pinfeldübersprechen
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102018005753A1 (de) Serdes link training
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112018001138T5 (de) Hochleistungsverbindung
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112016002893T5 (de) Seitenbandleiterresonanzminderung
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
DE102018006852A1 (de) Verfahren, Vorrichtung und System für eine ThunderBolt-basierte Anzeigetopologie für duale Grafiksysteme
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle
DE102020101958A1 (de) Dynamisches spurzugriffswechseln zwischen pcie-wurzelräumen

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000