DE112013007769B3 - System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen - Google Patents

System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen Download PDF

Info

Publication number
DE112013007769B3
DE112013007769B3 DE112013007769.8T DE112013007769T DE112013007769B3 DE 112013007769 B3 DE112013007769 B3 DE 112013007769B3 DE 112013007769 T DE112013007769 T DE 112013007769T DE 112013007769 B3 DE112013007769 B3 DE 112013007769B3
Authority
DE
Germany
Prior art keywords
ordered set
skp ordered
data
skp
sent
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.)
Active
Application number
DE112013007769.8T
Other languages
English (en)
Inventor
Zuoguo Wu
Debendra Das Sharma
Md. Mohiuddin Mazumder
Subas Bastola
Kai Xiao
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
Application granted granted Critical
Publication of DE112013007769B3 publication Critical patent/DE112013007769B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)

Abstract

Vorrichtung, umfassend:einen Port, der Schaltungen umfasst, um:einen ersten SKP geordneten Satz zu erzeugen, der auf einer bestimmten Bahn von einer Mehrzahl von Bahnen einer Verbindung zu senden ist, wobei der erste SKP geordnete Satz auf der Verbindung gemäß einem bestimmten Intervall zu senden ist und einen Paritätswert umfasst, um eine Parität für einen vorherigen Datenblock anzugeben, der auf der Verbindung gesendet wurde; undeinen zweiten SKP geordneten Satz zu erzeugen, der auf der bestimmten Bahn basierend auf dem Eintritt der Verbindung in einen Wiederherstellungszustand zu senden ist, wobei der SKP geordnete Satz vor dem Eintritt in den Widerherstellungszustand zu senden ist, und der zweite SKP geordnete Satz nach dem ersten SKP geordneten Satz und vor einem Ende des bestimmten Intervalls zu senden ist; undwobei der Port ferner einen Sender umfasst, umden ersten SKP geordneten Satz auf der bestimmten Bahn zu senden; undden zweiten SKP geordneten Satz auf der bestimmten Bahn zu senden.

Description

  • GEBIET
  • Diese Offenbarung betrifft eine Vorrichtung, ein System und ein Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen.
  • AUFGABENSTELLUNG
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein gegenüber bekannten Ansätzen verbessertes System, Verfahren und eine verbesserte Vorrichtung zum Erzeugen und Senden von SKP geordneten Sätzen bereitzustellen. Diese Aufgabe wird gelöst durch Gegenstände gemäß der unabhängigen Patentansprüche 1, 13, 14 und 15. Die abhängigen Ansprüche beschreiben bevorzugte Ausführungsformen.
  • HINTERGRUND
  • Fortschritte in der Halbleiterverarbeitung und im Logik-Design haben eine Erhöhung der Menge an Logik gestattet, die auf Integrationsschaltungsvorrichtungen vorhanden sein kann. Als Begleitumstand haben sich Computersystemauslegungen von einer einzelnen oder mehreren Integrationsschaltungen in einem System zu mehreren Kernen, mehreren Hardware-Teilprozessen und mehreren Logikprozessoren, die auf einzelnen Integrationsschaltungen vorliegen können, sowie anderen Schnittstellen entwickelt, die innerhalb solcher Prozessoren integriert sind. Ein Prozessor oder eine Integrationsschaltung umfasst typischerweise einen einzelnen physischen Prozessor-Chip, wobei der Prozessor-Chip eine beliebige Anzahl von Kernen, Hardware-Teilprozessen, Logikprozessoren, Schnittstellen, Speichern, Steuereinheit-Hubs, etc., aufweisen kann.
  • Als Ergebnis der größeren Fähigkeit, mehr Verarbeitungsleistung in kleinere Pakete einzupassen, haben kleinere Rechnervorrichtungen an Popularität zugenommen. Smartphones, Tablets, ultradünne Notebooks und andere Benutzerausrüstung haben ein exponentielles Wachstum verzeichnet. Diese kleineren Vorrichtungen greifen jedoch auf Server sowohl für die Datenspeicherung als auch komplexe Verarbeitung zurück, die den Formfaktor überschreiten. Demgemäß hat auch die Nachfrage auf dem Markt der Hochleistungsrechner zugenommen (d.h. Serverkapazität). Beispielsweise gibt es in modernen Servern typischerweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern auch mehrere physische Prozessoren (auch als mehrere Sockel bezeichnet), um die Rechenleistung zu erhöhen. Da die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Computersystem zunimmt, wird jedoch die Kommunikation zwischen Sockel und anderen Vorrichtungen kritischer.
  • Tatsächlich sind Zwischenverbindungen von traditionelleren Multi-Drop-Bussen, die primär elektrische Kommunikationen behandelten, zu vollentwickelten Zwischenverbindungsarchitekturen angewachsen, die eine schnelle Kommunikation erleichtern. Bedauerlicherweise wird mit dem Bedarf an zukünftigen Prozessoren mit einem Verbrauch bei noch höheren Raten der entsprechende Bedarf auf die Fähigkeiten bestehender Zwischenverbindungsarchitekturen fokussiert.
  • Die Druckschrift WO 2013/176953 A1 beschreibt einen Protokollstapel mit einer Transaktionsschicht und einer Verbindungsschicht. Zusätzlich ist eine erste physische (PHY) Einheit mit dem Protokollstapel gekoppelt, um eine Kommunikation zwischen einem Prozessor und einer mit dem Prozessor über eine physische Verbindung gekoppelten Vorrichtung bereitzustellen, wobei die erste PHY-Einheit ein Niedrigenergie-Kommunikationsprotokoll ist und eine erste physische Einheitsschaltung enthält. Eine zweite PHY-Einheit wiederum ist mit dem Protokollstapel gekoppelt, um eine Kommunikation zwischen dem Prozessor und der Vorrichtung über einen Seitenbandkanal bereitzustellen, der zwischen dem Mehrkernprozessor und der Vorrichtung getrennt von der physischen Verbindung gekoppelt ist, wobei die zweite PHY-Einheit eine zweite physische Einheitsschaltung umfasst.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Rechnersystems, das eine Zwischenverbindungsarchitektur aufweist.
    • 2 veranschaulicht eine Ausführungsform einer Zwischenverbindungsarchitektur, die einen geschichteten Stapel aufweist.
    • 3 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die bzw. das innerhalb einer Zwischenverbindungsarchitektur zu generieren oder zu empfangen ist.
    • 4 veranschaulicht eine Ausführungsform eines Paares eines Senders und Empfängers für eine Zwischenverbindungsarchitektur.
    • 5 veranschaulicht eine Ausführungsform eines Beispiels eines Doppelverbinder-Zwischenverbindungskanals.
    • 6 ist ein vereinfachtes Blockbild eines Querschnitts einer Zwischenverbindungsstruktur, die Durchgangslöcher aufweist.
    • 7 ist eine Darstellung eines Querschnitts einer Zwischenverbindung, die ein tiefenkontrolliertes Bohren von Durchgangslochstichleitungen verwendet.
    • 8 ist ein Blockbild, das eine Fähigkeitsstruktur darstellt, die ein Bahnfehler-Statusregister aufweist.
    • 9 ist eine vereinfachte Darstellung, die Datenströme auf einer Zwischenverbindung mit mehreren Bahnen veranschaulicht.
    • 10 zeigt Darstellungen von beispielhaften Framing-Token-Symbolen.
    • 11 ist eine vereinfachte Darstellung, welche Datenströme veranschaulicht, die einen beispielhaften Skip- (SKP-) geordneten Satz aufweisen.
    • 12 ist ein vereinfachtes Blockbild, das Bahnfehler veranschaulicht, die an ein Fehlerregister berichtet werden können.
    • 13A bis 13D sind Flussdiagramme, die beispielhafte Techniken zum Berichten von Bahnfehlern einer Datenverbindung veranschaulichen.
    • 14 veranschaulicht eine Ausführungsform eines Blockbilds für ein Rechnersystem, das einen Prozessor mit mehreren Kernen aufweist.
    • 15 veranschaulicht eine weitere Ausführungsform eines Blockbilds für ein Rechnersystem, das einen Prozessor mit mehreren Kernen aufweist.
    • 16 veranschaulicht eine Ausführungsform eines Blockbilds für einen Prozessor.
    • 17 veranschaulicht eine weitere Ausführungsform eines Blockbilds für ein Rechnersystem, das einen Prozessor aufweist.
    • 18 veranschaulicht eine Ausführungsform eines Blockbilds für ein Rechnersystem, das mehrere Prozessoren aufweist.
    • 19 veranschaulicht ein beispielhaftes System, das als System-on-Chip (SoC) implementiert ist.
  • Ähnliche Bezugszahlen und Bezeichnungen in den verschiedenen Zeichnungen zeigen ähnliche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details ausgeführt, wie Beispiele spezifischer Typen von Prozessoren und Systemauslegungen, spezifischer Hardware-Strukturen, spezifischer Architektur- und Mikroarchitekturdetails, spezifischer Registerauslegungen, spezifischer Instruktionstypen, spezifischer Systemkomponenten, spezifischer Messungen/Höhen, spezifischer Prozessorpipelinestufen und -betriebe, etc., um ein grundlegendes Verständnis der vorliegenden Erfindung zu liefern. Für Fachleute ist es jedoch klar, dass diese spezifischen Details nicht verwendet werden müssen, um die vorliegende Erfindung zu praktizieren. In anderen Fällen wurden wohlbekannte Komponenten oder Verfahren, wie spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/codes für beschriebene Algorithmen, spezifische Firmware-Codes, spezifische Zwischenverbindungsbetriebsarten, spezifische Logikauslegungen, spezifische Herstellungstechniken und Materialien, spezifische Kompiliererimplementierungen, spezifische Ausdrücke von Algorithmen in Codes, spezifische Abschalt- und Gating-Techniken/Logik und andere spezifische Betriebsdetails von Computersystemen, nicht detailliert beschrieben, um zu vermeiden, die vorliegende Erfindung unnötig unklar zu machen.
  • Obwohl die folgenden Ausführungsformen mit Bezugnahme auf Energieeinsparungen und Energieeffizienz in spezifischen Integrationsschaltungen beschrieben werden können, wie bei Rechnerplattformen oder Mikroprozessoren, sind andere Ausführungsformen auf andere Typen von Integrationsschaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die auch von der besseren Energieeffizienz und Energieeinsparungen profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt und können auch in anderen Vorrichtungen verwendet werden, wie Handvorrichtungen, Tablets, anderen dünnen Notebooks, System-on-Chip- (SOC-) Vorrichtungen und eingebetteten Anwendungen. Einige Beispiele von Handvorrichtungen umfassen Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und Hand-PCs. Eingebettete Anwendungen umfassen typischerweise eine Mikrosteuereinheit, einen Digitalsignalprozessor (DSP), ein System-on-Chip, Netzcomputer (NetPC), Beistellgeräte, Netz-Hubs, Wide Area Network- (WAN-) Schalter oder ein beliebiges anderes System, das die nachstehend gelehrten Funktionen und Betriebe vornehmen kann. Außerdem sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechnervorrichtungen beschränkt, sondern können auch Software-Optimierungen für Energieeinsparungen und -effizienz betreffen. Wie aus der nachstehenden Beschreibung besser hervorgeht, sind die Ausführungsformen von hier beschriebenen Verfahren, Vorrichtungen und Systemen (egal ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) wesentlich für eine Zukunft einer „grünen Technologie“ im Abgleich mit Leistungsüberlegungen.
  • Mit der Weiterentwicklung von Rechnersystemen werden die Komponenten darin komplexer. Als Ergebnis nimmt auch die Zwischenverbindungsarchitektur zur Kopplung und Kommunikation zwischen den Komponenten an Komplexität zu, um sicherzustellen, dass Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Ferner verlangen verschiedene Marktsegmente verschiedene Aspekte von Zwischenverbindungsarchitekturen, um die Marktbedürfnisse zu erfüllen. Beispielsweise erfordern Server eine höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, eine Gesamtleistung für Energieeinsparungen zu opfern. Es ist dennoch ein einziges Ziel der meisten Strukturen, die höchstmögliche Leistung mit der maximalen Energieeinsparung zu liefern. Im Nachstehenden wird eine Reihe von Zwischenverbindungen diskutiert, die potentiell von hier beschriebenen Aspekten der Erfindung profitieren würden.
  • Eine Zwischenverbindungsstrukturarchitektur weist die Peripheral Component Interconnect (PCI) Express (PCIe)-Architektur auf. Ein primäres Ziel der PCIe ist zu ermöglichen, dass Komponenten und Vorrichtungen verschiedener Anbieter in einer offenen Archtiektur miteinander zusammenarbeiten, wobei mehrere Marktsegmente überspannt werden; Clients (Desktops und Mobile), Server (Standard und Enterprise) und eingebettete und Kommunikationsvorrichtungen. PCI Express ist eine Hochleistungs-Universal-I/O-Zwischenverbindung, die für verschiedenste zukünftige Rechner- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute, wie ihr Verwendungsmodell, ihre Lade-Speicher-Architektur und Software-Schnittstellen, wurden durch ihre Revisionen aufrechterhalten, während frühere parallele Busimplementierungen durch eine hochskalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express profitieren von Fortschritten bei Point-to-Point-Zwischenverbindungen, der schalterbasierten Technologie und dem paketierten Protokoll, um neue Standards von Leistung und Merkmalen zu liefern. Power Management, Quality of Service (QoS), Hot-Plug/Hot-Swap Support, Datenintegrität und Fehlerbehebung sind einige der hochentwickelten Merkmale, die von PCI Express unterstützt werden.
  • Mit Bezugnahme auf 1 ist eine Ausführungsform einer Struktur veranschaulicht, welche aus Point-to-Point-Verbindungen besteht, die einen Satz von Komponenten miteinander verbinden. Das System 100 weist einen Prozessor 105 und einen Systemspeicher 110 auf, der mit einem Steuereinheit-Hub 115 gekoppelt ist. Der Prozessor 105 weist ein beliebiges Verarbeitungselement auf, wie einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Der Prozessor 105 ist mit dem Steuereinheit-Hub 115 durch einen Front Side-Bus (FSB) 106 gekoppelt. In einer Ausführungsform ist der FSB 106 eine serielle Point-to-Point-Zwischenverbindung, wie nachstehend beschrieben. In einer weiteren Ausführungsform weist die Datenverbindung 106 eine serielle, differentielle Zwischenverbindungsarchitektur auf, die mit verschiedenen Zwischenverbindungsstandards konform ist.
  • Der Systemspeicher 110 weist eine beliebige Speichervorrichtung auf, wie einen Speicher mit wahlfreiem Zugriff (RAM), nicht-flüchtigen (NV-) Speicher oder anderen Speicher, auf den von Vorrichtungen im System 100 zugegriffen werden kann. Der Systemspeicher 110 ist mit dem Steuereinheit-Hub 115 durch eine Speicherschnittstelle 116 gekoppelt. Beispiele einer Speicherschnittstelle umfassen eine Speicherschnittstelle mit doppelter Datenrate (DDR), eine Dualkanal-DDR-Speicherschnittstelle und eine dynamische RAM-(DRAM-) Speicherschnittstelle.
  • In einer Ausführungsform ist ein Steuereinheit-Hub 115 ein Root-Hub, ein Root-Komplex oder eine Root-Steuereinheit in einer Peripheral Component Interconnect Express- (PCIe- oder PCIE-) Zwischenverbindungshierarchie. Beispiele eines Steuereinheit-Hubs 115 umfassen einen Chipsatz, einen Speichersteuereinheit-Hub (MCH), eine Northbridge, einen Zwischenverbindungs-Steuereinheit-Hub (ICH), eine Southbridge und einen Root-Steuereinheit/Hub. Der Ausdruck Chipsatz bezieht sich oft auf zwei physisch getrennte Steuereinheit-Hubs, d.h. einen Speichersteuereinheit-Hub (MCH), gekoppelt mit einem Zwischenverbindungs-Steuereinheit-Hub (ICH). Es ist zu beachten, dass aktuelle Systeme oft den MCH integriert mit dem Prozessor 105 aufweisen, wobei die Steuereinheit 115 mit I/O-Vorrichtungen zu kommunizieren hat, auf ähnliche Weise wie nachstehend beschrieben. In einigen Ausführungsformen wird ein Peer-to-Peer-Routing gegebenenfalls durch den Root-Komplex unterstützt.
  • Hier ist der Steuereinheit-Hub 115 mit dem Schalter/der Brücke 120 durch die serielle Datenverbindung 119 gekoppelt. Eingangs/Ausgangsmodule 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, umfassen/implementieren einen geschichteten Protokollstapel, um eine Kommunikation zwischen dem Steuereinheit-Hub 115 und dem Schalter 120 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Schalter 120 gekoppelt sein.
  • Der Schalter/die Brücke 120 lenkt Pakete/Nachrichten von der Vorrichtung 125 stromaufwärts, d.h. eine Hierarchie aufwärts zu einem Root-Komplex, zum Steuereinheit-Hub 115 und stromabwärts, d.h. eine Hierarchie abwärts weg von einer Root-Steuereinheit, vom Prozessor 105 oder Systemspeicher 110 zur Vorrichtung 125. Der Schalter 120 wird in einer Ausführungsform als Logikanordnung mehrerer virtueller PCI-to-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 weist eine beliebige interne oder externe Vorrichtung oder Komponente auf, die mit einem elektronischen System zu koppeln ist, wie eine I/O-Vorrichtung, eine Netzschnittstellen-Steuereinheit (NIC), eine Erweiterungskarte, einen Audio-Prozessor, einen Netzprozessor, ein Festplattenlaufwerk, eine Speichervorrichtung, einen CD/DVD ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal Serial Bus- (USB-) Vorrichtung, einen Scanner und andere Eingabe/Ausgabe-Vorrichtungen. In der PCIe-Sprache wird eine derartige Vorrichtung häufig als Endpunkt bezeichnet. Obwohl nicht spezifisch gezeigt, kann die Vorrichtung 125 eine PCIe-to-PCI/PCI-X-Brücke aufweisen, um Legacy- oder andere Versionen von PCI-Vorrichtungen zu unterstützen. Endpunktvorrichtungen bei PCIe werden oft als Legacy-, PCIe- oder Root-Komplex-Integrationsendpunkte klassifiziert.
  • Ein Grafikbeschleuniger 130 ist auch mit dem Steuereinheit-Hub 115 durch die serielle Datenverbindung 132 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Schalter 120, und demgemäß die I/O-Vorrichtung 125, ist dann mit dem ICH gekoppelt. I/O-Module 131 und 118 haben auch einen geschichteten Protokollstapel zu implementieren, um zwischen dem Grafikbeschleuniger 130 und dem Steuereinheit-Hub 115 zu kommunizieren. Ähnlich der obigen MCH-Diskussion kann eine Grafiksteuereinheit oder der Grafikbeschleuniger 130 selbst im Prozessor 115 integriert sein.
  • Mit Bezugnahme auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels veranschaulicht. Der geschichtete Protokollstapel 200 weist eine beliebige Form eines geschichteten Kommunikationsstapels auf, wie einen Quick Path Interconnect-(QPI-) Stapel, einen PCie-Stapel, einen Hochleistungs-Rechnerzwischenverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl die unmittelbar nachstehende Diskussion mit Bezugnahme auf 1 bis 4 in Bezug auf einen PCIe-Stapel erfolgt, können dieselben Konzepte auf andere Zwischenverbindungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 200 ein PCIe-Protokollstapel, der eine Transaktionsschicht 205, eine Datenverbindungsschicht 210 und eine physikalische Schicht 220 aufweist. Eine Schnittstelle, wie die Schnittstellen 117, 118, 121, 126 und 131 in 1, kann als Kommunikationsprotokollstapel 200 repräsentiert sein. Die Repräsentierung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, das oder die einen Protokollstapel implementiert/umfasst.
  • PCI Express verwendet Pakete, um Informationen zwischen Komponenten zu kommunizieren. Pakete werden in der Transaktionsschicht 205 und Datenverbindungsschicht 210 gebildet, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu tragen. Während die gesendeten Pakete durch die anderen Schichten fließen, werden sie durch zusätzliche Informationen erweitert, die notwendig sind, um Pakete in diesen Schichten handzuhaben. Auf der Empfangsseite tritt der umgekehrte Prozess auf und Pakete werden von ihrer Repräsentation in der physikalischen Schicht 220 zur Repräsentation in der Datenverbindungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form transformiert, die von der Transaktionsschicht 205 der empfangenden Vorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform hat die Transaktionsschicht 205 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur bereitzustellen, wie der Datenverbindungsschicht 210 und der physikalischen Schicht 220. In dieser Hinsicht ist eine primäre Zuständigkeit der Transaktionsschicht 205 die Assemblierung und Disassemblierung von Paketen (d.h. Transaktionsschichtpaketen oder TLPs). Die Transaktionsschicht 205 verwaltet typischerweise die kreditbasierte Flusssteuerung für TLPs. PCIe implementiert geteilte Transaktionen, d.h. Transaktionen mit einer Anforderung und Antwort, die durch die Zeit geteilt werden, wodurch ermöglicht wird, dass eine Datenverbindung anderen Verkehr trägt, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Zusätzlich verwendet PCIe eine kreditbasierte Flusssteuerung. In diesem Schema bietet eine Vorrichtung einen anfänglichen Kreditbetrag für jeden der Empfangspuffer in der Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Datenverbindung, wie ein Steuereinheit-Hub 115 in 1, zählt die Anzahl von Krediten, die von jedem TLP verbraucht werden. Eine Transaktion kann gesendet werden, falls die Transaktion ein Kreditlimit nicht überschreitet. Beim Empfang einer Antwort wird ein Kreditbetrag wiederhergestellt. Ein Vorteil eines Kreditschemas ist, dass eine Latenz von Kreditrückführungen die Leistung nicht beeinträchtigt, vorausgesetzt dass das Kreditlimit nicht erreicht wird.
  • In einer Ausführungsform umfassen vier Transaktionsadressräume einen Auslegungsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherraumtransaktionen umfassen eine oder mehrere von Leseanforderungen und Schreibanforderungen, um Daten zu/aus einem Speicher-gemappten Ort zu transferieren. In einer Ausführungsform sind Speicherraumtransaktionen 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. Auslegungsraumtransaktionen werden verwendet, um auf einen Auslegungsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen für den Auslegungsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfache Nachrichten) werden definiert, um eine Inband-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher assembliert in einer Ausführungsform die Transaktionsschicht 205 Paketanfangsblock/Nutzinformationen 206. Das Format für aktuelle Paketanfangsblöcke/ Nutzinformationen ist in der PCIe-Spezifikation auf der PCIe-Spezifikationen-Website zu finden.
  • Mit kurzer Bezugnahme auf 3 wird eine Ausführungsform eines PCIe-Transaktionsdeskriptors beschrieben. In einer Ausführungsform ist der Transaktionsdeskriptor 300 ein Mechanismus zum Tragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 300 die Identifikation von Transaktionen in einem System. Andere potentielle Verwendungen umfassen Verfolgungsmodifikationen von Standardtransaktionsordnungen und die Assoziation einer Transaktion mit Kanälen.
  • Der Transaktionsdeskriptor 300 weist ein globales Identifikatorfeld 302, ein Attributfeld 304 und ein Kanalidentifikatorfeld 306 auf. Im veranschaulichten Beispiel ist das globale Identifikatorfeld 302 so dargestellt, dass es ein lokales Transaktionsidentifikatorfeld 308 und ein Quellenidentifikatorfeld 310 umfasst. In einer Ausführungsform ist der globale Transaktionsidentifikator 302 für alle anstehenden Anforderungen einzigartig.
  • Gemäß einer Implementierung ist das lokale Transaktionsidentifikatorfeld 308 ein Feld, das von einem anfordernden Agenten generiert wird, und es ist für alle anstehenden Anforderungen einzigartig, die eine Vollendung für diesen Anforderungsagenten erfordern. Ferner identifiziert in diesem Beispiel der Quellenidentifikator 310 eindeutig den Anfordereragenten innerhalb einer PCIe-Hierarchie. Dementsprechend stellt das lokale Transaktionsidentifikatorfeld 308, zusammen mit dem Quellen-ID 310, eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Das Attributfeld 304 spezifiziert Charakteristika und Beziehungen der Transaktion. In dieser Hinsicht wird das Attributfeld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardhandhabung von Transaktionen gestatten. In einer Ausführungsform weist das Attributfeld 304 das Prioritätsfeld 312, das reservierte Feld 314, das Ordnungsfeld 316 und das „No-Snoop“-Feld 318 auf. Hier kann das Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuordnen. Das reservierte Attributfeld 314 ist für die Zukunft oder für eine verkäuferdefinierte Verwendung reserviert. Unter Verwendung des reservierten Attributfelds können mögliche Verwendungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 316 verwendet, um optionale, den Typ der Ordnung übermittelnde Informationen zuzuführen, die Standardordnungsregeln modifizieren können. Gemäß einer beispielhaften Implementierung bezeichnet ein Ordnungsattribut „0“, dass Standardordnungsregeln anzuwenden sind, während ein Ordnungsattribut „1“ eine gelockerte Ordnung bezeichnet, wobei Schreibvorgänge andere Schreibvorgänge in der gleichen Richtung passieren können und Lesevollendungen Schreibvorgänge in der gleichen Richtung passieren können. Das „Snoop“-Attributfeld 318 wird genutzt, um zu bestimmen, ob Transaktionen „durchsucht“ (snooped)" werden. Wie gezeigt wird, identifiziert das Kanal-ID-Feld 306 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 210, auch als Datenverbindungsschicht 210 bezeichnet, fungiert als Zwischenstufe zwischen der Transaktionsschicht 205 und der physikalischen Schicht 220. In einer Ausführungsform ist eine Zuständigkeit der Datenverbindungsschicht 210, einen zuverlässigen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten auf einer Datenverbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 210 akzeptiert von der Transaktionsschicht 205 assemblierte TLPs, wendet den Paketsequenzidentifikator 211, d.h. eine Identifikationsnummer oder Paketnummer, an, berechnet und wendet einen Fehlerdetektionscode, d.h. CRC 212, an und schickt die modifizierten TLPs an die physikalische Schicht 220 zur Übertragung über eine physikalische Einrichtung an eine externe Vorrichtung.
  • Physikalische Schicht
  • In einer Ausführungsform enthält die physikalische Schicht 220 den logischen Subblock 221 und den elektrischen Subblock 222, um ein Paket physikalisch an eine externe Vorrichtung zu senden. Hier ist der logische Subblock 221 für die „digitalen“ Funktionen der physikalischen Schicht 221 zuständig. In dieser Hinsicht umfasst der logische Subblock einen Sendeabschnitt zurVorbereitung ausgehender Informationen für die Übertragung durch den physikalischen Subblock 222 und einen Empfangsabschnitt zur Identifikation und Vorbereitung empfangener Informationen, bevor er sie an die Datenverbindungsschicht 210 weiterleitet.
  • Der physikalische Block 222 enthält einen Sender und einen Empfänger. Der Sender wird vom logischen Subblock 221 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Vorrichtung weitersendet. Der Empfänger wird mit serialisierten Symbolen aus einer externen Vorrichtung versorgt und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und dem logischen Subblock 221 zugeführt. In einer Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, bei dem Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 einzurahmen. Zusätzlich stellt der Empfänger in einem Beispiel auch einen Symboltakt bereit, der aus dem eingehenden seriellen Strom gewonnen wird.
  • Obwohl die Transaktionsschicht 205, die Datenverbindungsschicht 210 und die physikalische Schicht 220 mit Bezugnahme auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, wie oben angegeben, ist ein geschichteter Protokollstapel nicht derart eingeschränkt. Tatsächlich kann ein beliebiges geschichtetes Protokoll enthalten/implementiert sein. Als Beispiel umfasst ein Port/eine Schnittstelle, der bzw. die als geschichtetes Protokoll dargestellt wird: eine erste Schicht zum Assemblieren von Paketen, d.h. eine Transaktionsschicht, eine zweite Schicht zum Sequenzieren von Paketen, d.h. eine Datenverbindungsschicht, und eine dritte Schicht zum Senden der Pakete, d.h. eine physikalische Schicht. Als spezifisches Beispiel wird ein geschichtetes Common Standard Interface-Protokoll genutzt.
  • Als nächstes wird mit Bezugnahme auf 4 eine Ausführungsform für eine serielle PCIe-Point-to-Point-Struktur veranschaulicht. Obwohl eine Ausführungsform einer seriellen PCIe-Point-to-Point-Verbindung veranschaulicht wird, ist eine serielle Point-to-Point-Verbindung nicht derart eingeschränkt, da sie einen beliebigen Übertragungspfad zum Senden serieller Daten umfasst. In der gezeigten Ausführungsform umfasst eine PCIe-Basisverbindung zwei differentiell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Dementsprechend enthält die Vorrichtung 405 Übertragungslogik 406 zum Senden von Daten an die Vorrichtung 410 und Empfangslogik 407 zum Empfangen von Daten von der Vorrichtung 410. Mit anderen Worten sind zwei sendende Pfade, d.h. die Pfade 416und 417, und zwei empfangende Pfade, d.h. die Pfade 418 und 419, in einer PCIe-Verbindung enthalten.
  • Ein Übertragungspfad bezieht sich auf irgendeinen Pfad zum Senden von Daten, wie eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie der Vorrichtung 405 und der Vorrichtung 410, wird als Datenverbindung bezeichnet, wie die Datenverbindung 415. Eine Datenverbindung kann eine Bahn unterstützen - wobei jede Bahn einen Satz differentieller Signalpaare darstellt (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren, kann eine Datenverbindung mehrere Bahnen vereinen, die mit xN bezeichnet werden, wobei N eine beliebige unterstützte Datenverbindungsbreite ist, wie 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differentielles Paar bezieht sich auf zwei Sendepfade, wie die Leitungen 416 und 417, zum Senden von differentiellen Signalen. Als Beispiel: Wenn die Leitung 416 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d.h. eine ansteigende Flanke, steuert die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel, d.h. eine abfallende Flanke. Differentielle Signale zeigen potentiell bessere elektrische Charakteristiken, wie bessere Signalintegrität, d.h. Querkopplung, Spannungs-Überschwingen/-Unterschwingen, Nachschwingen, etc. Dies ermöglicht ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • Hochgeschwindigkeitskanal
  • Eine Revision der PCIe-I/O-Spezifikation ist die PCIe-Revision 4.0 (oder PCIe 4.0). Bei einer 16 GT/s-Bitrate zielt PCIe 4.0 darauf ab, die Zwischenverbindungsleistungsbandbreite gegenüber der PCIe 3.0-Spezifikation zu verdoppeln, während die Kompatibilität mit Software und mechanischen Schnittstellen aufrechterhalten wird. Die Erhöhung der Leistungsbandbreite gegenüber früheren Generationen von PCIe kann eine Leistungskalierung bereitstellen, die mit dem erhöhten Bandbreitenbedarf verschiedenster Entwicklungsanwendungen konsistent ist, während das Ziel auch ist, niedrige Kosten, niedrigen Energieverbrauch und minimale Störungen auf Plattformebene bereitzustellen. Einer der Hauptfaktoren bei der verbreiteten Verwendung der PCIe-Architektur ist ihre Empfindlichkeit für Produktionskapazitäten mit großem Volumen und Materialien wie Leiterplatten zu niedrigeren Kosten, Verbinder mit niedrigen Kosten usw.
  • Die 16 GT/s-Bitrate zielt darauf ab, einen optimalen Ausgleich zwischen Leistung, Herstellbarkeit, Kosten, Energieverbrauch und Kompatibilität bereitzustellen. Machbarkeitsanalysen wurden vorgenommen, um Charakteristiken für Vorrichtungen und Kanäle zu empfehlen, welche die 16 GT/s-Bitrate für PCIe 4.0 unterstützen. Die PCI-SIG-Analyse behandelte mehrere Topologien. Beispielsweise haben Analysen bestimmt, dass 16 GT/s auf Kupfer, was die Bandbreite gegenüber der PCIe 3.0-Spezifikation verdoppelt, technisch ungefähr bei PCIe 3.0 Energiepegeln machbar ist. Hier wird eine 16 GT/s-Zwischenverbindung potentiell in der Mainstream-Silicium-Prozesstechnologie hergestellt und mit bestehenden Materialien und Infrastruktur mit niedrigen Kosten angewendet, während die Kompatibilität mit früheren Generationen einer PCIe-Architektur aufrechterhalten wird.
  • Eine serielle I/O mit höherer Datenrate (z.B. 16 GT/s unter PCIe 4.0) würde erhebliche Energie verteilen und die Schaltungskomplexität erhöhen, die potenziell zu einer erhöhten Verwendung des Silicium- (Si-) Bereichs führen würde. Diese Überlegungen haben ferner das Potential, die Integration von PCIe 4.0 (und anderer solcher Zwischenverbindungsarchitekturen mit hoher Geschwindigkeit) in CPUs und Systeme einzuschränken, die größere Bahnzahlen verwenden. In einigen beispielhaften Implementierungen werden beispielsweise Einschränkungen der Zwischenverbindungslänge und der Anzahl von Verbindern auferlegt, die innerhalb einer Hochgeschwindigkeitsarchitektur verwendet werden, wie PCIe 4.0. Beispielsweise wird eine derartige Einschränkung auf Spezifikationsebene definiert. In einem Beispiel ist die Zwischenverbindungskanallänge auf einen (1) Verbinder und zwölf (12) oder weniger Inches begrenzt.
  • Die Auferlegung von Einschränkungen für Zwischenverbindungskanäle kann ihre Anwendung in einigen Systemen begrenzen. Beispielsweise können in Server-Zwischenverbindungsanwendungen Plattformzwischenverbindungen manchmal bis zu zwanzig (20) Zoll oder mehr betragen und können zwei Verbinder aufweisen. Würde eine Architektur die Zwischenverbindungskanäle auf ein Maximum von 12" in der Länge und einen einzigen Verbinder beschränken, wäre ein getrennter Repeater-Chip oder eine andere zusätzliche Vorrichtung eingeschlossen, um zwei der 12"-Kanäle zu kombinieren und die Distanzen zwischen Vorrichtungen im Serverystem aufzunehmen, unter potentiell anderen Beispielen.
  • In einigen Implementierungen kann eine Zwischenverbindung bereitgestellt werden, die ausgelegt ist, mit PCIe 4.0 und anderen Zwischenverbindungen übereinzustimmen, wobei ein Doppelverbinderkanal mit einer Länge von größer oder gleich zwanzig Zoll ermöglicht wird, während weiterhin 16 GT/s-Datenkommunikationsgeschwindigkeiten unterstützt werden. Beispielsweise können eine Schaltung und Zwischenverbindung co-optimiert werden, so dass Repeater und andere Vorrichtungen aus längeren Zwischenverbindungskanalläufen weggelassen werden können. Dies kann die Verringerung der Herstellungskosten, die Verringerung der I/O-Latenz und die Erweiterung der Anwendbarkeit von Architekturen mit höheren Bandbreitengeschwindigkeiten auf zusätzliche Anwendungen unterstützen. Beispielsweise kann ein Repeater-Chip einen Sende/Empfänger, einen Empfänger, eine Taktgenerierung (z.B. Phasenregelkreis (PLL)), eine Taktrückgewinnung und zugeordnete Logikfunktionen aufweisen. Solche Komponenten können wertvollen Plattenplatz verwenden. Ferner kann für eine x16 PCIe 4.0-Zwischenverbindung jeder Repeater extra Energie verteilen und, unter anderen potentiellen Nachteilen, zusätzliche Kosten in die Herstellung eines Systems einbringen. Repeater können beispielsweise auch eine zusätzliche I/O-Latenz einführen.
  • 5 zeigt ein Beispiel einer Doppelverbinder-Kanalauslegung. Beispielsweise kann der Kanal 500 mehrere Abschnitte aufweisen, wie Abschnitte auf dem Sockel (z.B. einer CPU), der Mutterplatine, der Erweiterungskarte, der Riser-Karte, unter anderen Elementen, welche die Kanalverbindung überspannen kann, um zwei Vorrichtungen (z.B. 505, 510) in einem System zu verbinden. Die Kanalabschnitte können jeweils eine jeweilige Länge aufweisen, in diesem Beispiel mit Längen L1=1", L2=10,5", L3=0,5", L4=4", L5=3" und L6=1", insgesamt 20" für die Gesamtlänge des Kanals 500. Der Kanal kann mit jeder Vorrichtung 505, 510 unter Verwendung eines jeweiligen Verbinders 515, 520 (an jedem Paket) verbunden sein.
  • Unter Verwendung herkömmlicher Techniken kann eine Auslegung, wie die in 5 veranschaulichte, einen negativen Margin quer über die Datenverbindung ergeben. In einem Beispiel kann eine Doppelverbinder-Zwischenverbindung von 20", die eine 16 GT/s-Bitrate unterstützt (z.B. 500), bereitgestellt werden, die den Verbinder-Stichleitungs-Durchgangsloch-Effekt minimiert, den SPU-Sockel-Effekt minimiert, verbesserte Personalcomputerkarten- (PCB-) Weiterentwicklungen mit niedrigem Verlust fördert und eine Erhöhung der chipinternen Front End-Sende/ Empfängerverstärkung bereitstellt, unter potentiell anderen Merkmalen, um eine positive Verstärkung quer über die Datenverbindung zu realisieren.
  • Ein Verbinder kann ein oder mehrere Durchgangslöcher aufweisen, die zur Herstellung elektrischer Verbindungen zwischen Schichten verwendet werden. Durchgangslöcher können beispielsweise verwendet werden, um Signale oder Energie zwischen Schichten einer Leiterplatte oder Komponenten zu tragen. In Hochgeschwindigkeitssystemen ist der Teil des Durchgangslochrests auf einem Verbinder, einem Chip oder einer Platte jener Teil, der innerhalb einer elektrischen Point-to-Point-Verbindung unter Verwendung des Durchgangslochs nicht verwendet wird. Mit Bezugnahme auf 6 ist eine vereinfachte Darstellung 600 eines Querschnitts einer Leiterplatte oder anderen Komponente gezeigt. Die Komponente kann ein oder mehrere Stichleitungsdurchgangslöcher 605, 610 aufweisen. Ein Durchgangsloch kann elektrische Verbindungen zwischen Schichten auf einer Leiterplatte herstellen, wie eine Durchkontaktierungs- (PTH-) Technologie. Beispielsweise kann ein Durchgangsloch die Stifte von Verbindern mit inneren Signalschichten (z.B. Spuren) verbinden. Beispielsweise kann im Beispiel von 6 ein Abschnitt einer Datenverbindung unter Verwendung eines Abschnitts (z.B. 615, 620) eines PTH-Durchgangslochs implementiert werden, um einen Abschnitt der Datenverbindung mit einem anderen zu verbinden (z.B. einer Spur (z.B. 625), der entlang einer Schicht 630 der Komponente zu einer anderen Komponente, einem anderen Durchgangsloch, etc., auf der Datenverbindung (oder dem Kanal) verläuft). Der verbleibende Abschnitt (z.B. 635) des Durchgangslochs kann als Stichleitung angesehen werden. In Hochgeschwindigkeitsverbindungen unter Verwendung eines Durchgangslochs kann eine Durchgangslochsstichleitung 635 Resonanzeffekte bewirken (z.B. Resonanzfrequenznullen), die zu einer Signalverschlechterung für einen Kanal (z.B. Bahn) führen. Demgemäß können in einigen Implementierungen Durchgangslochstichleitungen tiefenkontrolliert gebohrt werden, wie bei 650 gezeigt, um solche Effekte zu mildern. Das tiefenkontrollierte Bohren kann den Stichleitungsabschnitt des Durchgangslochs entfernen, der die Quelle dieser negativen elektromagnetischen Effekte ist. In einigen Fällen kann das tiefenkontrollierte Bohren als Bohrprozess nach der Herstellung implementiert werden, wobei das tiefenkontrolliert gebohrte Loch einen größeren Durchmesser aufweist als die ursprüngliche Durchkontaktierung (PTH).
  • Durchgangslochstichleitungrn in den beiden Verbindern, die in einem 20" 16 GT/s-Kanal verwendet werden, können entfernt oder minimiert werden, beispielsweise durch tiefenkontrolliertes Bohren, U-förmige Durchgangslöcher und andere Lösungen. Im Fall des tiefenkontrollierten Bohrens kann der Typ des Verbinders auf der Basis des Verbindertyps ausgewählt werden, der ein guter Kandidat für ein tiefenkontrolliertes Bohren ist. Beispielsweise können einige Verbinder mechanisch beeinträchtigt werden und ausfallen, würden sie tiefenkontrolliert gebohrt werden. Andere Verbindertypen können geeigneter sein, wie oberflächenmontierte Verbinder.
  • Zusätzlich zur Verbesserung der elektrischen Qualität von Verbindern durch ein tiefenkontrolliertes Bohren kann auch die elektrische Qualität von CPU-Sockeln verbessert werden, um 20" 16 GT/s-Kanäle am Sockel zu ermöglichen. Beispielsweise kann jeder Stift eines CPU-Sockels oder einer anderen Vorrichtung tiefenkontrolliert gebohrt werden, entsprechend einer 20" 16 GT/s-Kanalbahn, die durch eine Platine unter Verwendung eines Durchgangslochs verbunden ist und geroutet wird. Die Sockel-Stichleitungslänge dieser längeren Doppelverbinder-Hochgeschwindigkeitskanäle kann auch reduziert werden, indem Schichten reserviert werden, welche näher bei den Stiften für Spuren liegen, die vom Kanal verwendet werden. Dies kann ermöglichen, dass die Sockel-Stichleitungslänge (des Durchgangslochs) begrenzt wird, indem diese Bahnen durch solche Schichten des Boards geroutet werden.
  • Die Minimierung des CPU-Sockel-Effekts kann das derartige Ausbilden des Stiftanschluss- und Durchbruch-Layouts involvieren, dass die Bahnen von 20" 16 GT/s-Kanälen Layout-Priorität erhalten. Beispielsweise können Kanäle ausgebildet werden, um auf Schichten geroutet zu werden, so dass ein tiefenkontrolliertes Bohren für jeden Stift der mit dem 20" 16 GT/s-Kanal verbundenen CPU zur Verfügung steht. Alternativ (oder zusätzlich) dazu kann ein Routing so ausgebildet werden, dass 20" 16 GT/s-Kanäle Schichten verwenden, die es ermöglichen, dass die Länge von Sockel-Stichleitungen eingeschränkt wird.
  • 7 ist eine vereinfachte Darstellung eines Querschnitts einer Platine, durch das zwei Vorrichtungen 705, 710 unter Verwendung einer beispielhaften Zwei-Verbinder-Datenverbindung (wie einer, die einen 20" 16 GT/s-Kanal verkörpert) verbunden sind. In diesem Beispiel können Durchbrüche von Stiften der Vorrichtungen 705, 710 so ausgebildet werden, dass ein tiefenkontrolliertes Bohren angewendet werden kann, ohne andere Durchbruchkanäle im Stiftfeld zu blockieren. Beispielsweise können innere Stifte (z.B. 715) ausgebildet werden, auf Schichten über den Durchbrüchen von äußeren Stiften (z.B. 720) durchzubrechen, die auf unteren Schichten des Boards geroutet werden. Ferner können Stifte ausgebildet werden, so platziert zu werden, dass ein beliebiger Stift, dessen Durchgangslochstichleitung auszubohren ist (z.B. ein Stift eines 20" 16 GT/s-Kanals), nicht angrenzend an ein Energiedurchgangsloch positioniert ist, da ein tiefenkontrolliertes Bohren (z.B. 725a-f) riskieren kann, die Energieebenen und -formen zu perforieren, was potentiell zu einem ineffizienten Energieabgabenetz führt. Zusätzlich können Erdungsstifte auf der Basis der Perforierungen platziert werden, die, unter anderen Regeln und Beispielen, nach dem tiefenkontrollierten Bohren auf Erdungsebenen liegen sollen.
  • Zusätzliche Merkmale können in einem 20" Doppelverbinderkanal eingeschlossen werden, um Bitraten zu gestatten, die 16 GT/s erfüllen oder überschreiten, während weiterhin eine positive Verstärkung quer über die Datenverbindung realisiert wird. Beispielsweise kann ein PC-Board mit niedrigem Verlust realisiert werden, wie ein Board mit einem spurdifferentiellen Einfügungsverlust von kleiner oder im Wesentlichen gleich 0,48 dB/in bei 4 GHz.
  • Zusätzlich zur Milderung von Stichleitungseffekten an den Verbindern und Sockeln eines Doppelverbinderkanals von 12" und Bereitsstellung des Kanals unter Verwendung einer Platine mit niedrigem Verlust können in einigen Fällen 16 GT/s-Geschwindigkeiten auf einem Kanal von wenigstens 20" realisiert werden, indem ferner eine zusätzliche Verstärkung im Empfänger-Front End und/oder eine zusätzliche Peakbildung im zeitkontinuierlichen Linear-Entzerrer (CTLE) bereitgestellt werden. In einigen Beispielen kann das Empfänger-Front End die kombinierten analogen Schaltungen im Signaldatenpfad umfassen, beispielsweise CTLE, AGC (automatische Verstärkungssteuerung), DFE (entscheidungsrückgekoppelter Entzerrer) und/oder Datenabtaster (auch als Slicer bezeichnet), unter anderen potentiellen Beispielen. Beispielsweise kann in einer Implementierung das Hinzufügen einer Verstärkung von insgesamt ungefähr 6 dB (z.B. über der Basislinie für PCIe 4.0) am Empfänger-Front End und/oder CTLE die Realisierung eines 20" 16 GT/s-Kanals unterstützen. Die Realisierung einer kleinen Verstärkungsmenge (z.B. ungefähr 6 dB) kann mit nur einer kleinen Erhöhung der Energie und Schaltungskomplexität erzielt werden, beispielsweise durch das Hinzufügen einer einzigen Verstärkungsstufe, unter anderen Beispielen. Zusätzlich kann in einigen Systemen die Verstärkung auf dem Kanal abstimmbar oder auf andere Weise auslegbar sein. Beispielsweise kann der Kanal für Anwendungen programmierbar abgestimmt werden, wo 16 GT/s-Geschwindigkeiten verwendet werden, und die Verstärkung kann für Anwendungen ausgeschaltet werden, die niedrigere Geschwindigkeiten verwenden, unter anderen Beispielen.
  • Zuverlässigkeit, Verfügbarkeit und Betriebsfähigkeit (RAS)
  • In einigen Implementierungen kann eine Zwischenverbindungsarchitektur, wie PCIe, Erweiterungen für die Zuverlässigkeit, Verfügbarkeit und Betriebsfähigkeit (RAS) im System aufweisen. Während dieses Anliegen für alle Datenraten gelten kann, können einige Architekturen bestimmte Codierungsschemata in Verbindung mit höheren Datenraten anwenden. Beispielsweise verwendet PCIe 4.0 (sowie PCIe Revision 3.0) das 128b/130b Codierungsschema, beispielsweise für Datenraten über 8 GT/s. In dem 128b/130b-Schema wird eine Pro-Bahn-Parität pro SKP (oder „Skip“) geordnetem Satz (SKP OS) bereitgestellt, um zu identifizieren, welche Bahn(en) in einer Datenverbindung ausgefallen sein kann (können), um eine prädiktive Analyse vorzunehmen und mit einer reduzierten Datenverbindungsbreite zu arbeiten, wenn geeignet, unter anderen Beispielen. Die Bahnparität kann ein effektives Werkzeug bei der Identifikation von Fehlern auf bestimmten Bahnen einer Datenverbindung sein, aber in einigen Fällen, wenn die Datenverbindung vorwiegend ungenutzt ist (z.B. mit logischen Idle Framing Tokens (IDLs) auf der Datenverbindung), kann eine Exposition existieren, die bewirkt, dass die Detektionsverfügbarkeit, die durch das Paritätsbit bereitgestellt wird, unterminiert wird, da Fehler im Framing-Token (z.B. IDL) zu einer Datenverbindungswiederherstellung führen können, welche die Paritätsinformationen bis zu diesem Punkt eliminiert. Zusätzliche blinde Flecken können in den Fehlerdetektionsmechanismen traditioneller Architekturen existieren, die bewirken, dass Fehler zu gering eingeschätzt werden. Beispielsweise kann eine Zwischenverbindungsarchitektur fehlerhafte Bahnen in Bezug auf detektierte Framing-Token-Fehler zu gering detektieren oder überhaupt nicht detektieren, unter anderen Defiziten.
  • In einigen Architekturen kann ein Register bereitgestellt werden, um Fehler zu identifizieren, die auf einer Datenverbindung detektiert oder antizipiert werden, sowie in einigen Fällen die bestimmten Bahnen, auf denen die Fehler auftreten. Beispielsweise kann, wie in 8 gezeigt, PCIe ein Bahnfehlerstatus- (LES-) Register 805 in Verbindung mit einer Fähigkeitenstruktur, wie der Secondary PCIe Extended Capability-Struktur, bereitstellen. Eine solche Fähigkeitenstruktur 800 kann einen Secondary PCIe Extended Capability-Anfangsblock 810, ein Datenverbindungssteuerung 3-Register 815 und ein Entzerrungssteuerregister 820 zusätzlich zum LES-Register 805 aufweisen. In einigen Implementierungen kann das LES-Register einen 32 Bit-Vektor aufweisen, wobei jedes Bit z.B. einer Bahn in der Datenverbindung entspricht (identifiziert durch die Bahnnummer) und anzeigt, ob die Bahn einen Fehler detektiert hat. Ein Satz von Fehlern wird in PCIe definiert, was dazu führen kann, dass ein Fehlerereignis innerhalb des LES-Registers berichtet wird. Beispielsweise, wie oben eingeführt, kann eine Datenparität durch ein Datenparitätsbit implementiert werden, das in einem SKP OS eingeschlossen ist, der anzeigt, ob detektiert wurde, dass eine gerade Parität in den Nutzinformationen aller Datenblöcke vorliegt, die nach der Verwürfelung nach dem letzten SKP OS (oder Start of Data Stream (SDS) Ordered Set) gesendet wurden, unter anderen Beispielen. Die Datenparität kann aber für jede Bahn unabhängig berechnet werden. Empfänger- und Sendervorrichtungen berechnen die Parität unter Verwendung derselben Technik und der Empfänger vergleicht seine berechnete Parität für jede Bahn mit der vom Sender berechneten Parität (wie durch das Paritätsbit identifiziert), um potentielle Fehler zu identifizieren. Falls die berechneten und empfangenen Werte nicht übereinstimmen, kann beispielsweise das Bit im LES-Register eingestellt werden (z.B. entsprechend der Bahnnummer, wo die Nicht-Übereinstimmung detektiert wurde).
  • Wie oben diskutiert, und wie in der vereinfachten Darstellung 900 von 9 veranschaulicht, können Daten auf zwei oder mehreren Bahnen einer Datenverbindung gesendet werden. Wie in der beispielhaften PCIe gezeigt, kann beispielsweise die Basiseinheit der Datenübertragung ein Symbol sein, wie ein als 8 Bit-Datenzeichen implementiertes Symbol. Die Nutzinformationen von Datenblöcken sind ein Strom von Symbolen, der als Datenstrom definiert wird, welcher Framing-Tokens, Transaktionsschichtpakete (TLPs), Datenverbindungsschichtpakete (DLLPs), etc., umfassen kann. Jedes Symbol des Datenstroms kann auf eine einzelne Bahn der Bahn zur Übertragung platziert werden, wobei der Strom von Symbolen über alle Spuren verteilt ist und Blockgrenzen überspannt. Ferner kann in einigen Fällen die physikalische Schicht einen Pro-Bahn-Blockcode verwenden. Jeder Block kann einen 2 Bit-Sync-Anfangsblock und die Nutzinformationen aufweisen. Bei PCIe sind zwei gültige Sync-Anfangsblöcke definiert: 10b und 01b, die den Typ von Nutzinformationen definieren, die der Block enthält. Beispielsweise kann ein Sync-Anfangsblock von 10b einen Datenblock anzeigen, und ein Sync-Anfangsblock 01b kann einen geordneten Satzblock anzeigen. Als Beispiel zeigt 9 die Übertragung eines Datenstroms auf vier Bahnen, Bahn 0, 1, 2 und 3. Alle Bahnen einer Mehrbahnenverbindung senden Blöcke mit demselben Sync-Anfangsblock gleichzeitig. Die Bitübertragungsordnung kann mit dem Sync-Anfangsblock beginnen (dargestellt als „H1H0“, platziert auf die Bahn als „H0-H1“), gefolgt von einem ersten Symbol, dargestellt als „S7-S6-S5-S4-S3-S2-S1-S0“, platziert auf eine Bahn beginnend mit „S0“ und endend mit „S7“.
  • PCIe stellt eine Option für einen Empfänger bereit, um Fehler, die nicht-übereinstimmenden oder ungültigen Sync-Anfangsblöcken in einem Datenstrom entsprechen, an das LES-Register zu berichten. Beispielsweise kann eine Identifikation, dass eine oder mehrere der Bahnen (z.B. während der ersten beiden UIs in einem Datenstrom) einen Sync-Anfangsblock mit einem ungültigen Wert (z.B. 00b, 11b) enthält oder enthalten, als Fehler auf der Spur identifiziert werden, der an das LES-Register berichtet werden kann, unter anderen Beispielen.
  • Mit Bezugnahme auf 10 sind Darstellungen beispielhafter Framing-Tokens 1005, 1010, 1015, 1020, 1025 gezeigt. Ein Framing-Token (oder „Token“) kann eine Dateneinkapselung der physikalischen Schicht sein, welche die Anzahl von Symbolen spezifiziert oder impliziert, die dem Token zugeordnet sind, und dadurch den Ort des nächsten Framing-Tokens identifizieren. Ein Framing-Token eines Datenstroms kann im ersten Symbol (Symbol 0) der ersten Bahn (z.B. Bahn 0) des ersten Datenblocks des Datenstroms lokalisiert sein. In einem Beispiel definiert PCIe fünf Framing-Tokens, umfassend Start of TLP (STP) Token 1005, End of Data Stream (EDS) Token 1010, End Bad (EDB) Token 1015, Start of DLLP (SDP) Token 1020 und logisches Idle (IDL) Token 1025. Ein STP Token 1005 kann vier (4) Symbole lang sein und von Datenverbindungsschicht-Informationen gefolgt werden. Ein beispielhaftes EDS-Token 1010 kann vier (4) Symbole lang sein und anzeigen, dass der nächste Block ein geordneter Satzblock sein wird. Ein EDB-Token 1015 kann auch vier (4) Symbole lang sein und bestätigen, dass das TLP „bad“ war und ungültig gemacht wurde. Ein EDB kann immer auf TLP-Daten folgen. Ferner kann ein SDP-Token 1020 kürzer sein, mit zwei (2) Symbolen in der Länge, und kann von DLLP-Informationen gefolgt werden. Schließlich kann in diesem Beispiel ein IDL-Token 1025 ein einzelnes Symbol sein und gesendet werden, wenn keine TLPs, DLLPs oder andere Framing-Tokens auf der Datenverbindung gesendet werden.
  • 11 veranschaulicht eine Darstellung 1100, die beispielhafte Daten zeigt, welche über eine beispielhafte x8 Datenverbindung gesendet werden, und die Merkmale eines Datenstroms veranschaulicht, der gemäß einer bestimmten Zwischenverbindungsarchitektur, wie PCIe, definiert ist. In diesem Beispiel können die Daten das Senden eines SKP geordneten Satzes umfassen. Der Strom kann in diesem Beispiel mit dem Senden von Sync-Anfangsblöcken H1H0 = 10b beginnen, die einen Datenblock anzeigen. Demgemäß kann ein STP Framing-Token als erstes Symbol 0 auf den Bahnen 0-3 gesendet werden, um den Start eines TLP-Stroms anzuzeigen. Eine zyklische Verbindungsredundanzprüfung (LCRC) kann TLP-Daten folgen, ferner gefolgt von einem SDP-Anfangsblock, der anzeigt, dass DLLP-Daten zu senden sind (z.B. bei den Symbolen 3-4). Zyklische Redundanzprüfungs- (CRC-) Daten können auch in Verbindung mit den DLLP-Daten bereitgestellt werden.
  • In dem Beispiel von 11 werden logische Idle (IDL) Tokens gesendet, da keine Daten auf der Datenverbindung für eine Serie von UIs gesendet werden. Ein EDS-Token kann dann gesendet werden, um einen Übergang zu geordneten Satzdaten auf den Bahnen anzuzeigen. Beispielsweise kann ein weiterer Sync-Anfangsblock (z.B. bei 1105), codiert als „01b“, gesendet werden, um anzuzeigen, dass die folgenden Datenblöcke geordnete Satzdatenblöcke sein werden. In diesem bestimmten Beispiel ist der geordnete Satz, der gesendet wird, ein SKP geordneter Satz (OS). Wie oben angemerkt, kann in einigen Implementierungen ein SKP OS ein Paritätsbit umfassen, das den Paritätszustand für jede Bahn (z.B. Bahnen 0-7) der Datenverbindung anzeigt. Ein SKP OS kann ferner ein definiertes Layout aufweisen, das für den Empfänger identifizierbar ist. Beispielsweise kann im Fall einer 128b/130b-Codierung bei PCIe ein SKP OS eine Basis von sechzehn Symbolen umfassen. Gruppierungen von vier SKP Symbolen können durch einen Port hinzugefügt oder entfernt werden, demgemäß kann ein SKP OS 8, 12, 16, 20 oder 24 Symbole sein, etc. Ferner kann ein SKP_END Symbol auf den Bahnen bereitgestellt werden, wie in 11 veranschaulicht, um den Ort des Endes des SKP OS und den Ort des nächstens Sync-Anfangsblocks anzuzeigen, der auf den Bahnen zu senden ist, unter anderen Beispielen.
  • In einigen beispielhaften Implementierungen kann Logik bereitgestellt werden, um zusätzliche Bahnfehler in einer Zwischenverbindungsarchitektur zu detektieren. Software in einem System kann ein Register, wie das LES-Register, überwachen, um Fehler auf einer Bahn-für-Bahn-Basis über eine Zeitperiode zu überwachen. Ein einzelner Bahnfehler kann nicht anzeigen, dass es ein Problem mit dem Fehler gibt. Da Fehler jedoch mit einer statistisch signifikanten Frequenz auf einer oder mehreren bestimmten Bahnen einer Datenverbindung auftreten, kann System-Software bestimmen, dass ein potentielles Problem in Bezug auf die bestimmten Bahnen besteht. Ferner können in einigen Implementierungen korrektive Maßnahmen ergriffen werden, um das Senden wenigstens einiger Systemdaten auf einer zu Fehlern neigenden Bahn zu vermeiden, wie durch eine Neuauslegung einer Datenverbindung, eine Generierung eines Tickets für eine nähere Untersuchung der Datenverbindung, unter anderen Beispielen. Einige Fehler können auf einer Bahn-für-Bahn-Basis schwierig zu detektieren sein. Während einige Mechanismen bereitgestellt wurden, um einen Teil von Fehlern auf einer Datenverbindung zu detektieren (z.B. auf der Basis der Parität oder inkorrekter Sync-Anfangsblöcke), können andere Architekturmerkmale und Regeln genützt werden, um noch zusätzliche Fälle bahnspezifischer Regeln zu identifizieren. Diese Fehler können auch an ein Register zur Berücksichtigung gemeinsam mit traditionellen Bahnfehlerberichten berichtet werden, um ein vollständigeres Bild der Gesundheit der einzelnen Bahnen einer Datenverbindung zu konstruieren, unter anderen Beispielen und Überlegungen.
  • In einem ersten Beispiel, wie in einem oben beschriebenen Beispiel von PCIe, kann, falls eine Bahn einen geordneten Satzblock mit einem diesem unmittelbar vorausgehenden ungültigen (nicht-übereinstimmenden, inkorrekten oder auf andere Weise unerwarteten) EDS-Token empfängt, ein Fehler auf der Bahn angenommen werden, wo das ungültige EDS-Token detektiert wurde. Ferner kann der Fehler in Bezug auf das ungültige EDS-Token auf der Bahn an ein Fehlerregister berichtet werden, wie durch das Setzen eines entsprechenden Bits in einem PCIe-LES-Register.
  • In einem weiteren Beispiel kann ein vorherbestimmtes Format für einen bestimmten geordneten Satz genutzt werden, um zusätzliche Bahnfehler zu identifizieren. Beispielsweise kann ein SKP OS gut definierte SKP-Symbole umfassen, bis SKP_END Symbole gesendet werden, um das Ende des geordneten Satzes zu identifizieren. Falls ein ungültiges oder fehlerhaftes SKP-Symbol auf einer bestimmten Bahn innerhalb der erwarteten SKP-Symbole des geordneten Satzes (und vor den SKP_END Symbolen) identifiziert wird, kann die Identifikation des fehlerhaften SKP-Symbols verwendet werden, um das Berichten eines Fehlers für die bestimmte Bahn innerhalb eines Fehlerregisters, wie eines LES-Registers, auszulösen. Zusätzlich kann auch die definierte Zeiteinstellung bestimmter OS-Symbole verwendet werden, um zu identifizieren, dass ein unerwartetes Symbol auf einer Bahn empfangen wurde. In Fortsetzung des Beispiels von SKP geordneten Sätzen kann beispielsweise, da die Anzahl von Symbolen in einem SKP OS ein Vielfaches von vier zu sein hat, das Nicht-Empfangen von SKP_END in Symbol 8, 12, 16, 20 oder 24 auf einer oder mehreren bestimmten Bahnen der Datenverbindung bewirken, dass ein entsprechendes Bit im Fehlerregister für die bestimmten Bahnen gesetzt wird, unter potentiell anderen Beispielen.
  • In einigen Implementierungen können verschiedenste Framing-Fehler auftreten und können detektiert werden. Wenn beispielsweise Symbole verarbeitet werden, von denen erwartet wird, dass sie ein Framing-Token sind, kann das Empfangen eines Symbols oder einer Sequenz von Symbolen, das bzw. die mit der Definition eines Framing-Tokens nicht übereinstimmt, ein Framing-Fehler sein. Zusätzlich können einige Framing-Tokens definiert werden, anderen Typen von Daten zu filgen, und die unerwartete Ankunft (oder Verzögerung) eines bestimmten Framing-Tokens kann ein Framing-Fehler sein. Als nur ein Beispiel kann spezifiziert werden, dass ein EDB-Token unmittelbar einem TLP folgend zu empfangen ist, und der Empfang eines EDB-Tokens zu irgendeiner anderen Zeit (als unmittelbar einem TLP folgend) kann einen Framing-Fehler auslösen, unter vielen anderen Beispielen, wie Framing-Fahler, die in der PCIe-Spezifikation definiert sind. Während Framing-Fehler innerhalb eines Systems identifiziert werden können, werden in einigen Implementierungen Framing-Fehler nicht auf einer Bahn-für-Bahn-Basis bestimmt oder auf eine bestimmte Bahn einer Datenverbindung gemappt. Tatsächlich kann in einigen Fällen ein Framing-Fehler bewirken, dass eine Datenverbindungswiederherstellung initiiert wird, wodurch eine Bahnfehlerdetektion weiter verkompliziert wird, wenn die Datenverbindungswiederherstellung eine Paritätsberechnung und ein Berichten auslöscht (z.B. durch ein Paritätsbit, das in einem SKP OS gesendet wird, unter anderen Beispielen.
  • In einigen Implementierungen kann Logik, die in der logischen PHY (z.B. in einer Empfängervorrichtung) enthalten ist, eine ausfallende Bahn aus einem Framing-Token weiter identifizieren. In einem ersten Beispiel können die Symbole eines Framing-Tokens spezifiziert werden (wie in den Beispielen von 10 gezeigt), und das Detektieren eines Fehlers in einem der Symbole, das vom erwarteten Symbolwert abweicht, kann identifiziert werden, sowie die Bahn, auf der das fehlerhafte Token-Symbol identifiziert wird. Beispielsweise kann das erste Symbol eines Framing-Tokens identifiziert werden, und falls das erste Symbol nicht mit dem ersten Symbol eines beliebigen einen aus einem Satz definierter Framing-Tokens für die PHY übereinstimmt, kann ein Fehler ausgelöst werden. Dieser Fehler kann beispielsweise in einem LES-Register protokolliert werden. Falls in dem Beispiel von PCIe Framing-Tokens das erste Symbol eines empfangenen Framing-Tokens nicht mit dem ersten Symbol übereinstimmt, das für PCIe IDL, SDP, STP, EDB oder EDS definiert ist, kann ein Fehler für die Bahn bestimmt werden, auf der das fehlerhafte erste Framing-Token-Symbol auftritt, und der Fehler kann in dem Bahnfehlerregister für die identifizierte Spur protokolliert werden.
  • Zweitens können in einem weiteren Beispiel IDL Framing-Tokens, obwohl sie nur ein Symbol in der Länge aufweisen, spezifiziert werden, auf allen Bahnen einer Datenverbindung gesendet zu werden, wenn kein TLP, DLLP oder anderes Framing-Token gesendet wird. Wenn ein erstes IDL auf einer Bahn einer Datenverbindung mit vier oder mehreren Bahnen auftritt, kann demgemäß erwartet werden, dass Fälle des IDL auch auf den Bahnen n+1, n+2 und n+3 auftreten werden (wobei die erste Bahn n (n modulo 4 = 0)). Nach dem Senden eines IDL-Tokens kann das erste Symbol des nächsten STP oder SDP-Tokens spezifiziert werden, um auf der Bahn 0 einer zukünftigen Symbolzeit gesendet zu werden. Angesichts dieser Einschränkungen hinsichtlich der Verwendung und erwarteten Verwendung eines IDL-Tokens kann demgemäß, falls ein IDL nicht wie erwartet wiederholt wird, oder das erste IDL in einer inkorrekten Bahn auftritt, die Bahn identifiziert werden, auf der das nichtwiederholte IDL oder auf andere Weise fehlerhafte Symbol aufgetreten ist, und auch in einem Fehlerregister, wie einem LES-Register, als Fehler für die bestimmte Bahn protokolliert werden.
  • In noch einem weiteren Beispiel kann ein EDB-Token definiert werden, eine bestimmte Länge aufzuweisen, wie vier Symbole lang bei PCIe. Demgemäß kann aus der Identifikation eines ersten EDB Symbols, aber dann keiner Identifikation zusätzlicher EDB Symbole in den unmittelbar folgenden Symbolen, die in der definierten Länge enthalten sind, ein Framing-Fehler entstehen. Bei PCIe, wo beispielsweise ein Framing-Token EDB auf der Bahn n (n modulo 4 = 0) detektiert wird, einem TLP unmittelbar folgend, aber nicht auch auf einer beliebigen der Bahnen n+1, n+2 oder n+3 detektiert wird, kann ein Fehler an ein Fehlerregister für eine beliebige Bahn (z.B. Bahn n+1, n+2 oder n+3) berichtet werden, wo ein erwartetes gültiges EDB Symbol nicht auftritt. Zusätzlich kann ein erstes Symbol eines EDB-Tokens definiert werden, unmittelbar einem TLP-Strom folgend platziert zu werden, was bedeutet, dass das vorhergehende Framing-Token, ein STP, das letzte Framing-Token war, das auf der Datenverbindung auftritt. Demgemäß kann ein Fehler auf der Bahn n implementiert und an ein Fehlerregister berichtet werden, wenn ein erstes Symbol eines EDB-Tokens auf der Bahn n auftritt, aber das letzte vorhergehende Framing-Token etwas anderes war als ein STP-Token, unter anderen Beispielen.
  • Ähnlich dem Beispiel eines EDB-Token-Framing-Fehlers können Framing-Fehler auch auf Abweichungen von der Länge, dem Format und der Platzierung anderer Framing-Tokens basieren. In einem weiteren Beispiel, wenn beispielsweise ein erstes Symbol eines SDP auf der Bahn n detektiert wird, konsistent mit Platzierungsregeln für gültige SDP-Tokens (z.B. DLLP-Verkehr vorausgehend), aber die Bahn n+1 nicht mit dem erwarteten zweiten Symbol des SDP-Tokens übereinstimmt, kann logische PHY-Logik einen Fehler auf der Bahn n+1 identifizieren und den Fehler in einem Fehlerregister protokollieren.
  • 12 ist ein vereinfachtes Blockbild, das eine expandierte Detektion und Protokollierung von Bahnfehlern (z.B. 1205, 1210, 1215, 1220, 1225, 1230, 1235, 1240) in einem beispielhaften Fehlerregister 1250, wie einem PCIe-LES-Register, das der Datenverbindung entspricht, veranschaulicht. Beispielsweise umfassen, zusätzlich zu dem Berichten von Sync-Anfangsblock-Bahnfehlern 1205 und Paritätsbitfehlern 1210, zusätzliche Fehler, die detektiert werden können, geordnete Satzbahnfehler, wie ein OS-Block ohne vorherigen EDS-Token-Fehler 1215 und SKP OS-Fehler 1230 (wie in den obigen Beispielen beschrieben). Weitere Fehler können berichtet werden, die beispielsweise Framing-Token-Bahnfehler umfassen, wie erste Symbol-Framing-Token-Fehler 1225, IDL Framing-Token-Fehler 1230 (z.B. betreffend das geeignete Wiederholen des IDL nach einem anfänglichen IDL auf einer Bahn n), EDB-Framing-Token-Fehler 1235 (z.B. involvierend Fehler in der der Platzierung von EDB-Token-Symbolen, wie beispielsweise in der vorhergehenden Diskussion ausgeführt), und SDP-Framing-Token-Fehler 1240 (z.B. involvierend einen detektierten Fehler in einem zweiten Symbol eines SDP-Tokens), unter potentiell anderen Beispielen, die Regeln nützen, welche für geordnete Sätze, Datenblöcke und Framing-Tokens innerhalb einer Architektur definiert sind.
  • Wie oben ausgeführt, können in einigen Fällen Fehler oder andere Ereignisse, die eine Datenverbindungswiederherstellung erzwingen, Bahnfehler-Detektionsmechanismen, wie Paritätsbestimmungen, unterminieren. Wie oben angemerkt, kann die empfangende und sendende Vorrichtung eine Parität für einen Datenstrom oder anderen Strom bestimmen, und Paritätsinformationen, die vom Sender bestimmt werden, können an den Empfänger für einen Vergleich der empfangenen Paritätsinformationen mit entsprechenden Paritätsinformationen (für die Bahn) kommuniziert werden, wie vom Empfänger für denselben Datenstrom bestimmt. Paritätsinformationen können periodisch gesendet werden. Beispielsweise kann ein SKP OS gesendet werden, der ein oder mehrere Paritätsbits in SKP OS-Symbolen umfasst, die eine Parität anzeigen, welche für jede Bahn vom Sender bestimmt wird. In einigen traditionellen Systemen können jedoch Datenverbindungswiederherstellungen oder andere Ereignisse dazu führen, dass Paritätsinformationen gelöscht und/oder neu gestartet werden, bevor die vorher bestimmten Paritätsinformationen an den Empfänger kommuniziert wurden. Demgemäß können in solchen Fällen Fehler, die für eine bestimmte Bahn auf der Basis der Paritätsinformationen bestimmt wurden, auch verlorengehen und unberichtet bleiben, wodurch die Genauigkeit einer Fehlerberichterstattung für die bestimmte Bahn unterminiert wird.
  • In einer Ausführungsform können Paritätsinformationen erhalten werden, indem erzwungen wird, dass einer Datenverbindungswiederherstellung automatisch ein SKP OS oder anderer Datensatz vorausgeht, der Daten umfasst, die Paritätsinformationen für jede Bahn in der wiederherzustellenden Verbindung berichten. Beispielsweise kann das Datenverbindungswiederherstellungsprotokoll neu definiert werden, so dass ein SKP OS (der Paritätsbits umfasst) ansprechend auf einen Framing-Fehler oder ein anderes Ereignis gesendet wird, das eine Datenverbindungswiederherstellung auslöst. Der SKP OS kann dadurch die Paritätsinformationen tragen, die vom Sender bis zu dem Moment bestimmt wurden, in dem die Datenverbindungswiederherstellung ausgelöst wurde, wodurch es dem Empfänger ermöglicht wird, potentielle Bahnfehler auf der Basis der Paritätsinformationen zu identifizieren.
  • In einem Beispiel können Paritätsinformationen vor der Wiederherstellung gesendet werden, indem ein SKP OS gesendet wird, bevor eine Datenverbindung einen aktiven (z.B. L0) Zustand verlässt, um eine Wiederherstellung einzugehen. Beispielsweise kann jeder Sender einen SKP OS senden (z.B. gemäß vordefinierten Intervallen, wie einem maximalen Intervall zwischen SKP Oses), gefolgt von einem zusätzlichen Datenblock mit einem EDS-Token vor dem Eintritt in die Wiederherstellung. Dies kann sicherstellen, dass der Empfänger die Parität für die vorhergehenden Datenblöcke empfängt, die er empfangen hat, umfassend einen oder mehrere Datenblöcke, die einen Framing-Fehler verursacht haben können. Der Empfänger kann ferner den Fehler im geeigneten LES protokollieren, falls der Paritätsbitvergleich einen Fehler anzeigt.
  • In einem weiteren Beispiel können, anstelle des vorzeitigen Abzugs von Paritätsinformationen vor einer Wiederherstellung oder einem anderen Ereignis (z.B. in einem Versuch sicherzustellen, dass die Paritätsinformationen kommuniziert werden, bevor sie verlorengehen), Paritätsinformationen, wie eine SKP OS-Parität, erweitert werden, um eine Parität quer über die Datenströme abzudecken, während die Datenverbindung aktiv bleibt (z.B. LinkUp = 1b" bei PCIe). Ferner können Paritätsinformationen auch persistent für jede Bahn einer Verbindung aufrechterhalten werden, so dass die Paritätsinformationen durch ein Wiederherstellungsereignis hindurch bestehen bleiben. Während eine traditionelle Datenverbindungswiederherstellung bewirken würde, dass Paritätsinformationen für einen vorhergehenden Datenblock (z.B. unterbrochen durch die Wiederherstellung) verlorengehen, kann eine persistente Speicherung der Paritätsinformationen gestatten, dass die Parität durch die Wiederherstellung hindurch gehalten wird und nach der Wiederherstellung (z.B. in dem ersten SKP OS, welcher der Wiederherstellung folgt) kommuniziert wird. Zusätzlich können in einigen Fällen auch Paritätsinformationen für neue Datenblöcke, die nach der Wiederherstellung der Datenverbindung (und vor dem nächsten SKP OS) gesendet werden, bestimmt werden und in einigen Fällen zu den gehaltenen Paritätsinformationen vor der Wiederherstellung hinzugefügt werden, und diese kombinierten Paritätsinformationen können beispielsweise im nächsten SKP OS kommuniziert werden, unter anderen Beispielen.
  • Es ist zu beachten, dass die obigen Beispiele nicht-einschränkende Beispiele sind und nur für Zwecke der Veranschaulichung bestimmter Prinzipien und Merkmale bereitgestellt werden. Ferner können einige Systeme verschiedene Kombinationen von zwei oder mehreren der oben beschriebenen Merkmale und Komponenten aufweisen. Als Beispiel kann ein System Kombinationen der oben beschriebenen beispielhaften Fehlerdetektionsmerkmale, wie der oben beschriebenen Bahnfehler-Detektionsfunktionalität, umfassen.
  • Mit Bezugnahme auf 13A bis 13D sind beispielhafte Flussdiagramme 1300a bis d gezeigt, die beispielhafte Techniken zur Detektion von Fehlern auf Bahnen einer Datenverbindung veranschaulichen. Beispielsweise können in 13A Daten auf einer Datenverbindung empfangen werden 1305, die mehrere Bahnen umfasst. Die Daten können Symbole umfassen und die Symbole können überwacht werden, um zu bestimmen 1310, ob eines oder mehrere der Symbole ein fehlerhaftes Symbol ist oder sind. Ein fehlerhaftes Symbol kann Symbole in einem Framing-Token (z.B. EDB, EDS, STP, IDL, SDP, etc.), geordneten Satz (z.B. SKP OS, etc.) oder in einer anderen definierten Sequenz umfassen, die einen inkorrekten Wert haben, in einer inkorrekten oder unerwarteten Reihenfolge sind, auf einer inkorrekten oder unerwarteten Bahn gesendet werden, nicht zu einer bestimmten definierten Sequenz gehören, unter anderen Beispielen. Die Bahn, auf der das fehlerhafte Symbol gesendet wurde, kann identifiziert werden 1315, und ein Bahnfehler für die identifizierte Bahn kann berichtet werden 1320, beispielsweise an ein Bahnfehlerregister, auf der Basis des fehlerhaften Symbols, unter anderen Beispielen.
  • Mit Bezugnahme auf 13B können Daten auf einer Datenverbindung gesendet werden 1325, die mehrere Bahnen umfasst. Paritätsinformationen können für jede Bahn auf der Datenverbindung gehalten werden 1330. Ansprechend auf die Identifikation 1335, dass die Datenverbindung einen aktiven Zustand zu verlassen hat (wie in Zusammenhang mit einer Wiederherstellung der Datenverbindung), kann eine Indikation der Paritätsinformationen gesendet werden 1340 vor dem Austritt aus dem aktiven Zustand. In einem Beispiel kann die Indikation der Paritätsinformationen in Paritätsbits eines geordneten Satzes eingeschlossen sein, wie einem PCIe SKP geordneten Satz, der an einen Empfänger gesendet wird. Die Indikation der Paritätsinformationen kann verwendet werden (z.B. vom Empfänger der bestimmten Informationen), um die Paritätsinformationen mit Paritätsinformationen zu vergleichen, die vom Empfänger empfangen werden. Nicht-Übereinstimmungen in den Paritätsinformationen können als Nachweis eines Bahnfehlers identifiziert werden, der eine Bahn involviert, die den nicht-übereinstimmenden Paritätsinformationen entspricht.
  • In dem Beispiel von 13C können Daten auf Bahnen einer Datenverbindung gesendet werden 1345 und Paritätsinformationen können bestimmt werden 1350 für jede der Bahnen auf der Basis der gesendeten Daten, die auf jeder Bahn identifiziert werden. Eine Wiederherstellung der Datenverbindung kann auftreten und die Paritätsinformationen können durch die Wiederherstellung hindurch gehalten werden 1355. Nach der Wiederherstellung kann eine Indikation der Paritätsinformationen für jede Bahn kommuniziert werden 1370 und diese Indikation kann auf den Paritätsinformationen basieren, die durch die Datenverbindungswiederherstellung hindurch gehalten werden. Gegebenenfalls können zusätzliche Daten über die Datenverbindung nach der Datenverbindungswiederherstellung gesendet werden 1360 und Paritätsinformationen können für jede Bahn auf der Basis dieser Daten nach der Wiederherstellung bestimmt werden. Die Paritätsinformationen für jede Bahn können aktualisiert werden 1365 auf der Basis der Daten sowohl vor als auch nach der Wiederherstellung auf jeder Bahn, und die Indikation von Paritätsinformationen, die kommuniziert werden 1370, können diese kombinierten Paritätsinformationen anzeigen.
  • Entsprechend dem Beispiel von 13C können in 13D erste Daten auf einer Datenverbindung empfangen werden 1375 und erste Paritätsinformationen können bestimmt werden 1380 für jede Bahn auf der Basis der Daten, die auf den Bahnen empfangen werden. Diese Paritätsinformationen können durch eine Wiederherstellung der Datenverbindung hindurch nach dem Empfang der ersten Daten gehalten werden 1385. Zweite Paritätsdaten können empfangen werden 1398 nach der Wiederherstellung der Datenverbindung, wie in Paritätsbits eines empfangenen SKP geordneten Satzes identifiziert. Diese zweiten Paritätsdaten können mit Paritätsinformationen verglichen werden, die durch die Datenverbindungswiederherstellung hindurch (und darüber hinaus) gehalten werden. In einigen Fällen können die gehaltenen Paritätsinformationen aktualisiert werden 1394, um Paritätsinformationen zu berücksichtigen, die für die Bahnen auf der Basis zweiter Daten bestimmt werden, welche auf den Bahnen nach der Datenverbindungswiederherstellung empfangen werden 1390 (z.B. im gleichen Ausmaß wie die Aktualisierung der Paritätsinformationen durch den entsprechenden Sender auf der Basis der Übertragung dieser Daten nach der Wiederherstellung), unter anderen Beispielen.
  • Es ist zu beachten, dass, während viele der obigen Prinzipien und Beispiele innerhalb des Kontextes von PCIe und bestimmten Revisionen der PCIe-Spezifikationen beschrieben werden, die hier beschriebenen Prinzipien, Lösungen und Merkmale gleichermaßen auf andere Protokolle und Systeme anwendbar sind. Beispielsweise können analoge Bahnfehler in anderen Datenverbindungen unter Verwendung von anderen Protokollen auf der Basis analoger Symbole, Datenströme und Tokens sowie Regeln detektiert werden, die für die Verwendung, Platzierung und Formatierung solcher Strukturen innerhalb von Daten spezifiziert werden, welche über diese anderen Datenverbindungen gesendet werden. Ferner können alternative Mechanismen und Strukturen (z.B. abgesehen von einem PCIe-LES-Register oder SKP OS) verwendet werden, um eine Bahnfehlerdetektion und Berichtsfunktionalität innerhalb eines Systems bereitzustellen. Außerdem können Kombinationen der obigen Lösungen innerhalb von Systemen angewendet werden, die Kombinationen logischer und physikalischer Erweiterungen für eine Datenverbindung und ihre entsprechende Logik umfassen, wie hier beschrieben, unter anderen Beispielen.
  • Es ist zu beachten, dass die oben beschriebenen Vorrichtungen, Verfahren und Systeme in einer beliebigen elektronischen Vorrichtung oder einem System implementiert werden können, wie vorstehend angeführt. Als spezifische Veranschaulichungen stellen die nachstehenden Figuren beispielhafte Systeme zur Verwendung der Erfindung bereit, wie hier beschrieben. Während die nachstehenden Systeme detaillierter beschrieben werden, werden eine Reihe verschiedener Zwischenverbindungen geoffenbart und beschrieben und es wird auf diese aus der obigen Diskussion erneut Bezug genommen. Und wie leicht ersichtlich ist, können die oben beschriebenen Fortschritte auf beliebige dieser Zwischenverbindungen, Strukturen oder Architekturen angewendet werden.
  • Mit Bezugnahme auf 14 ist eine Ausführungsform eines Blockbilds für ein Rechnersystem dargestellt, das einen Mehrkernprozessor aufweist. Der Prozessor 1400 umfasst einen beliebigen Prozessor oder eine Verarbeitungsvorrichtung, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzprozessor, einen Handprozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System-on-Chip (SOC) oder eine andere Vorrichtung, um einen Code auszuführen. Der Prozessor 1400 umfasst in einer Ausführungsform wenigstens zwei Kerne - den Kern 1401 und 1402, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichte Ausführungsform) umfassen können. Der Prozess 1400 kann jedoch eine beliebige Anzahl von Verarbeitungselementen umfassen, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform betrifft ein Verarbeitungselement Hardware oder Logik, um einen Software-Teilprozess zu unterstützen. Beispiele von Hardware-Verarbeitungselementen umfassen: eine Teilprozesseinheit, einen Teilprozess-Slot, einen Teilprozess, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Teilprozess, einen Kern und/oder ein beliebiges anderes Element, das einen Zustand für einen Prozessor halten kann, wie einen Ausführungszustand oder Architekturzustand. Mit anderen Worten betrifft ein Verarbeitungselement in einer Ausführungsform eine beliebige Hardware, der unabhängig ein Code zugeordnet werden kann, wie ein Software-Teilproezss, ein Betriebssystem, ein Anwendungs- oder anderer Code. Ein physikalischer Prozessor (oder ein Prozess-Sockel) betrifft typischerweise eine Integrationsschaltung, die potentiell eine beliebige Anzahl anderer Verarbeitungselemente aufweist, wie Kerne oder Hardware-Teilprozesse.
  • Ein Kern betrifft häufig Logik, die auf einer Integrationsschaltung angeordnet ist, welche einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jedem unabhängig aufrechterhaltenen Architekturzustand wenigstens einige dedizierte Ausführungsressourcen zugeordnet sind. Im Gegensatz zu Kernen betrifft ein Hardware-Teilprozess beliebige Logik, die auf einer Integrationsschaltung angeordnet ist, welche einen unabhängigen Architekturzustand aufrechterhalten kann, wobei die unabhängig aufrechterhaltenen Architekturzustände gemeinsamen Zugriff auf Ausführungsressourcen haben. Wie ersichtlich ist, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere für einen Architekturzustand dediziert sind, überlappt die Linie zwischen der Nomenklatur eines Hardware-Teilprozesses und Kerns. Häufig werden jedoch ein Kern und ein Hardware-Teilprozess durch ein Betriebssystem als individuelle Logikprozessoren angesehen, wobei das Betriebssystem dazu in der Lage ist, Operationen auf jedem Logikprozessor einzeln zu planen.
  • Der physikalische Prozessor 1400, wie in 14 veranschaulicht, umfasst zwei Kerne - den Kern 1401 und 1402. Hier werden der Kern 1401 und 1402 als symmetrische Kerne angesehen, d.h. Kerne mit den gleichen Auslegungen, funktionellen Einheiten und/oder gleicher Logik. In einer weiteren Ausführungsform umfasst der Kern 1401 einen Out-of-order-Prozessorkern, wohingegen der Kern 1402 einen In-order-Prozessorkern umfasst. Die Kerne 1401 und 1402 können jedoch einzeln aus einem beliebigen Typ eines Kerns ausgewählt werden, wie einem nativen Kern, einem durch Software verwalteten Kern, einem Kern, der geeignet ist, einen native Instruktionssatzarchitektur (ISA) auszuführen, einem Kern, der geeignet ist, eine übersetzte Instruktionssatzarchitektur (ISA) auszuführen, einem Co-desigend Core oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d.h. asymmetrische Kerne) kann irgendeine Form der Übersetzung, wie eine binäre Übersetzung, verwendet werden, um einen Code an einem oder beiden Kernen zu planen oder auszuführen. Um die Diskussion zu unterstützen, werden die im Kern 1401 veranschaulichten funktionellen Einheiten nachstehend detaillierter beschrieben, da die Einheiten im Kern 1402 in der dargestellten Ausführungsform in einer ähnlichen Weise arbeiten.
  • Wie dargestellt, umfasst der Kern 1401 zwei Hardware-Teilprozesse 1401a und 1401b, die auch als Hardware-Teilprozess-Slots 1401a und 1401b bezeichnet werden können. Daher sehen Software-Einheiten, wie ein Betriebssystem, in einer Ausführungsform potentiell den Prozessor 1400 als vier getrennte Prozessoren, d.h. vier Logikprozessoren oder Verarbeitungselemente, die gleichzeitig vier Software-Teilprozesse ausführen können. Wie oben angesprochen, sind einem ersten Teilprozess Architekturzustandsregister 1401a zugeordnet, einem zweiten Teilprozess sind Architekturzustandsregister 1401b zugeordnet, einem dritten Teilprozess sind Architekturzustandsregister 1402a zugeordnet, und einem vierten Teilprozess können Architekturzustandsregister 1402b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (1401a, 1401b, 1402a und 1402b) als Verarbeitungselemente, Teilprozess-Slots oder Teilprozesseinheiten bezeichnet werden, wie oben beschrieben. Wie veranschaulicht, sind die Architekturzustandsregister 1401a in Architekturzustandsregistern 1401b repliziert, so können einzelne Architekturzustände/Kontexte für den Logikprozessor 1401 a und Logikprozessor 1401b gespeichert werden. Im Kern 1401 können andere kleinere Ressourcen, wie Instruktionszeiger und Umbenennungslogik in einem Zuordner- und Umbenennungsblock 1430 auch für die Teilprozesse 1401a und 1401b repliziert sein. Einige Ressourcen, wie Umordnungspuffer in der Umordnungs/Rückordnungseinheit 1435, ILTB 1420, Lade/Speicherpuffer und Warteschlangen können durch Partitioning gemeinsam genutzt werden. Andere Ressourcen wie universelle interne Register, Register auf Seitentabellenbasis, Low Level-Datencache und Daten-TLB 1415, Ausführungseinheit(en) 1440 und Abschnitte der Out-of-order-Einheit 1435 werden potentiell vollständig gemeinsam genutzt.
  • Der Prozessor 1400 umfasst häufig andere Ressourcen, die durch Partitioning vollständig gemeinsam genutzt werden oder durch/für Verarbeitungselemente dediziert sein können. In 14 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden Logikeinheiten/ressourcen eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor eine beliebige dieser funktionellen Einheiten umfassen oder weglassen kann sowie beliebige andere bekannte funktionelle Einheiten, Logik oder Firmware, die nicht dargestellt sind, umfassen kann. Wie veranschaulicht, umfasst der Kern 1401 einen vereinfachten, repräsentativen Out-of-order- (OOO-) Prozessorkern. In anderen Ausführungsformen kann jedoch ein In-order-Prozessor verwendet werden. Der OOO-Kern umfasst einen Verzweigungszielpuffer 1420, um Verzweigungen vorherzusagen, die auszuführen/heranzuziehen sind, und einen Instruktionsübersetzungspuffer (I-TLB) 1420, um Adressübersetzungseinträge für Instruktionen zu speichern.
  • Der Kern 1401 umfasst ferner ein Decodiermodul 1425, das mit einer Abrufeinheit 1420 gekoppelt ist, um abgerufene Elemente zu decodieren. Die Abruflogik umfasst in einer Ausführungsform einzelne Sequencer, denen jeweils Teilprozess-Slots 1401a, 1401b zugeordnet sind. Üblicherweise ist dem Kern 1401 eine erste ISA zugeordnet, die Instruktionen definiert/spezifiziert, welche an dem Prozessor 1400 ausführbar sind. Häufig umfassen Maschinencodeinstruktionen, die ein Teil der ersten ISA sind, einen Abschnitt der Instruktion (der als Opcode bezeichnet wird), der auf eine Instruktion oder Operation verweist/diese spezifiziert, die vorzunehmen ist. Decodierlogik 1425 umfasst Schaltungen, die diese Instruktionen aus ihren Opcodes erkennen und die decodierten Instruktionen in der Pipeline zur Verarbeitung weiterleiten, wie durch die erste ISA definiert. Beispielsweise umfassen, wie nachstehend detaillierter diskutiert, Decodierer 1425 in einer Ausführungsform Logik, die ausgebildet oder geeignet ist, spezifische Instruktionen, wie Transaktionsinstruktionen, zu erkennen. Als Ergebnis der Erkennung durch die Decodierer 1425 unternimmt die Architektur oder der Kern 1401 spezifische, vordefinierte Aktionen, um Aufgaben vorzunehmen, die der geeigneten Instruktion zugeordnet sind. Es ist wichtig zu beachten, dass beliebige der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren ansprechend auf eine einzelne oder mehrere Instruktionen vorgenommen werden können, von denen einige neue oder alte Instruktionen sein können. Es ist zu beachten, dass Decodierer 1426 in einer Ausführungsform dieselbe ISA (oder einen Subsatz davon) erkennen. Alternativ dazu erkennen in einer heterogenen Kernumgebung die Decodierer 1426 eine zweite ISA (entweder ein Subsatz der ersten ISA oder eine bestimmte ISA).
  • In einem Beispiel umfasst der Zuordner- und Umbenennerblock 1430 einen Zuordner, um Ressourcen zu reservieren, wie Registerdateien, um Instruktionsverarbeitungsergebnisse zu speichern. Die Teilprozesse 1401a und 1401b sind jedoch potentiell zu einer Out-of-order-Ausführung in der Lage, wobei der Zuordner- und Umbenennerblock 1430 auch andere Ressourcen reserviert, wie Umordnungspuffer, um Instruktionsergebnisse zu verfolgen. Die Einheit 1430 kann auch einen Registerumbenenner umfassen, um Programm/ Instruktionsreferenzregister in andere Register intern im Prozessor 1400 umzubenennen. Die Umordnungs/Rückordnungseinheit 1435 umfasst Komponenten wie die oben angegebenen Umordnungspuffer, Ladepuffer und Speicherpuffer, um eine Out-of-order-Ausführung und Later-in-order-Rückordnung von Instruktionen zu unterstützen, die out-of-order ausgeführt werden.
  • Der Scheduler- und Ausführungseinheit(en)-Block 1440 umfasst in einer Ausführungsform eine Scheduler-Einheit, um Instruktionen/Operationen auf Ausführungseinheiten zu planen. Beispielsweise ist eine Gleitkommainstruktion an einem Port einer Ausführungseinheit geplant, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Den Ausführungseinheiten zugeordnete Registerdateien sind auch eingeschlossen, um Informationsinstruktions-Verarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Der Lower Level-Datencache und der Datenübersetzungspuffer (D-TLB) 1450 sind mit der/den Ausführungseinheit(en) 1440 gekoppelt. Der Datencache hat kürzlich verwendete/bearbeitete Elemente zu speichern, wie Datenoperanden, die potentiell in Speicherkohärenzzuständen gehalten werden. Der D-TLB hat neuere virtuelle/lineare in physische Adressübersetzungen zu speichern. Als spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur umfassen, um einen physischen Speicher in mehrere virtuelle Seiten zu zerlegen.
  • Hier nutzen die Kerne 1401 und 1402 gemeinsam einen Zugriff auf einen Higher Level- oder Further Out-Cache, wie einen Second Level-Cache, dem eine chipinterne Schnittstelle 1410 zugeordnet ist. Es ist zu beachten, dass sich Higher Level oder Further Out auf Cache-Level bezieht, die von der (den) Ausführungseinheit(en) weg zunehmen oder sich davon weiter entfernen. In einer Ausführungsform ist der Higher Level-Cache ein Last Level-Datencache - der letzte Cache in der Speicherhierarchie am Prozessor 1400 - wie ein Second oder Third Level-Datencache. Der Higher Level-Cache ist jedoch nicht so eingeschränkt, da er einem Instruktions-Cache zugeordnet sein kann oder diesen umfassen kann. Ein Spur-Cache - ein Typ eines Instruktions-Caches - kann stattdessen nach dem Decodierer 1425 gekoppelt sein, um kürzlich decodierte Spuren zu speichern. Hier bezieht sich eine Instruktion potentiell auf eine Makroinstruktion (d.h. eine allgemeine Instruktion, die von den Decodierern erkannt wird), die in eine Anzahl von Mikroinstruktionen (Mikrooperationen) decodieren kann.
  • In der dargestellten Auslegung umfasst der Prozessor 1400 auch ein chipinternes Schnittstellenmodul 1410. Historisch war eine Speichersteuereinheit, die nachstehend detaillierter beschrieben wird, in einem Rechnersystem extern vom Prozessor 1400 eingeschlossen. In diesem Szenario hat eine chipinterne Schnittstelle 1410 mit Vorrichtungen extern vom Prozessor 1400 zu kommunizieren, wie einem Systemspeicher 1475, einem Chipsatz (der häufig einen Speichersteuereinheit-Hub umfasst, um an den Speicher 1475 angeschlossen zu werden, und einen I/O-Steuereinheit-Hub, um periphere Vorrichtungen anzuschließen), einem Speichersteuereinheit-Hub, einer Northbridge oder anderen Integrationsschaltung. Und in diesem Szenario kann ein Bus 1405 eine beliebige bekannte Zwischenverbindung umfassen, wie einen Multi-Drop-Bus, eine Point-to-Point-Zwischenverbindung, eine serielle Zwischenverbindung, einen parallelen Bus, eine kohärenten (z.B. Cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen Differentialbus und einen GTL-Bus.
  • Der Speicher 1475 kann für den Prozessor 1400 dediziert sein oder mit anderen Vorrichtungen in einem System gemeinsam genutzt werden. Übliche Beispiele von Typen des Speichers 1475 umfassen DRAM, SRAM, einen nicht-flüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 1480 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, gekoppelt mit einem Speichersteuereinheit-Hub, einen Datenspeicher, gekoppelt mit einem I/O-Steuereinheit-Hub, einen drahtlosen Sende/Empfänger, eine Flash-Vorrichtung, eine Audio-Steuereinheit, eine Netzsteuereinheit oder andere bekannte Vorrichtungen umfassen kann.
  • In letzter Zeit, da mehr Logik und Vorrichtungen auf einem einzelnen Chip integriert sind, wie ein SOC, kann jedoch jede dieser Vorrichtungen am Prozessor 1400 eingeschlossen sein. Beispielsweise ist in einer Ausführungsform ein Speichersteuereinheit-Hub auf derselben Packung und/oder auf demselben Chip mit dem Prozessor 1400. Hier umfasst ein Abschnitt des Kerns (ein On-core-Abschnitt) 1410 eine oder mehrere Steuereinheiten, um eine Schnittstelle mit anderen Vorrichtungen zu bilden, wie dem Speicher 1475 oder einer Grafikvorrichtung 1480. Die Auslegung, die eine Zwischenverbindung und Steuereinheiten zur Bildung einer Schnittstelle mit solchen Vorrichtungen umfasst, wird häufig als On-core- (oder Un-core-Auslegung) bezeichnet. Als Beispiel umfasst die chipinterne Schnittstelle 1410 eine Ringzwischenverbindung für eine chipinterne Kommunikation und eine serielle Hochgeschwindigkeits-Point-to-Point-Verbindung 1405 für eine chipexterne Kommunikation. In der SOC-Umgebung können dennoch noch mehr Vorrichtungen, wie die Netzschnittstelle, Co-Prozessoren, der Speicher 1475, der Grafikprozessor 1480 und beliebige andere bekannte Computervorrichtungen/Schnittstellen, auf einem einzelnen Chip oder einer Integrationsschaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 1400 in der Lage, einen Kompilierer, eine Optimierung und/oder einen Übersetzercode 1477 auszuführen, um den Anwendungscode 1476 zu kompilieren, zu übersetzen und/oder zu optimieren, um die hier beschriebene Vorrichtung und Verfahren zu unterstützen oder damit eine Schnittstelle zu bilden. Ein Kompilierer umfasst häufig ein Programm oder einen Satz von Programmen, um einen Quelltext/code in einen Zieltext/code zu übersetzen. Üblicherweise erfolgt eine Kompilierung eines Programm/Anwendungscodes mit einem Kompilierer in mehreren Phasen und Durchläufen, um einen Hi-Level-Programmiersprachcode in einen Low Level-Maschinen- oder Assembliersprachcode zu transformieren. Dennoch können Single pass-Kompilierer weiterhin für eine einfache Kompilierung verwendet werden. Ein Kompilierer kann beliebige bekannte Kompiliertechniken verwenden und beliebige bekannte Kompilieroperationen vornehmen, wie eine lexikalische Analyse, eine Vorverarbeitung, eine Syntaxanalyse, eine semantische Analyse, eine Codegenerierung, eine Codetransformation und eine Codeoptimierung.
  • Größere Kompilierer umfassen häufig mehrere Phasen, am häufigsten sind diese Phasen jedoch innerhalb von zwei allgemeinen Phasen eingeschlossen: (1) einem Front End, d.h. allgemein wo eine Syntaxverarbeitung, semantische Verarbeitung und irgendeine Transformation/Optimierung stattfinden können, und (2) einem Back End, d.h. allgemein wo eine Analyse, Transformationen, Optimierungen und eine Codegenerierung stattfinden. Einige Kompilierer beziehen sich auf eine Mitte, was ein Verschwimmen der Abgrenzung zwischen einem Front End und einem Back End eines Kompilierers veranschaulicht. Als Ergebnis kann eine Referenz auf eine Einfügung, Zuordnung, Generierung oder andere Operation eines Kompilierers in irgendeiner der vorgenannten Phasen oder irgendeinem der Durchläufe sowie in beliebigen anderen bekannten Phasen oder Durchläufen eines Kompilierers stattfinden. Als veranschaulichendes Beispiel fügt ein Kompilierer potentiell Operationen, Aufrufe, Funktionen, etc., in eine oder mehrere Phasen der Kompilierung ein, wie eine Einfügung von Aufrufen/Operationen in einer Front End-Phase der Kompilierung, und dann eine Transformation der Aufrufe/ Operationen in einen Lower Level-Code während einer Transformationsphase. Es ist zu beachten, dass während einer dynamischen Kompilierung ein Kompilierercode oder ein dynamischer Optimierungscode solche Operationen/Aufrufe einfügen kann, sowie den Code für eine Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann ein Binärcode (bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon umfassen.
  • Ähnlich einem Kompilierer übersetzt ein Übersetzer, wie ein binärer Übersetzer, einen Code entweder statisch oder dynamisch, um einen Code zu optimieren und/oder zu übersetzen. Daher kann sich eine Referenz auf die Ausführung eines Codes, Anwendungscodes oder einer anderen Software-Umgebung beziehen auf: (1) die Ausführung von einem Kompiliererprogramm(en), Optimierungscodeoptimierer oder Übersetzer entweder dynamisch oder statisch, um einen Programmcode zu kompilieren, Software-Strukturen aufrechtzuerhalten, andere Operationen vorzunehmen, einen Code zu optimieren oder einen Code zu übersetzen; (2) die Ausführung eines Hauptprogrammcodes, der Operationen/Aufrufe umfasst, wie einen Anwendungscode, der optimiert/kompiliert wurde; (3) die Ausführung von einem anderen Programmcode, wie Bibliotheken, der dem Hauptprogrammcode zugeordnet ist, um Software-Strukturen aufrechtzuerhalten, andere Software-bezogene Operationen vorzunehmen oder einen Code zu optimieren; oder (4) eine Kombination davon.
  • Mit Bezugnahme auf 15 ist ein Blockbild einer Ausführungsform eines Mehrkernprozessors gezeigt. Wie in der Ausführungsform von 15 gezeigt, umfasst der Prozessor 1500 mehrfache Domänen. Spezifisch umfasst eine Kerndomäne 1530 mehrere Kerne 1530A bis 1530N, eine Grafikdomäne 1560 umfasst eine oder mehrere Grafikmaschinen mit einer Medienmaschine 1565, und eine Systemagentendomäne 1510.
  • In verschiedenen Ausführungsformen behandelt die Systemagentendomäne 1510 Energiesteuerereignisse und die Energieverwaltung, so dass einzelne Einheiten der Domänen 1530 und 1560 (z.B. Kerne und/oder Grafikmaschinen) unabhängig steuerbar sind, um dynamisch in einem geeigneten Energiemodus/level zu arbeiten (z.B. aktiv, Turbo, Schlaf, Ruhezustand, Tiefschlaf oder ein anderer Zustand ähnlich Advanced Configuration Power Interface), angesichts der Aktivität (oder Inaktivität), die in einer gegebenen Einheit auftritt. Jede der Domänen 1530 und 1560 kann bei einer verschiedenen Spannung und/oder Energie arbeiten, und ferner arbeiten die einzelnen Einheiten innerhalb der Domänen jeweils potentiell bei einer unabhängigen Frequenz und Spannung. Es ist zu beachten, dass, obwohl nur mit drei Domänen gezeigt, das Verständnis des Umfangs der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist und zusätzliche Domänen in anderen Ausführungsformen vorliegen können.
  • Wie gezeigt, umfasst jeder Kern 1530 ferner Low Level-Caches zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen. Hier sind die verschiedenen Kerne miteinander gekoppelt und nutzen einen Cache-Speicher gemeinsam, der durch mehrere Einheiten oder Slices eines Last Level-Caches (LLC) 1540A bis 1540N gebildet wird; diese LLCs umfassen häufig eine Speicher- und Cache-Steuereinheit-Funktionalität und werden unter den Kernen gemeinsam genutzt, sowie auch potentiell unter den Grafikmaschinen.
  • Wie ersichtlich, koppelt eine Ringzwischenverbindung 1550 die Kerne miteinander und stellt eine Zwischenverbindung zwischen der Kerndomäne 1530, der Grafikdomäne 1560 und den Systemagentenschaltungen 1510 über mehrere Ringstopps 1552A bis 1552N bereit, jeweils an einer Kopplung zwischen einem Kern und einem LLC-Slice. Wie in 15 ersichtlich, wird die Zwischenverbindung 1550 verwendet, um verschiedene Informationen zu tragen, die Adressinformationen, Dateninformationen, Quittungsinformationen und Snoop/Ungültig-Informationen umfassen. Obwohl eine Ringzwischenverbindung veranschaulicht ist, kann eine beliebige chipinterne Zwischenverbindung oder Struktur verwendet werden. Als veranschaulichendes Beispiel können auf ähnliche Weise einige der oben diskutierten Strukturen (z.B. eine weitere chipinterne Zwischenverbindung, On-chip System Fabric (OSF), Advanced Microcontroller Bus Architecture (AMBA)-Zwischenverbindung, eine mehrdimensionale Netzstruktur oder eine andere bekannte Zwischenverbindungsarchitektur) verwendet werden.
  • Wie ferner dargestellt, umfasst eine Systemagentendomäne 1510 eine Anzeigemaschine 1512, die eine Steuerung und eine Schnittstelle mit einer zugeordneten Anzeige bereitzustellen hat. Die Systemagentendomäne 1510 kann andere Einheiten umfassen, wie eine integrierte Speichersteuereinheit 1520, die eine Schnittstelle mit einem Systemspeicher bereitstellt (z.B. einem DRAM, implementiert mit mehreren DIMMs), Kohärenzlogik 1522, um Speicherkohärenzoperationen vorzunehmen. Mehrere Schnittstellen können vorhanden sein, um eine Zwischenverbindung zwischen dem Prozessor und anderen Schaltungen zu ermöglichen. Beispielsweise ist in einer Ausführungsform wenigstens eine direkte Medienschnittstelle (DMI) 1516 bereitgestellt sowie eine oder mehrere PCIe™-Schnittstellen 1514. Die Anzeigemaschine und diese Schnittstellen sind typischerweise über eine PCIe™-Brücke 1518 mit einem Speicher gekoppelt. Darüber hinaus, um Kommunikationen zwischen anderen Agenten bereitzustellen, wie zusätzlichen Prozessoren oder anderen Schaltungen, kann oder können eine oder mehrere Schnittstellen bereitgestellt sein.
  • Mit nunmehriger Bezugnahme auf 16 ist ein Blockbild eines repräsentativen Kerns gezeigt; spezifisch die Logikblöcke eines Back End eines Kerns, wie des Kerns 1530 von 15. Im Allgemeinen umfasst die in 16 gezeigte Struktur einen Out-of-order-Prozessor, der eine Front End-Einheit 1670 aufweist, die verwendet wird, um eingehende Instruktionen abzurufen, verschiedenste Verarbeitungen vorzunehmen (z.B. Caching, Decodieren, Verzweigungsvorhersage, etc.) und Instruktionen/Operationen zu einer Out-of-order- (OOO-) Maschine 1680 weiterzuleiten. Die OOO-Maschine 1680 nimmt eine Weiterverarbeitung an decodierten Instruktionen vor.
  • Spezifisch umfasst in der Ausführungsform von 16 die Out-of-order-Maschine 1680 eine Zuordnungseinheit 1682, um decodierte Instruktionen, die in der Form von einer oder mehreren Mikroinstruktionen oder Uops vorliegen können, von der Front End-Einheit 1670 zu empfangen und diese geeigneten Ressourcen, wie Registern, usw., zuzuordnen. Als Nächstes werden die Instruktionen an eine Reservierungsstation 1684 geliefert, die Ressourcen reserviert und diese zur Ausführung an einer von mehreren Ausführungseinheiten 1686A bis 1686N plant. Verschiedene Typen von Ausführungseinheiten können vorhanden sein, die beispielsweise u.a. arithmetische Logikeinheiten (ALUs), Lade- und Speichereinheiten, Vektorverarbeitungseinheiten (VPUs), Gleitkomma-Ausführungseinheiten umfassen. Ergebnisse von diesen verschiedenen Ausführungseinheiten werden an einen Umordnungspuffer (ROB) 1688 geliefert, der ungeordnete Ergebnisse aufnimmt und diese in eine korrekte Programmordnung zurückführt.
  • Mit weiterer Bezugnahme auf 16 ist zu beachten, dass sowohl die Front End-Einheit 1670 als auch die Out-of-order-Maschine 1680 mit verschiedenen Ebenen einer Speicherhierarchie gekoppelt sind. Spezifisch ist ein Cache 1672 auf Instruktionsebene gezeigt, der seinerseits mit einem Cache 1676 auf mittlerer Ebene gekoppelt ist, welcher seinerseits mit einem Last Level-Cache 1695 gekoppelt ist. In einer Ausführungsform ist der Last Level-Cache 1695 in einer chipinternen (manchmal als Uncore bezeichnet) Einheit 1690 implementiert. Als Beispiel ist die Einheit 1690 ähnlich dem Systemagenten 1510 von 15. Wie oben diskutiert, kommuniziert der Uncore 1690 mit dem Systemspeicher 1699, der in der veranschaulichten Ausführungsform über einen eDRAM implementiert ist. Es ist auch zu beachten, dass die verschiedenen Ausführungseinheiten 1686 innerhalb der Out-of-order-Maschine 1680 mit einem First Level-Cache 1674 kommunizieren, der auch mit dem Cache 1676 auf mittlerer Ebene kommuniziert. Es ist ferner zu beachten, dass zusätzliche Kerne 1630N-2 bis 1630N mit dem LLC 1695 gekoppelt sein können. Obwohl auf dieser hohen Ebene in der Ausführungsform von 16 gezeigt, ist zu verstehen, dass verschiedene Änderungen und zusätzliche Komponenten vorhanden sein können.
  • Mit Bezugnahme auf 17 ist ein Blockbild eines beispielhaften Computersystems veranschaulicht, das mit einem Prozessor gebildet ist, der Ausführungseinheiten aufweist, um eine Instruktion auszuführen, wobei eine oder mehrere der Zwischenverbindungen ein oder mehrere Merkmale gemäß einer Ausführungsform der vorliegenden Erfindung implementieren. Das System 1700 umfasst eine Komponente, wie einen Prozessor 1702, um Ausführungseinheiten einzusetzen, die Logik umfassen, um Algorithmen für Prozessdaten vorzunehmen, gemäß der vorliegenden Erfindung, wie in der hier beschriebenen Ausführungsform. Das System 1700 ist für Verarbeitungssysteme auf der Basis von PENTIUM III™-, PENTIUM 4™-, Xeon™-, Itanium-, XScale™- und/oder StrongARM™-Mikroprozessoren repräsentativ, obwohl auch andere Systeme (umfassend PCs mit anderen Mikroprozessoren, Engineering Workstations, Beistellgeräte und dgl.) verwendet werden können. In einer Ausführungsform führt das beispielhafte System 1700 eine Version des WINDOWS™-Betriebssystem aus, verfügbar von der Microsoft Corporation of Redmond, Washington, obwohl auch andere Betriebssysteme (beispielsweise UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können. Somit sind Ausführungsformen der vorliegenden Erfindung nicht auf irgendeine spezifische Kombination von Hardware-Schaltungen und Software beschränkt.
  • Ausführungsformen sind nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen verwendet werden, wie Handvorrichtungen und eingebetteten Anwendungen. Einige Beispiele von Handvorrichtungen umfassen Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, Personal Digital Assitants (PDAs) und Hand-PCs. Eingebettete Anwendungen können eine Mikrosteuereinheit, einen Digitalsignalprozessor (DSP), System-On-Chip, Netzcomputer (NetPC), Beistellgeräte, Netz-Hubs, Wide Area Network- (WAN-) Schalter oder ein beliebiges anderes System umfassen, das eine oder mehrere Instruktionen gemäß wenigstens einer Ausführungsform vornehmen kann.
  • In dieser veranschaulichten Ausführungsform umfasst der Prozessor 1702 eine oder mehrere Ausführungseinheiten 1708, um einen Algorithmus zu implementieren, der wenigstens eine Instruktion vorzunehmen hat. Eine Ausführungsform kann im Kontext eines einzelnen Prozessor-Desktop- oder Server-Systems beschrieben werden, alternative Ausführungsformen können jedoch in einem Mehrprozessorsystem eingeschlossen sein. Das System 1700 ist ein Beispiel einer „Hub“-Systemarchitektur. Das Computersystem 1700 umfasst einen Prozessor 1702, um Datensignale zu verarbeiten. Der Prozessor 1702 umfasst, als veranschaulichendes Beispiel, einen Mikroprozessor mit komplexem Instruktionssatz (CISC), einen Rechner-Mikroprozessor mit reduziertem Befehlssatz (RISC), einen Very Long Instruction Word- (VLIW-) Mikroprozessor, einen Prozessor, der eine Kombination von Instruktionssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie beispielsweise einen Digitalsignalprozessor. Der Prozessor 1702 ist mit einem Prozessorbus 1710 gekoppelt, der Datensignale zwischen dem Prozessor 1702 und anderen Komponenten im System 1700 sendet. Die Elemente des Systems 1700 (z.B. Grafikbeschleuniger 1712, Speichersteuereinheit-Hub 1716, Speicher 1720, I/O-Steuereinheit-Hub 1724, drahtloser Sende/Empfänger 1726, Flash-BIOS 1728, Netzsteuereinheit 1734, Audio-Steuereinheit 1736, serieller Expansionsport 1738, I/O-Steuereinheit 1740, etc.) nehmen ihre herkömmlichen Funktionen vor, die Fachleuten wohlbekannt sind.
  • In einer Ausführungsform umfasst der Prozessor 1702 einen Level 1- (L1-) internen Cache-Speicher 1704. In Abhängigkeit von der Architektur kann der Prozessor 1712 einen einzelnen internen Cache oder mehrfache Ebenen interner Caches aufweisen. Andere Ausführungsformen umfassen eine Kombination sowohl interner als auch externer Caches in Abhängigkeit von der bestimmten Implementierung und den Anforderungen. Die Registerdatei 1706 hat verschiedene Typen von Daten in verschiedenen Registern zu speichern, die Ganzzahlregister, Gleitkommaregister, Vektorregister, Banked Register, Schattenregister, Checkpoint-Register, Statusregister und Instruktionszeigerregister umfassen.
  • Die Ausführungseinheit 1708, die Logik umfasst, um Ganzzahl- und Gleitkommaoperationen vorzunehmen, residiert ebenfalls im Prozessor 1702. Der Prozessor 1702 umfasst in einer Ausführungsform einen Mikrocode- (Ucode-) ROM, um einen Mikrocode zu speichern, der, wenn er ausgeführt wird, Algorithmen für bestimmte Makroinstruktionen vorzunehmen hat oder komplexe Szenarien zu behandeln hat. Hier ist der Mikrocode potentiell aktualisierbar, um Logikfehler/Fehlerbehebungen für den Prozessor 1702 zu behandeln. Für eine Ausführungsform umfasst die Ausführungseinheit 1708 Logik, um einen gepackten Instruktionssatz 1709 zu behandeln. Durch das Einschließen des gepackten Instruktionssatzes 1709 in dem Instruktionssatz eines Universalprozessors 1702, zusammen mit zugeordneten Schaltungen zur Ausführung der Instruktionen, können die von vielen Multimedia-Anwendungen verwendeten Operationen unter Verwendung gepackter Daten in einem Universalprozessor 1702 vorgenommen werden. So werden viele Multimedia-Anwendungen beschleunigt und unter Verwendung der vollen Breite eines Datenbusses eines Prozessors effizienter ausgeführt, um Operationen an gepackten Daten vorzunehmen. Dies eliminiert potentiell die Notwendigkeit, kleinere Einheiten von Daten quer über den Datenbus des Prozessors zu transferieren, um eine oder mehrere Operationen vorzunehmen, jeweils ein Datenelement zu einer Zeit.
  • Alternative Ausführungsformen einer Ausführungseinheit 1708 können auch in Mikrosteuereinheiten, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. Das System 1700 umfasst einen Speicher 1720. Der Speicher 1720 umfasst eine Speichervorrichtung mit wahlfreiem Zugriff (DRAM), eine statische Speichervorrichtung mit wahlfreiem Zugriff (SRAM), eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung. Der Speicher 1720 speichert Instruktionen und/oder Daten, welche durch Datensignale repräsentiert werden, die vom Prozessor 1702 auszuführen sind.
  • Es ist zu beachten, dass beliebige der vorgenannten Merkmale oder Aspekte der Erfindung auf einer oder mehreren Zwischenverbindungen verwendet werden können, die in 17 veranschaulicht sind. Beispielsweise implementiert eine chipinterne Zwischenverbindung (ODI), die nicht gezeigt ist, zur Kopplung interner Einheiten des Prozessors 1702 einen oder mehrere der oben beschriebenen Aspekte der Erfindung. Oder die Erfindung ist assoziiert mit einem Prozessorbus 1710 (z.B. andere bekannte Hochleistungsrechner-Zwischenverbindung), einem Speicherpfad 1718 mit hoher Bandbreite zu einem Speicher 1720, einer Point-to-Point-Verbindung mit einem Grafikbeschleuniger 1712 (z.B. einer Struktur kompatibel mit Peripheral Component Interconnect express (PCIe)), einer Steuereinheit-Hub-Zwischenverbindung 1722, einer I/O- oder anderen Zwischenverbindung (z.B. USB, PCI, PCIe) zur Kopplung der anderen veranschaulichten Komponenten. Einige Beispiele solcher Komponenten umfassen die Audio-Steuereinheit 1736, den Firmware-Hub (Flash BIOS) 1728, drahtlosen Sende/Empfänger 1726, Datenspeicher 1724, die Legacy-I/O-Steuereinheit 1710, die Benutzereingabe- und Tastaturschnittstellen 1742 enthält, einen seriellen Expansionsport 1738, wie Universal Serial Bus (USB), und eine Netzsteuereinheit 1734. Die Datenspeichervorrichtung 1724 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Mit nunmehriger Bezugnahme auf 18 ist ein Blockbild eines zweiten Systems 1800 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 18 gezeigt, ist das Mehrprozessorsystem 1800 ein Point-to-Point-Zwischenverbindungssystem und umfasst einen ersten Prozessor 1870 und einen zweiten Prozessor 1880, die über eine Point-to-Point-Zwischenverbindung 1850 gekoppelt sind. Jeder der Prozessoren 1870 und 1880 kann irgendeine Version eines Prozessors sein. In einer Ausführungsform sind 1852 und 1854 Teil einer seriellen kohärenten Point-to-Point-Zwischenverbindungsstruktur, wie einer Hochleistungsarchitektur. Als Ergebnis kann die Erfindung innerhalb der QPI-Architektur implementiert werden.
  • Obwohl nur mit zwei Prozessoren 1870, 1880 gezeigt, ist es klar, dass der Umfang der vorliegenden Erfindung nicht so eingeschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 1870 und 1880 sind so gezeigt, dass sie integrierte Speichersteuereinheiten 1872 bzw. 1882 umfassen. Der Prozessor 1870 umfasst auch als Teil seiner Bussteuereinheiten Point-to-Point- (P-P-) Schnittstellen 1876 und 1878; ähnlich umfasst der zweite Prozessor 1880 P-P-Schnittstellen 1886 und 1888. Die Prozessoren 1870, 1880 können Informationen über die Point-to-Point- (P-P-) Schnittstelle 1850 unter Verwendung von P-P-Schnittstellenschaltungen 1878, 1888 austauschen. Wie in 18 gezeigt, koppeln IMCs 1872 und 1882 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1832 und einem Speicher 1834, die Abschnitte eines Hauptspeichers ein können, der lokal an die jeweiligen Prozessoren angeschlossen ist.
  • Die Prozessoren 1870, 1880 tauschen jeweils Informationen mit einem Chipsatz 1890 über einzelne P-P-Schnittstellen 1852, 1854 unter Verwendung von Point-to-Point-Schnittstellenschaltungen 1876, 1894, 1886, 1898 aus. Der Chipsatz 1890 tauscht auch Informationen mit einer Hochleistungs-Grafikschaltung 1838 über eine Schnittstellenschaltung 1892 entlang einer Hochleistungs-Grafikzwischenverbindung 1839 aus.
  • Ein gemeinsam genutzter Cache (nicht gezeigt) kann in jedem Prozessor oder außerhalb beider Prozessoren eingeschlossen sein, jedoch verbunden mit den Prozessoren über eine P-P-Zwischenverbindung, so dass lokale Cache-Informationen eines oder beider der Prozessoren im gemeinsam genutzten Cache gespeichert werden können, falls ein Prozessor in einen Modus mit niedriger Energie versetzt wird.
  • Der Chipsatz 1890 kann mit einem ersten Bus 1816 über eine Schnittstelle 1896 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1816 eine Peripheral Component Interconnect- (PCI-) Bus oder ein Bus sein wie ein PCI Express-Bus oder ein anderer I/O-Zwischenverbindungsbus der dritten Generation, obwohl der Umfang der vorliegenden Erfindung nicht so eingeschränkt ist.
  • Wie in 18 gezeigt, sind verschiedene I/O-Vorrichtungen 1814 mit dem ersten Bus 1816 gekoppelt, zusammen mit einer Busbrücke 1818, die den ersten Bus 1816 mit einem zweiten Bus 1820 koppelt. In einer Ausführungsform umfasst der zweite Bus 1820 einen Low Pin Count- (LPC-) Bus. Verschiedene Vorrichtungen sind mit dem zweiten Bus 1820 gekoppelt, die in einer Ausführungsform beispielsweise eine Tastatur und/oder Maus 1822, Kommunikationsvorrichtungen 1827 und eine Speichereinheit 1828, wie ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, umfassen, die häufig Instruktionen/Code und Daten 1830 umfassen. Ferner ist eine Audio-I/O 1824 gezeigt, gekoppelt mit dem zweiten Bus 1820. Es ist zu beachten, dass andere Architekturen möglich sind, wobei die eingeschlossenen Komponenten und Zwischenverbindungsarchitekturen variieren. Beispielsweise kann ein System anstelle der Point-to-Point-Architektur von 18 einen Multi-Drop-Bus oder eine andere derartige Architektur implementieren.
  • Mit Bezugnahme auf 19 als Nächstes ist eine Ausführungsform einer System-On-Chip- (SOC-) Ausbildung gemäß den Erfindungen dargestellt. Als spezifisches veranschaulichendes Beispiel ist das SOC 1900 in Benutzerausrüstung (UE) eingeschlossen. In einer Ausführungsform bezieht sich die UE auf eine beliebige Vorrichtung, die von einem Endverbraucher zur Kommunikation zu verwenden ist, wie ein Handtelefon, Smartphone, Tablet, ultradünnes Notebook, Notebook mit Breitbandadapter oder eine beliebige andere ähnliche Kommunikationsvorrichtung. Häufig ist eine UE an eine Basisstation oder einen Knoten angeschlossen, was potentiell der Art nach einer Mobilstation (MS) in einem GSM-Netz entspricht.
  • Hier umfasst das SOC 1900 2 Kerne - 1906 und 1907. Ähnlich der obigen Diskussion können die Kerne 1906 und 1907 mit einer Instruktionssatzarchitektur konform sein, wie einem Prozessor auf der Basis von Intel® Architecture Core™, einem Advanced Micro Devices, Inc.- (AMD-) Prozessor, einem Prozessor auf der Basis von MIPS, einer Prozessorausbildung auf der Basis von ARM oder einem Kunden davon, sowie ihren Lizenznehmern oder Nutzern. Die Kerne 1906 und 1907 sind mit der Cache-Steuerung 1908 gekoppelt, die mit einer Busschnittstelleneinheit 1909 und einem L2-Cache 1911 assoziiert ist, um mit anderen Teilen des Systems 1900 zu kommunizieren. Die Zwischenverbindung 1910 umfasst eine chipinterne Zwischenverbindung, wie IOSF, AMBA oder eine andere oben diskutierte Zwischenverbindung, die potentiell einen oder mehrere der hier beschriebenen Aspekte implementiert.
  • Die Schnittstelle 1910 stellt Kommunikationskanäle für die anderen Komponenten bereit, wie ein Subscriber Identity Module (SIM) 1930, um eine Schnittstelle zu einer SIM-Karte zu bilden, einen Boot ROM 1935, um einen Boot Code zur Ausführung durch die Kerne 1906 und 1907 zu halten, um das SOC 1900 zu initialisieren und hochzufahren, eine SDRAM-Steuereinheit 1940, um eine Schnittstelle zum externen Speicher zu bilden (z.B. DRAM 1960), eine Flash-Steuereinheit 1945, um eine Schnittstelle zu einem nicht-flüchtigen Speicher zu bilden (z.B. Flash 1965), eine periphere Steuerung 1950 (z.B. Serial Peripheral Interface), um eine Schnittstelle zu Peripherieeinrichtungen zu bilden, Video-Codecs 1920 und eine Video-Schnittstelle 1925, um eine Eingabe anzuzeigen und zu empfangen (z.B. berührungsaktivierte Eingabe), GPU 1915, um grafikbezogene Berechnungen vorzunehmen, etc. Jede dieser Schnittstellen kann hier beschriebene Aspekte der Erfindung einschließen.
  • Zusätzlich veranschaulicht das System Peripherieeinrichtungen zur Kommunikation, wie ein Bluetooth Modul 1970, 3G Modem 1975, GPS 1985 und WiFi 1985. Es ist zu beachten, wie oben angegeben, dass eine UE Funk zur Kommunikation umfasst. Als Ergebnis sind diese peripheren Kommunikationsmodule nicht alle erforderlich. In einer UE ist jedoch irgendeine Form von Funk zur externen Kommunikation einzuschließen.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind für Fachleute zahlreiche Modifikationen und Variationen davon ersichtlich. Die beigeschlossenen Ansprüche sollen alle derartigen Modifikationen und Variationen abdecken, die in den Grundgedanken und Umfang der vorliegenden Erfindung fallen.
  • Eine Ausbildung kann durch verschiedene Stufen gehen, von der Erzeugung zur Simulation zur Herstellung. Eine Ausbildung repräsentierende Daten können die Ausbildung in verschiedener Weise repräsentieren. Zuerst, wie es bei Simulationen nützlich ist, kann die Hardware unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionellen Beschreibungssprache repräsentiert werden. Zusätzlich kann ein Modell auf Schaltungsebene mit Logik und/oder Transistorgates in einigen Stufen des Ausbildungsprozesses erzeugt werden. Ferner erreichen die meisten Ausbildungen in irgendeiner Stufe eine Ebene von Daten, welche die physikalische Platzierung verschiedener Vorrichtungen in das Hardware-Modell repräsentieren. In dem Fall, wo herkömmliche Halbleiter-Herstellungstechniken verwendet werden, können die das Hardware-Modell repräsentierenden Daten jene Daten sein, die das Vorliegen oder Fehlen verschiedener Merkmale auf verschiedenen Maskenschichten für Masken spezifizieren, die zur Erzeugung der Integrationsschaltung verwendet werden. In einer beliebigen Repräsentation der Ausbildung können die Daten in einer beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Speicher, wie eine Platte, kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über optische oder elektrische Wellen gesendet werden, welche moduliert oder auf andere Weise generiert werden, um solche Informationen zu senden. Wenn eine elektrische Trägerwelle gesendet wird, die den Code oder die Ausbildung anzeigt oder trägt, in dem Ausmaß, dass ein Kopieren, Puffern oder eine erneute Übertragung des elektrischen Signals vorgenommen wird, wird eine neue Kopie gemacht. So kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem greifbaren, maschinenlesbaren Medium, zumindest temporär, einen Artikel speichern, wie in einer Trägerwelle codierte Informationen, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpern.
  • Ein Modul, wie hier verwendet, bezieht sich auf eine beliebige Kombination von Hardware, Software und/oder Firmware. Als Beispiel umfasst ein Modul Hardware, wie eine Mikrosteuereinheit, assoziiert mit einem nicht-transitorischen Medium, um einen Code zu speichern, der angepasst ist, von der Mikrosteuereinheit ausgeführt zu werden. Daher bezieht sich eine Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch ausgelegt ist, den Code, der auf einem nicht-transitorischen Medium zu halten ist, zu erkennen und/oder auszuführen. Ferner bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls auf das nicht-transitorische Medium, das den Code umfasst, der spezifisch angepasst ist, von der Mikrosteuereinheit ausgeführt zu werden, um vorherbestimmte Operationen vorzunehmen. Wie abgeleitet werden kann, kann sich in noch einer weiteren Ausführungsform der Ausdruck Modul (in diesem Beispiel) auf die Kombination der Mikrosteuereinheit und des nicht-transitorischen Mediums beziehen. Oft können Modulgrenzen, die als getrennt veranschaulicht werden, üblicherweise variieren und einander potentiell überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder Kombinationen davon gemeinsam nutzen, wobei bestimmte unabhängige Hardware, Software oder Firmware potentiell beibehalten wird. In einer Ausfuhrungsform umfasst die Verwendung des Ausdrucks Logik Hardware wie Transistoren, Register oder andere Hardware, wie programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „ausgelegt, um“ bezieht sich in einer Ausführungsform auf das Anordnen, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Einführen und/oder Ausbilden einer Vorrichtung, Hardware, Logik oder eines Elements, um eine bezeichnete oder bestimmte Aufgabe vorzunehmen. In diesem Beispiel ist eine Vorrichtung oder ein Element davon, die bzw. das nicht arbeitet, weiterhin „ausgelegt“, eine bezeichnete Aufgabe vorzunehmen, wenn sie bzw. es bezeichnet, gekoppelt und/oder gegenseitig verbunden ist, um die genannte bezeichnete Aufgabe vorzunehmen. Als rein illustratives Beispiel kann ein Logikgate eine 0 oder eine 1 während des Betriebs liefern. Aber ein Logikgate, das „ausgelegt“ ist, ein Freigabesignal für einen Takt zu liefern, umfasst nicht jedes potentielle Logikgate, das eine 1 oder 0 liefern kann. Stattdessen ist das Logikgate eines, das in irgendeiner Weise gekoppelt ist, damit während des Betriebs der Ausgang 1 oder 0 den Takt freizugeben hat. Es ist wiederum anzumerken, dass die Verwendung des Ausdrucks „ausgelegt“ keinen Betrieb erfordert, sondern stattdessen das Augenmerk auf dem latenten Zustand einer Vorrichtung, Hardware und/oder eines Elements liegt, wobei in dem latenten Zustand die Vorrichtung, Hardware und/oder das Element ausgebildet ist, eine bestimmte Aufgabe vorzunehmen, wenn die Vorrichtung, Hardware und/oder das Element in Betrieb sind.
  • Ferner bezieht sich die Verwendung der Ausdrücke „fähig zu“ und „betreibbar, um“ in einer Ausführungsform auf irgendeine Vorrichtung, Logik, Hardware und/oder ein Element, die so ausgebildet sind, dass sie die Verwendung der Vorrichtung, Logik, Hardware und/oder des Elements in einer spezifischen Weise ermöglichen. Es ist wie oben zu beachten, dass sich in einer Ausführungsform die Verwendung von „fähig zu“ und „betreibbar, um“ auf den latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, Logik, Hardware und/oder das Element nicht arbeitet, aber so ausgebildet ist, dass die Verwendung einer Vorrichtung in einer spezifizierten Weise ermöglicht wird.
  • Ein Wert umfasst, wie hier verwendet, eine beliebige bekannte Darstellung einer Zahl, eines Zustands, eines Logiszustands oder eines binären Logikzustands. Oft wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1 und 0 bezeichnet, was einfach binäre Logikzustände repräsentiert. Beispielsweise bezieht sich 1 auf einen hohen Logikpegel und 0 bezieht sich auf einen niederen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie ein Transistor oder eine Flash-Zelle, fähig sein, einen einzelnen Logikwert oder mehrere Logikwerte zu halten. Es wurden jedoch andere Darstellungen von Werten in Computersystemen verwendet. Beispielsweise kann die Dezimalzahl Zehn auch als binärer Wert von 1010 und ein hexadezimaler Buchstabe A repräsentiert werden. Daher umfasst ein Wert eine beliebige Darstellung von Informationen, die in einem Computersystem gehalten werden können.
  • Außerdem können Zustände durch Werte oder Teile von Werten repräsentiert werden. Als Beispiel kann ein erster Wert, wie eine logische Eins, einen Vorgabe- oder Initialzustand repräsentieren, während ein zweiter Wert, wie eine logische Null, einen Nicht-Vorgabezustand repräsentieren kann. Zusätzlich beziehen sich die Ausdrücke Rücksetzen und Setzen in einer Ausführungsform jeweils auf einen Vorgabe- und einen aktualisierten Wert oder Zustand. Beispielsweise umfasst ein Vorgabewert potentiell einen hohen Logikzustand, d.h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen Logikwert umfasst, d.h. Setzen. Es ist zu beachten, dass eine beliebige Kombination von Werten verwendet werden kann, um eine beliebige Anzahl von Zuständen zu repräsentieren.
  • Die oben angegebenen Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Codes können über Instruktionen oder Codes implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind, welche durch ein Verarbeitungselement ausgeführt werden können. Ein nicht-transitorisches maschinenzugängliches/lesbares Medium umfasst einen beliebigen Mechanismus, der Informationen in einer Form liefert (d.h. speichert und/oder sendet), die von einer Maschine, wie einem Computer oder elektronischen System, gelesen werden kann. Beispielsweise umfasst ein nicht-transitorisches maschinenzugängliches Medium einen Speicher mit wahlfreiem Zugriff (RAM), wie einen statischen RAM (SRAM) oder dynamischen RAM (DRAM), ROM, ein magnetisches oder optisches Speichermedium, Flash-Speichervorrichtungen, elektrische Speichervorrichtungen zum Halten von Informationen, die von transitorischen (ausgebreiteten) Signalen empfangen werden (z.B. Trägerwellen, Infrarot-Signalen, Digitalsignalen), etc., die von den nicht-transitorischen Medien zu unterscheiden sind, welche Informationen davon empfangen können.
  • Instruktionen, die zur Programmierung von Logik zur Vornahme von Ausführungsformen der Erfindung verwendet werden, können innerhalb eines Speichers im System gespeichert werden, wie eines DRAM, Cache, Flash-Speichers oder eines anderen Speichers. Ferner können die Instruktionen über ein Netz oder mittels anderer computerlesbarer Medien verbreitet werden. So kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer Form umfassen, die von einer Maschine (z.B. einem Computer) gelesen werden kann, ist jedoch nicht beschränkt auf: Disketten, optische Platten, Compact Disc-Nurlesespeicher (CD-ROMs) und magnetooptische Platten, Nurlesespeicher (ROMs), Speicher mit wahlfreiem Zugriff (RAM), löschbare programmierbare Nurlesespeicher (EPROM), elektrisch löschbare programmierbare Nurlesespeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen greifbaren, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen ausgebreiteter Signale (z.B. Trägerwellen, Infrarot-Signale, Digitalsignale) verwendet wird. Demgemäß umfasst das computerlesbare Medium einen beliebigen Typ eines greifbaren maschinenlesbaren Mediums, das zum Speichern oder Senden elektronischer Instruktionen oder Informationen in einer Form geeignet ist, die von einer Maschine (z.B. einem Computer) gelesen werden kann.
  • Die folgenden Beispiele beziehen sich auf Ausführungsformen gemäß dieser Beschreibung. Eine oder mehrere Ausführungsformen kann oder können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um einen Kanal auf der Basis eines Peripheral Component Interconnect (PCI) Express (PCIe)-Protokolls bereitzustellen, um eine Bitrate von wenigstens 16 Gigatransfer pro Sekunde (GT/s) zu unterstützen, wobei der Kanal zwei Verbinder umfasst und eine Länge von mehr als zwölf Zoll aufweist.
  • In wenigstens einem Beispiel umfasst der Kanal wenigstens ein Durchgangsloch, und eine Stichleitung des Durchgangslochs ist wenigstens teilweise entfernt.
  • In wenigstens einem Beispiel wird das Durchgangsloch tiefenkontrolliert gebohrt, um die Stichleitung zu entfernen.
  • In wenigstens einem Beispiel ist das Durchgangsloch ein Durchgangsloch eines ersten der Verbinder.
  • In wenigstens einem Beispiel wird jedes Durchgangsloch tiefenkontrolliert gebohrt, das vom Verbinder verwendet wird, um an eine erste Vorrichtung angeschlossen zu werden.
  • In wenigstens einem Beispiel werden Durchgangslöcher eines zweiten der Verbinder tiefenkontrolliert gebohrt, der verwendet wird, um an eine zweite Vorrichtung angeschlossen zu werden.
  • In wenigstens einem Beispiel ist das Durchgangsloch ein Durchgangsloch eines Prozessor-Sockels.
  • In wenigstens einem Beispiel umfasst jede Bahn des Kanals einen entsprechenden Abschnitt eines jeweiligen Prozessor-Sockels, und jedes der Prozessor-Sockel, das einer Bahn des Kanals mit einer Durchgangslochstichleitung entspricht, wird tiefenkontrolliert gebohrt.
  • In wenigstens einem Beispiel wird eine Leiterplatte mit niedrigem Verlust bereitgestellt, und der Kanal wird wenigstens teilweise auf der Leiterplatte implementiert.
  • In wenigstens einem Beispiel weist die Leiterplatte mit niedrigem Verlust einen kleinen spurdifferentiellen Einfügungsverlust auf. In wenigstens einem Beispiel wird eine Verstärkung am Empfänger-Front End des Kanals angelegt.
  • In wenigstens einem Beispiel umfasst die Verstärkung ungefähr 6 dB.
  • In wenigstens einem Beispiel wird eine Verstärkung an einen zeitkontinuierlichen Linear-Entzerrer des Kanals angelegt.
  • In wenigstens einem Beispiel beträgt die kombinierte Verstärkung, die an das Empfänger-Front End und den zeitkontinuierlichen Linear-Entzerrer angelegt wird, ungefähr 6 dB.
  • In wenigstens einem Beispiel umfasst der Kanal wenigstens ein Durchgangsloch mit einer tiefenkontrolliert gebohrten Stichleitung, ist der Kanal wenigstens teilweise auf einer Leiterplatte mit niedrigem Verlust implementiert und wird eine kombinierte Verstärkung von ungefähr 6 dB an eines oder mehrere von einem Empfänger-Front End des Kanals und einem zeitkontinuierlichen Linear-Entzerrer des Kanals angelegt.
  • In wenigstens einem Beispiel beträgt die Länge des Kanals wenigstens zwanzig (20) Zoll.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren zum Senden von Daten bei einer Bitrate von wenigstens 16 GT/s auf einem Kanal bereitstellen, der eine Doppelverbinder-Verbindung mit mehreren Bahnen umfasst, wobei die Länge des Kanals größer ist als zwölf Zoll.
  • In wenigstens einem Beispiel beträgt die Länge des Kanals wenigstens zwanzig (20) Zoll.
  • In wenigstens einem Beispiel umfasst der Kanal ein oder mehrere Durchgangslöcher, und Stichleitungen der Durchgangslöcher werden tiefenkontrolliert gebohrt.
  • In wenigstens einem Beispiel ist oder sind das eine oder mehrere Durchgangslöcher in einem oder beiden der zwei Verbinder eingeschlossen.
  • In wenigstens einem Beispiel umfasst der Kanal Prozessor-Sockel, und die Prozessor-Sockel umfassen die Durchgangslöcher.
  • In wenigstens einem Beispiel umfasst der Kanal wenigstens ein Durchgangsloch mit einer tiefenkontrolliert gebohrten Stichleitung, ist der Kanal wenigstens teilweise auf einer Leiterplatte mit niedrigem Verlust implementiert und wird eine kombinierte Verstärkung von ungefähr 6 dB an eines oder mehrere von einem Empfänger-Front End des Kanals und einem zeitkontinuierlichen Linear-Entzerrer des Kanals angelegt.
  • In wenigstens einem Beispiel umfasst der Kanal einen Kanal auf PCIe-Basis.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren zum Empfangen von Daten bereitstellen, die bei einer Bitrate von wenigstens 16 GT/s auf einem Kanal gesendet werden, der eine Doppelverbinder-Datenverbindung mit mehreren Bahnen umfasst, wobei die Länge des Kanals größer ist als zwölf Zoll.
  • In wenigstens einem Beispiel beträgt die Länge des Kanals wenigstens zwanzig (20) Zoll.
  • In wenigstens einem Beispiel umfasst der Kanal ein oder mehrere Durchgangslöcher, und Stichleitungen der Durchgangslöcher werden tiefenkontrolliert gebohrt.
  • In wenigstens einem Beispiel ist oder sind das eine oder mehrere Durchgangslöcher in einem oder beiden der zwei Verbinder eingeschlossen.
  • In wenigstens einem Beispiel umfasst der Kanal Prozessor-Sockel, und die Prozessor-Sockel umfassen die Durchgangslöcher.
  • In wenigstens einem Beispiel umfasst der Kanal wenigstens ein Durchgangsloch mit einer tiefenkontrolliert gebohrten Stichleitung, ist der Kanal wenigstens teilweise auf einer Leiterplatte mit niedrigem Verlust implementiert und wird eine kombinierte Verstärkung von ungefähr 6 dB an eines oder mehrere von einem Empfänger-Front End des Kanals und einem zeitkontinuierlichen Linear-Entzerrer des Kanals angelegt.
  • In wenigstens einem Beispiel umfasst der Kanal einen Kanal auf PCIe-Basis.
  • In wenigstens einem Beispiel wird ein System bereitgestellt, das eine erste Vorrichtung und eine zweite Vorrichtung umfasst, die kommunikativ mit der ersten Vorrichtung unter Verwendung eines Zwischenverbindungskanals gekoppelt ist, wobei der Zwischenverbindungskanal eine Datenverbindung auf der Basis eines Peripheral Component Interconnect (PCI) Express (PCIe)-Protokolls umfasst, um eine Bitrate von wenigstens 16 GT/s zu unterstützen, und die Datenverbindung umfasst zwei Verbinder und hat eine Länge von mehr als zwölf Zoll.
  • In wenigstens einem Beispiel umfasst das System einen Server-Chipsatz.
  • In wenigstens einem Beispiel umfasst die erste Vorrichtung eine Prozessorvorrichtung.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren zum Identifizieren eines ersten Bahnfehlers auf einer bestimmten einen von mehreren Bahnen einer Datenverbindung auf der Basis der Detektion wenigstens eines fehlerhaften Symbols, das auf der bestimmten Bahn gesendet wird, und zum Berichten des ersten Bahnfehlers in einem Bahnfehlerregister bereitstellen.
  • In wenigstens einem Beispiel identifizieren Bahnfehler, die im Bahnfehlerregister berichtet werden, die entsprechende Bahn unter den mehreren Bahnen.
  • In wenigstens einem Beispiel wird ein zweiter Bahnfehler auf der Bahn auf der Basis der Detektion eines fehlerhaften Sync-Anfangsblocks auf wenigstens einer der mehreren Bahnen identifiziert, und der zweite Bahnfehler wird im Bahnfehlerregister berichtet.
  • In wenigstens einem Beispiel wird dritter Bahnfehler auf der Basis der Bestimmung einer Nicht-Übereinstimmung von Paritätsinformationen für einen Datenstrom identifiziert, der über die Datenverbindung gesendet wird, und der dritte Bahnfehler wird im Bahnfehlerregister berichtet.
  • In wenigstens einem Beispiel werden Paritätsinformationen in einem SKP geordneten Satz (SKP OS) empfangen.
  • In wenigstens einem Beispiel umfasst die I/O-Logik physikalische Schichtlogik.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol einen Fehler an einem Symbol, das in einem SKP OS eingeschlossen ist.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein Nicht-SKP OS-Symbol, das zwischen einem ersten SLP OS Symbol im SKP OS und einem SLP_End-Marker im SKP OS detektiert wird.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol einen SKP_END, der in einem anderen Symbol als den Symbolen 8, 12, 16, 20 oder 24 des SKP OS platziert ist.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein erstes Symbol eines Framing-Tokens.
  • In wenigstens einem Beispiel umfasst das Framing-Token ein PCIe-Framing-Token.
  • In wenigstens einem Beispiel umfasst das Framing-Token wenigstens eines von einem logischen Idle Token (IDL), einem Start of Data Link Layer Packet (DLLP) Data Token (SDP), einem Start of Transaction Layer Packet (TLP) Data Token (STP) und einem End Bad TLP Token (EDB).
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein fehlerhaftes ILD Token Symbol.
  • In wenigstens einem Beispiel ist ein erstes IDL-Token in einer bestimmten Bahn n unter den mehreren Bahnen eingeschlossen, und das fehlerhafte Symbol umfasst ein Nicht-IDL Symbol, das in einer beliebigen der Bahnen n+1, n+2 und n+3 unter den mehreren Bahnen detektiert wird.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein EDB-Token Symbol.
  • In wenigstens einem Beispiel folgt ein erstes EDB-Token einem TLP auf einer bestimmten Bahn n unter den mehreren Bahnen, und das fehlerhafte Symbol umfasst ein Nicht-EDB Symbol, das in einer beliebigen der Bahnen n+1, n+2 und n+3 unter den mehreren Bahnen detektiert wird.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein Symbol eines EDB-Tokens und das EDB-Token folgt einem anderen Framing-Token als einem SDP-Token.
  • In wenigstens einem Beispiel umfasst das fehlerhafte Symbol ein SDP-Token Symbol.
  • In wenigstens einem Beispiel ist ein erstes Symbol eines SDP-Tokens in einer bestimmten Bahn n unter den mehreren Bahnen eingeschlossen, und das fehlerhafte Symbol umfasst ein Nicht-SDP Symbol, das in einer Bahn n+ 1 unter den mehreren Bahnen detektiert wird.
  • In wenigstens einem Beispiel umfasst das Bahnfehlerregister ein PCIe-Bahnfehlerstatus (LES)-Register.
  • In wenigstens einem Beispiel umfasst die Datenverbindung eine mit PCIe konforme Datenverbindung.
  • In wenigstens einem Beispiel wird ein zweiter Bahnfehler auf der Datenverbindung auf der Basis der Detektion eines geordneten Satzblocks identifiziert, dem ein vorausgehendes EDS-Token fehlt.
  • In wenigstens einem Beispiel ist ein Bahnfehler auf der Basis der Detektion eines Fehlers in einem beliebigen von einem geordneten Satzsymbol, einem IDL-Token Symbol, einem SDP-Token Symbol, einem STP Token Symbol und einem EDB-Token Symbol zu identifizieren und zu berichten.
  • In wenigstens einem Beispiel wird das Bahnfehlerregister überwacht, um Bahnfehler zu identifizieren, welche die bestimmte Bahn involvieren, und auf der Basis mehrerer Fehler, die für die bestimmte Bahn im Bahnfehlerregister identifiziert werden, kann bestimmt werden, dass die bestimmte Bahn fehlerhaft ist.
  • In wenigstens einem Beispiel umfasst die Bestimmung, dass die bestimmte Bahn fehlerhaft ist, eine statistische Analyse der mehreren Fehler.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um zu identifizieren, dass eine Datenverbindung einen aktiven Zustand zu verlassen hat, wobei die Datenverbindung mehrere Bahnen umfasst, um Paritätsinformationen für die Bahnen auf der Basis von Daten zu halten, die vorher über die Datenverbindung gesendet wurden, und um eine Indikation der Paritätsinformationen vor dem Austritt aus dem aktiven Zustand zu senden.
  • In wenigstens einem Beispiel wird die Indikation der Paritätsinformationen ansprechend auf den Austritt gesendet.
  • In wenigstens einem Beispiel wird die Indikation der Paritätsinformationen in einem geordneten Satz gesendet.
  • In wenigstens einem Beispiel ist die Indikation der Paritätsinformationen für jede Bahn in einem jeweiligen Paritätsbit für jede Bahn eingeschlossen, das im geordneten Satz eingeschlossen ist.
  • In wenigstens einem Beispiel umfasst der geordnete Satz einen PCIe SKP OS.
  • In wenigstens einem Beispiel hat die Datenverbindung den aktiven Zustand auf der Basis einer Datenverbindungswiederherstellung zu verlassen.
  • In wenigstens einem Beispiel basiert die Datenverbindungswiederherstellung auf einem detektierten Fehler auf der Datenverbindung.
  • In wenigstens einem Beispiel umfasst der Fehler einen Framing-Token-Fehler.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um Daten auf einer Datenverbindung zu senden, die mehrere Bahnen umfasst, um Paritätsinformationen für jede der Bahnen auf der Basis der gesendeten Daten zu halten, um zu identifizieren, dass die Datenverbindung einen aktiven Zustand zu verlassen hat, und um die Paritätsinformationen vor dem Austritt aus dem aktiven Zustand zu senden.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um die ersten Paritätsinformationen für jede von mehreren Bahnen einer Datenverbindung auf der Basis von Daten zu halten, die vorher über die Datenverbindung gesendet wurden, um zweite Paritätsinformationen ansprechend auf ein Ereignis zu empfangen, das bewirkt, dass die Datenverbindung einen aktiven Zustand verlässt, wobei bewirkt wird, dass die zweiten Paritätsinformationen vor dem Austritt aus dem aktiven Zustand gesendet werden. Die ersten Paritätsinformationen werden mit den zweiten Paritätsinformationen verglichen, um potentielle Bahnfehler auf einer oder mehreren der Bahnen zu identifizieren.
  • In wenigstens einem Beispiel sind die zweiten Paritätsinformationen in einem geordneten Satz eingeschlossen.
  • In wenigstens einem Beispiel sind die zweiten Paritätsinformationen in Paritätsbits eingeschlossen, die im geordneten Satz eingeschlossen sind.
  • In wenigstens einem Beispiel umfasst der geordnete Satz einen SKP OS.
  • In wenigstens einem Beispiel hat die Datenverbindung den aktiven Zustand auf der Basis einer Wiederherstellung der Datenverbindung zu verlassen.
  • In wenigstens einem Beispiel wird die Wiederherstellung durch einen Fehler ausgelöst, der auf der Datenverbindung detektiert wird.
  • In wenigstens einem Beispiel umfasst der Fehler einen Framing-Token-Fehler.
  • In wenigstens einem Beispiel werden potentielle Bahnfehler an ein Bahnfehlerregister berichtet.
  • In wenigstens einem Beispiel umfasst das Bahnfehlerregister ein LES-Register.
  • In wenigstens einem Beispiel umfasst das Ereignis einen auf der Datenverbindung detektierten Fehler.
  • In wenigstens einem Beispiel ist eine Wiederherstellung der Datenverbindung auf der Basis des Fehlers auszulösen, und die Wiederherstellung bewirkt, dass die Datenverbindung den aktiven Zustand verlässt.
  • In wenigstens einem Beispiel werden potentielle Bahnfehler auf der Basis einer Detektion identifiziert, dass die ersten Paritätsinformationen mit den zweiten Paritätsinformationen nicht übereinstimmen.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um Daten über eine Datenverbindung zu empfangen, die mehrere Bahnen umfasst, um erste Paritätsinformationen für jede der Bahnen auf der Basis der Daten zu halten, um zweite Paritätsinformationen ansprechend auf ein Ereignis zu empfangen, wobei das Ereignis zu bewirken hat, dass die Datenverbindung einen aktiven Zustand verlässt, und wobei bewirkt wird, dass die zweiten Paritätsinformationen vor dem Austritt aus dem aktiven Zustand gesendet werden, und um die ersten Paritätsinformationen mit den zweiten Informationen zu vergleichen, um potentielle Bahnfehler auf einer oder mehreren der Bahnen zu identifizieren.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um Paritätsinformationen für jede von mehreren Bahnen einer Datenverbindung auf der Basis eines ersten Abschnitts von Daten zu halten, die über die Datenverbindung gesendet werden, wobei die Paritätsinformationen durch eine Wiederherstellung der Datenverbindung hindurch zu halten sind, und um die Berechnung der Paritätsinformationen nach der Wiederherstellung der Datenverbindung wieder aufzunehmen, wobei die Paritätsinformationen ferner auf einem zweiten Abschnitt von Daten basieren, die über die Datenverbindung gesendet werden, und der zweite Abschnitt von Daten wird als persistent angesehen.
  • In wenigstens einem Beispiel entspricht der erste Abschnitt der Daten einem ersten Datenblock, und der zweite Abschnitt der Daten entspricht einem anderen zweiten Datenblock.
  • In wenigstens einem Beispiel wird der erste Datenblock durch die Wiederherstellung unterbrochen und der zweite Block beginnt nach der Wiederherstellung.
  • In wenigstens einem Beispiel basiert die Wiederherstellung auf einem Fehler, der auf der Verbindung detektiert wird.
  • In wenigstens einem Beispiel wird eine Indikation der Paritätsinformationen an eine Empfängervorrichtung gesendet, die auf der Basis des ersten und zweiten Abschnitts der Daten berechnet wird.
  • In wenigstens einem Beispiel umfassen die Paritätsinformationen erste Paritätsinformationen, und I/O-Logik hat ferner, von einer Sende/Empfängervorrichtung, eine Indikation zweiter Paritätsinformationen zu empfangen, die von der gesendeten Vorrichtung auf der Basis des ersten und zweiten Abschnitts der Daten berechnet werden, und hat die Indikation der zweiten Paritätsinformationen mit den ersten Paritätsinformationen zu vergleichen.
  • In wenigstens einem Beispiel wird bestimmt, ob potentielle Fehler auf einer oder mehreren der mehreren Bahnen vorliegen, auf der Basis eines Vergleichs der Indikation der zweiten Paritätsinformationen mit den ersten Paritätsinformationen.
  • In wenigstens einem Beispiel werden die potentiellen Fehler in einem Bahnfehlerregister berichtet.
  • In wenigstens einem Beispiel umfasst das Bahnfehlerregister ein PCIe LES-Register.
  • In wenigstens einem Beispiel ist die Indikation der zweiten Paritätsinformationen in einem SKP OS eingeschlossen.
  • In wenigstens einem Beispiel umfasst die Indikation der zweiten Paritätsinformationen Paritätsbits des SKP OS.
  • In wenigstens einem Beispiel umfasst die Datenverbindung eine PCIekonforme Datenverbindung.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um erste Daten auf einer Datenverbindung zu senden, die mehrere Bahnen umfasst, um Paritätsinformationen für jede der Bahnen auf der Basis der gesendeten ersten Daten zu bestimmen, um an einer Wiederherstellung der Datenverbindung teilzunehmen, wobei die Paritätsinformationen durch die Wiederherstellung der Datenverbindung hindurch gehalten werden, um zweite Daten auf der Datenverbindung nach der Wiederherstellung der Datenverbindung zu senden, und um die Paritätsinformationen zu aktualisieren, um aktualisierte Paritätsinformationen zu generieren, wobei die aktualisierten Paritätsinformationen auf den ersten Daten und den zweiten Daten basieren.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um erste Daten von einer Vorrichtung zu empfangen, wobei die ersten Daten auf einer Datenverbindung empfangen werden, die mehrere Bahnen umfasst, um Paritätsinformationen für jede der Bahnen auf der Basis der empfangenen ersten Daten zu bestimmen, um an einer Wiederherstellung der Datenverbindung teilzunehmen, wobei die Paritätsinformationen durch die Wiederherstellung der Datenverbindung hindurch gehalten werden, um zweite Daten auf der Datenverbindung von der Vorrichtung nach der Wiederherstellung der Datenverbindung zu empfangen, und um die Paritätsinformationen zu aktualisieren, um aktualisierte Paritätsinformationen zu generieren, wobei die aktualisierten Paritätsinformationen auf den ersten Daten und den zweiten Daten basieren.
  • In wenigstens einem Beispiel können die bestimmten Paritätsinformationen mit anderen Paritätsinformationen verglichen werden, um eine oder mehrere potentielle Bahnfehler zu bestimmen.
  • In wenigstens einem Beispiel sind die anderen Paritätsinformationen in einem SKP OS eingeschlossen.
  • In wenigstens einem Beispiel können die anderen Paritätsinformationen aus Paritätsbits identifiziert werden, die im SKP OS eingeschlossen sind.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um erste Daten von einer Vorrichtung zu empfangen, wobei die ersten Daten auf einer Datenverbindung empfangen werden, die mehrere Bahnen umfasst, um Paritätsinformationen für jede der Bahnen auf der Basis der empfangenen ersten Daten zu bestimmen, um an einer Wiederherstellung der Datenverbindung teilzunehmen, wobei die Paritätsinformationen durch die Wiederherstellung der Datenverbindung hindurch zu halten sind, um zweite Daten auf der Datenverbindung von der Vorrichtung nach der Wiederherstellung der Datenverbindung zu empfangen, und um die Paritätsinformationen zu aktualisieren, um aktualisierte Paritätsinformationen zu generieren, wobei die aktualisierten Paritätsinformationen auf den ersten Daten und den zweiten Daten basieren.

Claims (20)

  1. Vorrichtung, umfassend: einen Port, der Schaltungen umfasst, um: einen ersten SKP geordneten Satz zu erzeugen, der auf einer bestimmten Bahn von einer Mehrzahl von Bahnen einer Verbindung zu senden ist, wobei der erste SKP geordnete Satz auf der Verbindung gemäß einem bestimmten Intervall zu senden ist und einen Paritätswert umfasst, um eine Parität für einen vorherigen Datenblock anzugeben, der auf der Verbindung gesendet wurde; und einen zweiten SKP geordneten Satz zu erzeugen, der auf der bestimmten Bahn basierend auf dem Eintritt der Verbindung in einen Wiederherstellungszustand zu senden ist, wobei der SKP geordnete Satz vor dem Eintritt in den Widerherstellungszustand zu senden ist, und der zweite SKP geordnete Satz nach dem ersten SKP geordneten Satz und vor einem Ende des bestimmten Intervalls zu senden ist; und wobei der Port ferner einen Sender umfasst, um den ersten SKP geordneten Satz auf der bestimmten Bahn zu senden; und den zweiten SKP geordneten Satz auf der bestimmten Bahn zu senden.
  2. Vorrichtung nach Anspruch 1, wobei der Port ferner Schaltungen umfasst, um eine Parität für jede der Mehrzahl von Bahnen zu berechnen.
  3. Vorrichtung nach Anspruch 2, wobei sowohl der erste SKP geordnete Satz als auch der zweite SKP geordnete Satz den Paritätswert umfassen sollen, um die jeweilige für die bestimmte Bahn berechnete Parität anzugeben.
  4. Vorrichtung nach Anspruch 1, wobei der Paritätswert ein Paritätsbit umfasst.
  5. Vorrichtung nach Anspruch 1, wobei die Parität auf der Basis von einem oder mehreren Datenblöcken berechnet wird, die dem jeweiligen SKP geordneten Satz unmittelbar vorausgehen.
  6. Vorrichtung nach Anspruch 1, wobei die Daten einem 128b/130b Kodierungsschema entsprechen.
  7. Vorrichtung nach Anspruch 1, wobei der SKP-OS geordnete Satz ein Format gemäß einem PCIe(Peripheral Component Interconnect Express)-basierten Protokoll umfasst.
  8. Vorrichtung nach Anspruch 7, wobei das PCIe-basierte Protokoll ein PCIe-Generation 4-Protokoll umfasst.
  9. Vorrichtung nach Anspruch 1, wobei der zweite SKP geordnete Satz einer aus einem Satz von SKP geordneten Sätzen ist, die gleichzeitig auf allen Bahnen der Verbindung basierend auf dem Eintritt in den Wiederherstellungszustand zu senden sind.
  10. Vorrichtung nach Anspruch 1, wobei der Wiederherstellungszustand von einem aktiven Verbindungszustand aus betreten werden soll.
  11. Vorrichtung nach Anspruch 10, wobei Daten in dem aktiven Verbindungszustand bei einer Übertragungsrate von wenigstens 16,0 GT/s übertragen werden.
  12. Vorrichtung nach Anspruch 1, wobei jeder der ersten und zweiten SKP geordneten Sätze sechzehn SKP Symbole umfasst.
  13. Vorrichtung, umfassend: einen Empfänger, um einen ersten SKP geordneten Satz auf einer bestimmten Bahn von einer Mehrzahl von Bahnen einer Verbindung zu empfangen, wobei der erste SKP geordnete Satz eingeplant ist, dass er nach einem definierten bestimmten Intervall einem vorherigen SKP geordneten Satz folgt, wobei der erste SKP geordnete Satz einen Paritätswert umfasst, um eine Parität für einen vorherigen Datenblock anzugeben, der auf der Verbindung gesendet wurde; und Zustandsmaschinenlogik, um zu identifizieren, dass eine Verbindungstrainingszustandsmaschine, die mit der Verbindung assoziiert ist, in einen Wiederherstellungszustand eintreten soll; und wobei der Empfänger ferner dazu dient, einen zweiten SKP geordneten Satz zu auf der bestimmten Bahn basierend auf einem Eintritt der Verbindung in den Wiederherstellungszustand zu empfangen, wobei der SKP geordnete Satz dem Eintritt in den Widerherstellungszustand vorausgeht, und der zweite SKP geordnete Satz nach einem vorhergehenden SKP geordneten Satz und vor einem Ende des bestimmten Intervalls zu senden ist.
  14. Verfahren, umfassend: Erzeugen eines ersten SKP geordneten Satzes, der auf einer bestimmten Bahn von einer Mehrzahl von Bahnen einer Verbindung zu senden ist, wobei der erste SKP geordnete Satz auf der Verbindung gemäß einem bestimmten Intervall zu senden ist und einen Paritätswert umfasst, um eine Parität für einen vorherigen Datenblock anzugeben, der auf der Verbindung gesendet wurde; und Erzeugen eines zweiten SKP geordneten Satzes, der auf der bestimmten Bahn basierend auf dem Eintritt der Verbindung in einen Wiederherstellungszustand zu senden ist, wobei der SKP geordnete Satz vor dem Eintritt in den Widerherstellungszustand zu senden ist, und der zweite SKP geordnete Satz nach dem ersten SKP geordneten Satz und vor einem Ende des bestimmten Intervalls zu senden ist; und Senden des ersten SKP geordneten Satzes auf der bestimmten Bahn; und Senden des zweiten SKP geordneten Satzes auf der bestimmten Bahn.
  15. System, umfassend: eine erste Einrichtung; und eine zweite Einrichtung, die durch eine serielle Punkt-zu-Punkt-Datenverbindung mit der ersten Einrichtung verbunden ist, wobei die zweite Einrichtung umfasst: E/A-Logik, um: einen ersten SKP geordneten Satz zu erzeugen, der auf einer bestimmten Bahn von einer Mehrzahl von Bahnen einer Verbindung zu senden ist, wobei der erste SKP geordnete Satz auf der Verbindung gemäß einem bestimmten Intervall zu senden ist und einen Paritätswert umfasst, um eine Parität für einen vorherigen Datenblock anzugeben, der auf der Verbindung gesendet wurde; und einen zweiten SKP geordneten Satz zu erzeugen, der auf der bestimmten Bahn basierend auf dem Eintritt der Verbindung in einen Wiederherstellungszustand zu senden ist, wobei der SKP geordnete Satz vor dem Eintritt in den Widerherstellungszustand zu senden ist, und der zweite SKP geordnete Satz nach dem ersten SKP geordneten Satz und vor einem Ende des bestimmten Intervalls zu senden ist; und einen Sender, um den ersten SKP geordneten Satz auf der bestimmten Bahn zu der ersten Einrichtung zu senden; und den zweiten SKP geordneten Satz auf der bestimmten Bahn zu der ersten Einrichtung zu senden.
  16. System nach Anspruch 15, wobei eine der ersten Einrichtung und der zweiten Einrichtung einen Prozessor umfasst.
  17. System nach Anspruch 15, wobei eine der ersten Einrichtung und der zweiten Einrichtung einen Root-Komplex umfasst.
  18. System nach Anspruch 15, wobei eine der ersten Einrichtung und der zweiten Einrichtung einen Grafikprozessor umfasst.
  19. System nach Anspruch 15, wobei die erste und die zweite Einrichtung in einen Systemon-Chip umfasst sind.
  20. System nach Anspruch 15, wobei das System einen Server-Chipsatz umfasst.
DE112013007769.8T 2013-12-26 2013-12-26 System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen Active DE112013007769B3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE112013007769 2013-12-26

Publications (1)

Publication Number Publication Date
DE112013007769B3 true DE112013007769B3 (de) 2023-04-06

Family

ID=85573760

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013007769.8T Active DE112013007769B3 (de) 2013-12-26 2013-12-26 System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen

Country Status (1)

Country Link
DE (1) DE112013007769B3 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013176953A1 (en) 2012-05-22 2013-11-28 Intel Corporation Providing a consolidated sideband communication channel between devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013176953A1 (en) 2012-05-22 2013-11-28 Intel Corporation Providing a consolidated sideband communication channel between devices

Similar Documents

Publication Publication Date Title
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112013003723B4 (de) Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112016003693T5 (de) Abschwächung von Pinfeldübersprechen
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE102018005753A1 (de) Serdes link training
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112016002893T5 (de) Seitenbandleiterresonanzminderung
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle
DE102020101958A1 (de) Dynamisches spurzugriffswechseln zwischen pcie-wurzelräumen
DE102019129618A1 (de) Befördern früher hinweisinformationen für zustandsänderungen physikalischer verbindungsstrecken
DE112018001512T5 (de) Peripheral-component-interconnect-express-konforme (pcie-konforme) durchgangsbohrung und pcie-konformer pressstecker
DE102020115989A1 (de) Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen
DE102022101490A1 (de) Technologien zur echtzeitaktualisierung von verschlüsselungsschlüsseln

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R012 Request for examination validly filed
R129 Divisional application from

Ref document number: 112013007732

Country of ref document: DE

R082 Change of representative

Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE

R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final