DE112015006961T5 - Verbindungsfehlerdetektion in mehrfachchipgehäusen - Google Patents

Verbindungsfehlerdetektion in mehrfachchipgehäusen Download PDF

Info

Publication number
DE112015006961T5
DE112015006961T5 DE112015006961.5T DE112015006961T DE112015006961T5 DE 112015006961 T5 DE112015006961 T5 DE 112015006961T5 DE 112015006961 T DE112015006961 T DE 112015006961T DE 112015006961 T5 DE112015006961 T5 DE 112015006961T5
Authority
DE
Germany
Prior art keywords
data
lanes
lane
error
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112015006961.5T
Other languages
English (en)
Inventor
Venkatraman Iyer
Robert G. Blankenship
Mahesh Wagh
Zuoguo Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112015006961T5 publication Critical patent/DE112015006961T5/de
Pending legal-status Critical Current

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Erste Daten werden auf mehreren Datenbahnen einer physischen Verbindung empfangen, und ein Stromsignal entsprechend den ersten Daten wird auf einer Strombahn empfangen, einen Typ der ersten Daten identifizierend. Eine erste Instanz eines Fehlerdetektionscodes eines speziellen Typs wird in den ersten Daten identifiziert. Zweite Daten werden auf zumindest einem Teil der mehreren Datenbahnen empfangen, und ein Stromsignal entsprechend den zweiten Daten wird auf der Strombahn empfangen, einen Typ der zweiten Daten identifizierend. Eine zweite Instanz des Fehlerdetektionscodes des speziellen Typs wird in den zweiten Daten identifiziert. Die Strombahn ist eine weitere der Bahnen der physischen Verbindung und in einigen Fällen ist der Typ der zweiten Daten verschieden vom Typ der ersten Daten.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich auf Datenverarbeitungssysteme und insbesondere (aber nicht ausschließlich) auf Punkt-zu-Punkt-Verbindungen.
  • HINTERGRUND
  • Fortschritte bei Halbleiterverarbeitung und Logikausgestaltung haben eine Erhöhung in der Menge von Logik ermöglicht, die auf integrierten Schaltungsvorrichtungen vorhanden sein kann. Als eine logische Folge haben sich Computersystemauslegungen von einzelnen oder mehreren integrierten Schaltungen in einem System zu Threads mit mehreren Kernen und mehrfacher Hardware und mehreren logischen Prozessoren, vorhanden auf einzelnen integrierten Schaltungen sowie anderen in solche Prozessoren integrierten Schnittstellen entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physischen Prozessor-Die, wobei der Prozessor-Die jede beliebige Anzahl von Kernen, Hardwarethreads, logischen Prozessoren, Schnittstellen, Speicher, Steuerungsknoten usw. umfassen kann.
  • Als ein Ergebnis der größeren Fähigkeit zur Unterbringung größerer Verarbeitungsleistung in kleineren Gehäusen hat die Popularität kleinerer Datenverarbeitungsvorrichtungen zugenommen. Smartphones, Tablets, ultradünne Notebooks und andere Benutzereinrichtungen sind exponentiell gewachsen. Allerdings bauen diese kleineren Vorrichtungen sowohl für Datenspeicherung als auch für komplexe Verarbeitung, die den Formfaktor übersteigt, auf Server. Infolgedessen hat sich der Bedarf im Hochleistungs-Datenverarbeitungsmarkt (d. h. Serverplatz) ebenfalls erhöht. Beispielsweise gibt es bei 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 aber die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Datenverarbeitungssystem wächst, wird die Kommunikation zwischen Sockeln und anderen Vorrichtungen immer kritischer.
  • Tatsächlich haben sich Verbindungen von eher traditionellen Multi-Drop-Bussen, die primär elektrische Kommunikationen behandelten, zu voll ausgereiften Verbindungsarchitekturen entwickelt, die eine schnelle Kommunikation ermöglichen. Leider lasten die Anforderungen an künftige Prozessoren, mit noch höheren Raten entsprechend der Nachfrage zu verbrauchen, auf den Fähigkeiten bestehender Verbindungsarchitekturen.
  • Figurenliste
    • 1 stellt eine Ausführungsform eines Datenverarbeitungssystems, eine Verbindungsarchitektur umfassend, dar.
    • 2 stellt eine Ausführungsform einer Verbindungsarchitektur, einen geschichteten Stapel umfassend, dar.
    • 3 stellt eine Ausführungsform einer Anfrage oder eines Pakets dar, die bzw. das innerhalb einer Verbindungsarchitektur erzeugt oder empfangen werden soll.
    • 4 stellt eine Ausführungsform eines Sender- und Empfänger-Paares für eine Verbindungsarchitektur dar.
    • 5 stellt eine Ausführungsform eines Mehrfachchipgehäuses dar.
    • 6 ist ein vereinfachtes Blockdiagramm einer MehrfachchipgehäuseVerbindung (MCPL, Multichip Package Link).
    • 7 ist eine Darstellung einer beispielhaften Signalisierung auf einer beispielhaften MCPL.
    • 8 ist ein vereinfachtes Blockdiagramm einer MCPL.
    • 9 ist eine Darstellung eines Teils einer beispielhaften Verbindungszustandsmaschine.
    • 10 ist eine Darstellung einer beispielhaften Verbindungszustandsmaschine.
    • 11 ist eine Darstellung von Signalisierung zum Eintritt in einen Niedrigleistungszustand.
    • 12 ist ein Blockdiagramm, eine beispielhafte Umsetzung einer MCPL darstellend.
    • 13A-13C sind beispielhafte Bitzuordnungen von Daten auf Bahnen einer beispielhaften MCPL.
    • 14-1, 14-2, 14-3 stellen eine beispielhafte Syndromdecodiertabelle dar.
    • 15-1, 15-2, 15-3 stellen eine weitere beispielhafte Syndromdecodiertabelle dar.
    • 16 ist ein Blockdiagramm, eine beispielhafte Umsetzung einer MCPL darstellend.
    • 17A-17B sind Diagramme, Beispiele von Verbindungsneukonfiguration in Übereinstimmung mit zumindest einigen Ausführungsformen darstellend.
    • 18A-18B sind vereinfachte Flussdiagramme, Techniken zum Behandeln von Fehler auf einer MCPL darstellend.
    • 19 stellt eine Ausführungsform eines Blocks für ein Datenverarbeitungssystem, mehrere Prozessoren umfassend, dar.
  • Ähnliche Bezugszeichen und Benennungen in den verschiedenen Zeichnungen zeigen ähnliche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie etwa Beispiele von spezifischen Typen von Prozessoren und Systemauslegungen, spezifischen Hardwarestrukturen, spezifischen architektonischen und mikroarchitektonischen Details, spezifischen Registerkonfigurationen, spezifischen Befehlstypen, spezifischen Systemkomponenten, spezifischen Maßen/Höhen, spezifischen Prozessor-Pipeline-Stufen und Betrieb usw., um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Es ist allerdings für Fachleute offensichtlich, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Erfindung zu praktizieren. In anderen Fällen wurden wohlbekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Code für beschriebene Algorithmen, spezifischer Firmwarecode, spezifischer Verbindungsvorgang, spezifische Logikkonfigurationen, spezifische Fertigungstechniken und Materialien, spezifische Compilerumsetzungen, spezifischer Ausdruck von Algorithmen in Code, spezifische Herunterfahr- und Gating-Techniken/Logik und andere spezifische operative Details des Computersystems nicht ausführlich beschrieben, um ein unnötiges Eintrüben der vorliegenden Erfindung zu verhindern.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf Energieeinsparungen und Energieeffizienz in spezifischen integrierten Schaltungen, wie etwa in Datenverarbeitungsplattformen oder Mikroprozessoren, beschrieben sein können, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktopcomputersysteme oder Ultrabooks™ beschränkt. Und sie können auch in anderen Vorrichtungen, wie etwa Handvorrichtungen, Tablets, anderen dünnen Notebooks, SOC-Vorrichtungen (Systems-on-a-Chip) und eingebetteten Anwendungen verwendet werden. Einige Beispiele von Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDA, Personal Digital Assistants) und Hand-PCs. Eingebettete Anwendungen umfassen typischerweise eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), ein System-on-a-Chip, Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerkknoten, Weitbereichsnetzwerk-Weichen (WAN) oder ein beliebiges anderes System, das die nachfolgend gelehrten Funktionen und Vorgänge durchführen kann. Darüber hinaus sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Datenverarbeitungsvorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen für Energieeinsparung und -effizienz beziehen. Wie in der folgenden Beschreibung offensichtlich wird, sind die hier beschriebenen Ausführungsformen von Verfahren, Einrichtungen und Systemen (seien sie in Bezug auf Hardware, Firmware, Software oder eine Kombination daraus) wichtig für eine Zukunft mit „grüner Technologie“ im Gleichgewicht mit Leistungsüberlegungen.
  • In dem Maß, in dem sich Datenverarbeitungssysteme weiterentwickeln, werden die Komponenten darin immer komplexer. Infolgedessen erhöht sich auch die Komplexität der Verbindungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten, um sicherzustellen, dass die Bandbreitenanforderungen für optimalen Komponentenbetrieb erfüllt werden. Ferner fordern unterschiedliche Marktsegmente Abstimmung unterschiedlicher Aspekte von Verbindungsarchitekturen auf die Bedürfnisse des Marktes. Beispielsweise erfordern Server höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, Gesamtleistung für Energieeinsparungen zu opfern. Dennoch ist es ein herausragender Zweck der meisten Strukturen, höchstmögliche Leistung mit maximaler Energieeinsparung bereitzustellen. Nachfolgend wird eine Anzahl von Verbindungen erörtert, die potenziell von Aspekten der hier beschriebenen Erfindung profitieren würden.
  • Eine Verbindungsstrukturarchitektur umfasst die periphere Express-Komponentenverbindungsarchitektur (PCIe, Peripheral Component Interconnect (PCI) Express). Ein primäres Ziel von PCIe ist es, Komponenten und Vorrichtungen von unterschiedlichen Anbietern zu ermöglichen, in einer mehrere Marktsegmente überspannenden offenen Architektur miteinander zu arbeiten; Clients (Desktop und mobil), Server (Standard und Enterprise), und eingebettete sowie Kommunikationsvorrichtungen. PCI Express ist eine universelle E/A-Hochleistungsverbindung, definiert für eine breite Vielfalt an künftigen Datenverarbeitungs- und Kommunikationsplattformen. Einige PCI-Attribute, wie etwa ihr Verwendungsmodell, ihre Lade-Speicher-Architektur und Softwareschnittstellen, wurden in ihren Überarbeitungen beibehalten, wohingegen vorherige parallele Busumsetzungen durch eine hochgradig skalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die aktuelleren Versionen von PCI Express nutzen die Fortschritte bei Punkt-zu-Punkt-Verbindungen, weichenbasierter Technologie und paketbasierten Protokollen, um neue Niveaus an Leistung und Merkmalen zu bieten. Leistungsverwaltung, Dienstgüte (QoS, Quality Of Service), Hot-Plug-/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung sind einige der weiterentwickelten Merkmale, die von PCI Express unterstützt werden.
  • Bezug nehmend auf 1 ist eine Ausführungsform einer Struktur, bestehend aus Punkt-zu-Punkt-Verbindungen, die eine Menge von Komponenten miteinander verbinden, dargestellt. System 100 umfasst Prozessor 105 und Systemspeicher 110, gekoppelt mit Steuerungsknoten 115. Prozessor 105 umfasst jedes beliebige Verarbeitungselement, wie etwa einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Koprozessor oder einen anderen Prozessor. Prozessor 105 ist mit Steuerungsknoten 115 über Frontside-Bus (FSB) 106 gekoppelt. In einer Ausführungsform ist FSB 106 eine serielle Punkt-zu-Punkt-Verbindung, wie nachfolgend beschrieben. In einer weiteren Ausführungsform umfasst Verbindung 106 eine serielle, differenzielle Verbindungsarchitektur, die mit einem unterschiedlichen Verbindungsstandard konform ist.
  • Systemspeicher 110 umfasst jede beliebige Speichervorrichtung, wie etwa Direktzugriffsspeicher (RAM, Random Access Memory), nichtflüchtigen Speicher (NV, nonvolatile) oder anderen Speicher, auf den Vorrichtungen im System 100 zugreifen können. Systemspeicher 110 ist über Speicherschnittstelle 116 mit Steuerungsknoten 115 gekoppelt. Beispiele einer Speicherschnittstelle umfassen eine Speicherschnittstelle mit doppelter Datenrate (DDR, Double-Data Rate), eine Zweikanal-DDR-Speicherschnittstelle und eine dynamische RAM-Speicherschnittstelle (DRAM).
  • In einer Ausführungsform ist Steuerungsknoten 115 ein Stammknoten, Stammkomplex oder eine Stammsteuerung in einer PCIe- oder PCIE-Verbindungshierarchie (Peripheral Component Interconnect Express). Beispiele für Steuerungsknoten 115 umfassen einen Chipsatz, einen Speichersteuerungsknoten (MCH, Memory Controller Hub), eine Northbridge, einen Verbindungssteuerungsknoten (ICH, Interconnect Controller Hub), eine Southbridge und eine Stammsteuerung/einen Stammknoten. Häufig bezieht sich der Begriff Chipsatz auf zwei physisch separate Steuerungsknoten, d. h. einen Speichersteuerungsknoten (MCH), gekoppelt mit einem Verbindungssteuerungsknoten (ICH). Es ist anzumerken, dass aktuelle Systeme häufig den MCH, integriert in Prozessor 105, umfassen, während Steuerung 115 dazu dient, mit E/A-Vorrichtungen zu kommunizieren, in einer ähnlichen Weise wie nachfolgend beschrieben. In einigen Ausführungsformen wird direkte Weiterleitung (Peer-to-Peer) optional durch Stammkomplex 115 unterstützt.
  • Hier ist Steuerungsknoten 115 über eine serielle Verbindung 119 mit Weiche/Brücke 120 gekoppelt. Eingabe/Ausgabe-Module 117 und 121, die auch als Schnittstellen/Anschlüsse 117 und 121 bezeichnet werden können, umfassen/implementieren einen geschichteten Protokollstapel, um Kommunikation zwischen Steuerungsknoten 115 und Weiche 120 bereitzustellen. In einer Ausführungsform sind mehrere Vorrichtungen in der Lage, mit Weiche 120 gekoppelt zu werden.
  • Weiche/Brücke 120 leitet Pakete/Nachrichten von Vorrichtung 125 stromaufwärts, d. h. aufwärts in einer Hierarchie in Richtung eines Stammkomplexes, zu Steuerungsknoten 115 und stromabwärts, d. h. abwärts in einer Hierarchie weg von einer Stammsteuerung, von Prozessor 105 oder Systemspeicher 110 zu Vorrichtung 125. Weiche 120 wird, in einer Ausführungsform, als eine logische Anordnung von mehreren virtuellen PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Vorrichtung 125 umfasst eine beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System zu koppeln ist, wie etwa eine E/A-Vorrichtung, eine Netzwerkschnittstellensteuerung (NIC, Network Interface Controller), eine Erweiterungskarte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine universelle serielle Busvorrichtung (USB, Universal Serial Bus), einen Scanner und andere Eingabe/Ausgabe-Vorrichtungen. Im PCIe-Fachjargon wird eine solche Vorrichtung häufig als Endpunkt bezeichnet. Obwohl nicht speziell gezeigt, kann Vorrichtung 125 eine PCIe-zu-PCI/PCI-X-Brücke umfassen, um ältere Vorrichtungen oder Vorrichtungen mit einer anderen PCI-Version zu unterstützen. Endpunktvorrichtungen in PCIe werden oft als ältere, PCIe oder stammkomplexintegrierte Endpunkte bezeichnet.
  • Grafikbeschleuniger 130 ist ebenfalls über serielle Verbindung 132 mit Steuerungsknoten 115 gekoppelt. In einer Ausführungsform ist Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Weiche 120, und entsprechend E/A-Vorrichtung 125, ist dann mit dem ICH gekoppelt. E/A-Module 131 und 118 dienen auch dazu, einen geschichteten Protokollstapel umzusetzen, um zwischen Grafikbeschleuniger 130 und Steuerungsknoten 115 zu kommunizieren. Ähnlich der MCH-Diskussion oben kann eine Grafiksteuerung oder der Grafikbeschleuniger 130 selbst in Prozessor 105 integriert sein.
  • Bezug nehmend auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Geschichteter Protokollstapel 200 umfasst eine beliebige Form eines geschichteten Kommunikationsstapels, wie etwa einen QPI-Stapel (Quick Path Interconnect), einen PCie-Stapel, einen Hochleistungs-Datenverarbeitungsverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl sich die unmittelbar folgende Diskussion unter Bezugnahme auf 1-4 auf einen PCIe-Stapel bezieht, können die gleichen Konzepte auf andere Verbindungsstapel angewendet werden. In einer Ausführungsform ist Protokollstapel 200 ein PCIe-Protokollstapel, umfassend Transaktionsschicht 205, Verbindungsschicht 210 und physische Schicht 220. Eine Schnittstelle, wie etwa Schnittstellen 117, 118, 121, 122, 126 und 131 in 1, kann als Kommunikationsprotokollstapel 200 dargestellt sein. Darstellung als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle, einen Protokollstapel umsetzend/umfassend, bezeichnet werden.
  • PCI Express verwendet Pakete zum Kommunizieren von Informationen zwischen Komponenten. Pakete werden in der Transaktionsschicht 205 und Datenverbindungsschicht 210 gebildet, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu transportieren. Wenn die gesendeten Pakete die anderen Schichten passieren, werden sie um zusätzliche Informationen erweitert, die notwendig sind, um Pakete auf diesen Schichten zu behandeln. Auf der empfangenden Seite findet der umgekehrte Prozess statt, und Pakete werden aus ihrer Darstellung auf der physischen Schicht 220 in die Darstellung auf der Datenverbindungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form transformiert, die durch die Transaktionsschicht 205 der empfangenden Vorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform dient Transaktionsschicht 205 dazu, eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Verbindungsarchitektur bereitzustellen, wie etwa Datenverbindungsschicht 210 und physische Schicht 220. In dieser Hinsicht ist die primäre Aufgabe der Transaktionsschicht 205 das Zusammenstellen und Zerlegen von Paketen (d. h. Transaktionsschichtpakete oder TLPs, Transaction Layer Packets). Die Translationsschicht 205 verwaltet typischerweise kreditbasierte Flusssteuerung für TLPs. PCIe setzt geteilte Transaktionen um, d. h. Transaktionen, bei denen Anforderung und Antwort zeitlich getrennt sind, einer Verbindung ermöglichend, anderen Verkehr zu transportieren, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Darüber hinaus nutzt PCIe kreditbasierte Flusssteuerung. In diesem Schema kündigt eine Vorrichtung einen anfänglichen Betrag von Kredit für jeden der Empfangspuffer in Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie etwa Steuerungsknoten 115 in 1, zählt die Anzahl von Krediten, die von jedem TLP verbraucht werden. Eine Transaktion kann gesendet werden, wenn die Transaktion eine Kreditgrenze nicht überschreitet. Bei Empfangen einer Antwort wird ein Betrag von Kredit wiederhergestellt. Ein Vorteil eines Kreditschemas ist, dass die Latenz der Kreditrückgabe die Leistung nicht beeinflusst, vorausgesetzt, dass die Kreditgrenze nicht erreicht wird.
  • In einer Ausführungsform umfassen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherplatztransaktionen umfassen eine oder mehrere Leseanforderungen und Schreibanforderungen zum Transferieren von Daten zu/von einem speicherabgebildeten Ort. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei unterschiedliche Adressformate zu verwenden, z. B. ein kurzes Adressformat, wie etwa eine 32-Bit-Adresse, oder ein langes Adressformat, wie etwa eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen zum Konfigurationsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind definiert, um bandinterne Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher stellt, in einer Ausführungsform, Transaktionsschicht 205 Paketheader/Nutzdaten 206 zusammen. Das Format für aktuelle Paketheader/Nutzdaten kann in der PCIe-Spezifikation auf der PCIe-Spezifikationswebsite gefunden werden.
  • Schnell Bezug nehmend auf 3 ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. In einer Ausführungsform ist Transaktionsdeskriptor 300 ein Mechanismus zum Transportieren von Transaktionsinformationen. In dieser Hinsicht unterstützt Transaktionsdeskriptor 300 Identifizierung von Transaktionen in einem System. Andere potenzielle Verwendungen umfassen Aufzeichnen von Modifikationen von Standardtransaktionsreihenfolge und Verknüpfung von Transaktion mit Kanälen.
  • Transaktionsdeskriptor 300 umfasst globales Kennzeichnungsfeld 302, Attributfeld 304 und Kanalkennzeichnungsfeld 306. Im dargestellten Beispiel wird globales Kennzeichnungsfeld 302 als lokales Transaktionskennzeichnungsfeld 308 und Quellenkennzeichnungsfeld 310 umfassend dargestellt. In einer Ausführungsform ist globale Transaktionskennzeichnung 302 eindeutig für alle ausstehenden Anforderungen.
  • Gemäß einer Umsetzung ist lokales Transaktionskennzeichnungsfeld 308 ein durch einen Anforderungsagenten erzeugtes Feld, und es ist eindeutig für alle ausstehenden Anforderungen, die einen Abschluss für diesen Anforderungsagenten erfordern. Ferner identifiziert, in diesem Beispiel, Quellkennzeichnung 310 eindeutig den Anforderungsagenten innerhalb einer PCIe-Hierarchie. Entsprechend bietet, zusammen mit Quellkennzeichnung 310, das lokale Transaktionskennzeichnungsfeld 308 globale Kennzeichnung einer Transaktion innerhalb einer Hierarchiedomäne.
  • Attributfeld 304 gibt Charakteristika und Beziehungen der Transaktion an. In dieser Hinsicht wird Attributfeld 304 potenziell verwendet, um zusätzliche Informationen bereitzustellen, die Modifikation der Standardbehandlung von Transaktionen ermöglichen. In einer Ausführungsform umfasst Attributfeld 304 Prioritätsfeld 312, reserviertes Feld 314, Reihenfolgefeld 316 und Antischnüffelfeld 318. Hier kann Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuordnen. Das reservierte Attributfeld 314 wird für künftige oder für anbieterspezifische Verwendung reserviert gelassen. Mögliche Verwendungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, können unter Verwendung des reservierten Attributfelds umgesetzt werden.
  • In diesem Beispiel wird das Reihenfolgeattributfeld 316 verwendet, um optionale Informationen zu liefern, die den Typ von Reihenfolge transportieren, der die Standardreihenfolgeregeln modifizieren kann. Gemäß einer beispielhaften Umsetzung bezeichnet ein Reihenfolgeattribut von „0“, dass Standardreihenfolgeregeln anzuwenden sind, wohingegen ein Reihenfolgeattribut von „1“ gelöste Reihenfolge bezeichnet, wobei Schreibvorgänge Schreibvorgänge in die gleiche Richtung übergeben können und Lesevorgangsabschlüsse Schreibvorgänge in die gleiche Richtung übergeben können. Schnüffelattributfeld 318 wird genutzt, um zu bestimmen, ob Transaktionen belauscht werden. Wie gezeigt, identifiziert das Kanalkennzeichnungsfeld 306 einen Kanal, mit dem eine Transaktion verknüpft ist.
  • Verbindungsschicht
  • Verbindungsschicht 210, auch als Datenverbindungsschicht 210 bezeichnet, wirkt als eine Zwischenstufe zwischen Transaktionsschicht 205 und der physischen Schicht 220. In einer Ausführungsform ist eine Aufgabe der Datenverbindungsschicht 210, einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 210 akzeptiert von der Transaktionsschicht 205 zusammengestellte TLPs, wendet Paketsequenzkennzeichnung 211 an, d.h. eine Identifizierungsnummer oder Paketnummer, berechnet einen Fehlerdetektionscode, d. h. CRC 212, und wendet ihn an und übermittelt die modifizierten TLPs an die physische Schicht 220 zum Senden über eine physische zu einer externen Vorrichtung.
  • Physische Schicht
  • In einer Ausführungsform umfasst physische Schicht 220 logischen Unterblock 221 und elektrischen Unterblock 222 zum physischen Senden eines Pakets an eine externe Vorrichtung. Hier ist logischer Unterblock 221 verantwortlich für die „digitalen“ Funktionen der physischen Schicht 221. In dieser Hinsicht umfasst der logische Unterblock einen Sendeabschnitt zum Vorbereiten der ausgehenden Informationen zum Senden durch physischen Unterblock 222 und einen Empfängerabschnitt zum Identifizieren und Vorbereiten empfangener Informationen vor dem Übergeben derselben an die Verbindungsschicht 210.
  • Physischer Block 222 umfasst einen Sender und einen Empfänger. Der Sender wird durch logischen Unterblock 221 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Vorrichtung sendet. Der Empfänger erhält serialisierte Symbole von einer externen Vorrichtung und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und an logischen Unterblock 221 geleitet. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu versehen. Zusätzlich bietet, in einem Beispiel, der Empfänger auch einen Symboltakt, der aus dem eingehenden seriellen Strom wiederhergestellt wird.
  • Wie oben angegeben ist, obwohl Transaktionsschicht 205, Verbindungsschicht 210 und physische Schicht 220 Bezug nehmend auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, ein geschichteter Protokollstapel nicht so beschränkt. Tatsächlich kann jedes beliebige geschichtete Protokoll enthalten/umgesetzt sein. Als ein Beispiel umfasst ein Anschluss/eine Schnittstelle, die als ein geschichtetes Protokoll dargestellt wird: (1) eine erste Schicht zum Zusammenstellen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Senden der Pakete, d. h. eine physische Schicht. Als ein spezifisches Beispiel wird ein geschichtetes CSI-Protokoll (Common Standard Interface) genutzt.
  • Als nächstes Bezug nehmend auf 4 ist eine Ausführungsform einer seriellen Punkt-zu-Punkt-PCIe-Struktur dargestellt. Obwohl eine Ausführungsform einer seriellen Punkt-zu-Punkt-PCIe-Verbindung dargestellt ist, ist eine serielle Punkt-zu-Punkt-Verbindung nicht so beschränkt, da sie einen beliebigen Sendepfad zum Senden von seriellen Daten umfasst. In der gezeigten Ausführungsform umfasst eine grundlegende PCIe-Verbindung zwei differenziell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Entsprechend umfasst Vorrichtung 405 Sendelogik 406 zum Senden von Daten an Vorrichtung 410 und Empfangslogik 407 zum Empfangen von Daten von Vorrichtung 410. Mit anderen Worten, zwei Sendepfade, d. h. Pfade 416 und 417, und zwei Empfangspfade, d. h. Pfade 418 und 419, sind in einer PCIe-Verbindung enthalten.
  • Ein Sendepfad bezieht sich auf einen beliebigen Pfad zum Senden von Daten, wie etwa eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, ein kabelloser Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder ein anderer Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie etwa Vorrichtung 405 und Vorrichtung 410, wird als eine Verbindung bezeichnet, wie etwa Verbindung 415. Eine Verbindung kann eine Bahn unterstützen - wobei jede Bahn eine Menge von differenziellen Signalpaaren darstellt (ein Paar zum Senden, ein Paar für Empfang). Zum Skalieren der Bandbreite kann eine Verbindung mehrere Bahnen vereinigen, die mit xN bezeichnet werden, wobei N eine beliebige unterstützte Verbindungsbreite ist, wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differenzielles Paar bezieht sich auf zwei Sendepfade, wie etwa Leitungen 416 und 417, zum Senden von differenziellen Signalen. Als ein Beispiel, wenn Leitung 416 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel wechselt, d. h. eine steigende Flanke, steuert Leitung 417 von einem hohen Logikpegel zu einem niedrigen Logikpegel, d. h. eine fallende Flanke. Differenzielle Signale zeigen potenziell bessere elektrische Charakteristika, wie etwa bessere Signalintegrität, d. h. Querkopplung, Spannungsübersteuerung/-untersteuerung, Klingeln usw. Dies ermöglicht ein besseres Zeitsteuerungsfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • 5 ist ein vereinfachtes Blockdiagramm 500, ein beispielhaftes Mehrfachchipgehäuse 505 darstellend, das zwei oder mehr Chips oder Dies (z. B. 510, 515) umfasst, die kommunikativ unter Verwendung einer beispielhaften Mehrfachchipgehäuseverbindung (MCPL, Multi-Chip Package Link) 520 verbunden sind. Während 5 ein Beispiel von zwei (oder mehr) Dies darstellt, die unter Verwendung einer beispielhaften MCPL 520 miteinander verbunden sind, versteht es sich, dass die hier beschriebenen Prinzipien und Merkmale hinsichtlich Umsetzungen einer MCPL auf jede beliebige Verschaltung oder Verbindung angewendet werden können, die einen Die (z. B. 510) und andere Komponenten verbindet, einschließlich Verbinden von zwei oder mehr Dies (z. B. 510, 515), Verbinden eines Dies (oder Chips) mit einer anderen Komponente außerhalb des Dies, Verbinden eines Dies mit einer anderen Vorrichtung oder einem anderen Die außerhalb des Gehäuses (z. B. 505), Verbinden eines Dies mit einem BGA-Gehäuse, Umsetzung eines POINT (Patch on Interposer), unter potenziell anderen Beispielen.
  • Im Allgemeinen kann ein Mehrfachchipgehäuse (z. B. 505) ein elektronisches Gehäuse sein, bei dem mehrere integrierte Schaltungen (ICs, Integrated Circuits), Halbleiter-Dies oder andere diskrete Komponenten (z.B. 510, 515) auf einem vereinenden Substrat (z. B. Silizium oder ein anderes Halbleitersubstrat) gepackt sind, die Verwendung der kombinierten Komponenten als eine einzelne Komponente (z. B. wie eine größere IC) ermöglichend. In einigen Fällen können die größeren Komponenten (z. B. Dies 510, 515) selbst IC-Systeme sein, wie etwa Systems-on-Chip (SoC), Mehrfachprozessorchips oder andere Komponenten, die mehrere Komponenten (z. B. 525-530 und 540-545) auf der Vorrichtung, beispielsweise auf einem einzelnen Die (z.B. 510, 515) umfassen. Mehrfachchipgehäuse 505 können Flexibilität für das Aufbauen von komplexen und vielseitigen Systemen aus potenziell mehreren diskreten Komponenten und Systemen bieten. Beispielsweise kann jeder der Dies 510, 515 von zwei unterschiedlichen Entitäten gefertigt oder anderweitig bereitgestellt sein, wobei das Siliziumsubstrat des Gehäuses 505 von noch einer dritten Entität bereitgestellt wird, unter vielen anderen Beispielen. Ferner können Dies und andere Komponenten innerhalb eines Mehrfachchipgehäuses 505 selbst Verbindungs- oder andere Kommunikationsstrukturen (z. B. 535, 550) umfassen, die Infrastruktur für Kommunikation zwischen Komponenten (z. B. 525-530 und 540-545) innerhalb der Vorrichtung (z.B. 510 bzw. 515) bereitstellend. Die verschiedenen Komponenten und Verbindungen (z. B. 535, 550) können potenziell mehrere unterschiedliche Protokolle unterstützen oder verwenden. Ferner kann Kommunikation zwischen Dies (z. B. 510, 515) potenziell Transaktionen zwischen den verschiedenen Komponenten auf den Dies über mehrere unterschiedliche Protokolle umfassen. Konzipieren von Mechanismen zum Bereitstellen von Kommunikation zwischen Chips (oder Dies) auf einem Mehrfachchipgehäuse kann anspruchsvoll sein, wobei traditionelle Lösungen, hochgradig spezialisierte, teure und gehäusespezifische Lösungen basierend auf den spezifischen Kombinationen von Komponenten (und erwünschten Transaktionen) einsetzend, miteinander verbunden werden sollten.
  • Die in dieser Spezifikation beschriebenen Beispiele, Systeme, Algorithmen, Einrichtungen, Logiken und Merkmale können zumindest einige der oben identifizierten Probleme angehen, einschließlich potenziell vieler anderer, die hier nicht ausdrücklich erwähnt sind. Beispielsweise kann, in einigen Umsetzungen, eine Schnittstelle mit hoher Bandbreite, niedriger Leistung und niedriger Latenz bereitgestellt sein, um eine Hostvorrichtung (z. B. eine CPU) oder eine andere Vorrichtung mit einem Begleitchip zu verbinden, der sich im gleichen Gehäuse wie der Host befindet. Eine solche Mehrfachchipgehäuseverbindung (MCPL) kann mehrere Gehäuseoptionen, mehrere E/A-Protokolle sowie Zuverlässigkeits-, Verfügbarkeits- und Wartungsfreundlichkeitsmerkmale (RAS, Reliability, Availability, and Serviceability) unterstützen. Ferner kann die physische Schicht (PHY) eine elektrische Schicht und logische Schicht umfassen und kann längere Kanallängen unterstützen, einschließlich Kanallängen bis zu, und in einigen Fällen überschreitend, etwa 45 mm. In einigen Umsetzungen kann eine beispielhafte MCPL bei hohen Datenraten arbeiten, einschließlich Datenraten über 8-10 Gb/s.
  • In einer beispielhaften Umsetzung einer MCPL kann eine elektrische PHY-Schicht herkömmliche Mehrkanal-Verbindungslösungen (z. B. Mehrkanal-DRAM-E/A) verbessern, die Datenrate und Kanalauslegung erweiternd um, beispielsweise, eine Anzahl von Merkmalen, einschließlich, als Beispiele, geregelte Mittelschienenterminierung, aktive Nebensprechunterdrückung mit niedriger Leistung, Schaltungsredundanz, bitweise Tastverhältniskorrektur und Entzerrung, Leitungscodierung und Senderglättung, unter potenziell anderen Beispielen.
  • In einer beispielhaften Umsetzung einer MCPL kann eine logische PHY-Schicht umgesetzt werden, die weiter helfen kann (z. B. Merkmale der elektrischen Schicht) beim Erweitern der Datenrate und Kanalauslegung, gleichzeitig der Verbindung auch ermöglichend, mehrere Protokolle über die elektrische Schicht zu leiten. Solche Umsetzungen können eine modulare allgemeine physische Schicht bereitstellen und definieren, die protokollagnostisch und dazu ausgestaltet ist, mit potenziell jedem beliebigen vorhandenen oder künftigen Verbindungsprotokoll zu arbeiten.
  • Bezug nehmend auf 6 ist ein vereinfachtes Blockdiagramm 600 gezeigt, zumindest einen Teil eines Systems, einschließlich einer beispielhaften Umsetzung einer Mehrfachchipgehäuseverbindung (MCPL), darstellend. Eine MCPL kann unter Verwendung von physischen elektrischen Verbindungen (z. B. als Bahnen umgesetzte Drähte), eine erste Vorrichtung 605 (z. B. einen ersten Die, eine oder mehrere Unterkomponenten umfassend) mit einer zweiten Vorrichtung 610 (z.B. einem zweiten Die, eine oder mehrere andere Unterkomponenten umfassend) verbindend, umgesetzt sein. In dem bestimmten Beispiel, das in der Darstellung auf höherer Ebene aus Diagramm 600 gezeigt ist, können alle Signale (in Kanälen 615, 620) unidirektional sein, und Bahnen können für die Datensignale bereitgestellt sein, um sowohl einen stromaufwärtigen als auch einen stromabwärtigen Datentransfer aufzuweisen. Während sich das Blockdiagramm 600 aus 6 auf die erste Komponente 605 als die stromaufwärtige Komponente und die zweite Komponente 610 als die stromabwärtigen Komponenten, und physische Bahnen der MCPL, die zum Senden von Daten verwendet werden, als stromabwärtiger Kanal 615, und zum Empfangen von Daten (von Komponente 610) verwendete Bahnen als stromaufwärtiger Kanal 620 bezieht, versteht es sich, dass die MCPL zwischen Vorrichtungen 605, 610 von jeder Vorrichtung verwendet werden kann, um Daten zwischen den Vorrichtungen zu senden und zu empfangen.
  • In einer beispielhaften Umsetzung kann eine MCPL eine physische Schicht (PHY) bereitstellen, umfassend die elektrische MCPL PHY 625a,b (oder, zusammen, 625) und ausführbare Logik, logische MCPL PHY 630a,b (oder, zusammen, 630) umsetzend. Elektrische, oder physische, PHY 625 kann die physische Verbindung bereitstellen, über die Daten zwischen Vorrichtungen 605, 610 kommuniziert werden. Signalkonditionierungskomponenten und Logik können in Verbindung mit der physischen PHY 625 umgesetzt werden, um hohe Datenraten- und Kanalauslegungsfähigkeiten der Verbindung zu etablieren, die in einigen Anwendungen eng geclusterte physische Verbindungen bei Längen von etwa 45 mm oder mehr beinhalten kann. Die logische PHY 630 kann Logik zum Ermöglichen von Taktgebung, Verbindungszustandsverwaltung (z. B. für Verbindungsschichten 635a, 635b) und Protokollmultiplexen zwischen potenziell mehreren unterschiedlichen Protokollen, die für Kommunikationen über die MCPL verwendet werden, umfassen.
  • In einer beispielhaften Umsetzung kann physische PHY 625, für jeden Kanal (z. B. 615, 620), eine Menge von Datenbahnen umfassen, über die bandinterne Daten gesendet werden können. In diesem speziellen Beispiel werden 50 Datenbahnen in jedem der stromaufwärtigen und stromabwärtigen Kanäle 615, 620 bereitgestellt, obwohl eine beliebige andere Anzahl von Bahnen, wie durch die Anordnungs- und Leistungbeschränkungen, gewünschten Anwendungen, Vorrichtungsbeschränkungen usw. zugelassen, verwendet werden kann. Jeder Kanal kann ferner eine oder mehrere spezielle Bahnen für ein Abtast- oder Taktsignal für den Kanal, eine oder mehrere spezielle Bahnen für ein Gültigkeitssignal für den Kanal, eine oder mehrere spezielle Bahnen für ein Stromsignal und eine oder mehrere spezielle Bahnen für ein Verbindungszustandsmaschinenverwaltungs- oder Seitenbandsignal umfassen. Die physische PHY kann ferner eine Seitenbandverbindung 640 umfassen, die, in einigen Beispielen, eine bidirektionale Steuersignalverbindung mit niedrigerer Frequenz sein kann, die verwendet wird, um Zustandsübergänge und andere Attribute der Vorrichtungen 605, 610 verbindenden MCPL zu koordinieren, unter anderen Beispielen.
  • Wie oben angemerkt können mehrere Protokolle unter Verwendung einer Umsetzung von MCPL unterstützt werden. Tatsächlich können mehrere, unabhängige, Transaktionsschichten 650a, 650b an jeder Vorrichtung 605, 610 bereitgestellt sein. Beispielsweise kann jede Vorrichtung 605, 610 zwei oder mehr Protokolle, wie etwa PCI, PCIe, QPI, Intel In-Die Interconnect (IDI), unter anderen, unterstützen und nutzen. IDI ist ein auf dem Die verwendetes kohärentes Protokoll zum Kommunizieren zwischen Kernen, Caches auf der untersten Ebene (LLCs, Last Level Caches), Speicher, Grafik und E/A-Steuerungen. Andere Protokolle können ebenfalls unterstützt werden, einschließlich Ethernet-Protokoll, Infiniband-Protokolle und andere auf PCIe-Struktur basierende Protokolle. Die Kombination der logischen PHY und physischen PHY kann auch als eine Die-zu-Die-Verbindung zum Verbinden einer SerDes-PHY (PCIe, Ethernet, Infiniband oder ein anderer Hochgeschwindigkeits-SerDes) auf einem Die mit seinen oberen Schichten, die auf dem anderen Die umgesetzt sind, verwendet werden, unter anderen Beispielen.
  • Logische PHY 630 kann Multiplexen zwischen diesen mehreren Protokollen auf einer MCPL unterstützen. Beispielsweise kann die spezielle Strombahn verwendet werden, um ein codiertes Stromsignal zu bestätigen, das identifiziert, welches Protokoll auf Daten anzuwenden ist, die im Wesentlichen gleichzeitig auf den Datenbahnen des Kanals gesendet werden. Ferner kann logische PHY 630 verwendet werden, um die verschiedenen Typen von Verbindungszustandsübergängen auszuhandeln, die die verschiedenen Protokolle unterstützen oder anfordern können. In einigen Fällen können LSM_SB-Signale, die über die spezielle LSM_SB-Bahn des Kanals gesendet werden, verwendet werden, zusammen mit Seitenbandverbindung 640, um Verbindungszustandsübergänge zwischen den Vorrichtungen 605, 610 zu kommunizieren und auszuhandeln. Ferner können Verbindungstraining, Fehlerdetektion, Verzerrungsdetektion, Entzerrung und andere Funktionalität von herkömmlichen Verbindungen ersetzt oder gesteuert werden, teilweise unter Verwendung von logischer PHY 630. Beispielsweise können Gültigkeitssignale, die über eine oder mehrere spezielle Gültigkeitssignalbahnen in jedem Kanal gesendet werden, verwendet werden, um Verbindungsaktivität zu signalisieren, Verzerrung und Verbindungsfehler zu detektieren und andere Merkmale umzusetzen, unter anderen Beispielen. Im speziellen Beispiel aus 6 werden mehrere Gültigkeitsbahnen pro Kanal bereitgestellt. Beispielsweise können Datenbahnen innerhalb eines Kanals gebündelt oder geclustert (physisch und/oder logisch) werden, und eine Gültigkeitsbahn kann für jedes Cluster bereitgestellt werden. Ferner können mehrere Abtastbahnen bereitgestellt werden, in einigen Fällen auch um ein spezielles Abtastsignal für jedes Cluster in mehreren Datenbahnclustern in einem Kanal bereitzustellen, unter anderen Beispielen.
  • Wie oben angemerkt, kann logische PHY 630 verwendet werden, um Verbindungssteuersignale, die zwischen den durch die MCPL verbundenen Vorrichtungen gesendet werden, auszuhandeln und zu verwalten. In einigen Umsetzungen kann logische PHY 630 Erzeugungslogik 660 für Verbindungsschichtpakete (LLP, Link Layer Packet) umfassen, die verwendet werden kann, um Verbindungsschichtsteuernachrichten über die MCPL (d. h. bandintern) zu senden. Solche Nachrichten können über Datenbahnen des Kanals gesendet werden, wobei die Strombahn identifiziert, dass die Daten Verbindungsschicht-zu-Verbindungsschicht-Nachrichten sind, wie etwa Verbindungsschichtsteuerungsdaten, unter anderen Beispielen. Verbindungsschichtnachrichten, die unter Verwendung von LLP-Modul 660 ermöglicht werden, können bei der Aushandlung und Durchführung von Verbindungsschichtzustandsübergängen, Leistungsverwaltung, Schleifenschaltung, Deaktivieren, Neuzentrieren, Verwürfeln, unter anderen Verbindungsschichtmerkmalen, zwischen den Verbindungsschichten 635a, 635b von Vorrichtungen 605 bzw. 610 helfen.
  • Bezug nehmend auf 7 ist ein Diagramm 700 gezeigt, beispielhaftes Signalisieren unter Verwendung einer Menge von Bahnen (z. B. 615, 620) in einem bestimmten Kanal einer beispielhaften MCPL darstellend. Im Beispiel aus 7 werden zwei Cluster aus fünfundzwanzig (25) Datenbahnen für insgesamt fünfzig (50) Datenbahnen im Kanal bereitgestellt. Ein Teil der Bahnen wird gezeigt, während andere (z. B. DATEN[4-46] und eine zweite Abtastsignalbahn (ABTST)) aus Gründen der Zweckmäßigkeit beim Darstellen des bestimmten Beispiels ausgelassen werden (z. B. als redundante Signale). Wenn sich die physische Schicht in einem aktiven Zustand befindet (z. B. nicht ausgeschaltet oder in einem Niedrigleistungsmodus (z. B. einem LI-Zustand)), können Abtastbahnen (ABTST) mit einem synchronen Taktsignal versorgt werden. In einigen Umsetzungen können Daten sowohl an der steigenden als auch an der fallenden Flanke der Abtastung gesendet werden. Jede Flanke (oder jeder halbe Taktzyklus) kann ein Einheitsintervall (UI, Unit Intervall) abgrenzen. Entsprechend kann in diesem Beispiel ein Bit (z. B. 705) auf jeder Bahn gesendet werden, ermöglichend, dass alle 8 UI ein Byte gesendet wird. Ein Bytezeitraum 710 kann als 8 UI oder als die Zeit zum Senden eines Bytes auf einer einzelnen der Datenbahnen (z. B. DATEN[0-49]) definiert werden.
  • In einigen Umsetzungen kann ein Gültigkeitssignal, auf einem oder mehreren speziellen Gültigkeitssignalkanälen gesendet (z. B. GÜLTIG0, GÜLTIG 1), als ein voreilender Anzeiger für die empfangende Vorrichtung dienen, um, wenn bestätigt (hoch), gegenüber der empfangenden Vorrichtung, oder Senke, zu identifizieren, dass während des folgenden Zeitraums, wie etwa des Bytezeitraums 710, Daten von der sendenden Vorrichtung, oder Quelle, auf Datenbahnen (z. B. DATEN[0-49]) gesendet werden. Alternativ, wenn das Gültigkeitssignal tief ist, zeigt die Quelle der Senke an, dass die Senke während des folgenden Zeitraums keine Daten auf den Datenbahnen sendet. Entsprechend, wenn die logische PHY der Senke detektiert, dass das Gültigkeitssignal nicht bestätigt ist (z. B. auf Bahnen GÜLTIG0 und GÜLTIG1), kann die Senke während des folgenden Zeitraums alle Daten, die auf den Datenbahnen (z. B. DATEN[0-49]) detektiert werden, ignorieren. Beispielsweise können Nebensprechrauschen oder andere Bits auf einer oder mehreren der Datenbahnen erscheinen, wenn die Quelle tatsächlich keine Daten sendet. Anhand eines tiefen, oder nicht bestätigten, Gültigkeitssignals während des vorhergehenden Zeitraums (z. B. des vorherigen Bytezeitraums) kann die Senke bestimmen, dass die Datenbahnen während des folgenden Zeitraums zu ignorieren sind.
  • Daten, die auf jeder der Bahnen der MCPL gesendet werden, können strikt auf das Abtastsignal ausgerichtet werden. Ein Zeitraum kann basierend auf der Abtastung definiert werden, wie etwa ein Bytezeitraum, und jede dieser Perioden kann einem definierten Fenster entsprechen, in dem Signale auf den Datenbahnen (z. B. DATEN[0-49]), den Gültigkeitsbahnen (z.B. GÜLTIG1, GÜLTIG2) und einer Strombahn (z.B. STROM) zu senden sind. Entsprechend kann Ausrichtung dieser Signale Identifizierung ermöglichen, dass ein Gültigkeitssignal in einem vorherigen Zeitraumfenster auf Daten im folgenden Zeitraumfenster angewendet wird und dass ein Stromsignal auf Daten im selben Zeitraumfenster angewendet wird. Das Stromsignal kann ein codiertes Signal (z. B. 1 Byte von Daten für ein Bytezeitraumfenster) sein, das codiert ist, um das Protokoll zu identifizieren, das auf Daten angewendet wird, die während desselben Zeitraumfensters gesendet werden.
  • Zur Darstellung wird im speziellen Beispiel aus 7 ein Bytezeitraumfenster definiert. Eine Gültigkeit wird bei einem Zeitraumfenster n (715) bestätigt, bevor irgendwelche Daten in die Datenbahnen DATEN[0-49] eingeführt werden. Beim folgenden Zeitraumfenster n+1 (720) werden Daten auf zumindest einigen der Datenbahnen gesendet. In diesem Fall werden Daten während n+1 (720) auf allen fünfzig Datenbahnen gesendet. Da eine Gültigkeit für die Dauer des vorhergehenden Zeitraumfensters n (715) bestätigt wurde, kann die Senkenvorrichtung die auf Datenbahnen DATEN[0-49] empfangenen Daten während Zeitraumfenster n+1 (720) validieren. Zusätzlich ermöglicht der voreilende Charakter des Gültigkeitssignals während Zeitraumfenster n (715) der empfangenden Vorrichtung, sich auf die eingehenden Daten vorzubereiten. Fortfahrend mit dem Beispiel aus 7 bleibt das Gültigkeitssignal während der Dauer von Zeitraumfenster n+1 (720) bestätigt (auf GÜLTIG 1 und GÜLTIG2), die Senkenvorrichtung veranlassend, die über die Datenbahnen DATEN[0-49] gesendeten Daten während Zeitraumfenster n+2 (725) zu erwarten. Wenn das Gültigkeitssignal während Zeitraumfenster n+2 (725) bestätigt bleiben sollte, könnte die Senkenvorrichtung ferner erwarten, zusätzliche Daten, die während eines unmittelbar folgenden Zeitraumfensters n+3 (730) gesendet werden, zu empfangen (und zu verarbeiten). Im Beispiel aus 7 wird allerdings die Bestätigung des Gültigkeitssignals während der Dauer des Zeitraumfensters n+2 (725) aufgehoben, der Senkenvorrichtung anzeigend, dass keine Daten während Zeitraumfenster n+3 (730) gesendet werden und dass alle auf den Datenbahnen DATEN[0-49] detektierten Bits während Zeitraumfenster n+3 (730) ignoriert werden sollten.
  • Wie oben angemerkt, können mehrere Gültigkeitsbahnen und Abtastbahnen pro Kanal aufrechterhalten werden. Dies kann, unter anderen Vorteilen, beim Aufrechterhalten von Schaltungseinfachheit und Synchronisierung der Cluster von relativ langen physischen Bahnen, die zwei Vorrichtungen verbindend, helfen. In einigen Umsetzungen kann eine Menge von Datenbahnen in Cluster von Datenbahnen unterteilt werden. Beispielsweise im Beispiel aus 7 können Datenbahnen DATEN[0-49] in zwei Fünfundzwanzig-Bahnen-Cluster unterteilt werden, und jedes Cluster kann eine spezielle Gültigkeits- und Abtastbahn haben. Beispielsweise kann Gültigkeitsbahn GÜLTIG1 mit Datenbahnen DATEN[0-24] verknüpft werden, und Gültigkeitsbahn GÜLTIG2 kann mit Datenbahnen DATEN[25-49] verknüpft werden. Die Signale auf jeder „Kopie“ der Gültigkeits- und Abtastbahnen für jedes Cluster können identisch sein.
  • Wie oben eingeführt können Daten auf der Strombahn STROM verwendet werden, um der empfangenden logischen PHY anzuzeigen, welches Protokoll auf die entsprechenden Daten, die auf Datenbahnen DATEN[0-49] gesendet werden, anzuwenden ist. Im Beispiel aus 7 wird auf STROM ein Stromsignal während des gleichen Zeitraumfensters gesendet wie Daten auf Datenbahnen DATEN[0-49], um das Protokoll der Daten auf den Datenbahnen anzuzeigen. In alternativen Umsetzungen kann das Stromsignal während eines vorhergehenden Zeitraumfensters gesendet werden, wie etwa mit zugehörigen Gültigkeitssignalen, unter anderen potenziellen Modifikationen. Allerdings, fortfahrend mit dem Beispiel aus 7, wird ein Stromsignal 735 während Zeitraumfenster n+1 (720) gesendet, das codiert ist, um das Protokoll (z. B. PCIe, PCI, IDI, QPI usw.) anzuzeigen, das auf die Bits, die während Zeitraumfenster n+1 (720) über Datenbahnen DATEN[0-49] zu senden sind, anzuwenden ist. In ähnlicher Weise kann ein weiteres Stromsignal 740 während des folgenden Zeitraumfensters n+2 (725) gesendet werden, um das Protokoll anzuzeigen, das auf die Bits angewendet wird, die während Zeitraumfenster n+2 (725) über Datenbahnen DATEN[0-49] gesendet werden, und so weiter. In einigen Fällen, wie etwa im Beispiel aus 7 (wo beide Stromsignale 735, 740 die gleiche Codierung haben, binär FF), können Daten in aufeinanderfolgenden Zeitraumfenstern (z. B. n+1 (720) und n+2 (725)) zum gleichen Protokoll gehören. Allerdings können in anderen Fällen Daten in aufeinanderfolgenden Zeitraumfenstern (z. B. n+1 (720) und n+2 (725)) von unterschiedlichen Transaktionen sein, für die unterschiedliche Protokolle anzuwenden sind, und Stromsignale (z. B. 735, 740) können entsprechend codiert werden, um die unterschiedlichen Protokolle zu identifizieren, die auf die aufeinanderfolgenden Bytes von Daten auf den Datenbahnen (z. B. DATEN[0-49]) angewendet werden, unter anderen Beispielen.
  • In einigen Umsetzungen kann ein Niedrigleistungs- oder Leerlaufzustand für die MCPL definiert werden. Wenn beispielsweise keine der Vorrichtungen auf der MCPL Daten sendet, kann die physische Schicht (elektrisch und logisch) der MCPL in einen Leerlauf- oder Niedrigleistungszustand wechseln. Beispielsweise im Beispiel aus 7 ist die MCPL bei Zeitraumfenster n-2 (745) in einem Ruhe- oder Leerlaufzustand, und die Abtastung ist deaktiviert, um Leistung zu sparen. Die MCPL kann aus dem Niedrigleistungs- oder Leerlaufmodus herausgehen und die Abtastung bei Zeitraumfenster n-1 (z. B. 705) aktivieren. Die Abtastung kann eine Übertragungspräambel abschließen (z. B. um beim Aktivieren und Synchronisieren jeder der Bahnen des Kanals sowie der Senkenvorrichtung zu helfen), wobei das Abtastsignal vor jeder beliebigen anderen Signalisierung auf den anderen Nicht-Abtastbahnen beginnt. Anschließend an dieses Zeitraumfenster n-1 (705) kann das Gültigkeitssignal bei Zeitraumfenster n (715) bestätigt werden, um die Senke zu benachrichtigen, dass Daten im folgenden Zeitraumfenster n+1 (720) ankommen, wie oben erörtert.
  • Die MCPL kann im Anschluss an die Detektion von Leerlaufbedingungen auf den Gültigkeitsbahnen, Datenbahnen und/oder anderen Bahnen des MCPL-Kanals erneut in einen Niedrigleistungs- oder Leerlaufzustand (z. B. einen L1-Zustand) eintreten. Beispielsweise kann beginnend bei Zeitraumfenster n+3 (730) und fortdauernd möglicherweise keine Signalisierung detektiert werden. Logik entweder auf der Quell- oder Senkenvorrichtung kann einen Übergang zurück in einen Niedrigleistungszustand initiieren, erneut dazu führend (z. B. Zeitraumfenster n+5 (755)), dass die Abtastung in Leerlauf in einen Leistungssparmodus wechselt, unter anderen Beispielen und Prinzipien (einschließlich der hier später erörterten).
  • Elektrische Charakteristika der physischen PHY können eines oder mehrere aus asymmetrischer Signalübertragung, Vorwärtstaktung mit halber Rate, Abstimmung des Verbindungskanals sowie On-Chip-Transportverzögerung von Sender (Quelle) und Empfänger (Senke), optimierter Schutz vor elektrostatischer Entladung (ESD, Electrostatic Discharge), Kontaktstellenkapazität umfassen, unter anderen Merkmalen. Ferner kann eine MCPL umgesetzt werden, um eine höhere Datenrate (z. B. annähernd an 16 Gb/s) und Energieeffizienz zu erreichen als mit herkömmlichen Gehäuse-E/A-Lösungen.
  • Bezug nehmend auf 8 ist ein vereinfachtes Blockdiagramm 800 gezeigt, eine beispielhafte logische PHY einer beispielhaften MCPL darstellend. Eine physische PHY 805 kann mit einem Die verbunden werden, der logische PHY 810 und zusätzliche Logik, eine Verbindungsschicht der MCPL unterstützend, umfasst. Der Die kann, in diesem Beispiel, ferner Logik zum Unterstützen mehrerer unterschiedlicher Protokolle auf der MCPL umfassen. Beispielsweise im Beispiel aus 8 kann PCIe-Logik 815 auch als IDI-Logik 820 bereitgestellt sein, so dass die Dies unter Verwendung von entweder PCIe oder IDI über die gleiche MCPL, die zwei Dies verbindend, kommunizieren können, unter potenziell vielen anderen Beispielen, einschließlich Beispiele, bei denen mehr als zwei Protokolle oder andere Protokolle als PCIe und IDI über die MCPL unterstützt werden. Verschiedene Protokolle, die zwischen den Dies unterstützt werden, können variierende Dienststufen und Merkmale bieten.
  • Logische PHY 810 kann Verbindungszustandsmaschinenverwaltungslogik 825 zum Aushandeln von Verbindungszustandsübergängen in Verbindung mit Anforderungen von Logik auf oberen Schichten des Dies (z. B. über PCIe oder IDI empfangen) umfassen. Logische PHY 810 kann ferner in einigen Umsetzungen Verbindungstest- und Fehlersuchlogik (z. B. 830) umfassen. Wie oben angemerkt kann eine beispielhafte MCPL Steuersignale unterstützen, die zwischen Dies über die MCPL gesendet werden, um protokollagnostische, Hochleistungs- und Leistungseffizienzmerkmale (unter anderen beispielhaften Merkmalen) der MCPL zu ermöglichen. Beispielsweise kann logische PHY 810 die Erzeugung und das Senden sowie das Empfangen und Verarbeiten von Gültigkeitssignalen, Stromsignalen und LSM-Seitenbandsignalen in Verbindung mit dem Senden und Empfangen von Daten über spezielle Datenbahnen, wie in obigen Beispielen beschrieben, unterstützen.
  • In einigen Umsetzungen kann Multiplex- (z. B. 835) und Demultiplexlogik (z. B. 840) in logischer PHY 810 enthalten sein oder anderweitig für diese zugänglich sein. Beispielsweise kann Multiplexlogik (z. B. 835) verwendet werden, um Daten zu identifizieren (z. B. verkörpert als Pakete, Nachrichten usw.), die an die MCPL auszusenden sind. Die Multiplexlogik 835 kann das die Daten steuernde Protokoll identifizieren und ein Stromsignal erzeugen, das codiert ist, um das Protokoll zu identifizieren. Beispielsweise kann, in einer beispielhaften Umsetzung, das Stromsignal als ein Byte aus zwei hexadezimalen Symbolen codiert sein (z. B. IDI: FFh; PCIe: F0h; LLP: AAh; Seitenband: 55h; usw.) und kann während desselben Fensters (z. B. ein Bytezeitraumfenster) der durch das identifizierte Protokoll gesteuerten Daten gesendet werden. In ähnlicher Weise kann Demultiplexlogik 840 eingesetzt werden, um eingehende Stromsignale zu interpretieren, um das Stromsignal zu decodieren und das Protokoll zu identifizieren, das auf die Daten anzuwenden ist, die gleichzeitig mit dem Stromsignal auf den Datenbahnen empfangen werden. Die Demultiplexlogik 840 kann dann protokollspezifische Verbindungsschichtbehandlung anwenden (oder sicherstellen) und veranlassen, dass die Daten durch die entsprechende Protokolllogik (z.B. PCIe-Logik 815 oder IDI-Logik 820) behandelt werden.
  • Logische PHY 810 kann ferner Verbindungsschichtpaketlogik 850 umfassen, die verwendet werden kann, um verschiedene Verbindungssteuerfunktionen zu behandeln, einschließlich Leistungsverwaltungsaufgaben, Schleifenschaltung, Deaktivieren, Neuzentrieren, Verwürfeln usw. LLP-Logik 850 kann Verbindungsschicht-zu-Verbindungsschicht-Nachrichten über MCPL ermöglichen, unter anderen Funktionen. Daten entsprechend der LLP-Signalisierung können auch durch ein Stromsignal identifiziert werden, das auf einer speziellen Stromsignalbahn gesendet wird, das codiert ist, um zu identifizieren, dass die Datenbahnen LLP-Daten. Multiplex- und Demultiplexlogik (z. B. 835, 840) können auch verwendet werden, um die LLP-Verkehr entsprechenden Stromsignale zu erzeugen und zu interpretieren, sowie zu veranlassen, dass derartiger Verkehr von der geeigneten Die-Logik behandelt wird (z. B. LLP-Logik 850). In ähnlicher Weise können einige Umsetzungen einer MCPL ein spezielles Seitenband (z. B. Seitenband 855 und unterstützende Logik) umfassen, wie etwa einen asynchronen und/oder niederfrequenteren Seitenbandkanal, unter anderen Beispielen.
  • Logische PHY-Logik 810 kann ferner Verbindungszustandsmaschinenverwaltungslogik umfassen, die Verbindungszustandsverwaltungsnachrichten erzeugen und über eine spezielle LSM-Seitenbandbahn empfangen (und verwenden) kann. Beispielsweise kann eine LSM-Seitenbandbahn verwendet werden, um Handschlag durchzuführen, um einen Verbindungslernzustand voranzutreiben, Leistungsverwaltungszustände (z.B. einen L1-Zustand) zu verlassen, unter anderen potenziellen Beispielen. Das LSM-Seitenbandsignal kann ein asynchrones Signal sein dahingehend, dass es nicht auf die Daten-, Gültigkeitskeits- und Stromsignale der Verbindung ausgerichtet ist, sondern stattdessen Signalisierungszustandsübergängen entspricht und die Verbindungszustandsmaschine zwischen den zwei Dies oder Chips, die durch die Verbindung verbunden sind, ausrichtet, unter anderen Beispielen. Bereitstellen einer speziellen LSM-Seitenbandbahn kann, in einigen Beispielen, Eliminieren von herkömmlichen Rauschsperren- und Empfangsdetektionsschaltungen eines analogen Frontends (AFE) ermöglichen, unter anderen beispielhaften Vorteilen.
  • Bezug nehmend auf 9 wird ein vereinfachtes Verbindungszustandsmaschinenübergangsdiagramm 900 zusammen mit zwischen den Zustandsübergängen genutztem Seitenband-Handschlag gezeigt. Beispielsweise kann ein Zustand Rücksetzen.Leerlauf (z. B. wobei Kalibrierung einer Phasenregelschleife (PLL; Phase Lock Loop) durchgeführt wird), durch einen Seitenband-Handschlag, in einen Zustand Rücksetzen.Kal (z. B. wobei die Verbindung weiter kalibriert wird) übergehen. Rücksetzen.Kal kann, durch einen Seitenband-Handschlag, in einen Zustand Rücksetzen.TaktDCC übergehen (z. B. wobei Tastverhältniskorrektur (DCC, Duty Cycle Correction) und DLL-Regelung (Delay-Locked Looping) durchgeführt werden können). Ein zusätzlicher Handschlag kann durchgeführt werden, um vom Zustand Rücksetzen.TaktDCC in einen Zustand Rücksetzen.Ruhe überzugehen (z. B. um die Bestätigung des Gültigkeitssignals aufzuheben). Zur Unterstützung der Ausrichtung der Signalisierung auf den Bahnen der MCPL können die Bahnen durch einen Zustand Zentrieren.Muster zentriert werden.
  • In einigen Umsetzungen, wie im Beispiel aus 16 gezeigt, kann der Sender während des Zustands Zentrieren.Muster Lernmuster oder andere Daten erzeugen. Der Empfänger kann seine Empfängerschaltungsanordnung konditionieren, um solche Lernmuster zu empfangen, beispielsweise durch Einstellen der Phaseninterpolatorposition und vref-Position und Einstellen des Vergleichers. Der Empfänger kann kontinuierlich die empfangenen Muster mit erwarteten Mustern vergleichen und das Ergebnis in einem Register speichern. Nachdem eine Menge von Mustern abgeschlossen ist, kann der Empfänger die Phaseninterpolatoreinstellung inkrementieren, dabei vref gleich lassend. Der Prüfmustererzeugungs- und Vergleichsprozess kann fortfahren und neue Vergleichsergebnisse können im Register gespeichert werden, wobei die Prozedur wiederholt alle Phaseninterpolatorwerte und alle Werte von vref durchläuft. Der Zustand Zentrieren.Ruhe kann betreten werden, wenn der Mustererzeugungs- und Vergleichsprozess vollständig abgeschlossen ist. Im Anschluss an die Zentrierung der Bahnen durch die Verbindungszustände Zentrieren.Muster und Zentrieren.Ruhe kann ein Seitenband-Handschlag (z. B. unter Verwendung eines LSM-Seitenbandsignals über der speziellen LSM-Seitenbandbahn der Verbindung) ermöglicht werden, um in einen Zustand Verbindung.Init überzugehen, um die MCPL zu initialisieren und Senden von Daten auf der MCPL zu ermöglichen.
  • Vorübergehend zur Diskussion zu 15 zurückkehrend, wie oben angemerkt, können Seitenband-Handschläge verwendet werden, um Verbindungszustandsmaschinenübergänge zwischen Dies oder Chips in einem Mehrfachchipgehäuse zu ermöglichen. Beispielsweise können Signale auf den LSM-Seitenbandbahnen einer MCPL verwendet werden, um die Zustandsmaschinenübergänge auf dem Die zu synchronisieren. Wenn beispielsweise die Bedingungen zum Verlassen eines Zustands (z. B. Rücksetzen.Leerlauf) erfüllt sind, kann die Seite, die diese Bedingungen erfüllt hat, ein LSM-Seitenbandsignal, auf ihrer ausgehenden LSM_SB-Bahn, bestätigen und warten, dass der andere abgesetzte Die die gleiche Bedingung erreicht und ein LSM-Seitenbandsignal auf seiner LSM_SB-Bahn bestätigt. Wenn beide LSM_SB-Signale bestätigt sind, kann die Verbindungszustandsmaschine jedes jeweiligen Dies in den nächsten Zustand (z. B. einen Zustand Rücksetzen.Kal) übergehen. Eine minimale Überlappungszeit kann definiert werden, während der beide LSM_SB-Signale bestätigt gehalten werden sollten, bevor ein Zustandsübergang stattfindet. Ferner kann eine minimale Ruhezeit nach Aufheben einer Bestätigung von LSM_SB definiert werden, um eine genaue Umkehrdetektion zu ermöglichen. In einigen Umsetzungen kann jeder Verbindungszustandsmaschinenübergang auf solche LSM_SB-Handschläge konditioniert und von diesen ermöglicht werden.
  • 10 ist ein ausführlicheres Verbindungszustandsmaschinendiagramm 1000, zumindest einige der zusätzlichen Verbindungszustände und Verbindungszustandsübergänge darstellend, die in einer beispielhaften MCPL enthalten sein können. In einigen Umsetzungen kann eine beispielhafte Verbindungszustandsmaschine, unter den anderen Zuständen und Zustandsübergängen, die in 10 dargestellt sind, einen „gerichteten Schleifenübergang“ umfassen, der bereitgestellt werden kann, um die Bahnen einer MCPL in eine digitale Schleife zu versetzen. Beispielsweise können die Empfängerbahnen einer MCPL zurück zu den Senderbahnen hinter den Taktwiederherstellungsschaltungen geführt werden. Ein Zustand „LB_Neuzentrieren“ kann auch in einigen Fällen bereitgestellt werden, der verwendet werden kann, um die Datensymbole auszurichten. Zusätzlich, wie in 9 gezeigt, kann MCPL mehrere Verbindungszustände unterstützen, einschließlich eines aktiven L0-Zustands und Niedrigleistungszuständen, wie etwa einen L1-Leerlaufzustand und einen L2-Ruhezustand, unter potenziell anderen Beispielen. Als ein weiteres Beispiel können Konfigurations- oder Zentrierungszustände (z. B. ZENTRIEREN) erweitert werden oder von sich aus Neukonfiguration einer Verbindung beim Einschalten unterstützen, um Bahnen der Verbindung zu ermöglichen, neu zugeordnet zu werden, um Daten um eine oder mehrere Bahnen der Verbindung, die als fehlerhaft oder marginal bestimmt wurden, herum zu leiten, unter anderen Beispielen.
  • 11 ist ein vereinfachtes Blockdiagramm 1100, einen beispielhaften Fluss in einem Übergang zwischen einem aktiven Zustand (z. B. L0) und einem Niedrigleistungs- oder Leerlaufzustand (z. B. L1) darstellend. In diesem speziellen Beispiel sind eine erste Vorrichtung 1105 und eine zweite Vorrichtung 1110 kommunikativ unter Verwendung einer MCPL gekoppelt. Im aktiven Zustand werden Daten über die Bahnen der MCPL (z. B. DATEN, GÜLTIG, STROM usw.) gesendet. Verbindungsschichtpakete (LLPs) können über die Bahnen (z. B. Datenbahnen, wobei das Stromsignal anzeigt, dass die Daten LLP-Daten sind) kommuniziert werden, um Ermöglichen von Verbindungszustandsübergängen zu unterstützen. Beispielsweise können LLPs zwischen der ersten und zweiten Vorrichtung 1105, 1110 gesendet werden, um Eintreten von L0 aus in L1 auszuhandeln. Beispielsweise können Protokolle der oberen Schichten, die durch die MCPL unterstützt werden, kommunizieren, dass Eintreten in L1 (oder einen anderen Zustand) erwünscht ist, und die Protokolle der oberen Schichten können veranlassen, dass LLPs über die MCPL gesendet werden, um einen Verbindungsschicht-Handschlag zu ermöglichen, um ein Eintreten der physischen Schicht in L1 zu bewirken. Beispielsweise zeigt 11 zumindest einen Teil von gesendeten LLPs, einschließlich eines LLP mit „Eintreten-in-L1“-Anforderung, die von der zweiten (stromaufwärtigen) Vorrichtung 1110 an die erste (stromabwärtige) Vorrichtung 1105 gesendet wird. In einigen Umsetzungen und bei Protokollen der oberen Schichten initiiert der stromabwärtige Anschluss kein Eintreten in L1. Die empfangende erste Vorrichtung 1105 kann in Reaktion ein LLP mit „Wechseln-zu-L1“-Anforderung senden, die die zweite Vorrichtung 1110 über ein LLP mit „Wechseln-zu-L1“-Quittierung (ACK, Acknowledgement) quittieren kann, unter anderen Beispielen. Bei Detektieren des Abschlusses des Handschlags kann die logische PHY bewirken, dass ein Seitenbandsignal auf einer speziellen Seitenbandverbindung bestätigt wird, um zu quittieren, dass die ACK empfangen wurde und dass die Vorrichtung (z. B. 1105) bereit für ein Eintreten in L1 ist und dieses erwartet. Beispielsweise kann die erste Vorrichtung 1105 ein Seitenbandsignal 1115, das an die zweite Vorrichtung 1110 gesendet wurde, bestätigen, um Empfang des abschließenden ACK im Verbindungsschicht-Handschlag zu bestätigen. Zusätzlich kann auch die zweite Vorrichtung 1110 ein Seitenbandsignal in Reaktion auf Seitenbandsignal 1115 bestätigen, um die erste Vorrichtung 1105 über die Seitenband-ACK der ersten Vorrichtung 1105 zu benachrichtigen. Wenn die Verbindungsschichtsteuerung und die Seitenband-Handschläge abgeschlossen sind, kann die MCPL-PHY in den LI-Zustand übergehen, bewirkend, dass alle Bahnen der MCPL in einen Leerlauf-Leistungssparmdous versetzt werden, einschließlich entsprechender MCPL-Abtastungen 1120, 1125 der Vorrichtungen 1105, 1110. Der L1 kann verlassen werden, wenn Logik der oberen Schichten von der ersten oder zweiten Vorrichtung 1105, 1110 Wiedereintreten in L0 anfordert, beispielsweise in Reaktion auf Detektieren von Daten, die über die MCPL an die andere Vorrichtung zu senden sind.
  • Wie oben angemerkt, kann, in einigen Umsetzungen, eine MCPL Kommunikation zwischen zwei Vorrichtungen ermöglichen, potenziell mehrere unterschiedliche Protokolle unterstützend, und die MCPL kann Kommunikationen entsprechend potenziell einem beliebigen der mehreren Protokolle über die Bahnen der MCPL ermöglichen. Ermöglichen mehrerer Protokolle kann allerdings Eintreten und Wiedereintreten in zumindest einige Verbindungszustände verkomplizieren. Während beispielsweise einige herkömmliche Verbindungen ein einzelnes Protokoll auf oberen Schichten haben, das die Rolle eines Masters bei Zustandsübergängen einnimmt, beinhaltet eine Umsetzung einer MCPL mit mehreren unterschiedlichen Protokollen effektiv mehrere Master. Als ein Beispiel, wie in 11 gezeigt, kann sowohl PCIe als auch IDI zwischen zwei Vorrichtungen 1105, 1110 über eine Umsetzung einer MCPL unterstützt werden. Beispielsweise kann Versetzen der physischen Schicht in einen Leerlauf- oder Niedrigleistungsszustand konditioniert werden, wobei zuerst von jedem der unterstützten Protokolle (z. B. sowohl PCIe als auch IDI) Erlaubnis einzuholen ist.
  • In einigen Fällen kann Eintreten in L1 (oder einen anderen Zustand) nur durch eines der mehreren unterstützten Protokolle, die für eine Umsetzung einer MCPL unterstützt werden, angefordert werden. Während es eine Wahrscheinlichkeit geben kann, dass die anderen Protokolle in ähnlicher Weise Eintreten in den gleichen Zustand anfordern (z. B. basierend auf Identifizieren ähnlicher Bedingungen (z. B. wenig oder kein Verkehr) auf der MCPL), kann die logische PHY warten, bis Erlaubnis oder Befehle von jedem Protokoll aus oberen Schichten empfangen werden, bevor der Zustandsübergang tatsächlich ermöglicht wird. Die logische PHY kann aufzeichnen, welche Protokolle der oberen Schichten die Zustandsänderung angefordert haben (z. B. einen zugehörigen Handschlag durchgeführt haben), und den Zustandsübergang bei Identifizieren, dass jedes der Protokolle die spezielle Zustandsänderung, wie etwa einen Übergang von L0 auf L1 oder einen anderen Übergang angefordert hat, der die Kommunikationen mit anderen Protokollen beeinflussen oder stören würde, auslösen. In einigen Umsetzungen können Protokolle blind hinsichtlich ihrer zumindest teilweisen Abhängigkeit von anderen Protokollen im System sein. Ferner kann, in einigen Fällen, ein Protokoll eine Antwort (z. B. von der PHY) auf eine Anforderung, in einen bestimmten Zustand einzutreten, erwarten, wie etwa eine Bestätigung oder eine Ablehnung des angeforderten Zustandsübergangs. Entsprechend kann, in solchen Fällen, während des Wartens auf Erlaubnis von anderen unterstützten Protokollen für Eintreten in einen Leerlaufverbindungszustand, die logische PHY synthetische Antworten auf eine Anforderung, in den Leerlaufzustand einzutreten, erzeugen, um das anfordernde Protokoll der oberen Schichten „glauben zu lassen“, dass ein bestimmter Zustand betreten wurde (wenn die Bahnen tatsächlich immer noch aktiv sind, zumindest bis auch die anderen Protokolle Eintreten in den Leerlaufzustand anfordern). Unter anderen potenziellen Vorteilen kann dies Koordinieren von Eintreten in den Niedrigleistungszustand zwischen mehreren Protokollen vereinfachen, unter anderen Beispielen.
  • Umsetzungen einer logischen PHY können Fehlerdetektions-, Fehlermelde- und Fehlerbehandlungslogik umfassen. In einigen Umsetzungen kann eine logische PHY einer beispielhaften MCPL Logik zum Detektieren von Entrahmungsfehlern der PHY-Schicht (z. B. auf den Gültigkeits- und Strombahnen), Seitenbandfehlern (z. B. im Zusammenhang mit LSM-Zustandsübergängen), Fehlern in LLPs (die z. B. kritisch für LSM-Zustandsübergänge sind) umfassen, unter anderen Beispielen. Etwas Fehlerdetektion/- auflösung kann an Logik auf oberen Schichten delegiert werden, wie etwa PCIe-Logik, angepasst zum Detektieren PCIe-spezifischer Fehler, oder an Systemverwaltungssoftware, unter anderen Beispielen. In einigen Umsetzungen können Fehlerdetektions- und - behandlungsmechanismen bereitgestellt sein, wie etwa zyklische Redundanzprüfung (CRC, Cyclic Redundancy Check), Wiederholungspuffer, unter anderen potenziellen Beispielen, um bei Bitfehlerdetektion auf einer MCPL zu helfen. Ferner kann Fehlerdetektionslogik, sei sie in Verwaltungssoftware oder der logischen PHY umgesetzt, bestimmen, dass spezifische Bahnen fehlerhaft oder marginal sind, basierend auf Bestimmen von bahnspezifischen Bitfehlern auf einer Verbindung.
  • Ein MCPL-Anschluss kann aus einer großen Anzahl von Bahnen (z. B. 100 Bahnen oder mehr) bestehen, die bei sehr hohen Geschwindigkeiten arbeiten (z.B. 8 Gbs). Beispielsweise kann ein MCPL-Anschluss 80 oder mehr Bahnen in jede Richtung umfassen (z.B. insgesamt mehr als 160 Bahnen). In einigen Fällen kann ein(e) MCPL-Verbindung oder -Anschluss selbst dann in einen aktiven Zustand (L0) übergehen, wenn einige der Bahnen der Verbindung oder des Anschlusses fehlerhaft oder „marginal“ sind. Dies kann nach Abschluss des Zentrierens einmal und für eine begrenzte Zeit in einer Umgebung mit gesteuertem Rauschen und Nebensprechen geschehen. Bahnen können auch mit der Zeit marginal werden, beispielsweise aufgrund von Selbsterhitzung, Elektromigration, Alterung, Gehäusemängeln und anderen Ursachen. Marginale Bahnen können bewirken, dass die gesamte Verbindung ausfällt. Im Ergebnis ist es wünschenswert, Bahnen zu identifizieren, die marginal geworden sind, und dies zu tun, bevor ein Ausfall der Verbindung auftritt. Identifizierung einer marginalen Bahn kann Einleiten von Korrekturmaßnahmen ermöglichen, wie etwa Neukonfiguration der Verbindung. In einigen Fällen kann Entdeckung und Korrektur von marginalen Bahnen dynamisch durchgeführt werden, ohne dass die Verbindung und zugehörige Systeme heruntergefahren werden. Dies kann, beispielsweise, in Systemen vorteilhaft sein, bei denen ein Dauerbetrieb erwünscht ist, wie etwa in Serversystemen, die einen Betrieb rund um die Uhr erfordern. Identifizieren von belasteten Bahnen kann auch hilfreich sein, um die Zentrieralgorithmen für Prozess- oder Gehäuseänderungen abzustimmen und Fertigungstests zu verbessern.
  • Überwachen der analogen Qualität nur einer einzigen betriebenen Bahn kann bei hoher Geschwindigkeit schwierig sein. Eine herkömmliche Lösung bestand darin, einen analogen Anhaltspunkt bereitzustellen, um einer Prüfvorrichtung zu ermöglichen, auf eine Problembahn zuzugreifen. Allerdings kann dieser Ansatz in einem System mit großen Anzahlen von Bahnen (z. B. 100 oder mehr Bahnen) nicht zufriedenstellend sein. Ferner kann Identifizieren einer spezifischen aus der großen Anzahl von Bahnen schwierig sein. Zusätzlich kann, selbst wenn die spezifische marginale Bahn identifiziert werden kann, dynamisches Neukonfigurieren der Verbindung, um die marginale Bahn zu berücksichtigen, teuer und störend sein. Während beispielsweise QPI-Verbindungen Funktionalität zum Identifizieren von harten Fehlern nach deren Auftreten besitzen und neu um eine schlechte Bahn herum konfigurieren, resultieren solche herkömmlichen Lösungen in verringerter Bandbreite und anderen Problemen.
  • In einer Umsetzung kann MCPL-Logik bereitgestellt werden, die die Fähigkeit zum Identifizieren spezifischer marginaler Bahnen hat und, autonom, Maßnahmen einleitet, um die marginale Bahn zu ersetzen, bevor sich ein harter Fehler ergibt, ohne dass das System zum Einstürzen gebracht wird. Pakete, die auf einer Hochgeschwindigkeitsverbindung gesendet werden, können durch Prüfsumme, Parität und andere Werte geschützt werden, die Detektieren von Bitfehlern in dem Paket erlauben. In einem Beispiel können zumindest einige der auf einer MCPL-Verbindung gesendeten Protokolle mit einer CRC geschützt werden. Für CRC wird ein bestimmtes zugehöriges Paket als ein Galois-Feldpolynom (z. B. GF(2)) behandelt, welches durch das CRC-Polynom geteilt wird. Der Rest, oder die Prüfsumme, kann dann vor dem Senden an das Paket angehängt werden. Am empfangenden Ende kann der Empfänger versuchen, die gleiche Berechnung durchzuführen. Wenn keine Bitfehler im Paket vorhanden sind, ergibt die gleiche Operation immer einen festen Rest (oder Syndrom). Fehlerhafte Bits würden allerdings dazu führen, dass das Syndrom sich von dem festen unterscheidet.
  • In einem bestimmten Beispiel kann eine gemeinsame CRC in jedem der Typen von über eine MCPL gesendeten Daten verwendet werden. Beispielsweise kann ein 16-Bit-CRC-Polynom zu jedem der Flits, Pakete oder anderen Daten (von variierenden Protokollen), die über eine MCPL gesendet werden, hinzugefügt werden. In einem Beispiel kann das CRC-Polynom so ausgewählt werden, dass ein aus der CRC erzeugtes CRC-Syndrom verwendet werden kann, um spezifische Bitfehler zu identifizieren, die dann spezifischen Bahnen einer Verbindung zugeordnet werden können. In einem Beispiel können Syndromeigenschaften einer 16-Bit-Polynomberechnung 0x1f053 verwendet werden, um schlechte Bahnen zu identifizieren. Ein solches CRC-Polynom kann Fähigkeiten besitzen, die es erlauben, alle 1-, 2-, 3-Bit-Fehler und beinahe alle 4-Bit-Fehler auf einem MCPL-Flit zu identifizieren.
  • Bezug nehmend auf 12 wird ein vereinfachtes Blockdiagramm 1200 gezeigt, in Hardware und/oder Software umgesetzte Komponenten darstellend, die, in einigen Fällen, bereitgestellt werden können, um Problembahnen aus CRC-Syndromwerten zu identifizieren, die während CRC-Fehlerberechnungen identifiziert wurden. Beispielsweise kann eine erste Vorrichtung 1205 über eine MCPL 1215 mit einer zweiten Vorrichtung 1210 gekoppelt werden. Die erste Vorrichtung 1205 kann, in diesem Beispiel, eine sendende Vorrichtung in einer bestimmten Transaktion (oder Instanz) sein und Daten über die MCPL 1215 an die zweite, empfangende Vorrichtung 1210 senden. (Es versteht sich, dass in anderen Fällen Vorrichtung 1210 als die sendende Vorrichtung Daten über eine MCPL zu Vorrichtung 1205 senden kann, unter anderen Beispielen.) Die erste Vorrichtung 1205 kann Logik 1220 zum Erzeugen von einem oder mehreren Flits zum Senden über die MCPL 1215 umfassen. Ein Paket, eine Nachricht oder andere Formulierung von Daten, die über die MCPL zu senden sind, können einen oder mehrere Flits umfassen. Jedes Flit kann einen unter Verwendung eines CRC-Generators 1225 berechneten und codierten CRC-Wert umfassen. Die Flits können über die Verbindung 1215 an die zweite empfangende Vorrichtung 1210 gesendet werden. Die zweite Vorrichtung 1210 kann Logik zum Empfangen des Flits und Decodieren, oder anderweitig Identifizieren, des Flits, einschließlich Headerwerte, Schlitzwerte und des CRC-Wertes (z.B. unter Verwendung von CRC-Prüflogik 1230) umfassen.
  • Eine empfangende Vorrichtung kann einen CRC-Wert in einem empfangenen Flit nutzen, um Bitfehler in dem Flit zu identifizieren. In einigen Umsetzungen kann die empfangende Vorrichtung die CRC aus den restlichen Bits der empfangenen Flits regenerieren und den regenerierten CRC-Wert mit dem empfangenen CRC-Wert vergleichen (z. B. unter Verwendung von CRC-Prüflogik 1230), um Bitfehler zu bestimmen. Eine Fehlerprüfsumme (oder Rest oder „Syndrom“) kann während des Vergleichs in Reaktion auf einen Fehler im Flit (und einer mangelnden Übereinstimmung zwischen dem regenerierten CRC-Wert und dem empfangenen CRC-Wert) erzeugt werden (z. B. unter Verwendung von CRC-Prüflogik 1230). In einigen Fällen kann ein Syndrom während Regeneration der CRC auf dem Nutzdatenteil des Flits an der empfangenden Vorrichtung erzeugt werden, und die regenerierte CRC kann mit dem empfangenen CRC-Wert verglichen werden, beispielsweise, durch einen bitweisen XOR-Vergleich, wobei der aus dem Vergleich resultierende Wert das Syndrom verkörpert. In einem weiteren Beispiel kann eine CRC an der empfangenden Vorrichtung auf dem gesamten Flit (d. h. einschließlich des empfangenen CRC-Felds) durchgeführt werden, wobei das Ergebnis dieser Operation das Syndrom verkörpert. Das Syndrom kann am Empfänger unter Verwendung von Hardware oder Firmware erzeugt werden, oder alternativ, das Syndrom kann durch Software erzeugt werden, wie etwa Software zum Überwachen des Betriebs des Empfängers und der Verbindung, unter anderen potenziellen Umsetzungen. In einer spezifischen Umsetzung kann ein 16-Bit-Syndromwert erzeugt werden, wenn Fehler aus einem 16-Bit-CRC-Wert detektiert werden. Andere Umsetzungen können andere Fehlerrestwerte verwenden.
  • Ein durch die empfangende Vorrichtung (z.B. durch CRC-Prüflogik 1230) bestimmter Syndromwert (z. B. 1240) kann kommuniziert oder anderweitig einem Bahnüberwachungsmodul 1250, umgesetzt in Hardware und/oder Software (oder sogar an der ersten oder zweiten Vorrichtung 1205, 1210), verfügbar gemacht werden. Die Bahnüberwachung 1250 kann ein Bitfehlerdetektionsmodul 1255 umfassen, das Logik zum Zuordnen eines Syndromwerts zu einem bestimmten Bit (oder mehreren Bits) im Flit umfasst. Ein CRC-Wert kann aus einem CRC-Polynom erzeugt werden, das so an die Organisation des Flits angepasst ist, dass ein eindeutiger Syndromwert von einem beliebigen gegebenen aus einer Menge von Fehlern (wie etwa einer Menge, die jeden einzelnen Bitfehler auf jedem der Bits des Flits, jeden einzelnen Zwei-Bit-Fehler, der beliebige zwei aufeinanderfolgende Bits des Flits beeinflusst, usw. umfasst) resultiert. Entsprechend kann das Bitfehlerdetektionsmodul 1255, aus dem Syndrom 1240, ein oder mehrere spezifische Bits des Flits bestimmen, wo der Bitfehler aufgetreten ist. Das Bitfehlerdetektionsmodul kann auch, aus dem Syndrom, den Typ des Fehlers bestimmen, wie etwa einen Einzelbitfehler, einen Zwei-Bit-Fehler usw.
  • In einigen Fällen können die Bits eines Flits in der gleichen entsprechenden Bahn in mehreren unterschiedlichen Flits gesendet werden. Entsprechend kann eine Zuordnung erhalten und bestimmt werden (z. B. unter Verwendung des Bit-zu-Bahn-Zuordnungsmoduls 1260), um einen Fehler, der ein gegebenes Bit beeinflusst, seiner entsprechenden Bahn der Verbindung zuzuordnen. In anderen Fällen, wie etwa wenn das Flit während eines Verbindungszustands mit teilweiser Breite oder während Bahnumkehrbedingungen gesendet wird, kann Zuordnung des detektierten durch einen Fehler beeinflussten Bits zu der Bahn, auf der es gesendet wurde, komplizierter sein. In einigen Umsetzungen kann die Bahnfehlerüberwachung 1250 zusätzliche Daten von der empfangenden Vorrichtung 1210 (und/oder sendenden Vorrichtung 1205) oder von anderen Ressourcen (z. B. der Verbindung entsprechenden Registern), die die Bedingungen der entsprechenden Bahn anzeigen, als das Flit gesendet wurde, empfangen. Solche zusätzlichen Informationen können, beispielsweise, eine Flit umordnende Phasenzahl auf der physischen Schicht, eine Verbindungsbreitenanzeige auf der physischen Schicht, einen Anzeiger, zeigend, ob oder ob nicht Bahnumkehr verwendet wird, usw. umfassen. Unter Verwendung solcher Informationen kann das Bit-zu-Bahn-Zuordnungsmodul 1260 die Bahnen bestimmen, die beim Senden eines bestimmten Flits verwendet werden, und dadurch die Bitreihenfolge, die während der Übertragung verwendet wird, bestimmen, um die spezifische Bahn, auf der jedes Flitbit gesendet wurde, zu bestimmen. Auf diese Weise kann das Bit-zu-Bahn-Zuordnungsmodul 1260 aus dem Syndrom, zumindest für einige Bitfehler, die Bahn bestimmen, auf der der Bitfehler aufgetreten ist. Das Bit-zu-Bahn-Zuordnungsmodul 1260 kann diese Informationen für eine Bahnfehlerüberwachung 1265 aufzeichnen oder melden. Die Bahnfehlerüberwachung 1265 kann Aufzeichnungen, einen Zähler oder einige andere Daten, die, für jede Bahn einer gegebenen Verbindung (z.B. 1215) die Anzahl und Häufigkeit von auf der Bahn detektierten Fehlern anzeigen (z. B. basierend auf den unter Verwendung von Bitfehlerdetektion 1255 und Bit-zu-Bahn-Zuordnungsmodul 1260 bestimmten, gemeldeten Verbindungsfehlern) pflegen.
  • In einem Beispiel kann Bahnfehlerüberwachung 1250 eine oder mehrere Tabellen pflegen, um bestimmte Bitfehler bahnweise aufzuzeichnen. Ein probabilistischer Entscheidungsalgorithmus kann durch die Bahnfehlerüberwachung 1265 genutzt werden, um zu bestimmen, dass während eines Zeitraums eine statistisch bedeutende Anzahl von Bitfehlern auf einer gegebenen Bahn einer Verbindung detektiert wird. Der statistisch bedeutende Wert kann ein Schwellenbetrag von Fehlern sein, die über den Zeitraum bestimmt wurden, kann eine Rate von Fehlern sein, die eine definierte Schwellenfehlerrate für die Bahn überschreitet, unter anderen Beispielen. Der Algorithmus kann auch die Menge von Zeit, die die Bahn aktiv war (z. B. in einem L0-Zustand oder während eines Zustands mit teilweiser Breite aktiv bleibend usw.), die Anzahl von Bits, die gesendet wurden, berücksichtigen, unter anderen Faktoren beim Bestimmen, wann Fehler auf der Bahn eine Schwelle oder einen anderen akzeptablen Wert überschreiten. Basierend auf Identifizieren einer statistisch bedeutenden Menge von Bitfehlern, die auf einer gegebenen Bahn erscheinen, kann eine Bahnfehlerüberwachung 1265 bestimmen, dass die Bahn eine marginale oder fehlerhafte Bahn ist, und dies durchführen, bevor die Probleme mit dieser Bahn zu einem Fehler in der MCPL als Ganzes führen.
  • Bei Bestimmen, dass bei einer oder mehreren Bahnen einer Verbindung Probleme auftreten, kann, basierend auf statistisch bedeutenden Anzahlen von Bitfehlern, die für die Bahn aus Syndromwerten 1240 und/oder Prüfsummenvergleichswerten 1280 bestimmt wurden, eine Bahnsteuerung 1270 aufgerufen werden, um Aktionen auf der Bahn bzw. den Bahnen durchzuführen oder eine oder beide der Vorrichtungen 1205, 1210 anzuweisen, in einen Neukonfigurationszustand einzutreten, um das Problem zu beheben. Beispielsweise kann eine Bahn, die als „schlecht“ bestimmt wurde, bewirken, dass die MCPL neu zentriert und neu konfiguriert wird, um die schlechte Bahn abzustoßen und logische Bahnen neu zu unterschiedlichen physischen Bahnen der Verbindung zuzuordnen.
  • 13A-13C stellen Darstellungen von beispielhaften Bitzuordnungen auf Datenbahnen einer beispielhaften MCPL für verschiedene Typen von Daten dar. Beispielsweise kann eine beispielhafte MCPL fünfzig Datenbahnen umfassen. Einige Formen von Verkehr, die auf der MCPL gesendet wurden, können weniger als die Gesamtanzahl von bereitgestellten Bahnen verwenden. 13A stellt eine erste Bitzuordnung von beispielhaften 16-Byte-Schlitzen in einem ersten Protokoll, wie etwa IDI, dar, die über die Datenbahnen innerhalb eines 8UI-Symbols, oder Fensters, gesendet werden können. Beispielsweise können, innerhalb des definierten 8UI-Fensters, drei 16-Byte-Schlitze, einschließlich eines Header-Schlitzes, gesendet werden. Zwei Bytes von Daten verbleiben, in diesem Beispiel, die auf einer Fünfzig-Bahnen-Verbindung gesendet werden können, und diese verbleibenden zwei Bytes können für CRC-Bits (z. B. in Bahnen DATEN[0] und DATEN[1]), 16-Bit-CRC-Polynomwert 0x1f053, wie oben erörtert, genutzt werden.
  • In einem anderen Beispiel stellt 13B eine zweite beispielhafte Bitzuordnung für PCIe-Paketdaten dar, die über die fünfzig Datenbahnen einer beispielhaften MCPL gesendet wurden. Im Beispiel aus 13B können 16-Byte-Pakete (z. B. PCIe-Pakete auf Transaktionsschicht (TLP) oder Datenverbindungsschicht (DLLP)) über die MCPL gesendet werden. Rahmungszeichen können in diese Symbole eingeschlossen und verwendet werden, um den Start und das Ende jedes Pakets zu lokalisieren. In einem Beispiel von PCIe kann die im Beispiel aus 13B genutzte Rahmung die gleiche sein wie diejenigen Zeichen, die für PCIe bei 8GT/s umgesetzt sind. In einem 8UI-Fenster können drei PCIe-Pakete (z. B. Datenverbindungsschichtpakete (DLLPs) oder Transaktionsschichtpakete (TLPs)) gesendet werden, wobei die verbleibenden zwei Bytes von Bandbreite ungenutzt imnerhalb des Fensters bleiben. Wie im Beispiel aus 13A können diese zwei verbleibenden Bytes für das gleiche 16-Bit-CRC-Polynom 0x1f053 genutzt werden, das in anderen Protokollen (z. B. IDI) verwendet wird, die eine bitweise Identifizierung von Bitfehlern unter Verwendung des CRC-Syndroms ermöglichen.
  • In noch einem weiteren Beispiel, dargestellt in 13C, ist eine beispielhafte Bitzuordnung von Verbindung-zu-Verbindung-Paketen (z. B. LLP-Paketen), die über eine beispielhafte MCPL gesendet werden, gezeigt. LLPs können jeweils 4 Bytes sein, und jede LLP (z. B. LLP0, LLP1, LLP2 usw.) kann vier Mal aufeinanderfolgend gesendet werden, in Übereinstimmung mit Fehlertoleranz und Fehlerdetektion innerhalb einer beispielhaften Umsetzung. Beispielsweise kann Scheitern beim Empfangen von vier aufeinanderfolgenden identischen LLPs einen Fehler anzeigen. Zusätzlich kann, wie bei anderen Datentypen, Scheitern beim Empfangen eines GÜLTIG in einem fortlaufenden Zeitfenster, oder Symbol, ebenfalls einen Fehler anzeigen. In einigen Fällen können LLPs feste Schlitze haben. Zusätzlich können, in diesem Beispiel, ungenutzte oder „Reserve“-Bits im Bytezeitraum bewirken, dass logische 0en über restliche Bahnen gesendet werden. Diese freien Bahnen können erweitert werden, um die Übertragung des 16-Bit-CRC-Polynoms 0x1f053 zu ermöglichen, gleichzeitig Detektieren von Bitfehlern in den LLP-Paketen ermöglichend, unter anderen Beispielen. Andere beispielhafte Datentypen, oder Stromtypen, können über diese Beispiele hinaus unterstützt werden. Zusätzlich können alternative Bitzuordnungen für diese und andere Datentypen angenommen und bei der Identifizierung von Bitfehlern auf einer bahnweisen Grundlage verwendet werden. Als ein Beispiel, während einige der Beispiele Bits „von rechts nach links“, beginnend mit der am niedrigsten nummerierten Bahn (z. B. eines Clusters), zuordnen, können andere Umsetzungen (einschließlich andere Verbindungen innerhalb des gleichen Systems) Bahnen von der am höchsten nummerierten Bahn aus (oder „von links nach rechts“) zuordnen, unter anderen Beispielen.
  • In Übereinstimmung mit dem Gesagten kann bei Flitfehlern die aktuelle Flitzuordnung gespeichert oder anderweitig für die Bit-zu-Bahn-Zuordnungslogik identifizierbar gemacht werden. Dieser Zustand kann zusammen mit dem Syndrom gespeichert werden, um Software (z. B. Bit-zu-Bahn-Zuordnungslogik) zu ermöglichen, die Bahnposition des Fehlers zu decodieren. Eine Menge von möglichen Flitzuordnungen kann zur Verwendung auf einer Verbindung definiert werden. Bezug nehmend auf 14-1, 14-2, 14-3 ist eine Darstellung einer Zuordnung von aus aus Einzelbitfehlern in einem Flit resultierenden CRC-Werten berechneten Syndromwerten gezeigt. Eine solche Zuordnung kann in einer Syndromdecodiertabelle umgesetzt werden, die verwendet werden kann, um die Bahn, auf der ein gegebener Bitfehler aufgetreten ist, zu decodieren. Beispielsweise stellt die in 14-1, 14-2, 14-3 dargestellte Zuordnung die Zuordnung für Einzelbitfehler in einem 400 Bit großen (oder kleineren) Flit dar. Es versteht sich, dass die Darstellung in 14-1, 14-2, 14-3, in einigen Umsetzungen, lediglich einen Teil der Zuordnung darstellen kann, wobei zusätzliche eindeutige CRC-Syndromwerte erzeugt werden, um Syndrome zu Einzelbitfehlern in Flits und Paketen größer als 400 Bit zuzuordnen. Beispielsweise kann die Verwendung von CRC erweitert werden, um eindeutige Syndromwerte für Pakete, Flits oder Datenpakete von über 400 Bits, wie etwa für ein 1-Byte-Fenster von Daten, die über fünfzig Bahnen einer MCPL gesendet wurden, zu erzeugen.
  • Ein CRC-Polynom kann so ausgewählt werden, dass ein eindeutiger Syndromwert für jeden möglichen Einzelbitfehler im Flit vorhanden sein kann, wie in 14-1, 14-2, 14-3 dargestellt. Als ein Beispiel kann ein Syndromwert von 0xcc48 immer resultieren, in dieser Umsetzung, wenn ein Einzelbitfehler Bit 50 des Flits beeinflusst. Als eine weitere Darstellung kann ein Syndromwert, in dieser beispielhaften Umsetzung, von 0xb8d3 immer resultieren, wenn ein Einzelbitfehler Bit 229 des Flits beeinflusst, und so weiter. Erzielen einer solchen Zuordnung kann erreicht werden durch Bestimmen und Verwenden eines speziellen CRC-Polynoms, angepasst, um solche eindeutigen Werte für das spezielle Flitlayout (und Phitformate) zu erzeugen. Beispielsweise im Beispiel aus 14-1 und 14-2 kann das CRC-Polynom 0x1f053 ausgewählt werden, um eine 16-Bit-CRC zu erzeugen, die bitspezifische Fehlerdetektion ermöglicht. Mehrere andere CRC-Polynome können ebenfalls vorhanden sein für ein gegebenes Flitformat, das eindeutige Einzelbit-CRC-Syndromwerte für jeden Einzelbitfehler im Flit ermöglicht. Software kann verwendet werden, um eine Kombination von Bitfehlern zu testen, die bei einem gegebenen Flitformat entstehen können, und ferner zu bestimmen, für eine Reihe von unterschiedlichen CRC-Polynomkandidaten, welche Polynome in CRC-Syndromwerten resultierten, die für jeden unterschiedlichen Bitfehler eindeutig waren.
  • Bezug nehmend auf 15-1, 15-2 und 15-3 ist eine zweite Syndromdecodiertabelle 1500 gezeigt, die einem beispielhaften 400-Bit-Flit und zugehöriger CRC, die aus einem beispielhaften CRC-Polynom (z. B. 0x1f053) erzeugt werden, entspricht. Syndromdecodiertabelle 1500, statt zu Einzelbitfehlern zuzuordnen, ordnet Syndrome zur vollständigen Menge von Zwei-Bit-Fehlern (d. h. Fehlern in aufeinanderfolgenden Bits) zu, die in einer Menge von 400 aufeinanderfolgenden Bits auftreten können. Entsprechend kann, in einigen Umsetzungen, ein CRC-Polynom ausgewählt und verwendet werden, das in eindeutigen CRC-Syndromwerten nicht nur für jeden möglichen Einzelbitfehler auf einem Flit, sondern auch für alle möglichen Zwei-Bit-Fehler, resultiert, unter anderen Beispielen. Als ein Beispiel kann ein Syndromwert von 0x1c93 immer resultieren, in dieser Umsetzung, wenn ein Doppelbitfehler die Kombination aus Bit 228 und 229 des Flits beeinflusst. Als eine weitere Darstellung kann ein Syndromwert, in dieser beispielhaften Umsetzung, von 0xae58 immer resultieren, wenn ein Doppelbitfehler Bit 99 und 100 des Flits beeinflusst, und so weiter. Natürlich versteht es sich, dass die in 14-1, 14-2, 14-3, 15-1, 15-2, 15-3 gezeigten Beispiele spezifisch für eine beispielhafte Umsetzung sind, die dazu dient, einen 16-Bit-CRC-Wert für einen Flit aus einem beliebigen der mehreren Protokolle, die über eine MCPL gesendet werden können, bereitzustellen. Diese gleichen Prinzipien können allerdings auf andere Verbindungstechnologien angewendet werden. Ferner versteht es sich, dass einige CRC-Polynome in eindeutiger Detektion von anderen bitspezifischen Fehlern zusätzlich zu (oder als eine Alternative zu) Einzelbit- und Zwei-Bit-Fehlern und anderen Beispielen resultieren können.
  • Eine Zuordnung von Bitfehlern zu einem oder mehreren Flitbits, wie etwa durch eine Syndromdecodiertabelle umgesetzt, kann verwendet werden, um die Bitfehler zu einer oder mehreren entsprechenden Bahnen zuzuordnen, die verwendet werden, um den zugehörigen, von dem bzw. den Bitfehlern beeinflussten Flit zu senden. Beispielsweise kann ein Syndrom in einer zugehörigen Transaktion empfangen werden (z. B. von einer speziellen beteiligten Vorrichtung), bei der ein zugehöriger Bitfehler aus dem CRC-Wert eines Flits der Transaktion bestimmt wurde. Eine Bahnüberwachung kann bestimmen, ob der Syndromwert in einer aus einer Menge von Syndromdecodiertabellen (z. B. 1400, 1500) enthalten ist. Wenn dies der Fall ist, kann die korrekte Syndromdecodiertabelle verwendet werden, um die Bitnummer innerhalb des Flits zu identifizieren, die den Fehler aufweist (genau so, wie wenn mehrere Bits Fehler aufweisen würden). Wenn das Syndrom nicht in einer verfügbaren Syndromdecodiertabelle enthalten ist, kann der Fehler möglicherweise nicht zu bestimmten Bits oder Bahnen zugeordnet werden (z. B. in Fällen, bei denen mehrere, nicht zusammenhängende Bitfehler den Flit beeinflussen). In Fällen, in denen eine Tabelle identifiziert ist, die den Syndromwert enthält, können ein oder mehrere spezifische Bits als durch den Fehler beeinflusst identifiziert werden, und eine Bit-zu-Bahn-Zuordnung kann dann für das bzw. die identifizierten Bits, die einen Fehler aufweisen, bestimmt werden, um zu bestimmen, dass das fehlerhafte Bit auf einer gegebenen von mehreren Bahnen auf einer Verbindung einer Verschaltung gesendet wurde. Die Bahnnummer kann decodiert werden, beispielsweise indem zuerst der Typ der Daten bestimmt wird, in denen der Fehler detektiert wurde (z. B. aus der zugehörigen Stromkennzeichnung). Eine entsprechende Bit-zu-Bahn-Zuordnung (z. B. 13A-13C), dem Datentyp entsprechend, kann bestimmt und verwendet werden. Ferner kann die verwendete Bit-zu-Bahn-Zuordnung auch beeinflusst werden durch Bestimmen, ob irgendwelche Bahnen (vorher) an einem Anschluss zurückgezogen wurden (z. B. weil die Bahn marginal ist), der Art und Weise, in der Bahnen innerhalb eines Clusters von Bahnen zugeordnet werden, welche Bahnen des entsprechenden Clusters im Leerlauf sind, ob (und welche) Umordnungsphase angewendet wurde, und ob Bahnumkehr angewendet wurde, unter anderen beispielhaften Faktoren und Überlegungen.
  • Bezug nehmend auf 16 ist ein vereinfachtes Blockdiagramm 1600 gezeigt, zumindest einen Teil eines Systems, einschließlich einer beispielhaften Umsetzung einer MCPL, umfassend Cluster 1605-1615 von Datenbahnen, zum Umsetzen der MCPL verwendet, darstellend. Das System kann logische PHY 630 der MCPL und physische PHY 625 der MCPL umfassen. Cluster von Bahnen, wie etwa allgemeines Cluster 1620 und Phasenregelschleifencluster (PLL, Phase-Lock Loop) 1625, können verwendet werden, um Bahnen für Taktgebung und Steuerung bereitzustellen, wie etwa Bahnen, die für die Seitenband-, Strom-, Abtast- und Gültigkeitsbahnen einer MCPL, unter anderen Bahnen, verwendet werden. In einem Beispiel können die Steuerbahncluster 1605 eine oder mehrere Leerlauf-, oder ungenutzte, Bahnen umfassen. Diese Bahnen können in dem Fall verwendet werden, dass eine oder mehrere der Steuerbahnen marginal werden, wobei die marginale Steuerbahn einer der ungenutzten Bahnen neu zugeordnet wird. In ähnlicher Weise kann jedes der Cluster von Datenbahnen 1605-1615 mit einer definierten Anzahl von Bahnen versehen werden. In einigen Umsetzungen können Bahnen einer gegebenen MCPL auf Clusterbasis zugeordnet werden. Beispielsweise kann, in einem Beispiel, jedes Cluster von Datenbahnen zwanzig physische Bahnen umfassen. Wenn die MCPL fünfzig Bahnen umfassen soll, können drei Zwanzig-Bahnen-Cluster der MCPL zugeordnet werden, um fünfzig (oder tatsächlich sechzig) Bahnen bereitzustellen. Da weniger als alle der zugeordneten Cluster zur Verwendung in der MCPL zugeordnet werden, können zusätzliche ungenutzte Bahnen (z.B. 10 Bahnen) verwendet werden, wenn eine der zugeordneten Bahnen marginal wird.
  • Wie oben angemerkt kann ein CRC-Syndrom in jedes Flit von auf einer MCPL gesendeten Daten eingeschlossen sein, unabhängig vom Daten- (oder Strom-)Typ. Unter Verwendung des Syndroms können individuelle Bitfehler identifiziert und auf zugehörige physische Bahnen, die für Verwendung in der MCPL zugewiesen sind, zugeordnet werden. Nachdem eine Schwelle oder eine statisch bedeutende Menge von Bitfehlern für eine spezielle physische Bahn identifiziert ist, kann die logische PHY, ein Softwareverwaltungssystem oder eine andere Logik bestimmen, dass die spezielle Bahn marginal ist. Um einen durch diese marginale Bahn verursachten Systemfehler zu verhindern, kann die MCPL neu konfiguriert werden, ohne das System zum Einstürzen zu bringen. In einem Beispiel kann die logische Zuordnung von Bahnen weg von der marginalen Bahn hin zu einem Block von ungenutzten Bahnen in einem in der MCPL verwendeten Datenbahncluster verschoben werden. Diese Neukonfiguration der Bahnen kann eine Umleitung der in der MCPL verwendeten Bahnen verursachen, und kann umfassen, die MCPL zu veranlassen, in einen Verbindungszustand einzutreten, der die Neukonfiguration ermöglicht.
  • In einem Beispiel kann ein modifizierter Verbindungszustand und Prozess zur Neuzentrierung ermöglicht werden, und eine Seitenbandbahn kann verwendet werden, um mit den sendenden und empfangenden Vorrichtungen zu kommunizieren, um die Neukonfiguration zu organisieren. Beispielsweise kann die software- oder hardwarebasierte Bahnsteuerung das MCPL-Seitenband verwenden, um den abgesetzten Sender anzuweisen, die Verbindung neu zu konfigurieren, um zu bewirken, dass Verkehr auf jeder Bahn links (oder rechts) benachbart der marginalen Bahn weg von der marginalen Bahn umgeleitet wird. Die von der neu konfigurierten MCPL angenommene ungenutzte Bahn kann für Datenübertragung bereit sein, da sie an der ursprünglichen Zentrierung, die während MCPL-Initialisierung durchgeführt wurde, beteiligt war (z. B. einen verwürfelten „0“-Wert während des L0-Zustands transportierend), ermöglichend, dass Daten unmittelbar im Anschluss an die Neukonfiguration auf der ungenutzten Bahn gesendet werden können. Das kann ermöglichen, dass Neukonfiguration der Neuzentrierung vorangeht, unter Verwendung eines PRBS, unter anderen Effizienzen. In anderen Fällen können ungenutzte Bahnen während des L0-Datensendezustands im Leerlauf gehalten werden, um Leistung zu sparen. In diesen Fällen kann eine Neukonfiguration durchgeführt werden (erneut ohne die Verbindung zum Einstürzen zu bringen), wobei aber ein PRBS sowohl im Neukonfigurations- als auch im Neuzentrierungszustand verwendet wird.
  • Neukonfigurieren einer Verbindung zum Berücksichtigen einer identifizierten marginalen Bahn durch Umleiten eines Teils der Bahnen auf benachbarte Bahnen (und eine ungenutzte Bahn) kann den gesamten Weiterleitungsaufwand minimieren. Ein Bahnmultiplexer der umleitenden sendenden und/oder empfangenden Vorrichtungen kann das Umleiten durchführen. In einigen Umsetzungen kann der Bahnmultiplexer in Software oder in der logischen PHY 630 umgesetzt sein, während in anderen Umsetzungen der Bahnmultiplexer in Hardware der physischen PHY 625 umgesetzt sein kann. In einigen Beispielen kann der Bahnmultiplexer in anderen Multiplexern aufgehen, wie etwa einem Schleifen-Slave (Loopback Slave) und Bahnumkehrmultiplexern in der logischen PHY 630. In einigen Fällen kann der Bahnmultiplexer vorteilhaft in Software oder der logischen PHY 630 umgesetzt werden, um Komplikationen im Zusammenhang mit anderen Schaltungen zu verhindern sowie Bahncluster (z. B. allgemeines Cluster) an einigen Datenbahnenclustergrenzen zu steuern, unter anderen beispielhaften Berücksichtigungen.
  • Bezug nehmend auf 17A-B sind beispielhafte Umsetzungen einer Neukonfiguration einer Verbindung dargestellt. Beispielsweise ist in 17A ein Cluster von n Bahnen dargestellt. In diesem Beispiel werden insgesamt y+2 Bahnen im Cluster im Anschluss an die Konfiguration der MCPL (bei 1705) zugeordnet. Entsprechend werden, im Anschluss an die anfängliche Konfiguration, (logische) Bahnen, nummeriert mit 0 bis y+2, zu physischen Bahnen 0 bis x+2 zugeordnet. In diesem Beispiel werden leere Bahnen in der MCPL auf den höchstwertigen Bahnen von einem der Cluster positioniert, um die MCPL zu bilden, in diesem Fall Bahnen x+3 bis n. Fortfahrend mit diesem Beispiel kann Bahn x als marginal bestimmt werden, beispielsweise basierend auf der Detektion von wiederholten Bitfehlern, die unter Verwendung eines CRC-Syndroms zur Bahn zugeordnet wurden, wie oben beschrieben. Zur Adressierung der marginalen Bahn x können beide Vorrichtungen (z.B. 1710, 1715) auf der Verbindung in einen Neukonfigurations- (und/oder Neuzentrierungs-)Zustand eintreten und Verkehr auf einem Teil der zugeordneten Bahnen umleiten, um die marginale Bahn x außer Betrieb zu nehmen und durch eine der ungenutzten Bahnen zu ersetzen. Beispielsweise, da die leeren Bahnen den aktiven Bahnen (und der marginalen Bahn x) „folgen“, kann Neukonfiguration dazu führen, dass die Bahnzuordnungen, die der marginalen Bahn „folgen“, zu einer benachbarten physischen Bahn in Richtung der offenen Bahnen verschoben werden 1720 (wie in 1725 gezeigt). Entsprechend kann die höchstwertige zugeordnete Bahnnummer y+2 zur vorher ungenutzten physischen Bahn x+3 verschoben werden, y+1 kann zu x+2 verschoben werden, und Bahnnummer y, ursprünglich der marginalen Bahn x zugeordnet, kann zu physischer Bahn x+1 verschoben werden. Marginale Bahn x kann, im Anschluss an die Verschiebung 1720, ungenutzt gelassen werden. In einigen Fällen kann diese Neukonfigurationsänderung permanent sein, wobei Bahn x als permanent marginal und nicht nutzbar erachtet wird.
  • 17B stellt ein weiteres Beispiel einer Neukonfiguration einer Vorrichtungen 1730, 1735 verbindenden MCPL dar. In diesem Beispiel sind die Bahnnummern 0 bis y+n ursprünglich (bei 1740) zu den phyischen Bahnen x-3 bis n zugeordnet. Zusätzliche ungenutzte physische Bahnen sind in diesem Beispiel ebenfalls vorhanden, wie etwa Bahnen 0 bis x-4. In diesem Beispiel, anstatt die höchstwertigen physischen Bahnen der Verbindung zu belegen, belegen ungenutzte Bahnen die niedrigstwertigen physischen Bahnen der Verbindung (z. B. Bahnen 0 bis x-4). Erneut wird, in diesem Beispiel, physische Bahn x als marginal bestimmt, Neukonfiguration der Verbindung auslösend. Allerdings vorausgesetzt, dass die leeren Bahnen in diesem Beispiel der marginalen Bahn x „vorangehen“, werden alle der marginalen Bahn „vorangehenden“ Bahnen in die entgegengesetzte Richtung zur Verschiebung in 17A verschoben 1745, erneut in Richtung der ungenutzten Bahnen. Beispielsweise wird die Bahnnummer y von der marginalen Bahn x zu Bahn x-1 verschoben, Bahnnummer y-1 wird von physischer Bahn x-1 zu x-2 verschoben, Bahnnummer y-3 wird von Bahn x-3 zur vorher ungenutzten Bahn x-4 verschoben und so weiter (wie bei 1750 gezeigt). Entsprechend kann beim Bestimmen, wie Bahnen in einem Neukonfigurationsschritt zu verschieben und neu zuzuordnen sind, Logik den Ort von ungenutzten Bahnen in dem bzw. den Bahnclustern, die zum Umsetzen der Datenbahnen der Verbindung verwendet werden (z. B. MCPL), identifizieren und kann Bahnen von der marginalen Bahn in Richtung der leeren Bahnen verschieben, wie in den Beispielen aus 17A-17B.
  • Beispielsweise, wenn eine der aktiven Datenbahnen in einem der zugeordneten Cluster enthalten ist. Andere Fälle können eine MCPL oder ein Datenbahncluster mit einer unterschiedlichen Anzahl von Bahnen definieren, wobei entsprechende Anzahlen von Clustern einer einzelnen MCPL zugeordnet werden, und eine unterschiedliche Anzahl von ungenutzten Bahnen in einem der zugeordneten Cluster verbleibt. Unabhängig von der Umsetzung können ungenutzte Datenbahnen, die in einem zugeordneten Cluster bleiben, reserviert werden, um eine andere Datenbahn, die als marginal bestimmt wurde, neu zuzuordnen.
  • 18A-18B zeigen Flussdiagramme 1800a-b, beispielhafte Techniken zum Detektieren und Beheben von marginalen Bahnen auf einer Verschaltungsverbindung, wie etwa einer MCPL, darstellend. Beispielsweise, wie in 18A gezeigt, kann ein Flit empfangen werden 1805, wobei ein Fehlercode, wie etwa eine CRC, in diesen eingebettet ist 1805 oder zusammen mit dem Flit von Daten auf einer Verbindung gesendet wird. Alternativ können Fehler durch andere Mechanismen detektiert werden, wie etwa durch Prüfen von Parität auf der Bahn, unter anderen Beispielen. Die Verbindung kann das Senden von Daten von mehreren unterschiedlichen Typen (oder Protokollen) unter Verwendung der gleichen Verbindung zeitlich multiplexen. Der Fehlercode kann verwendet werden (z. B. durch die empfangende Vorrichtung), um einen oder mehrere Bitfehler zu detektieren 1810. Beispielsweise kann der Fehlercode die Erzeugung eines zugehörigen Syndroms ermöglichen, was anzeigen kann, bei welchen Bits des Flits Fehler aufgetreten sind. Die spezifischen Bitfehler können der zum Senden des fehlerhaften Bits verwendeten bestimmten Bahn der Verbindung zugeordnet werden 1815. Zuordnen von Bitfehlern zu Bahnen kann darauf basieren, welches Protokoll auf das Flit angewendet wird, wobei unterschiedliche Protokolle potenziell Bits unterschiedlich zu Bahnen zuordnen. Der detektierte Bitfehler kann mit der bestimmten Bahn verknüpft werden 1820 und kann verwendet werden, um Bahnen zu detektieren, die marginal sind (z. B. basierend darauf, dass eine höhere als die durchschnittliche Anzahl von Bitfehlern auf der bestimmten Bahn auftritt).
  • Bezug nehmend auf 18B kann eine bestimmte Bahn als marginal bestimmt werden 1830. Die Bestimmung 1830 kann basieren auf, beispielsweise, der Detektion von mehreren auf der bestimmten Bahn auftretenden Bitfehlern, gemäß der Technik, die im Beispiel aus 18A beschrieben wurde. Bestimmen 1830, dass eine Bahn marginal ist, kann Neukonfiguration der Verbindung einleiten, um Daten zumindest einer leeren, oder ungenutzten, Bahn neu zuzuordnen, um die marginale Bahn außer Betrieb zu nehmen. Dies kann erreicht werden, beispielsweise, durch Identifizieren 1835 einer leeren Bahn in einem Cluster von Bahnen, die zum Bilden der Verbindung verwendet werden. Eine Menge von zusammenhängenden Bahnen kann zwischen der marginalen Bahn und der leeren Bahn vorhanden sein. In einigen Fällen kann die leere Bahn die erste aus einer Spanne von leeren Bahnen im Cluster sein. Neukonfiguration 1840 und Neuzuordnung der Bahnen kann Verschieben der Zuordnung jeder Bahn in der Menge, einschließlich der marginalen Bahn, hin zu der leeren und weg von der marginalen physischen Bahn beinhalten. Daher sind Daten für jede Bahn in der Menge, im Anschluss an Neukonfiguration 1840, auf der physischen Bahn benachbart zu ihrer ursprünglich zugeordneten physischen Bahn zu senden (in Richtung der leeren Bahnen). Eine der leeren Bahnen wird mittels der Verschiebung als eine zugeordnete Bahn in der Verbindung übernommen, und die marginale Bahn wird unzugeordnet gelassen. Bahnen der Verbindung, die nicht in der Menge enthalten sind, bleiben wie ursprünglich zugeordnet. Diese Neukonfiguration 1840 kann stattfinden, während das System aktiv ist, beispielsweise durch Übergehen in einen Neukonfigurationsverbindungszustand, wie etwa einen Zentrierungszustand, und Datenübertragung kann im Anschluss an die Neukonfiguration 1840 auf den neu zugeordneten Bahnen automatisch wieder aufgenommen werden 1845.
  • Es ist anzumerken, dass die oben beschriebenen Einrichtungen, Verfahren und Systeme in jeder/jedem beliebigen elektronischen Vorrichtung oder System umgesetzt werden können, wie zuvor erwähnt. Als spezifische Darstellungen bieten die folgenden Figuren beispielhafte Systeme zum Nutzen der Erfindung wie hier beschrieben. Wenn die folgenden Systeme ausführlicher beschrieben werden, wird eine Anzahl von unterschiedlichen Verbindungen offenbart, beschrieben und von der obigen Diskussion wieder aufgegriffen. Und wie offensichtlich ist, können die oben beschriebenen Fortschritte auf jede beliebige dieser Verbindungen, Strukturen oder Architekturen angewendet werden.
  • Jetzt Bezug nehmend auf 19 ist eine beispielhafte Umsetzung eines Systems 1900 gezeigt, in Übereinstimmung mit einer beispielhaften Ausführungsform. Wie in 19 gezeigt, ist Mehrprozessorsystem 1900 ein Punkt-zu-Punkt-Verbindungssystem und umfasst einen ersten Prozessor 1970 und einen zweiten Prozessor 1980, die über eine Punkt-zu-Punkt-Verbindung 1950 gekoppelt sind. Jeder der Prozessoren 1970 und 1980 kann eine gewisse Version eines Prozessors sein. In einer Ausführungsform sind 1952 und 1954 Teil einer seriellen, kohärenten Punkt-zu-Punkt-Verbindungsstruktur, wie etwa einer Hochleistungsarchitektur. Als ein Ergebnis kann die Erfindung innerhalb der QPI-Architektur umgesetzt werden.
  • Während mit nur zwei Prozessoren 1970, 1980 gezeigt, versteht es sich, dass der Schutzumfang der vorliegenden Erfindung nicht so beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Prozessoren 1970 und 1980 sind als integrierte Speichersteuerungseinheiten 1972 bzw. 1982 umfassend gezeigt. Prozessor 1970 umfasst auch als Teil seiner Bussteuerungseinheiten Punkt-zu-Punkt-Schnittstellen (P-P) 1976 und 1978; in ähnlicher Weise umfasst der zweite Prozessor 1980 P-P-Schnittstellen 1986 und 1988. Prozessoren 1970, 1980 können Informationen über eine Punkt-zu-Punkt-Schnittstelle (P-P) 1950 unter Verwendung von P-P-Schnittstellenschaltungen 1978, 1988 austauschen. Wie in 19 gezeigt, koppeln IMCs 1972 und 1982 die Prozessoren mit jeweiligen Speichern, insbesondere einem Speicher 1932 und einem Speicher 1934, die Teile eines lokal mit den jeweiligen Prozessoren verbundenen Hauptspeichers sein können.
  • Prozessoren 1970, 1980 tauschen jeweils Informationen mit einem Chipsatz 1990 über individuelle P-P-Schnittstellen 1952, 1954 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1976, 1994, 1986, 1998 aus. Chipsatz 1990 tauscht auch Informationen mit einer Hochleistungsgrafikschaltung 1938 über eine Schnittstellenschaltung 1992 entlang einer Hochleistungsgrafikverbindung 1939 aus.
  • Ein gemeinsam genutzter Cache (nicht gezeigt) kann in jedem Prozessor oder außerhalb beider Prozessoren enthalten sein und dennoch mit den Prozessoren über eine P-P-Verbindung verbunden sein, sodass die lokalen Cacheinformationen jedes Prozessors oder beider Prozessoren in dem gemeinsam genutzten Cache gespeichert werden können, wenn ein Prozessor in einen Niedrigleistungsmodus mit niedriger Leistung versetzt wird.
  • Chipsatz 1990 kann mit einem ersten Bus 1916 über eine Schnittstelle 1996 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1916 ein peripherer Komponentenverbindungsbus (PCI, Peripheral Component Interconnect) oder ein Bus, wie etwa ein PCI-Express-Bus oder ein anderer E/A-Verbindungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Erfindung nicht so beschränkt ist.
  • Wie in 19 gezeigt sind verschiedene E/A-Vorrichtungen 1914 mit dem ersten Bus 1916 gekoppelt, zusammen mit einer Busbrücke 1918, die den ersten Bus 1916 mit einem zweiten Bus 1920 koppelt. In einer Ausführungsform umfasst der zweite Bus 1920 einen Bus mit niedriger Pinzahl (LPC, Low Pin Count). Verschiedene Vorrichtungen sind mit dem zweiten Bus 1920 gekoppelt, einschließlich beispielsweise einer Tastatur und/oder einer Maus 1922, Kommunikationsvorrichtungen 1927 und einer Speichereinheit 1928, wie etwa ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die, in einer Ausführungsform, häufig Befehle/Code und Daten 1930 umfasst. Ferner ist ein Audio-E/A 1924 mit dem zweiten Bus 1920 gekoppelt gezeigt. Es ist anzumerken, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Verbindungsarchitekturen variieren. Beispielsweise kann anstelle der Punkt-zu-Punkt-Architektur aus 19 ein System einen Multi-Drop-Bus oder eine andere derartige Architektur umsetzen.
  • Während die vorliegende Erfindung im Hinblick auf eine beschränkte Anzahl von Ausführungsformen beschrieben wurde, sind für Fachleute zahlreiche Modifikationen und Variationen davon ersichtlich. Es ist beabsichtigt, dass die beigefügten Ansprüche all solche Modifikationen und Variationen abdecken, die in den wahren Geist und Schutzumfang dieser vorliegenden Erfindung fallen.
  • Eine Konzeption kann verschiedene Phasen durchlaufen, von der Erstellung über die Simulation bis zur Fertigung. Daten, die eine Konzeption darstellen, können die Konzeption auf eine Vielzahl von Weisen darstellen. Zuerst kann, da es für Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt werden. Zusätzlich kann ein Schaltungsniveaumodell mit Logik und/oder Transistorgattern bei einigen Phasen des Konzeptionsprozesses produziert werden. Ferner erreichen die meisten Konzeptionen, bei einer gewissen Phase, ein Niveau von Daten, die physische Positionierung von verschiedenen Vorrichtungen im Hardwaremodell darstellend. In dem Fall, wo herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die die Anwesenheit oder Abwesenheit von verschiedenen Merkmalen auf unterschiedlichen Maskenschichten für Masken angeben, die zum Herstellen der integrierten Schaltung verwendet werden. In jeder beliebigen Darstellung der Konzeption können die Daten in beliebiger Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Speicher, wie etwa eine Platte, kann das maschinenlesbare Medium zum Speichern von Informationen sein, die übertragen werden über modulierte oder anderweitig erzeugte optische oder elektrische Wellen zum Übertragen solcher Informationen. Wenn eine elektrische Trägerwelle, den Code oder die Konzeption anzeigend oder transportierend, gesendet wird, wird in dem Maße, in dem Kopieren, Puffern oder erneutes Senden des elektrischen Signals durchgeführt wird, eine neue Kopie erzeugt. Daher kann ein Kommunikationsanbieter oder Netzwerkbetreiber einen Artikel, wie etwa in einer Trägerwelle, Techniken von Ausführungsformen der vorliegenden Erfindung verkörpernd, codierte Informationen, auf einem materiellen, maschinenlesbaren Medium, zumindest vorübergehend, speichern.
  • Ein Modul, wie hier verwendet, bezieht sich auf jede beliebige Kombination aus Hardware, Software und/oder Firmware. Als ein Beispiel umfasst ein Modul Hardware, wie etwa eine Mikrosteuerung, verknüpft mit einem nichtflüchtigen Medium zum Speichern von Code, angepasst, um von der Mikrosteuerung ausgeführt zu werden. Daher bezieht sich Bezugnahme auf ein Modul, in einer Ausführungsform, auf die Hardware, die spezifisch ausgelegt ist, um den auf einem nichtflüchtigen Medium zu haltenden Code zu erkennen und/oder auszuführen. Ferner bezieht sich, in einer anderen Ausführungsform, Verwenden eines Moduls auf das nichtflüchtige Medium, einschließlich des Codes, der spezifisch angepasst ist, um durch die Mikrosteuerung ausgeführt zu werden, um vorbestimmte Vorgänge durchzuführen. Und wie geschlossen werden kann, kann sich, in noch einer weiteren Ausführungsform, der Begriff Modul (in diesem Beispiel) auf die Kombination der Mikrosteuerung und des nichtflüchtigen Mediums beziehen. Häufig ist der Fall, dass Modulgrenzen, die als getrennt dargestellt werden, gewöhnlich variieren oder potenziell überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination daraus gemeinsam nutzen, dabei potenziell etwas unabhängige Hardware, Software oder Firmware zurückhaltend. In einer Ausführungsform umfasst Verwenden des Begriffs Logik Hardware, wie etwa Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Verwenden der Phrase „dazu ausgelegt“, in einer Ausführungsform, bezieht sich auf Anordnen, Zusammenstellen, Fertigen, Anbieten zum Verkauf, Importieren und/oder Konzipieren einer Einrichtung, Hardware, Logik oder eines Elements zum Durchführen einer speziellen oder bestimmten Aufgabe. In diesem Beispiel ist eine Einrichtung oder ein Element davon, die bzw. das nicht arbeitet, immer noch „dazu ausgelegt“, eine spezielle Aufgabe durchzuführen, wenn sie bzw. es konzipiert, gekoppelt und/oder verbunden ist, um die spezielle Aufgabe durchzuführen. Als ein rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Aber ein Logikgatter, „dazu ausgelegt“, ein Aktivierungssignal für einen Takt bereitzustellen, umfasst nicht jedes potenzielle Logikgatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das in einer gewissen Weise gekoppelt ist, dass während des Betriebs der Ausgang 1 oder 0 dazu dient, den Takt zu aktivieren. Es ist erneut anzumerken, dass Verwenden des Begriffs „dazu ausgelegt“ keinen Betrieb erfordert, sondern stattdessen auf den latenten Zustand einer Einrichtung, Hardware und/oder eines Elements fokussiert, wobei in dem latenten Zustand die Einrichtung, die Hardware und/oder das Element dazu konzipiert ist, eine bestimmte Aufgabe durchzuführen, wenn die Einrichtung, Hardware und/oder das Element in Betrieb ist.
  • Ferner bezieht sich Verwenden der Phrasen „zu“, „in der Lage zu“ und/oder „betreibbar zu“, in einer Ausführungsform, auf eine gewisse Einrichtung, Logik, Hardware und/oder ein gewisses Element, in einer solchen Weise konzipiert, um Verwenden der Einrichtung, Logik, Hardware und/oder des Elements in einer angegebenen Weise zu ermöglichen. Wie oben ist anzumerken, dass sich Verwenden von „zu“, „in der Lage zu“ oder „betreibbar zu“, in einer Ausführungsform, auf den latenten Zustand einer Einrichtung, Logik, Hardware und/oder eines Elements bezieht, wo die Einrichtung, Logik, Hardware und/oder das Element nicht in Betrieb ist, aber in solch einer Weise konzipiert ist, um Verwenden einer Einrichtung in einer angegebenen Weise zu ermöglichen.
  • Ein Wert, wie hier verwendet, umfasst eine beliebige bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird das Verwenden von Logikpegeln, Logikwerten oder logischen Werten auch als 1en und 0en bezeichnet, was einfach binäre logische Zustände darstellt. Beispielsweise bezieht sich eine 1 auf einen hohen Logikpegel, und 0 bezieht sich auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie etwa ein Transistor oder eine Flash-Zelle, in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. Allerdings wurden andere Darstellungen von Werten in Computersystemen verwendet. Beispielsweise kann die Dezimalzahl Zehn auch als ein binärer Wert von 1010 und ein hexadezimaler Buchstabe A dargestellt werden. Daher umfasst ein Wert eine beliebige Darstellung von Informationen, die in der Lage ist, in einem Computersystem gehalten zu werden.
  • Darüber hinaus können Zustände durch Werte oder durch Teile von Werten dargestellt werden. Als ein Beispiel kann ein erster Wert, wie etwa ein logischer, einen Standard- oder anfänglichen Zustand darstellen, während ein zweiter Wert, wie etwa eine logische Null, einen Nicht-Standardzustand darstellen kann. Zusätzlich beziehen sich die Begriffe „Rücksetzen“ und „Setzen“, in einer Ausführungsform, auf einen Standard- bzw. aktualisierten Wert oder Zustand. Beispielsweise umfasst ein Standardwert potenziell einen hohen logischen Wert, d. h. Rücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert umfasst, d. h. Setzen. Es ist anzumerken, dass jede beliebige Kombination von Werten genutzt werden kann, um jede beliebige Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die oben dargelegt sind, können umgesetzt werden über auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeicherte Befehle oder Code, die durch ein Verarbeitungselement ausführbar sind. Ein nichtflüchtiges maschinenzugängliches/-lesbares Medium umfasst einen beliebigen Mechanismus, der Informationen in einer durch eine Maschine, wie etwa einen Computer oder ein elektronisches System, lesbaren Form bereitstellt (d. h. speichert und/oder sendet). Beispielsweise umfasst ein nichtflüchtiges maschinenzugängliches Medium einen Direktzugriffsspeicher (RAM, Random-Access Memory), wie etwa statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die über flüchtige (ausgebreitete) Signale (z. B. Trägerwellen, Infrarotsignale, Digitalsignale) usw. empfangen wurden, die von den nichtflüchtigen Medien zu unterscheiden sind, die Informationen von daher empfangen können.
  • Befehle, die zum Programmieren von Logik verwendet werden, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers im System, wie etwa DRAM, Cache, Flash-Speicher oder anderer Speicher gespeichert werden. Ferner können die Befehle über ein Netzwerk oder mittels anderer computerlesbarer Medien verteilt werden. Daher kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer durch eine Maschine (z. B. einen Computer), lesbaren Form umfassen, ist aber nicht beschränkt auf Floppy Disks, optische Platten, Nur-Lese-Speicher mit Compact Discs (CDROMs, Read-Only Memory), und Nur-Lese-Speicher mit magnetooptischen Platten (ROMs, Read-Only Memory), Direktzugriffsspeicher (RAM, Random Access Memory), löschbaren programmierbaren Nur-Lese-Speicher (EPROM, Erasable Programmable Read-Only Memory), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM, Electrically Erasable Programmable Read-Only Memory), magnetische oder optische Karten, Flash-Speicher oder einen materiellen, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von ausgebreiteten Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) verwendet wird. Entsprechend umfasst das computerlesbare Medium einen beliebigen Typ von materiellem maschinenlesbarem Medium, das geeignet zum Speichern oder Senden von elektronischen Befehlen oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form ist.
  • Die folgenden Beispiele gehören zu Ausführungsformen in Übereinstimmung mit dieser Spezifikation. Eine oder mehrere Ausführungsformen können eine Einrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und/oder ein Verfahren zum Empfangen von ersten Daten auf mehreren Datenbahnen einer physischen Verbindung, Empfangen eines Stromsignals entsprechend den ersten Daten auf einer Strombahn, einen Typ der ersten Daten identifizierend, Identifizieren einer ersten Instanz eines Fehlerdetektionscodes eines speziellen Typs in den ersten Daten, Empfangen von zweiten Daten auf zumindest einem Teil der mehreren Datenbahnen, Empfangen eines Stromsignals entsprechend den zweiten Daten auf der Strombahn, einen Typ der zweiten Daten identifizierend, und Identifizieren einer zweiten Instanz des Fehlerdetektionscodes des speziellen Typs in den zweiten Daten bereitstellen. Die Strombahn ist eine weitere der Bahnen der physischen Verbindung und in einigen Fällen ist der Typ der zweiten Daten verschieden vom Typ der ersten Daten.
  • In einem Beispiel ist der Fehlerdetektionscode des speziellen Typs ein zyklischer Redundanzprüfungscode (CRC, Cyclic Redundancy Check).
  • In einem Beispiel basieren der CRC-Code in den ersten Daten und der CRC-Code in den ersten Daten auf einem gemeinsamen CRC-Polynom.
  • In einem Beispiel wird der Fehlerdetektionscode auf einer oder mehreren speziellen Bahnen der mehreren Bahnen in den ersten Daten gesendet, und der Fehlerdetektionscode wird auf einer oder mehreren anderen Bahnen der mehreren Bahnen in den zweiten Daten gesendet.
  • In einem Beispiel werden weniger der mehreren Bahnen verwendet, um die zweiten Daten zu senden als für die ersten Daten.
  • In einem Beispiel wird Bahnfehlerdetektionslogik bereitgestellt (in einer Hardwareschaltungsanordnung und/oder Software), um aus einem mit dem Fehlerdetektionscode entsprechend den ersten Daten verknüpften Syndrom zu bestimmen, dass ein Bitfehler in den ersten Daten vorhanden ist, um aus dem Syndrom zu bestimmen, in welchem Bit der ersten Daten der Fehler aufgetreten ist, und das Bit mit Fehler zu einer speziellen der mehreren Bahnen zuzuordnen.
  • In einem Beispiel wird der Bitfehler mit der speziellen Bahn verknüpft.
  • In einem Beispiel wird das Syndrom aus dem Fehlerdetektionscode entsprechend den ersten Daten erzeugt.
  • In einem Beispiel basiert Zuordnen des Bits mit Fehler zu einer speziellen der mehreren Bahnen auf dem Typ der ersten Daten.
  • In einem Beispiel wird eine spezielle der mehreren Bahnen als marginal identifiziert, und zumindest eine der mehreren Bahnen ist ungenutzt. Die Verbindung kann neu konfiguriert werden, um Weiterleiten von Daten auf der speziellen Bahn zu unterbrechen und die spezielle Bahn durch die zumindest eine ungenutzte Bahn zu ersetzen.
  • In einem Beispiel umfasst Neukonfigurieren der Verbindung Umleiten einer Gruppe von Bahnen in den mehreren Bahnen, um jede Bahn in der Gruppe zu einer benachbarten Bahn weg von der speziellen Bahn und hin zu der zumindest einen ungenutzten Bahn zu verschieben.
  • In einem Beispiel entspricht jeder Datentyp einem jeweiligen aus mehreren unterschiedlichen Kommunikationsprotokollen.
  • In einem Beispiel dient die Logik der physischen Schicht dazu, ein Gültigkeitssignal in Verbindung mit zumindest den ersten Daten zu empfangen, um anzuzeigen, dass die ersten Daten gültig sind.
  • In einem Beispiel dient die Logik der physischen Schicht ferner dazu, ein Datenfenster für Daten zu definieren, die auf den Datenbahnen zu senden sind, und das Datenfenster entspricht dem Gültigkeitssignal.
  • Eine oder mehrere Ausführungsformen können eine Einrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und/oder ein Verfahren bereitstellen, um einen ersten Fehlerkorrekturcode für erste Daten, die auf mehreren Datenbahnen einer physischen Verbindung zu senden sind, zu bestimmen, die ersten Daten mit dem ersten Fehlerkorrekturcode auf den mehreren Datenbahnen zu senden, einen zweiten Fehlerkorrekturcode für die zweiten Daten, die auf zumindest einem Teil der Datenbahnen der physischen Verbindung zu senden sind, zu bestimmen, und die zweiten Daten mit dem zweiten Fehlerkorrekturcode auf zumindest dem Teil der Datenbahnen zu senden. Die ersten und zweiten Daten können unterschiedlichen Typ oder unterschiedliche Protokolle haben. Der erste Fehlerkorrekturcode und der zweite Fehlerkorrekturcode können jeweils Instanzen eines gleichen Fehlerkorrekturcodetyps sein.
  • In einem Beispiel umfasst der Fehlerkorrekturcodetyp einen zyklischen Redundanzprüfungscode (CRC, Cyclic Redundancy Check), und der erste Fehlerkorrekturcode und der zweite Fehlerkorrekturcode sind jeweils Instanzen einer von einem bestimmten CRC-Polynom erzeugten CRC.
  • In einem Beispiel, wo das bestimmte CRC-Polynom dazu ausgelegt ist, Erzeugung von Syndromen aus CRC-Codes, die entsprechend dem bestimmten CRC-Polynom berechnet wurden, zu ermöglichen, und die Syndrome entsprechen jeweils einem jeweiligen Bitfehler auf einem spezifischen zugehörigen Bit in einem Flit.
  • Eine oder mehrere Ausführungsformen können eine Einrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und/oder ein Verfahren zum Identifizieren, dass eine spezielle aus mehreren Bahnen einer Verbindung marginal ist, bereitstellen, wobei zumindest eine der mehreren Bahnen ungenutzt ist. Die Verbindung wird dann neu konfiguriert, um Weiterleiten von Daten auf der speziellen Bahn zu unterbrechen und die spezielle Bahn durch die zumindest eine ungenutzte Bahn zu ersetzen, wobei Neukonfigurieren der Verbindung Umleiten von Daten jeder Bahn in einer Untermenge der mehreren Bahnen auf eine benachbarte Bahn in den mehreren Bahnen umfasst.
  • In einem Beispiel wird die spezielle Bahn basierend auf einer Zuordnung eines Bitfehlers zu der speziellen Bahn als marginal identifiziert, und der Bitfehler wird aus einem Syndromwert detektiert, der von einem in den über die Verbindung gesendeten Daten enthaltenen Fehlercode erzeugt wird.
  • In einem Beispiel wird die spezielle Bahn basierend darauf als marginal identifiziert, dass ein Schwellenbetrag von detektierten Bitfehlern zu der speziellen Bahn zugeordnet wird.
  • In einem Beispiel sind mehrere Flits aus mehreren unterschiedlichen Protokollen unter Verwendung der Verbindung zu senden.
  • Eine oder mehrere Ausführungsformen können ein System, umfassend eine Verbindung einschließlich mehrerer Bahnen, bereitstellen, wobei die mehreren Bahnen mehrere spezielle Datenbahnen, zumindest eine spezielle Gültigkeitssignalbahn und zumindest eine Stromsignalbahn umfassen, wobei die Strombahn identifiziert, welches aus mehreren unterschiedlichen Protokollen in einem zugehörigen Flit unter Verwendung der Datenbahnen zu senden ist. Das System kann ferner umfassen: eine erste Vorrichtung zum Senden von Daten über die Datenbahnen, wobei die Daten eine zyklische Redundanzprüfung (CRC, Cyclic Redundancy Check) umfassen, und eine zweite Vorrichtung, kommunikativ unter Verwendung der Verbindung mit der ersten Vorrichtung gekoppelt, wobei die zweite Vorrichtung dazu dient, Daten zu empfangen und basierend auf der CRC einen Fehler, der eine spezielle der mehreren Datenbahnen beeinflusst, zu bestimmen.
  • In einem Beispiel umfasst das System ferner eine Bahnfehlersteuerung zum Identifizieren, dass eine spezielle der mehreren Datenbahnen marginal ist, wobei zumindest eine der mehreren Datenbahnen ungenutzt ist, und Umleiten der Datenbahnen, um Verwenden der speziellen Bahn zu unterbrechen und die spezielle Bahn durch die zumindest eine ungenutzte Bahn zu ersetzen, wobei Umleiten der Datenbahnen Umleiten von Daten jeder Bahn in einer Untermenge der mehreren Datenbahnen zu einer benachbarten Bahn in den mehreren Bahnen umfasst.
  • In dieser gesamten Spezifikation bedeutet ein Bezug auf „eine Ausführungsform“, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, in Verbindung mit der Ausführungsform beschrieben, in zumindest einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich die Phrase „in einer Ausführungsform“ an verschiedenen Stellen in dieser Spezifikation nicht notwendigerweise immer auf die gleiche Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Charakteristika in einer oder mehreren Ausführungsformen in jeder geeigneten Weise kombiniert sein.
  • In der vorangehenden Spezifikation wurde eine ausführliche Beschreibung mit Bezug auf spezielle beispielhafte Ausführungsformen gegeben. Es ist, allerdings, offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Geist und Schutzumfang der Erfindung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen. Die Spezifikation und Zeichnungen sind, entsprechend, in einem veranschaulichenden Sinne zu betrachten, nicht in einem einschränkenden Sinne. Ferner bezieht sich das vorgenannte Verwenden von Ausführungsform und beispielhafter Sprache nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich auf unterschiedliche und verschiedene Ausführungsformen sowie potenziell auf die gleiche Ausführungsform beziehen.

Claims (30)

  1. Einrichtung, die Folgendes umfasst: Logik der physischen Schicht zum: Empfangen von ersten Daten auf mehreren Datenbahnen einer physischen Verbindung; Empfangen eines Stromsignals entsprechend den ersten Daten auf einer Strombahn, wobei die Strombahn eine weitere der Bahnen der physischen Verbindung ist, und wobei das den ersten Daten entsprechende Stromsignal dazu dient, einen Typ der ersten Daten zu identifizieren; Identifizieren einer ersten Instanz eines Fehlerdetektionscodes eines speziellen Typs in den ersten Daten; Empfangen von zweiten Daten auf zumindest einem Teil der mehreren Datenbahnen; Empfangen eines Stromsignals entsprechend den zweiten Daten auf der Strombahn, wobei das den zweiten Daten entsprechende Stromsignal dazu dient, einen Typ der zweiten Daten zu identifizieren, wobei der Typ der zweiten Daten verschieden von dem Typ der ersten Daten ist; und Identifizieren einer zweiten Instanz des Fehlerdetektionscodes des speziellen Typs in den zweiten Daten.
  2. Einrichtung nach Anspruch 1, wobei der Fehlerdetektionscode des speziellen Typs einen zyklischen Redundanzprüfungscode (CRC, Cyclic Redundancy Check) umfasst.
  3. Einrichtung nach Anspruch 2, wobei der CRC-Code in den ersten Daten und der CRC-Code in den ersten Daten auf einem gemeinsamen CRC-Polynom basieren.
  4. Einrichtung nach Anspruch 1, wobei der Fehlerdetektionscode auf einer oder mehreren speziellen Bahnen der mehreren Bahnen in den ersten Daten gesendet wird und der Fehlerdetektionscode auf einer oder mehreren anderen Bahnen der mehreren Bahnen in den zweiten Daten gesendet wird.
  5. Einrichtung nach Anspruch 4, wobei weniger der mehreren Bahnen verwendet werden, um die zweiten Daten zu senden, als für die ersten Daten.
  6. Einrichtung nach Anspruch 1, ferner umfassend Bahnfehlerdetektionslogik zum: Bestimmen aus einem mit dem Fehlerdetektionscode entsprechend den ersten Daten verknüpften Syndrom, dass ein Bitfehler in den ersten Daten vorhanden ist; Bestimmen aus dem Syndrom, in welchem Bit der ersten Daten der Fehler aufgetreten ist; und Zuordnen des Bits mit Fehler zu einer speziellen der mehreren Bahnen.
  7. Einrichtung nach Anspruch 6, wobei der Bitfehler mit der speziellen Bahn verknüpft werden soll.
  8. Einrichtung nach Anspruch 6, wobei das Syndrom aus dem Fehlerdetektionscode entsprechend den ersten Daten erzeugt wird.
  9. Einrichtung nach Anspruch 6, wobei Zuordnen des Bits mit Fehler zu einer speziellen der mehreren Bahnen auf dem Typ der ersten Daten basiert.
  10. Einrichtung nach Anspruch 1, wobei die Logik der physischen Schicht ferner dient zum: Identifizieren, dass eine spezielle der mehreren Bahnen marginal ist, wobei zumindest eine der mehreren Bahnen ungenutzt ist; und Neukonfigurieren der Verbindung zum Unterbrechen des Weiterleitens von Daten auf der speziellen Bahn und Ersetzen der speziellen Bahn durch die zumindest eine ungenutzte Bahn.
  11. Einrichtung nach Anspruch 10, wobei Neukonfigurieren der Verbindung Umleiten einer Gruppe von Bahnen in den mehreren Bahnen umfasst, um jede Bahn in der Gruppe zu einer benachbarten Bahn weg von der speziellen Bahn und hin zu der zumindest einen ungenutzten Bahn zu verschieben.
  12. Einrichtung nach Anspruch 1, wobei jeder Datentyp einem jeweiligen aus mehreren unterschiedlichen Kommunikationsprotokollen entspricht.
  13. Einrichtung nach Anspruch 1, wobei die Logik der physischen Schicht ferner dazu dient, ein Gültigkeitssignal in Verbindung mit zumindest den ersten Daten zu empfangen, um anzuzeigen, dass die ersten Daten gültig sind.
  14. Einrichtung nach Anspruch 13, wobei die Logik der physischen Schicht ferner dazu dient, ein Datenfenster für Daten zu definieren, die auf den Datenbahnen zu senden sind, und das Datenfenster dem Gültigkeitssignal entspricht.
  15. Einrichtung, die Folgendes umfasst: Fehlerdetektionslogik zum: Identifizieren, dass eine spezielle aus mehreren Bahnen einer Verbindung marginal ist, wobei zumindest eine der mehreren Bahnen ungenutzt ist; und Neukonfigurieren der Verbindung zum Unterbrechen des Weiterleitens von Daten auf der speziellen Bahn und Ersetzen der speziellen Bahn durch die zumindest eine ungenutzte Bahn, wobei Neukonfigurieren der Verbindung Umleiten von Daten jeder Bahn in einer Untermenge der mehreren Bahnen auf eine benachbarte Bahn in den mehreren Bahnen umfasst.
  16. Einrichtung nach Anspruch 15, wobei die spezielle Bahn basierend auf einer Zuordnung eines Bitfehlers zu der speziellen Bahn als marginal identifiziert wird, und wobei der Bitfehler aus einem Syndromwert detektiert wird, der von einem in über die Verbindung gesendeten Daten enthaltenen Fehlercode erzeugt wird.
  17. Einrichtung nach Anspruch 16, wobei die spezielle Bahn basierend darauf als marginal identifiziert wird, dass ein Schwellenbetrag von detektierten Bitfehlern zu der speziellen Bahn zugeordnet wird.
  18. Einrichtung nach Anspruch 15, wobei mehrere Flits aus mehreren unterschiedlichen Protokollen unter Verwendung der Verbindung zu senden sind.
  19. Einrichtung, die Folgendes umfasst: Logik der physischen Schicht zum: Bestimmen eines ersten Fehlerkorrekturcodes für erste Daten, die auf mehreren Datenbahnen einer physischen Verbindung zu senden sind; Senden der ersten Daten mit dem ersten Fehlerkorrekturcode auf den mehreren Datenbahnen; Bestimmen eines zweiten Fehlerkorrekturcodes für die zweiten Daten, die auf zumindest einem Teil der Datenbahnen der physischen Verbindung zu senden sind, wobei die zweiten Daten einen Typ von Daten verschieden von den ersten Daten umfassen; Senden der zweiten Daten mit dem zweiten Fehlerkorrekturcode auf zumindest dem Teil der Datenbahnen, wobei der erste Fehlerkorrekturcode und der zweite Fehlerkorrekturcode jeweils Instanzen eines gleichen Fehlerkorrekturcodetyps sind.
  20. Einrichtung nach Anspruch 19, wobei der Fehlerkorrekturcodetyp einen zyklischen Redundanzprüfungscode (CRC, Cyclic Redundancy Check) umfasst und der erste Fehlerkorrekturcode und der zweite Fehlerkorrekturcode jeweils Instanzen einer von einem bestimmten CRC-Polynom erzeugten CRC sind.
  21. Einrichtung nach Anspruch 20, wobei das bestimmte CRC-Polynom dazu ausgelegt ist, Erzeugung von Syndromen aus CRC-Codes, die entsprechend dem bestimmten CRC-Polynom berechnet wurden, zu ermöglichen, und die Syndrome jeweils einem jeweiligen Bitfehler auf einem spezifischen zugehörigen Bit in einem Flit entsprechen.
  22. Verfahren, das Folgendes umfasst: Empfangen von ersten Daten auf mehreren Datenbahnen einer physischen Verbindung; Empfangen eines Stromsignals entsprechend den ersten Daten auf einer Strombahn, wobei die Strombahn eine weitere der Bahnen der physischen Verbindung ist, und wobei das den ersten Daten entsprechende Stromsignal dazu dient, einen Typ der ersten Daten zu identifizieren; Identifizieren einer ersten Instanz eines Fehlerdetektionscodes eines speziellen Typs in den ersten Daten; Empfangen von zweiten Daten auf zumindest einem Teil der mehreren Datenbahnen; Empfangen eines Stromsignals entsprechend den zweiten Daten auf der Strombahn, wobei das den zweiten Daten entsprechende Stromsignal dazu dient, einen Typ der zweiten Daten zu identifizieren, wobei der Typ der zweiten Daten verschieden von dem Typ der ersten Daten ist; und Identifizieren einer zweiten Instanz des Fehlerdetektionscodes des speziellen Typs in den zweiten Daten.
  23. Verfahren nach Anspruch 22, das ferner Folgendes umfasst: Bestimmen aus einem mit dem Fehlerdetektionscode entsprechend den ersten Daten verknüpften Syndrom, dass ein Bitfehler in den ersten Daten vorhanden ist; Bestimmen aus dem Syndrom, in welchem Bit der ersten Daten der Fehler aufgetreten ist; und Zuordnen des Bits mit Fehler zu einer speziellen der mehreren Bahnen.
  24. System, Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 22-23 umfassend.
  25. Verfahren, das Folgendes umfasst: Identifizieren, dass eine spezielle aus mehreren Bahnen einer Verbindung marginal ist, wobei zumindest eine der mehreren Bahnen ungenutzt ist; und Neukonfigurieren der Verbindung zum Unterbrechen des Weiterleitens von Daten auf der speziellen Bahn und Ersetzen der speziellen Bahn durch die zumindest eine ungenutzte Bahn, wobei Neukonfigurieren der Verbindung Umleiten von Daten jeder Bahn in einer Untermenge der mehreren Bahnen auf eine benachbarte Bahn in den mehreren Bahnen umfasst.
  26. System, Mittel zum Durchführen des Verfahrens nach Anspruch 25 umfassend.
  27. Verfahren, das Folgendes umfasst: Bestimmen eines ersten Fehlerkorrekturcodes für erste Daten, die auf mehreren Datenbahnen einer physischen Verbindung zu senden sind; Senden der ersten Daten mit dem ersten Fehlerkorrekturcode auf den mehreren Datenbahnen; Bestimmen eines zweiten Fehlerkorrekturcodes für die zweiten Daten, die auf zumindest einem Teil der Datenbahnen der physischen Verbindung zu senden sind, wobei die zweiten Daten einen Typ von Daten verschieden von den ersten Daten umfassen; Senden der zweiten Daten mit dem zweiten Fehlerkorrekturcode auf zumindest dem Teil der Datenbahnen, wobei der erste Fehlerkorrekturcode und der zweite Fehlerkorrekturcode jeweils Instanzen eines gleichen Fehlerkorrekturcodetyps sind.
  28. System, Mittel zum Durchführen des Verfahrens nach Anspruch 27 umfassend.
  29. System, das Folgendes umfasst: eine Verbindung, umfassend mehrere Bahnen, wobei die mehreren Bahnen mehrere spezielle Datenbahnen, zumindest eine spezielle Gültigkeitssignalbahn und zumindest eine Stromsignalbahn umfassen, und wobei die Strombahn identifiziert, welches aus mehreren unterschiedlichen Protokollen in einem zugehörigen Flit unter Verwendung der Datenbahnen zu senden ist; eine erste Vorrichtung zum Senden von Daten über die Datenbahnen, wobei die Daten eine zyklische Redundanzprüfung (CRC, Cyclic Redundancy Check) enthalten sollen; und eine zweite Vorrichtung, kommunikativ unter Verwendung der Verbindung mit der ersten Vorrichtung gekoppelt, wobei die zweite Vorrichtung die Daten empfangen und basierend auf der CRC einen Fehler bestimmen soll, der eine spezifische der mehreren Datenbahnen beeinflusst.
  30. System nach Anspruch 29, ferner umfassend eine Bahnfehlersteuerung zum: Identifizieren, dass eine spezielle der mehreren Datenbahnen marginal ist, wobei zumindest eine der mehreren Datenbahnen ungenutzt ist, und Umleiten der Datenbahnen, um Verwenden der speziellen Bahn zu unterbrechen und die spezielle Bahn durch die zumindest eine ungenutzte Bahn zu ersetzen, wobei Umleiten der Datenbahnen Umleiten von Daten jeder Bahn in einer Untermenge der mehreren Datenbahnen zu einer benachbarten Bahn in den mehreren Bahnen umfasst.
DE112015006961.5T 2015-09-26 2015-09-26 Verbindungsfehlerdetektion in mehrfachchipgehäusen Pending DE112015006961T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/052509 WO2017052661A1 (en) 2015-09-26 2015-09-26 Multichip package link error detection

Publications (1)

Publication Number Publication Date
DE112015006961T5 true DE112015006961T5 (de) 2018-06-14

Family

ID=58387020

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015006961.5T Pending DE112015006961T5 (de) 2015-09-26 2015-09-26 Verbindungsfehlerdetektion in mehrfachchipgehäusen

Country Status (4)

Country Link
US (4) US10552253B2 (de)
CN (3) CN107925507B (de)
DE (1) DE112015006961T5 (de)
WO (1) WO2017052661A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925507B (zh) 2015-09-26 2021-05-11 英特尔公司 多芯片封装链路错误检测
US10528437B2 (en) 2017-06-02 2020-01-07 International Business Machines Corporation Monitoring correctable errors on a bus interface to determine whether to redirect input/output request (I/O) traffic to another bus interface
US10430264B2 (en) 2017-06-02 2019-10-01 International Business Machines Corporation Monitoring correctable errors on a bus interface to determine whether to redirect input/output (I/O) traffic from a first processing unit to a second processing unit
US10848263B2 (en) 2017-06-30 2020-11-24 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
US10637509B2 (en) 2017-06-30 2020-04-28 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
US10630424B2 (en) * 2017-06-30 2020-04-21 Silicon Motion, Inc. Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
CN109213625B (zh) * 2017-06-30 2022-02-11 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
CN109213436B (zh) * 2017-06-30 2021-08-24 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
US10387242B2 (en) 2017-08-21 2019-08-20 Qualcomm Incorporated Dynamic link error protection in memory systems
US11882024B2 (en) * 2018-06-18 2024-01-23 Cisco Technology, Inc. Application-aware links
US10642946B2 (en) * 2018-12-28 2020-05-05 Intel Corporation Modular periphery tile for integrated circuit device
CN111027103B (zh) * 2019-01-31 2023-11-10 安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备
US11232058B2 (en) * 2019-03-08 2022-01-25 Intel Corporation Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect
KR20190098097A (ko) * 2019-08-01 2019-08-21 엘지전자 주식회사 전자 제어 시스템
US11762802B2 (en) * 2019-12-05 2023-09-19 Intel Corporation Streaming fabric interface
US11698879B2 (en) 2019-12-06 2023-07-11 Intel Corporation Flexible on-die fabric interface
US20210232520A1 (en) * 2021-01-13 2021-07-29 Swadesh Choudhary Logical physical layer interface specification support for pcie 6.0, cxl 3.0, and upi 3.0 protocols
FI129675B (en) * 2020-02-11 2022-06-30 Wirepas Oy A solution for separating transmissions from different networks
US11487683B2 (en) 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip
US11734105B2 (en) * 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface
US20210119730A1 (en) * 2020-09-18 2021-04-22 Intel Corporation Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects
US11983433B2 (en) * 2020-10-29 2024-05-14 Micron Technology, Inc. Techniques for detecting a state of a bus
US11770328B2 (en) * 2021-02-08 2023-09-26 The Boeing Company Network including data integrity monitoring
TWI792732B (zh) * 2021-11-30 2023-02-11 慧榮科技股份有限公司 介面電路、記憶體控制器與用以校正介面電路內之訊號處理裝置之校正方法
US20220342840A1 (en) * 2021-12-30 2022-10-27 Intel Corporation Die-to-die interconnect
US20220327084A1 (en) * 2021-12-30 2022-10-13 Intel Corporation Die-to-die interconnect protocol layer
US20220327276A1 (en) * 2021-12-30 2022-10-13 Intel Corporation Lane repair and lane reversal implementation for die-to-die (d2d) interconnects
US20220261308A1 (en) * 2021-12-30 2022-08-18 Narasimha Lanka Valid signal for latency sensitive die-to-die (d2d) interconnects
US11765849B2 (en) 2022-02-16 2023-09-19 International Business Machines Corporation Daughter card plug detection

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7203889B2 (en) 2004-04-01 2007-04-10 Intel Corporation Error correction for memory
US7586951B2 (en) * 2004-04-27 2009-09-08 Intel Corporation Method, apparatus, and system for idle state definition for power management
KR20090019874A (ko) 2006-05-31 2009-02-25 퀄컴 인코포레이티드 다수의 식별자에 기초하여 로밍 지원을 갖는 물리층 중계기
US20080225864A1 (en) * 2007-03-16 2008-09-18 Mustapha Aissaoui Communication network routing apparatus and techniques using logical communication links
US7934033B2 (en) * 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8126509B2 (en) * 2008-08-01 2012-02-28 Mediatek Inc. Methods for handling packet-switched data transmissions by mobile station with subscriber identity cards and systems utilizing the same
US8627471B2 (en) * 2008-10-28 2014-01-07 Freescale Semiconductor, Inc. Permissions checking for data processing instructions
US8503468B2 (en) * 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
US9008244B2 (en) 2008-11-10 2015-04-14 Broadcom Corporation Method and system for a combined signal detection for physical layer communication devices
CN101459509B (zh) * 2008-12-18 2012-01-04 上海交通大学 基于新鲜性验证条件的密码协议安全性检测方法
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
CN102142987B (zh) * 2010-12-09 2014-01-08 浪潮(北京)电子信息产业有限公司 一种高速串行总线设备及其传输数据的方法
JP5300099B2 (ja) * 2011-03-23 2013-09-25 Necアクセステクニカ株式会社 ネットワーク制御装置、通信速度変更方法及びプログラム
KR101571278B1 (ko) * 2011-07-01 2015-11-24 퀄컴 인코포레이티드 시리얼 통신 시스템에서의 대기 전력 감소를 위한 시스템 및 방법
WO2012149724A1 (zh) * 2011-09-05 2012-11-08 华为技术有限公司 一种快速通道互连链路监控方法和设备及***
US9219560B2 (en) * 2011-10-25 2015-12-22 Cavium, Inc. Multi-protocol SerDes PHY apparatus
US10237018B2 (en) * 2012-03-02 2019-03-19 Lsis Co., Ltd. Communication device and communication method
JP5956688B2 (ja) * 2012-09-19 2016-07-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 拡張物理ダウンリンク制御チャネル(epdcch)メッセージをマッピングするための方法及び通信ノード
US9014091B2 (en) * 2012-09-24 2015-04-21 Intel Corporation Network architecture for dual active personae cellular mobile devices
WO2014065879A1 (en) * 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US9355058B2 (en) * 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
EP2987087A4 (de) * 2013-04-17 2016-12-28 Intel Corp Vorrichtung, verfahren und system zum betreiben einer niedrigleistungs-phy mit einem pcie-protokollstapel
JP6461959B2 (ja) * 2013-12-26 2019-01-30 インテル コーポレイション マルチチップパッケージリンク
US9628382B2 (en) * 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
CN107925507B (zh) * 2015-09-26 2021-05-11 英特尔公司 多芯片封装链路错误检测

Also Published As

Publication number Publication date
CN112612730A (zh) 2021-04-06
CN107925507A (zh) 2018-04-17
US11307928B2 (en) 2022-04-19
WO2017052661A1 (en) 2017-03-30
US20200356436A1 (en) 2020-11-12
CN112612731A (zh) 2021-04-06
US11797378B2 (en) 2023-10-24
CN107925507B (zh) 2021-05-11
US10552253B2 (en) 2020-02-04
US20180196710A1 (en) 2018-07-12
US11061761B2 (en) 2021-07-13
US20200319957A1 (en) 2020-10-08
US20220350698A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
DE112015006961T5 (de) Verbindungsfehlerdetektion in mehrfachchipgehäusen
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112013003723B4 (de) Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112010001469B4 (de) Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE102009061279B3 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE112013001661B4 (de) Apparat, verfahren und system zur bereitstellung eines konsolidierten seitenband kommunikationskanal zwischen geräten
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
DE102019108798A1 (de) Hochbandige verbindungsschicht für kohärente nachrichten
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112013007732T5 (de) PCI-Express-Erweiterungen
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112015006953T5 (de) Training einer gültigen lane
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE102009032072A1 (de) Einstellbare Senderleistung für Hochgeschwindigkeitsverbindungen mit konstanter Bitfehlerrate
DE102021121490A1 (de) Annähernde datenbusinversionstechnik für latenzempfindliche anwendungen
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE102020110873A1 (de) System, Vorrichtung und Verfahren zum Synchronisieren mehrerer virtueller Linkzustände über einen Gehäuse-Interconnect
DE112015007278B3 (de) Verfahren, System und Vorrichtung mit einer Schnittstelle zum Koppeln von integrierten Schaltungspaketen
DE112015007276B3 (de) Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R130 Divisional application to

Ref document number: 112015007303

Country of ref document: DE

Ref document number: 112015007274

Country of ref document: DE

Ref document number: 112015007275

Country of ref document: DE

R130 Divisional application to

Ref document number: 112015007303

Country of ref document: DE

Ref document number: 112015007274

Country of ref document: DE

Ref document number: 112015007275

Country of ref document: DE

R130 Divisional application to

Ref document number: 112015007303

Country of ref document: DE

Ref document number: 112015007274

Country of ref document: DE

Ref document number: 112015007275

Country of ref document: DE