DE112015007276B3 - Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe - Google Patents

Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe Download PDF

Info

Publication number
DE112015007276B3
DE112015007276B3 DE112015007276.4T DE112015007276T DE112015007276B3 DE 112015007276 B3 DE112015007276 B3 DE 112015007276B3 DE 112015007276 T DE112015007276 T DE 112015007276T DE 112015007276 B3 DE112015007276 B3 DE 112015007276B3
Authority
DE
Germany
Prior art keywords
data
mcpl
lanes
logic
package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112015007276.4T
Other languages
English (en)
Inventor
Debendra Das Sharma
Zuoguo Wu
Mahesh Wagh
Mohiuddin M. Mazumder
Venkatraman Iyer
Jeff C. Morriss
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
Priority to DE112015007276.4T priority Critical patent/DE112015007276B3/de
Application granted granted Critical
Publication of DE112015007276B3 publication Critical patent/DE112015007276B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus

Abstract

Mehrchipbaugruppe (505), umfassend:ein Substrat;einen ersten integrierten Schaltungs-, IC,-Baustein (510) der auf das Substrat gepackt ist,einen zweiten integrierten Schaltungs-, IC,-Baustein (575) der auf das Substrat gepackt ist und mit dem ersten IC-Baustein (510) unter Verwendung einer Mehrchipbaugruppenverbindung, MCPL, (520d) verbunden ist,wobei der erste IC-Baustein (510) umfasst:einen Host-Prozessor, undeine erste MCPL Schnittstelle, um den Host-Prozessor zu verbinden,wobei die erste MCPL Schnittstelle eine physikalische Schicht, PHY, umfasst, um eine physikalische Verbindung bereitzustellen, über die Daten zwischen dem ersten IC-Baustein (510) und dem zweiten IC-Baustein (575) über eine erste Mehrzahl von Datenbahnen kommuniziert werden, wobeidie PHY umfasst:einen Sender zum Senden von Daten zu dem zweiten IC-Baustein, wobei der Sender der ersten Mehrzahl von Datenbahnen zugeordnet ist,einen Empfänger zum Empfangen von Daten von dem zweiten IC-Baustein, wobei der Empfänger der ersten Mehrzahl von Datenbahnen zugeordnet ist,eine Taktrückgewinnungsschaltung (815), um ein Taktsignal von dem zweiten IC-Baustein über eine Strobe-Bahn zu erhalten,einen Phaseninterpolator, um eine Phase von eingehenden Daten einzustellen,einen Referenzspannungsgenerator (825), um einen Versatz für eine Eingangsspannung einzustellen, um eine Referenzspannung zu erzeugen, undeine oder mehrere Datenabtasteinrichtungen, um Daten für den Empfänger für jede der einen oder mehreren der ersten Mehrzahl von Datenbahnen auf Basis der Referenzspannung abzutasten,eine zweite MCPL Schnittstelle (2305), die in der Lage ist, partitioniert zu werden um zwei oder mehrere separate MCPLs (2325a; 2325b) mit Nicht-Baugruppen Vorrichtungen, einschließlich einer anderen Mehrchipbaugruppe (2340) und einer Eingangs/Ausgangs, I/O, Vorrichtung (2335), zu unterstützen,wobei die zweite MCPL Schnittstelle (2305) umfasst:eine Logik der oberen Schicht (2308a-b), um Daten von zwei oder mehreren verschiedenen Zwischenverbindungsprotokollen zu unterstützen,einen Physical Coding Sublayer, PCS, (2315)eine Mehrzahl von analogen Frontends, AFE, (2320a; 2320b) von denen jedes den zwei oder mehreren separaten MCPLs (2325a; 2325b) zugeordnet ist, wobei jede MCPL (2325a; 2325b) einen entsprechenden Block von Datenbahnen verwendet, um eine Mehrzahl von Datenbahnen zur Kommunikation von Daten bereitzustellen, einschließlich eines ersten Blocks an Datenbahnen, um eine zweite MCPL (2325a; 2325b) zu implementieren und eines zweiten Blocks an Datenbahnen, um eine dritte MCPL (2325a; 2325b) zu implementieren, undZuteilungs- und Multiplexerlogik (2310), zum Zuteilen und Multiplexen von Daten von den zwei oder mehreren verschiedenen Zwischenverbindungsprotokollen zu der zweiten MCPL (2325a; 2325b) und der dritten MCPL (2325a; 2325b).

Description

  • GEBIET
  • Diese Offenbarung betrifft eine Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe.
  • AUFGABENSTELLUNG
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine gegenüber bekannten Ansätzen verbesserte Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe bereitzustellen. Diese Aufgabe wird gelöst durch Gegenstände gemäß des unabhängigen Patentanspruchs 1. Die abhängigen Ansprüche beschreiben bevorzugte Ausführungsformen.
  • HINTERGRUND
  • Fortschritte in der Halbleiterverarbeitung und im Logikentwurf haben eine Erhöhung der Menge an Logik ermöglicht, die in integrierten Schaltungsvorrichtungen vorhanden sein kann. Als Konsequenz haben sich Computersystemkonfigurationen von einer einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren, die in individuellen integrierten Schaltungen vorhanden sind, sowie anderen Schnittstellen, die in solche Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physikalischen Prozessorbaustein, wobei der Prozessorbaustein irgendeine Anzahl von Kernen, Hardware-Threads, logischen Prozessoren, Schnittstellen, einen Arbeitsspeicher, Steuereinheitsnetzknoten usw. umfassen kann.
  • Infolge der größeren Fähigkeit, mehr Verarbeitungsleistung in kleinere Baugruppen einzufügen, haben kleinere Rechenvorrichtungen in der Popularität zugenommen. Smartphones, Tablets, ultradünne Notebooks und eine andere Benutzerausrüstung haben exponentiell zugenommen. Diese kleineren Vorrichtungen sind jedoch auf Server sowohl für die Datenspeicherung als auch komplexe Verarbeitung, die den Formfaktor überschreitet, angewiesen. Folglich hat der Bedarf auf dem Hochleistungsrechenmarkt (d. h. Serverplatz) auch zugenommen. Beispielsweise ist in modernen Servern typischerweise nicht nur ein einzelner Prozessor mit mehreren Kernen vorhanden, sondern auch mehrere physikalische Prozessoren (auch als mehrere Anschlussbuchsen bezeichnet), um die Rechenleistung zu erhöhen. Wenn jedoch die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Rechensystem zunimmt, wird die Kommunikation zwischen Anschlussbuchsen und anderen Vorrichtungen kritischer.
  • Tatsächlich sind Zwischenverbindungen von herkömmlicheren Multi-Drop-Bussen, die hauptsächlich elektrische Kommunikationen gehandhabt haben, zu voll entfalteten Zwischenverbindungsarchitekturen, die die schnelle Kommunikation erleichtern, gewachsen. Wie der Bedarf an zukünftigen Prozessoren, die mit noch höheren Raten verbrauchen, wird leider ein entsprechender Bedarf den Fähigkeiten von existierenden Zwischenverbindungsarchitekturen auferlegt.
  • Dokument US 2015/0 269 108 A1 beschreibt Techniken und Mechanismen zum Konfigurieren eines Chips einer integrierten Schaltung (IC), um einen Protokollstapel zu implementieren. In einer Ausführungsform ist eine Transaktionsschicht des IC-Chips betreibbar, um mit einer Verbindungsschicht des IC-Chips Transaktionsschichtpakete (TLPs) auszutauschen, die ein Format haben, das mit einem kompatibel ist, das in einer Peripheral Component Interconnect Express TM (PCIe TM)-Spezifikation definiert ist. Die Konfigurationsschaltung des IC-Chips sorgt für die Konfiguration eines ersten Protokollstapels einschließlich der Transaktionsschicht, der Schaltung der Verbindungsschicht und einer ersten physikalischen Schicht des IC-Chips. Die Konfigurationsschaltung stellt ferner eine alternative Konfiguration eines zweiten Protokollstapels bereit, der die Transaktionsschicht, die Schaltung der Sicherungsschicht und eine zweite physikalische Schicht des IC-Chips enthält. In einer anderen Ausführungsform unterstützt der erste Protokollstapel unsymmetrische Signalisierung zum Kommunizieren von TLP-Informationen, während der zweite Protokollstapel differenzielle Signalisierung zum Kommunizieren von TLP-Informationen unterstützt.
  • Figurenliste
    • 1 stellt eine Ausführungsform eines Rechensystems mit einer Zwischenverbindungsarchitektur dar.
    • 2 stellt eine Ausführungsform einer Zwischenverbindungsarchitektur mit einem geschichteten Stapel dar.
    • 3 stellt eine Ausführungsform einer Anforderung oder eines Pakets dar, das innerhalb einer Zwischenverbindungsarchitektur erzeugt oder empfangen werden soll.
    • 4 stellt eine Ausführungsform eines Sender- und Empfängerpaars für eine Zwischenverbindungsarchitektur dar.
    • 5A stellt eine Ausführungsform einer Mehrchipbaugruppe dar.
    • 5B stellt eine Ausführungsform einer Mehrchipbaugruppe dar, der mit mindestens einer Vorrichtung außerhalb der Baugruppe verbunden ist.
    • 6 ist ein vereinfachtes Blockdiagramm einer Mehrchipbaugruppenverbindung (MCPL).
    • 7 ist eine Darstellung einer Beispielsignalisierung auf einer Beispiel-MCPL.
    • 8 ist ein vereinfachtes Blockdiagramm, das eine Datenbahn in einer Beispiel-MCPL darstellt.
    • 9 ist ein vereinfachtes Blockdiagramm, das Beispielnebensprechaufhebungstechniken in einer Ausführungsform einer MCPL darstellt.
    • 10 ist ein vereinfachter Schaltplan, der Beispielnebensprechaufhebungskomponenten in einer Ausführungsform einer MCPL darstellt.
    • 11 ist ein vereinfachtes Blockdiagramm einer MCPL.
    • 12 ist ein vereinfachtes Blockdiagramm einer MCPL, die mit einer Logik der oberen Schicht von mehreren Protokollen unter Verwendung einer logischen PHY-Schnittstelle (LPIF) koppelt.
    • 13 ist eine Darstellung einer Beispielsignalisierung auf einer Beispiel-MCPL in Verbindung mit einer Wiederherstellung einer Verbindung.
    • 14A-14C sind Beispielbitabbildungen von Daten auf Bahnen einer Beispiel-MCPL.
    • 15 ist eine Darstellung eines Abschnitts einer Beispielverbindungszustandsmaschine.
    • 16 ist eine Darstellung eines Flusses, der einer Beispielzentrierung einer Verbindung zugeordnet ist.
    • 17 ist eine Darstellung einer Beispielverbindungszustandsmaschine.
    • 18 ist eine Darstellung einer Signalisierung, um in einen leistungsarmen Zustand einzutreten.
    • 19 ist ein Blockdiagramm, das eine Beispielkompatibilitätsprüfung einer MCPL-Senderlogik darstellt.
    • 20 ist ein Blockdiagramm, das eine Beispielkompatibilitätsprüfung einer MCPL-Empfängerlogik darstellt.
    • 21 ist ein Blockdiagramm, das eine Zwischenverbindung von zwei Kopplern unter Verwendung einer Beispiel-MCPL darstellt.
    • 22 ist ein Blockdiagramm eines Abschnitts einer Leiterplatte unter Verwendung einer Beispiel-MCPL.
    • 23A-23B sind Blockdiagramme, die eine Partitionierung einer Beispiel-MCPL-Logik darstellen.
    • 24 stellt eine Ausführungsform eines Blocks für ein Rechensystem mit mehreren Prozessoren dar.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezielle Details dargelegt, wie z. B. Beispiele von speziellen Typen von Prozessoren und Systemkonfigurationen, speziellen Hardware-Strukturen, speziellen Architektur- und Mikroarchitekturdetails, speziellen Registerkonfigurationen, speziellen Befehlstypen, speziellen Systemkomponenten, speziellen Messungen/Höhen, speziellen Prozessorpipelinestufen und eines speziellen Prozessorbetriebs usw., um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Es ist jedoch für einen Fachmann auf dem Gebiet ersichtlich, dass diese speziellen Details nicht verwendet werden müssen, um die vorliegende Erfindung auszuführen. In anderen Fällen wurden gut bekannte Komponenten oder Verfahren, wie z. B. spezielle und alternative Prozessorarchitekturen, spezielle Logikschaltungen/ein spezieller Logikcode für beschriebene Algorithmen, ein spezieller Firmwarecode, eine spezielle Zwischenverbindungsoperation, spezielle Logikkonfigurationen, spezielle Herstellungstechniken und Herstellungsmaterialien, spezielle Kompilierer-Implementierungen, ein spezieller Ausdruck von Algorithmen im Code, spezielles Abschalt- und Torsteuertechniken/Logik und andere spezielle Betriebsdetails eines Computersystems nicht im Einzelnen beschrieben, um es zu vermeiden, die vorliegende Erfindung unnötig unklar zu machen.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf die Energieeinsparung und Energieeffizienz in speziellen integrierten Schaltungen beschrieben werden können, wie z. B. in Rechenplattformen oder Mikroprozessoren, 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 auch von der besseren Energieeffizienz und Energieeinsparung profitieren können. Die offenbarten Ausführungsformen sind beispielsweise nicht auf Desktop-Computersysteme oder Ultrabooks™ begrenzt. Und können auch in anderen Vorrichtungen verwendet werden, wie z. B. in der Hand gehaltenen Vorrichtungen, Tablets, anderen dünnen Notebooks, Vorrichtungen von Systemen auf einem Chip (SOC) und eingebetteten Anwendungen. Einige Beispiele von in der Hand gehaltenen Vorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und in der Hand gehaltene PCs. Eingebettete Anwendungen umfassen typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Digitalempfänger, Netzknoten, Koppler eines weiträumigen Netzes (WAN) oder irgendein anderes System, das die nachstehend gelehrten Funktionen und Operationen durchführen kann. Die Einrichtungen, Verfahren und Systeme, die hier beschrieben werden, sind überdies nicht auf physikalische Rechenvorrichtungen begrenzt, sondern können sich auch auf Software-Optimierungen für Energieeinsparung und Energieeffizienz beziehen. Wie in der nachstehenden Beschreibung leicht ersichtlich wird, sind die Ausführungsformen von Verfahren, Einrichtungen und Systemen, die hier beschrieben werden (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon), für eine Zukunft der „grünen Technologie“ unverzichtbar, die mit Leistungserwägungen im Gleichgewicht ist.
  • Wenn Rechensysteme fortschreiten, werden die Komponenten darin komplexer. Folglich nimmt die Zwischenverbindungsarchitektur, um die Komponenten zu koppeln und zwischen diesen zu kommunizieren, auch in der Komplexität zu, um sicherzustellen, dass Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Ferner verlangen verschiedene Marktsegmente verschiedene Aspekte von Zwischenverbindungsarchitekturen, um sie an die Bedürfnisse des Markts anzupassen. Server erfordern beispielsweise eine höhere Leistung, während das mobile Ökosystem manchmal die Gesamtleistung für Leistungseinsparungen opfern kann. Dennoch ist es ein einzelner Zweck der meisten Gebilde, die höchstmögliche Leistung mit maximaler Leistungseinsparung bereitzustellen. Nachstehend wird eine Anzahl von Zwischenverbindungen erörtert, die von hier beschriebenen Aspekten der Erfindung potentiell profitieren würden.
  • Eine Zwischenverbindungsgebildearchitektur umfasst die Architektur von „Peripheral Component Interconnect (PCI) Express“ (PCIe). Ein Hauptziel von PCIe besteht darin, zu ermöglichen, dass Komponenten und Vorrichtungen von verschiedenen Verkäufern in einer offenen Architektur miteinander arbeiten, die sich über mehrere Marktsegmente erstreckt; Clients (Desktops und mobil), Server (Norm und Unternehmen) und eingebettete und Kommunikationsvorrichtungen. PCI-Express ist eine Universal-E/A-Zwischenverbindung mit hoher Leistung, die für eine breite Vielfalt von zukünftigen Rechen- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute, wie z. B. ihr Verwendungsmodell, ihre Lade-Speicher-Architektur und Software-Schnittstellen, wurden durch ihre Änderungen aufrechterhalten, wohingegen vorherige parallele Busimplementierungen durch eine stark skalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die jüngeren Versionen von PCI-Express nutzen Fortschritte in Punkt-Punkt-Zwischenverbindungen, der Technologie auf Schalterbasis und eines paketierten Protokolls, um neue Ebenen von Leistung und Merkmalen zu liefern. Leistungsmanagement, Dienstqualität (QoS), Hot-Plug/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung befinden sich unter einigen der fortschrittlichen Merkmale, die durch PCI-Express unterstützt werden.
  • Mit Bezug auf 1 ist eine Ausführungsform eines Gebildes, das aus Punkt-Punkt-Verbindungen besteht, die einen Satz von Komponenten miteinander verbinden, dargestellt. Das System 100 umfasst einen Prozessor 105 und einen Systemarbeitsspeicher 110, der mit einem Steuereinheitsnetzknoten 115 gekoppelt ist. Der Prozessor 105 umfasst irgendein Verarbeitungselement wie z. B. einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 105 ist mit dem Steuereinheitsnetzknoten 115 durch einen Vorderseitenbus (FSB) 106 gekoppelt. In einer Ausführungsform ist der FSB 106 eine serielle Punkt-Punkt-Zwischenverbindung, wie nachstehend beschrieben. In einer anderen Ausführungsform umfasst die Verbindung 106 eine serielle, differentielle Zwischenverbindungsarchitektur, die mit einer unterschiedlichen Zwischenverbindungsnorm kompatibel ist.
  • Der Systemarbeitsspeicher 110 umfasst irgendeine Arbeitsspeichervorrichtung wie z. B. einen Direktzugriffsarbeitsspeicher (RAM), einen nichtflüchtigen (NV) Arbeitsspeicher oder einen anderen Arbeitsspeicher, der für Vorrichtungen im System 100 zugänglich ist. Der Systemarbeitsspeicher 110 ist mit dem Steuereinheitsnetzknoten 115 durch die Arbeitsspeicherschnittstelle 116 gekoppelt. Beispiele einer Arbeitsspeicherschnittstelle umfassen eine Arbeitsspeicherschnittstelle mit doppelter Datenrate (DDR), eine Dualkanal-DDR-Arbeitsspeicherschnittstelle und eine Arbeitsspeicherschnittstelle eines dynamischen RAM (DRAM).
  • In einer Ausführungsform ist der Steuereinheitsnetzknoten 115 ein Stammnetzknoten, ein Stammkomplex oder eine Stammsteuereinheit in einer Zwischenverbindungshierarchie von Peripheral Component Interconnect Express (PCIe oder PCIE). Beispiele des Steuereinheitsnetzknotens 115 umfassen einen Chipsatz, einen Arbeitsspeichersteuereinheitsnetzknoten (MCH), eine Northbridge, einen Zwischenverbindungssteuereinheitsnetzknote (ICH), eine Southbridge und eine Stammsteuereinheit/einen Stammnetzknoten. Häufig bezieht sich der Begriff Chipsatz auf zwei physikalisch separate Steuereinheitsnetzknoten, d. h. einen Arbeitsspeichersteuereinheitsnetzknoten (MCH), der mit einem Zwischenverbindungssteuereinheitsnetzknoten (ICH) gekoppelt ist. Es ist zu beachten, dass aktuelle Systeme häufig den MCH mit dem Prozessor 105 integriert umfassen, während die Steuereinheit 115 mit E/A-Vorrichtungen kommunizieren soll, in einer ähnlichen Weise, wie nachstehend beschrieben. In einigen Ausführungsformen wird eine Peer-to-Peer-Leitweglenkung optional durch einen Stammkomplex 115 unterstützt.
  • Hier ist der Steuereinheitsnetzknoten 115 mit einem Koppler/einer Brücke 120 durch eine serielle Verbindung 119 gekoppelt. Eingabe/Ausgabe-Module 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, umfassen/implementieren einen geschichteten Protokollstapel, um eine Kommunikation zwischen dem Steuereinheitsnetzknoten 115 und dem Koppler 120 zu schaffen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Koppler 120 gekoppelt sein.
  • Der Koppler/die Brücke 120 leitet Pakete/Nachrichten von der Vorrichtung 125 stromaufwärts, d. h. bis zu einer Hierarchie in Richtung eines Stammkomplexes, zum Steuereinheitsnetzknoten 115 und stromabwärts, d. h. eine Hierarchie hinab weg von einer Stammsteuereinheit, vom Prozessor 105 oder Systemarbeitsspeicher 110 zur Vorrichtung 125. Der Koppler 120 wird in einer Ausführungsform als logische Anordnung von mehreren virtuellen PCI-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 umfasst irgendeine interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, wie z. B. einer E/A-Vorrichtung, einer Netzschnittstellensteuereinheit (NIC), einer Erweiterungskarte, einem Audioprozessor, einem Netzprozessor, einem Festplattenlaufwerk, einer Speichervorrichtung, einem CD/DVD-ROM, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Router, einer tragbaren Speichervorrichtung, einer Firewire-Vorrichtung, einer Vorrichtung eines universellen seriellen Busses (USB), einem Scanner und anderen Eingabe/Ausgabe-Vorrichtungen. Häufig wird in der PCIe-Fachsprache eine solche Vorrichtung als Endpunkt bezeichnet. Obwohl nicht speziell gezeigt, kann die Vorrichtung 125 eine PCIE-zu-PCI/PCI-X-Brücke umfassen, um veraltete PCI-Vorrichtungen oder solche einer anderen Version zu unterstützen. Endpunktvorrichtungen in PCIe werden häufig als veraltete, PCIe- oder integrierte Stammkomplexendpunkte klassifiziert.
  • Der Graphikbeschleuniger 130 ist auch mit dem Steuereinheitsnetzknoten 115 durch eine serielle Verbindung 132 gekoppelt. In einer Ausführungsform ist der Graphikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Koppler 120 und folglich die E/A-Vorrichtung 125 ist dann mit dem ICH gekoppelt. E/A-Module 131 und 118 sollen auch einen geschichteten Protokollstapel implementieren, um zwischen dem Graphikbeschleuniger 130 und dem Steuereinheitsnetzknoten 115 zu kommunizieren. Ähnlich zur obigen MCH-Erörterung kann eine Graphiksteuereinheit oder der Graphikbeschleuniger 130 selbst in den Prozessor 105 integriert sein.
  • Wenn man sich 2 zuwendet, ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Der geschichtete Protokollstapel 200 umfasst irgendeine Form von geschichtetem Kommunikationsstapel, wie z. B. einen „Quick Path Interconnect“-Stapel (QPI-Stapel), einen PCIe-Stapel, einen Hochleistungsrechenzwischenverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl die unmittelbar nachstehende Erörterung in Bezug auf 1-4 in Bezug auf einen PCIe-Stapel stattfindet, können dieselben Konzepte auf andere Zwischenverbindungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 200 ein PCIe-Protokollstapel mit einer Transaktionsschicht 205, einer Verbindungsschicht 210 und einer Bitübertragungsschicht 220. Eine Schnittstelle wie z. B. Schnittstellen 117, 118, 121, 122, 126 und 131 in 1 können als Kommunikationsprotollstapel 200 dargestellt werden. Die Darstellung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle, die einen Protokollstapel implementiert/umfasst, bezeichnet werden.
  • „PCI Express“ verwendet Pakete, um Informationen zwischen Komponenten zu übermitteln. Pakete werden in der Transaktionsschicht 205 und Datenverbindungsschicht 210 gebildet, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu tragen. Wenn die übertragenen Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die erforderlich sind, um Pakete auf diesen Schichten zu bearbeiten. Auf der Empfangsseite findet der umgekehrte Prozess statt und Pakete werden von ihrer Darstellung der Bitübertragungsschicht 220 in die Darstellung der Datenverbindungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form transformiert, die durch die Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 205 eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur bereitstellen, wie z. B. der Datenverbindungsschicht 210 und der Bitübertragungsschicht 220. In dieser Hinsicht ist eine primäre Verantwortung der Transaktionsschicht 205 die Zusammensetzung und Zerlegung von Paketen (d. h. Transaktionsschichtpaketen oder TLPs). Die Transaktionsschicht 205 managt typischerweise die Flussteuerung auf Kreditbasis für TLPs. PCIe implementiert geteilte Transaktionen, d. h. Transaktionen mit Anforderung und Antwort, die durch Zeit getrennt sind, was ermöglicht, dass eine Verbindung anderen Verkehr trägt, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Außerdem verwendet PCIe eine Flusssteuerung auf Kreditbasis. In diesem Schema kündigt eine Vorrichtung eine anfängliche Menge an Kredit für jeden der Empfangspuffer in der Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung wie z. B. ein Steuereinheitsnetzknoten 115 in 1 zählt die Anzahl von Krediten, die durch jedes TLP verbraucht werden. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Kreditgrenze nicht überschreitet. Beim Empfangen einer Antwort wird eine Menge an Kredit wiederhergestellt. Ein Vorteil eines Kreditschemas besteht darin, dass die Latenz der Kreditrückgabe sich nicht auf die Leistung auswirkt, vorausgesetzt, dass die Kreditgrenze nicht angetroffen wird.
  • In einer Ausführungsform umfassen vier Transaktionsadressenräume einen Konfigurationsadressenraum, einen Arbeitsspeicheradressenraum, einen Eingabe/Ausgabe-Adressenraum und einen Nachrichtenadressenraum. Arbeitsspeicherraumtransaktionen umfassen eine oder mehrere von Leseanforderungen und Schreibanforderungen, um Daten zu/von einer Arbeitsspeicher-abgebildeten Stelle zu übertragen. In einer Ausführungsform können Arbeitsspeicherraumtransaktionen zwei verschiedene Adressenformate verwenden, z. B. ein kurzes Adressenformat, wie z. B. eine 32-Bit-Adresse, oder ein langes Adressenformat, wie z. B. eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen in den Konfigurationsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtraumtransaktionen (oder einfach Nachrichten) sind definiert, um die Kommunikation zwischen PCIe-Agenten im Band zu unterstützen.
  • Daher fügt in einer Ausführungsform die Transaktionsschicht 205 Paketkopf/Nutzinformationen 206 zusammen. Das Format für die aktuellen Paketköpfe/Nutzinformationen ist in der PCIe-Spezifikation auf der PCIe-Spezifikations-Website zu finden.
  • Mit schnellem Bezug auf 3 ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. In einer Ausführungsform ist der Transaktionsdeskriptor 300 ein Mechanismus zum Tragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 300 die Identifikation von Transaktionen in einem System. Andere potentielle Verwendungen umfassen die Verfolgung von Modifikationen einer Vorgabetransaktionsordnung und Zuordnung einer Transaktion zu Kanälen.
  • Der Transaktionsdeskriptor 300 umfasst ein Feld 302 eines globalen Identifizierers, ein Attributfeld 304 und ein Kanalidentifiziererfeld 306. In dem dargestellten Beispiel ist das Feld 302 des globalen Identifizierers mit einem Feld 308 eines lokalen Transaktionsidentifizierers und einem Quellenidentifiziererfeld 310 dargestellt. In einer Ausführungsform ist der globale Transaktionsidentifizierer 302 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das Feld 308 des lokalen Transaktionsidentifizierers ein Feld, das durch einen anfordernden Agenten erzeugt wird, und es ist für alle ausstehenden Anforderungen eindeutig, die eine Vollendung für diesen anfordernden Agenten erfordern. Ferner identifiziert in diesem Beispiel der Quellenidentifizierer 310 eindeutig den anfordernden Agenten innerhalb einer PCIe-Hierarchie. Zusammen mit der Quellen-ID 310 liefert folglich das Feld 308 des lokalen Transaktionsidentifizierers eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne.
  • Das Attributfeld 304 legt Eigenschaften und Beziehungen der Transaktion fest. In dieser Hinsicht wird das Attributfeld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die die Modifikation der Vorgabebearbeitung von Transaktionen ermöglichen. In einer Ausführungsform umfasst das Attributfeld 304 ein Prioritätsfeld 312, ein Reserviert-Feld 314, ein Ordnungsfeld 316 und ein Keine-Spionage-Feld 318. Hier kann das Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das Reserviert-Attributfeld 314 wird für die Zukunft oder für die vom Verkäufer definierte Verwendung reserviert gelassen. Mögliche Verwendungsmodelle unter Verwendung von Prioritäts- oder Sicherheitsattributen können unter Verwendung des Reserviert-Attributfeldes implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 316 verwendet, um optionale Informationen bereitzustellen, die den Typ von Ordnung übermitteln, die Vorgabeordnungsregeln modifizierten kann. Gemäß einer Beispielimplementierung bezeichnet ein Ordnungsattribut von „0“, dass Vorgabeordnungsregeln gelten sollen, wobei ein Ordnungsattribut von „1“ eine gelockerte Ordnung angibt, wobei Schreibvorgänge Schreibvorgänge in derselben Richtung überholen können und Lesevollendungen Schreibvorgänge in derselben Richtung überholen können. Das Spionageattributfeld 318 wird verwendet, um zu bestimmen, ob Transaktionen ausspioniert werden. Wie gezeigt, identifiziert ein Kanal-ID-Feld 306 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 210, die auch als Datenverbindungsschicht 210 bezeichnet wird, wirkt als Zwischenstufe zwischen der Transaktionsschicht 205 und der Bitübertragungsschicht 220. In einer Ausführungsform stellt eine Verantwortung der Datenverbindungsschicht 210 einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereit. Eine Seite der Datenverbindungsschicht 210 nimmt TLPs an, die durch die Transaktionsschicht 205 zusammengesetzt werden, wendet einen Paketsequenzidentifizierer 211, d. h. eine Identifikationsnummer oder Paketnummer, an, berechnet und wendet einen Fehlerdetektionscode, d. h. CRC 212, an und schickt die modifizierten TLPs zur Bitübertragungsschicht 220 für die Übertragung über eine physikalische zu einer externen Vorrichtung.
  • Bitübertragungsschicht
  • In einer Ausführungsform umfasst die Bitübertragungsschicht 220 einen logischen Unterblock 221 und einen elektrischen Unterblock 222, um ein Paket physikalisch zu einer externen Vorrichtung zu übertragen. Hier ist der logische Unterblock 221 für die „digitalen“ Funktionen der Bitübertragungsschicht 221 verantwortlich. In dieser Hinsicht umfasst der logische Unterblock einen Sendeabschnitt, um ausgehende Informationen für die Übertragung durch den physikalischen Unterblock 222 vorzubereiten, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie zur Verbindungsschicht 210 geleitet werden.
  • Der physikalische Block 222 umfasst einen Sender und einen Empfänger. Der Sender wird durch den logischen Unterblock 221 mit Symbolen beliefert, die der Sender serialisiert und zu einer externen Vorrichtung weiter sendet. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung beliefert und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und zum logischen Unterblock 221 geliefert. In einer Ausführungsform wird ein 8b/10b-Übertragungscode verwendet, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu rahmen. Außerdem liefert der Empfänger in einem Beispiel auch einen Symboltakt, der vom ankommenden seriellen Strom zurückgewonnen wird.
  • Wie vorstehend angegeben, obwohl die Transaktionsschicht 205, die Verbindungsschicht 210 und die Bitübertragungsschicht 220 in Bezug auf eine spezielle Ausführungsform eines PCIe-Protokollstapels erörtert werden, ist ein geschichteter Protokollstapel nicht so begrenzt. Tatsächlich kann irgendein geschichtetes Protokoll enthalten sein/implementiert werden. Als Beispiel umfasst ein Port/eine Schnittstelle, die als geschichtetes Protokoll dargestellt ist: (1) eine erste Schicht, um Pakete zusammenzufügen, d. h. eine Transaktionsschicht; eine zweite Schicht, um Pakete zu sequenzieren, d. h. eine Verbindungsschicht; und eine dritte Schicht, um die Pakete zu übertragen, d. h. eine Bitübertragungsschicht. Als spezielles Beispiel wird ein übliches geschichtetes Standardschnittstellenprotokoll (CSI-Protokoll) verwendet.
  • Mit Bezug als nächstes auf 4 ist eine Ausführungsform eines seriellen PCIe-Punkt-Punkt-Gebildes dargestellt. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-Punkt-Verbindung dargestellt ist, ist eine serielle Punkt-Punkt-Verbindung nicht so begrenzt, da sie irgendeinen Übertragungspfad für die Übertragung von seriellen Daten umfasst. In der gezeigten Ausführungsform umfasst eine Basis-PCIe-Verbindung zwei differentiell angesteuerte Signalpaare mit niedriger Spannung: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Folglich umfasst die Vorrichtung 405 eine Sendelogik 406, um Daten zur Vorrichtung 410 zu senden, und eine Empfangslogik 407, um Daten von der Vorrichtung 410 zu empfangen. 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 irgendeinen Pfad zum Senden von Daten wie z. B. eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie z. B. der Vorrichtung 405 und Vorrichtung 410, wird als Verbindung, wie z. B. die Verbindung 415, bezeichnet. Eine Verbindung kann eine Bahn unterstützen - wobei jede Bahn einen Satz von differentiellen Signalpaaren darstellt (ein Paar für das Senden, ein Paar für den Empfang). Um die Bandbreite zu skalieren, kann eine Verbindung mehrere Bahnen vereinigen, die mit xN bezeichnet werden, wobei N irgendeine unterstützte Verbindungsbreite ist, wie z. B. 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differentielles Paar bezieht sich auf zwei Sendepfade wie z. B. Leitungen 416 und 417, um Differentialsignale zu senden. Wenn die Leitung 416 als Beispiel von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. eine steigende Flanke, steuert die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel an, d. h. eine fallende Flanke. Differentielle Signale demonstrieren potentiell bessere elektrische Eigenschaften, wie z. B. eine bessere Signalintegrität, d. h. Kreuzkopplung, Spannungs-Überschwingen/Unterschwingen, Rufen usw. Dies ermöglicht ein besseres Zeitsteuerfenster, das schnellere Übertragungsfrequenzen ermöglicht.
  • 5A ist ein vereinfachtes Blockdiagramm 500a, das eine Beispielmehrchipbaugruppe 505 darstellt, die zwei oder mehr Chips oder Bausteine (z. B. 510, 515) umfasst, die unter Verwendung einer Beispielmehrchipbaugruppenverbindung (MCPL) 520 kommunikativ verbunden sind. Obwohl 5 ein Beispiel von zwei (oder mehr) Bausteinen darstellt, die unter Verwendung einer Beispiel-MCPL 520 miteinander verbunden sind, sollte erkannt werden, dass die Prinzipien und Merkmale, die hier hinsichtlich Implementierungen einer MCPL beschrieben sind, auf irgendeine Zwischenverbindung oder Verbindung angewendet werden können, die einen Baustein (z. B. 520) und andere Komponenten verbindet, einschließlich der Verbindung von zwei oder mehr Bausteinen (z. B. 510, 515), der Verbindung eines Bausteins (oder Chips) mit einer anderen Komponente außerhalb des Bausteins, der Verbindung eines Bausteins mit einer anderen Vorrichtung oder einem Baustein außerhalb der Baugruppe, der Verbindung eines Bausteins mit einer BGA-Baugruppe, der Implementierung eines „Patch on Interposer“ (POINT), unter potentiell anderen Beispielen. 5B stellt beispielsweise eine Implementierung dar, in der eine MCPL von einer Zwischenverbindung in der Baugruppe (wie in 5A gezeigt) erweitert werden kann, um Verbindungen aufzunehmen, die zwei Vorrichtungen verbindet, die nicht in derselben Baugruppe enthalten sind.
  • Mit Fortführung des Beispiels von 5A kann im Allgemeinen eine Mehrchipbaugruppe (z. B. 505) eine elektronische Baugruppe sein, wobei mehrere integrierte Schaltungen (ICs), Halbleiterbausteine oder andere diskrete Komponenten (z. B. 510, 515) auf ein vereinheitlichendes Substrat (z. B. Silizium oder anders Halbleitersubstrat) gepackt sind, was die Verwendung der kombinierten Komponenten als einzelne Komponente (wie z. B. durch eine größere IC) erleichtert. In einigen Fällen können die größeren Komponenten (z. B. Bausteine 510, 515) selbst IC-Systeme wie z. B. Systeme auf einem Chip (SoC), Mehrprozessorchips oder andere Komponenten sein, die mehrere Komponenten (z. B. 525-530 und 540-545) in der Vorrichtung, beispielsweise in einem einzelnen Baustein (z. B. 510, 515), umfassen. Mehrchipbaugruppen 505 können Flexibilität zum Aufbauen von komplexen und veränderten Systemen aus potentiell mehreren diskreten Komponenten und Systemen bereitstellen. Jeder der Bausteine 510, 515 kann beispielsweise unter vielen anderen Beispielen durch zwei verschiedene Entitäten hergestellt oder anderweitig bereitgestellt werden, wobei das Siliziumsubstrat der Baugruppe 505 durch noch eine dritte Entität bereitgestellt wird. Ferner können Bausteine und andere Komponenten innerhalb einer Mehrchipbaugruppe 505 selbst Zwischenverbindungs- oder andere Kommunikationsgebilde (z. B. 535, 550) umfassen, die die Infrastruktur für die Kommunikation zwischen Komponenten (z. B. 525-530 und 540-545) innerhalb der Vorrichtung (z. B. jeweils 510, 515) bereitstellen. Die verschiedenen Komponenten und Zwischenverbindungen (z. B. 535, 550) können potentiell mehrere verschiedene Protokolle unterstützen oder verwenden. Ferner kann die Kommunikation zwischen Bausteinen (z. B. 510, 515) potentiell Transaktionen zwischen den verschiedenen Komponenten in den Bausteinen über mehrere verschiedene Protokolle umfassen. Entwurfsmechanismen, um eine Kommunikation zwischen Chips (oder Bausteinen) in einer Mehrchipbaugruppe zu schaffen, können anspruchsvoll sein, wobei herkömmliche Lösungen sehr spezialisierte, teure und für die Baugruppe spezifische Lösungen auf der Basis von speziellen Kombinationen von Komponenten (und gewünschten Transaktionen), deren Verbindung miteinander angestrebt wird, verwenden.
  • Die Beispiele, Systeme, Algorithmen, Einrichtungen, die Logik und Merkmale, die innerhalb dieser Patentbeschreibung beschrieben werden, können zumindest einige der vorstehend identifizierten Probleme angehen, einschließlich potentiell vieler anderer, der hier nicht explizit erwähnt sind. In einigen Implementierungen kann beispielsweise eine Schnittstelle mit hoher Bandbreite, geringer Leistung, geringer Latenz vorgesehen sein, um eine Host-Vorrichtung (z. B. eine CPU) oder eine andere Vorrichtung mit einem Begleitchip zu verbinden, der in derselben Baugruppe wie der Host sitzt. Eine solche Mehrchipbaugruppenverbindung (MCPL) kann mehrere Baugruppenoptionen, mehrere E/A-Protokolle sowie Merkmale von Zuverlässigkeit, Verfügbarkeit und Brauchbarkeit (RAS) unterstützen. Ferner kann die Bitübertragungsschicht (PHY) eine elektrische Schicht und eine Logikschicht umfassen und kann längere Kanallängen, einschließlich Kanallängen bis zu und in einigen Fällen über ungefähr 45 mm unterstützen. In einigen Implementierungen kann eine Beispiel-MCPL mit hohen Datenraten arbeiten, einschließlich Datenraten, die 8-10 Gb/s überschreiten.
  • In einer Beispielimplementierung einer MCPL kann eine elektrische PHY-Schicht herkömmliche Mehrkanalzwischenverbindungslösungen (z. B. Mehrkanal-DRAM-E/A) verbessern, die die Datenrate und Kanalkonfiguration beispielsweise durch eine Anzahl von Merkmalen erweitern, einschließlich als Beispiele regulierten Mittelschienenabschlusses, leistungsarmer aktiver Nebensprechaufhebung, Schaltungsredundanz, Tastverhältniskorrektor und Entzerrung pro Bit, Leitungscodierung und Senderausgleichs unter potentiell anderen Beispielen.
  • In einer Beispielimplementierung einer MCPL kann eine logische PHY-Schicht implementiert werden, die weiter beim Erweitern der Datenrate und Kanalkonfiguration unterstützen kann (z. B. Merkmale der elektrischen Schicht), während auch ermöglicht wird, dass die Zwischenverbindung mehrere Protokolle über die elektrische Schicht leitet. Solche Implementierungen können eine modulare gemeinsame Bitübertragungsschicht bereitstellen und definieren, die hinsichtlich des Protokolls agnostisch und aufgebaut ist, um mit potentiell irgendeinem existierenden oder zukünftigen Zwischenverbindungsprotokoll zu arbeiten.
  • Wenn man sich dem vereinfachten Blockdiagramm 500b zuwendet, das in 5B gezeigt ist, können zeitgemultiplexte Mehrprotokoll-MCPLs (z. B. 520a) verwendet werden, um nicht nur zwei oder mehr Komponenten oder Vorrichtungen (z. B. 510, 515) in der gleichen Baugruppe (z. B. 505) miteinander zu verbinden, sondern die (Hardware- und/oder Software-) Logik, die verwendet wird, um MCPLs zu implementieren, kann auch verwendet werden, um Vorrichtungen zu verbinden, die nicht in derselben Baugruppe angeordnet sind. Solche Verbindungen können physikalisch länger sein als jene Zwischenverbindungskomponenten in unmittelbarer Nähe innerhalb einer einzelnen Baugruppe. Als ein Beispiel kann eine Baugruppenvorrichtung 505 mit einer oder mehreren anderen Vorrichtungen (z. B. 560, 565) verbinden, die auf einer Platine 570 mit der Baugruppenvorrichtung 505 vorgesehen sind. Eine oder mehrere Schnittstellen 575 können in der Baugruppe vorgesehen sein, um als Schlitz zu wirken, durch den die Funktionalität und die Komponenten der Baugruppe 505 erweitert werden können, um zusätzliche Komponenten außerhalb der Baugruppe (z. B. 560, 565) zu integrieren. Die Schnittstelle kann eine Logik umfassen, die zu jener identisch oder ähnlich ist, die in den Komponenten in der Baugruppe verwendet wird, die MCPLs (z. B. 520a) unterstützt. Folglich können entsprechende MCPLs (z. B. 520b, 520c) vorgesehen sein, um die Schnittstelle(n) 575 mit Komponenten 565, 570 außerhalb der Baugruppe zu verbinden und zeitgemultiplexte Mehrprotokolldaten zwischen der Baugruppe 505 und den Komponenten 565, 570 zu unterstützen. In einigen Implementierungen kann (können) die Schnittstelle(n) 575 ferner mit Komponenten in der Baugruppe (z. B. 510, 515) unter Verwendung von ähnlichen Instanzen von MCPLs (z. B. 520d) unter anderen Beispielimplementierungen und Beispielarchitekturen verbunden sein.
  • Wenn man sich 6 zuwendet, ist ein vereinfachtes Blockdiagramm 600 gezeigt, das zumindest einen Abschnitt eines Systems mit einer Beispielimplementierung einer Mehrchipbaugruppenverbindung (MCPL) darstellt. Eine MCPL kann unter Verwendung von physikalischen elektrischen Verbindungen (z. B. Drähten, die als Bahnen implementiert werden) implementiert werden, die eine erste Vorrichtung 605 (z. B. einen ersten Baustein mit einer oder mehreren Unterkomponenten) mit einer zweiten Vorrichtung 610 (z. B. einem zweiten Baustein mit einer oder mehreren anderen Unterkomponenten) verbinden. In dem in der Darstellung hoher Ebene des Diagramms 600 gezeigten speziellen Beispiel können alle Signale (in den Kanälen 615, 620) unidirektional sein und Bahnen können für die Datensignale vorgesehen sein, so dass sie sowohl eine Stromaufwärts- als auch Stromabwärtsdatenübertragung aufweisen. Obwohl sich das Blockdiagramm 600 von 6 auf die erste Komponente 605 als Stromaufwärtskomponente und die zweite Komponente 610 als Stromabwärtskomponente, und physikalische Bahnen der MCPL, die beim Senden von Daten als Stromabwärtskanal 615 verwendet werden, und Bahnen, die zum Empfangen von Daten (von der Komponente 610) als Stromaufwärtskanal 620 verwendet werden, bezieht, sollte erkannt werden, dass die MCPL zwischen Vorrichtungen 605, 610 durch jede Vorrichtung verwendet werden kann, um Daten zwischen den Vorrichtungen sowohl zu senden als auch zu empfangen.
  • In einer Beispielimplementierung kann eine MCPL eine Bitübertragungsschicht (PHY) mit der elektrischen PCPL-PHY 625a,b (oder gemeinsam 625) und einer ausführbaren Logik, die die logische MCPL-PHY 630a,b (oder gemeinsam 630) implementiert, bereitstellen. Die elektrische oder physikalische PHY 625 kann die physikalische Verbindung bereitstellen, über die Daten zwischen Vorrichtungen 605, 610 übermittelt werden. Signalaufbereitungskomponenten und eine Signalaufbereitungslogik können in Verbindung mit der physikalischen PHY 625 implementiert werden, um eine hohe Datenrate und Kanalkonfigurationsfähigkeiten der Verbindung herzustellen. Für MCPLs in der Baugruppe können dicht geclusterte physikalische Verbindungen mit Längen von ungefähr 45 mm oder mehr bereitgestellt werden. Längere Längen (d. h. mehrere Male länger als Verbindungen in der Baugruppe (z. B. größer als 200 mm)) können für Verbindungen außerhalb der Baugruppe vorgesehen sein. Die logische PHY 630 kann eine Logik zum Erleichtern des Taktens, des Verbindungszustandsmanagements (z. B. für Verbindungsschichten 635a, 635b) und des Protokollmultiplexens zwischen potentiell mehreren, verschiedenen Protokollen, die für die Kommunikation über die MCPL verwendet werden, umfassen.
  • In einer Beispielimplementierung kann die physikalische PHY 625 für jeden Kanal (z. B. 615, 620) einen Satz von Datenbahnen umfassen, über die Inband-Daten gesendet werden können. In diesem speziellen Beispiel sind 50 Datenbahnen in jedem der Stromaufwärts- und Stromabwärtskanäle 615, 620 vorgesehen, obwohl irgendeine andere Anzahl von Bahnen verwendet werden kann, wie durch die Anordnungs- und Leistungseinschränkungen, gewünschten Anwendungen, Vorrichtungseinschränkungen usw. erlaubt. Jeder Kanal kann ferner eine oder mehrere zweckgebundene Bahnen für ein Strobe- oder Taktsignal für den Kanal, eine oder mehrere zweckgebundene Bahnen für ein Gültig-Signal für den Kanal, eine oder mehrere zweckgebundene Bahnen für ein Stromsignal und eine oder mehrere zweckgebundene Bahnen für ein Verbindungszustandsmaschinenmanagement- oder Seitenbandsignal umfassen. Die physikalische PHY kann ferner eine Seitenbandverbindung 640 umfassen, die in einigen Beispielen unter anderen Beispielen eine bidirektionale Verbindung für ein Steuersignal mit niedrigerer Frequenz sein kann, die verwendet wird, um Zustandsübergänge und andere Attribute der MCPL, die die Vorrichtungen 605, 610 verbindet, zu koordinieren.
  • In einigen Implementierungen können Datenbahnen als Cluster, wie z. B. Cluster von 4, 8, 16, 20 oder 24 Bahnen, vorgesehen sein. Mehrere Cluster können zugewiesen sein, um spezielle Abschnitte der MCPL zu implementieren (Z. B. Stromaufwärts- oder Stromabwärtsdatenbahnen usw.). In Fällen, in denen die Anzahl von Datenbahnen kein Vielfaches der Größe der Cluster ist, die verwendet werden, um die Datenbahnen zu implementieren (z. B. mehrere Cluster von 20 Bahnen, die kombiniert sind, um eine MCPL von 50 Bahnen zu implementieren), können die restlichen ungenutzten Bahnen (z. B. 10 zusätzliche Bahnen) zweckgebunden sein, um den dynamischen Austausch von marginalen Bahnen zu erleichtern, was ermöglicht, dass Daten einer marginalen Bahn nicht erneut unter Verwendung der freien „zusätzlichen“ Bahnen in einem Cluster geleitet werden. In einigen Implementierungen, wie z. B. MCPLs in der Baugruppe mit kleineren Längen, kann unter anderen Beispielen und Verwendungen eine Datenabtastung von Datenbahnen auf einer Basis pro Cluster vollendet werden (z. B. werden alle Bahnen in einem Cluster zusammen als einheitliches Ganzes trainiert), anstatt jede Bahn im Cluster auf einer Basis pro Bahn zu trainieren oder synchronisieren (wie es erwünscht sein kann, wenn die MCPL zwei Vorrichtungen (nicht in der Baugruppe) über längere Abstände verbindet).
  • Wie vorstehend angegeben, können mehrere Protokolle unter Verwendung einer Implementierung einer MCPL unterstützt werden. Tatsächlich können mehrere unabhängige Transaktionsschichten 650a, 650b in jeder Vorrichtung 605, 610 vorgesehen sein. Jede Vorrichtung 605, 610 kann beispielsweise unter anderem zwei oder mehr Protokolle wie z. B. PCI, PCIe, QPI, „Intel In-Die Interconnect“ (IDI) unterstützen. IDI ist ein kohärentes Protokoll, das auf dem Baustein verwendet wird, um zwischen Kernen, „Last Level Caches“ (LLCs), einem Arbeitsspeicher, einer Graphik und E/A-Steuereinheiten zu kommunizieren. Andere Protokolle können auch unterstützt werden, einschließlich des Ethernet-Protokolls, Infiniband-Protkollen und anderen Protokollen auf der Basis eines PCIe-Gebildes. Die Kombination der logischen PHY und der physikalischen PHY kann unter anderen Beispielen auch als Verbindung von Baustein zu Baustein verwendet werden, um eine Serialisierer/Entserialisierer-PHY (SerDes-PHY) (PCIe-, Ethernet-, Infiniband- oder anderer SerDes mit hoher Geschwindigkeit) auf einem Baustein mit seinen oberen Schichten, die in einem anderen Baustein implementiert werden, zu verbinden.
  • Die logische PHY 630 kann das Multiplexen zwischen diesen mehreren Protokollen auf einer MCPL unterstützen. Daten von verschiedenen Protokollen können auf definierte Zeitfenster (oder Einheitsintervalle von Daten) gemultiplext werden, was ermöglicht, dass diese verschiedenen Typen von Daten auf derselben Verbindung zeitgemultiplext werden. In einem Beispiel kann die zweckgebundene Strombahn verwendet werden, um ein codiertes Stromsignal zu aktivieren, das identifiziert, welches Protokoll für Daten gelten soll, die im Wesentlichen gleichzeitig auf den Datenbahnen des Kanals gesendet werden. Ferner kann die 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 zweckgebundene LSM_SB-Bahn des Kanals gesendet werden, zusammen mit der Seitenbandverbindung 640 verwendet werden, um Verbindungszustandsübergänge zwischen den Vorrichtungen 605, 610 zu übermitteln und auszuhandeln. Ferner können Verbindungstraining, Fehlerdetektion, Verzerrungsdetektion, Entzerrung und eine andere Funktionalität von herkömmlichen Zwischenverbindungen teilweise unter Verwendung der logischen PHY 630 ersetzt oder gesteuert werden. Gültig-Signale, die über eine oder mehrere zweckgebundene Gültig-Signalbahnen in jedem Kanal gesendet werden, können beispielsweise unter anderen Beispielen verwendet werden, um die Verbindungsaktivität zu signalisieren, eine Verzerrung, Verbindungsfehler zu detektieren und andere Merkmale zu realisieren. In dem speziellen Beispiel von 6 sind mehrere Gültig-Bahnen pro Kanal vorgesehen. Datenbahnen innerhalb eines Kanals können beispielsweise gebündelt oder geclustert werden (physikalisch und/oder logisch) und eine Gültig-Bahn kann für jeden Cluster vorgesehen sein. Ferner können in einigen Fällen unter anderen Beispielen mehrere Strobe-Bahnen vorgesehen sein, auch um ein zweckgebundenes Strobe-Signal für jeden Cluster in mehreren Datenbahn-Clustern in einem Kanal bereitzustellen.
  • Wie vorstehend angegeben, kann die logische PHY 630 verwendet werden, um Verbindungssteuersignale auszuhandeln und zu managen, die zwischen Vorrichtungen gesendet werden, die durch die MCPL verbunden sind. In einigen Implementierungen kann die logische PHY 630 eine Verbindungsschichtpaketerzeugungslogik (LLP-Erzeugungslogik) 660 umfassen, die verwendet werden kann, um Verbindungsschichtsteuernachrichten über die MCPL (d. h. im Band) zu senden. Solche Nachrichten können über Datenbahnen des Kanals gesendet werden, wobei die Strombahn identifiziert, dass die Daten eine Nachrichtenübermittlung von Verbindungsschicht zu Verbindungsschicht sind, wie z. B. Verbindungsschichtsteuerdaten, unter anderen Beispielen. Verbindungsschichtnachrichten, die unter Verwendung des LLP-Moduls 660 ermöglicht werden, können bei der Verhandlung und Durchführung des Verbindungsschichtzustandsübergangs, des Leistungsmanagements, der Rückschleife, der Deaktivierung, der Neuzentrierung, der Verwürfelung unter anderen Verbindungsschichtmerkmalen zwischen den Verbindungsschichten 635a, 635b der Vorrichtungen 605, 610 jeweils unterstützen.
  • Wenn man sich 7 zuwendet, ist ein Diagramm 700 gezeigt, das eine Beispielsignalisierung unter Verwendung eines Satzes von Bahnen (z. B. 615, 620) in einem speziellen Kanal einer Beispiel-MCPL darstellt. In dem Beispiel von 7 sind zwei Cluster von fünfundzwanzig (25) Datenbahnen für fünfzig (50) gesamte Datenbahnen im Kanal vorgesehen. Ein Teil der Bahnen ist gezeigt, während andere (z. B. DATA[4-46] und eine zweite Strobe-Signalbahn (STRB)) (z. B. als redundante Signale) der Zweckmäßigkeit halber bei der Darstellung des speziellen Beispiels weggelassen sind. Wenn sich die Bitübertragungsschicht in einem aktiven Zustand (z. B. nicht ausgeschaltet oder in einem leistungsarmen Modus (z. B. einem L1-Zustand)) befindet, können Strobe-Bahnen (STRB) mit einem synchronen Taktsignal versehen werden. In einigen Implementierungen können Daten sowohl bei steigenden als auch fallenden Flanken des Strobe gesendet werden. Jede Flanke (oder halber Taktzyklus) kann ein Einheitsintervall (UI) abgrenzen, das einen 2UI-Takt verwirklicht. In diesem Beispiel kann folglich ein Bit (z. B. 705) auf jeder Bahn gesendet werden, was ermöglicht, dass ein Byte alle 8UI (oder alle 4 Taktzyklen (STRB-Zyklen)) gesendet wird. Eine Byte-Zeitperiode 710 kann als 8UI oder Zeit zum Senden eines Bytes auf einer einzelnen der Datenbahnen (z. B. DATA[0-49]) definiert sein. In einem Beispiel kann die Byte-Zeitperiode 710 als Signalisierungsfenster definiert sein, in dem ein Stück von Daten oder irgendeiner von mehreren verschiedenen Typen gesendet werden kann. Anschließende Stücke oder Ströme von Daten können in anschließenden, definierten Fenstern gesendet werden.
  • In einigen Implementierungen kann ein Gültig-Signal, das auf einer oder mehreren zweckgebundenen Gültig-Signalkanälen (z. B. VALID0, VALID1) gesendet wird, als führender Indikator für die Empfangsvorrichtung (oder „Senke“) dienen, um zu identifizieren, wenn es aktiviert (hoch) ist, dass Daten von der Sendevorrichtung (oder „Quelle“) auf Datenbahnen (z. B. DATA[0-49]) während des unmittelbar folgenden Datensignalisierungsfensters gesendet werden, wie z. B. der Byte-Zeitperiode 710. Alternativ, wenn das Gültig-Signal niedrig ist, gibt die Quelle der Senke an, dass die Senke keine Daten auf den Datenbahnen während der folgenden Zeitperiode sendet. Wenn die logische PHY der Senke detektiert, dass das Gültig-Signal nicht aktiviert ist (z. B. auf den Bahnen VALID0 und VALID1), kann folglich die Senke irgendwelche Daten ignorieren, die auf den Datenbahnen (z. B. DATA[0-49]) während der folgenden Zeitperiode detektiert werden. Nebensprechrauschen oder andere vorübergehende Bits können beispielsweise auf einer oder mehreren der Datenbahnen erscheinen, wenn die Quelle tatsächlich keine Daten sendet. Durch ein niedriges oder nicht aktiviertes Gültig-Signal während der vorherigen Zeitperiode (z. B. der vorherigen Byte-Zeitperiode) kann die Senke bestimmen, dass die Aktivität der Datenbahnen während der folgenden Zeitperiode oder des folgenden Signalisierungsfensters ignoriert werden soll.
  • Daten, die auf jeder der Bahnen der MCPL gesendet werden, können streng auf das Strobe-Signal ausgerichtet werden. Eine Zeitperiode kann auf der Basis des Strobe definiert werden, wie z. B. eine Byte-Zeitperiode, und jede dieser Perioden kann einem definierten Fenster entsprechen, in dem Signale auf den Datenbahnen (z. B. DATA[0-49]), den Gültig-Bahnen (z. B. VALID1, VALID2) und der Strombahn (z. B. STREAM) gesendet werden sollen. Folglich kann die Ausrichtung dieser Signale die Identifikation ermöglichen, dass ein Gültig-Signal in einem vorherigen Zeitperiodenfenster für Daten im folgenden Zeitperiodenfenster gilt, und dass ein Stromsignal für Daten im gleichen Zeitperiodenfenster gilt. Das Stromsignal kann ein codiertes Signal (z. B. 1 Byte von Daten für ein Byte-Zeitperiodenfenster) sein, das codiert wird, um das Protokoll zu identifizieren, das für Daten gilt, die während desselben Zeitperiodenfensters gesendet werden. Das Training einer MCPL kann sicherstellen, dass die Abtastung der Gültig-Bahnen und entsprechenden Datenbahnen (sowie der entsprechenden Strombahnen) in Anbetracht der Abhängigkeit der Empfangslogik von der genauen Zeitsteuerung von entsprechenden Gültig-Signalen auf den Gültig-Bahnen streng ausgerichtet ist.
  • Als erläuterndes Beispiel, wie in 7 gezeigt, ist ein Byte-Zeitperiodensignalisierungsfenster definiert und Daten werden vorbereitet, um in dem Fenster gesendet zu werden. Ein Gültig wird in einem Zeitperiodenfenster n (715) aktiviert, bevor irgendwelche Daten auf die Datenbahnen DATA[0-49] während des identifizierten Fensters eingespeist werden. Im folgenden Zeitperiodenfenster n+1 (720) werden Daten auf zumindest einigen der Datenbahnen gesendet. In diesem Fall werden Daten auf allen fünfzig Datenbahnen während n+1 (720) gesendet. Da ein Gültig für die Dauer des vorangehenden Zeitperiodenfensters n (715) aktiviert wurde, kann die Senkenvorrichtung die Daten, die auf den Datenbahnen DATA[0-49] während des Zeitperiodenfensters n+1 (720) empfangen werden, validieren. Außerdem ermöglicht die führende Art des Gültig-Signals während des Zeitperiodenfensters n (715), dass die Empfangsvorrichtung sich auf die ankommenden Daten vorbereitet und diese genau abtastet. Mit Fortführung des Beispiels von 7 bleibt das Gültig-Signal aktiviert (auf VALID1 und VALID2) während der Dauer des Zeitperiodenfensters n+1 (720), was bewirkt, dass die Senkenvorrichtung die zusätzlichen Daten (desselben oder eines anderen Typs) erwartet, die über die Datenbahnen DATA[0-49] während des unmittelbar nachfolgenden Zeitperiodenfensters n+2 (725) gesendet werden. Wenn das Gültig-Signal während des Zeitperiodenfensters n+2 (725) aktiviert bleiben würde, könnte die Senkenvorrichtung ferner erwarten, zusätzliche Daten, die während eines unmittelbar nachfolgenden Zeitperiodenfensters n+3 (730) gesendet werden, zu empfangen (und verarbeiten). In dem Beispiel von 7 wird jedoch das Gültig-Signal nach dem Abschluss des Zeitperiodenfensters n+1 (720) deaktiviert und bleibt während der Dauer des Zeitperiodenfensters n+2 (725) niedrig, was der Senkenvorrichtung anzeigt, dass keine Daten während des Zeitperiodenfensters n+3 (730) gesendet werden und dass irgendwelche Bits, die auf den Datenbahnen DATA[0-49] detektiert werden, während des Zeitperiodenfensters n+3 (730) ignoriert werden sollten.
  • Wie vorstehend angegeben, können mehrere Gültig-Bahnen und Strobe-Bahnen pro Kanal unterhalten werden. Dies kann unter anderen Vorteilen beim Aufrechterhalten der Schaltungseinfachheit und Synchronisation inmitten der Cluster von relativ langen physikalischen Bahnen unterstützen, die die zwei Vorrichtungen verbinden. In einigen Implementierungen kann ein Satz von Datenbahnen in Cluster von Datenbahnen unterteilt werden. In dem Beispiel von 7 können beispielsweise die Datenbahnen DATA[0-49] in zwei Cluster mit fünfundzwanzig Bahnen unterteilt werden und jeder Cluster kann eine zweckgebundene Gültig- und Strobe-Bahn aufweisen. Die Gültig-Bahn VALID1 kann beispielsweise den Datenbahnen DATA[0-24] zugeordnet sein und die Gültig-Bahn VALID2 kann den Datenbahnen DATA[25-49] zugeordnet sein. Die Signale auf jeder „Kopie“ der Gültig- und Strobe-Bahnen für jeden Cluster können identisch sein.
  • Wie vorstehend eingeführt, können Daten auf der Strombahn STREAM verwendet werden, um der empfangenden logischen PHY anzuzeigen, welches Protokoll für entsprechende Daten gelten soll, die auf den Datenbahnen Datenbahnen DATA[0-49] gesendet werden. In dem Beispiel von 7 wird ein Stromsignal auf STREAM während desselben Zeitperiodenfensters wie Daten auf den Datenbahnen DATA[0-49] gesendet, um das Protokoll der Daten auf diesen Datenbahnen anzuzeigen. In alternativen Implementierungen kann das Stromsignal unter anderen potentiellen Modifikationen während eines vorangehenden Zeitperiodenfensters gesendet werden, wie z. B. mit entsprechenden Gültig-Signalen. Mit Fortführung des Beispiels von 7 wird jedoch ein Stromsignal 735 während des Zeitperiodenfensters n+1 (720) gesendet, das codiert ist, um das Protokoll (z. B. PCIe, PCI, IDI, QPI usw.) anzuzeigen, das für die Bits gelten soll, die über die Datenbahnen DATA[0-49] während desselben Zeitperiodenfensters n+1 (720) gesendet werden. Ebenso kann ein anderes Stromsignal 740 während des anschließenden Zeitperiodenfensters n+2 (725) gesendet werden, um das Protokoll anzuzeigen, das für die Bits gilt, die über die Datenbahnen DATA[0-49] während des Zeitperiodenfensters n+2 (725) gesendet werden, und so weiter. In einigen Fällen, wie z. B. im Beispiel von 7 (wobei beide Stromsignale 735, 740 dieselbe Codierung aufweisen, binäres FF), können Daten in sequentiellen Zeitperiodenfenstern (z. B. n+1 (720) und n+2 (725)) zum gleichen Protokoll gehören. In anderen Fällen können jedoch unter anderen Beispielen Daten in sequentiellen Zeitperiodenfenstern (z. B. n+1 (720) und n+2 (725)) von verschiedenen Transaktionen stammen, für die verschiedene Protokolle gelten sollen, und Stromsignale (z. B. 735, 740) können dementsprechend codiert werden, um die verschiedenen Protokolle zu identifizieren, die für die sequentiellen Bytes von Daten auf den Datenbahnen (z. B. DATA[0-49]) gelten (wie z. B. in dem Beispiel von 7 gezeigt).
  • In einigen Implementierungen kann ein leistungsarmer oder inaktiver Zustand für die MCPL definiert werden. Wenn beispielsweise keine Vorrichtung auf der MCPL Daten sendet, kann die Bitübertragungsschicht (elektrisch und logisch) der MCPL in einen inaktiven oder leistungsarmen Zustand gehen. In dem Beispiel von 7 befindet sich beispielsweise im Zeitperiodenfenster n-2 (745) die MCPL in einem ruhigen oder inaktiven Zustand und der Strobe ist deaktiviert, um Leistung zu sparen. Die MCPL kann aus dem leistungsarmen oder inaktiven Modus übergehen, wobei der Strobe im Zeitperiodenfenster Zeitperiodenfenster n-1 (z. B. 705) aufgeweckt wird. Der Strobe kann eine Übertragungspräambel (z. B. um beim Aufwecken und Synchronisieren jeder der Bahnen des Kanals sowie der Senkenvorrichtung zu unterstützen) vollenden, wobei das Strobe-Signal vor irgendeiner anderen Signalisierung auf den anderen Nicht-Strobe-Bahnen beginnt. Nach diesem Zeitperiodenfenster n-1 (705) kann das Gültig-Signal im Zeitperiodenfenster n (715) aktiviert werden, um die Senke zu benachrichtigen, dass Daten in folgenden Zeitperiodenfenster n+1 (720) erscheinen, wie vorstehend erörtert.
  • Die MCPL kann erneut in einen leistungsarmen oder inaktiven Zustand (z. B. einen L1-Zustand) nach der Detektion von inaktiven Bedingungen auf den Gültig-Bahnen, Datenbahnen und/oder anderen Bahnen des MCPL-Kanals eintreten. Keine Signalisierung kann beispielsweise detektiert werden beginnend im Zeitperiodenfenster n+3 (730) und künftig. Die Logik an entweder der Quellen- oder Senkenvorrichtung kann den Übergang zurück in einen leistungsarmen Zustand einleiten, der wieder (z. B. Zeitperiodenfenster n+5 (755)) dem Strobe vorangeht, der inaktiv in einen Leistungssparmodus geht, unter anderen Beispielen und Prinzipien (einschließlich der später hier erörterten).
  • Die elektrischen Eigenschaften der physikalischen PHY können eine oder mehrere von unsymmetrischer Signalisierung, weitergeleiteter Halbratentaktung, Anpassung des Zwischenverbindungskanals sowie Transportverzögerung des Senders (Quelle) und Empfängers (Senke) auf dem Chip, optimierten Schutz vor elektrostatischer Entladung (ESD), Kontaktstellenkapazität unter anderen Merkmalen umfassen. Ferner kann eine MCPL implementiert werden, um eine höhere Datenrate (z. B. die sich 16 Gb/s nähert) und höhere Energieeffizienzeigenschaften als herkömmliche Baugruppen-E/A-Lösungen zu erreichen.
  • 8 stellt einen Abschnitt eines vereinfachten Blockdiagramms 800 dar, das einen Abschnitt einer Beispiel-MCPL darstellt. Das Diagramm 800 von 8 umfasst eine Darstellung einer Beispielbahn 805 (z. B. einer Datenbahn, Gültig-Bahn oder Strombahn) und einer Takterzeugungslogik 810. Wie im Beispiel von 8 gezeigt, kann in einigen Implementierungen die Takterzeugungslogik 810 als Taktbaum implementiert werden, um das erzeugte Taktsignal zu jedem Block zu verteilen, der jede Bahn der Beispiel-MCPL implementiert, wie z. B. die Datenbahn 805. Ferner kann eine Taktrückgewinnungsschaltung 815 vorgesehen sein. In einigen Implementierungen kann anstatt der Bereitstellung einer separaten Taktrückgewinnungsschaltung für jede Bahn, in der das Taktsignal verteilt wird, wie es in zumindest einigen herkömmlichen Zwischenverbindungs-E/A-Architekturen üblich ist, eine einzelne Taktrückgewinnungsschaltung für einen Cluster von mehreren Bahnen vorgesehen sein. Wie auf die Beispielkonfigurationen in 6 und 7 angewendet, können tatsächlich eine separate Strobe-Bahn und eine begleitende Taktrückgewinnungsschaltung für jeden Cluster von fünfundzwanzig Datenbahnen vorgesehen sein.
  • Mit Fortsetzung des Beispiels von 8 können in einigen Implementierungen zumindest die Datenbahnen, Strombahnen und Gültig-Bahnen auf der Mittelschiene auf eine regulierte Spannung abgeschlossen sein, die größer ist als null (Masse). In einigen Implementierungen kann eine Mittelschienenspannung auf Vcc/2 reguliert werden. In einigen Implementierungen kann ein einzelner Spannungsregulierer 825 pro Cluster von Bahnen vorgesehen ein. Wenn er beispielsweise auf die Beispiele von 6 und 7 angewendet wird, kann unter anderen potentiellen Beispielen ein erster Spannungsregulierer für einen ersten Cluster von fünfundzwanzig Datenbahnen vorgesehen sein und ein zweiter Spannungsregulierer kann für den restlichen Cluster von fünfundzwanzig Datenbahnen vorgesehen sein. In einigen Fällen kann ein Beispielspannungsregulierer 825 unter anderen Beispielen als linearer Regulierer, Schaltkondensatorschaltung implementiert werden. In einigen Implementierungen kann der lineare Regulierer unter anderen Beispielen mit einer analogen Rückkopplungsschleife oder digitalen Rückkopplungsschleife versehen sein.
  • In einigen Implementierungen kann eine Nebensprechaufhebungsschaltungsanordnung auch für eine Beispiel-MCPL vorgesehen sein. In einigen Fällen kann die kompakte Art der langen MCPL-Drähte eine Nebensprechinterferenz zwischen Bahnen einführen. Eine Nebensprechaufhebungslogik kann implementiert werden, um diese und andere Probleme anzugehen. In einem Beispiel, das in 9-10 dargestellt ist, kann beispielsweise das Nebensprechen mit einer leistungsarmen aktiven Beispielschaltung signifikant verringert werden, wie z. B. in den Diagrammen 900 und 1000 dargestellt. Im Beispiel von 9 kann beispielsweise ein gewichtetes hochpassgefiltertes „Aggressor“-Signal zum „Opfer“-Signal (d. h. zum Signal, das unter Nebensprechinterferenz vom Aggressor leidet) addiert werden. Jedes Signal kann als Opfer von Nebensprechen von jedem anderen Signal in der Verbindung betrachtet werden und kann selbst insofern der Aggressor für das andere Signal sein, als es die Quelle für Nebensprechinterferenz ist. Ein solches Signal kann erzeugt werden und das Nebensprechen auf der Opferbahn um mehr als 50 % verringern können infolge der abgeleiteten Art von Nebensprechen auf der Verbindung. Das tiefpassgefilterte Aggressorsignal in dem Beispiel von 9 kann durch ein Hochpass-RC-Filter (z. B. durch C und R1 implementiert) erzeugt werden, das das gefilterte Signal erzeugt, das unter Verwendung einer Summierschaltung 905 (z. B. RX-Leseverstärker) addiert werden soll.
  • Implementierungen ähnlich zu der im Beispiel von 9 beschriebenen können besonders zweckmäßige Lösungen für eine Anwendung wie z. B. MCPL sein, da die Implementierung der Schaltung mit relativ geringem Aufwand realisiert werden kann, wie im Diagramm von 10 dargestellt, die ein Beispieltransistorebenendiagramm der im Beispiel von 9 gezeigten und beschriebenen Schaltung darstellt. Es sollte erkannt werden, dass die Darstellungen in 9 und 10 vereinfachte Darstellungen sind und eine tatsächliche Implementierung mehrere Kopien der in 9 und 10 dargestellten Schaltungen umfassen würde, um sich an das Netz von Nebensprechinterferenz unter und zwischen den Bahnen einer Verbindung anzupassen. Als Beispiel könnte in einer Verbindung mit drei Bahnen (z. B. Bahnen 0-2) eine Schaltungsanordnung ähnlich zu der in den Beispielen von 9 und 10 beschriebenen von der Bahn 0 zur Bahn 1, von der Bahn 0 zur Bahn 2, von der Bahn 1 zur Bahn 0, von der Bahn 1 zur Bahn 2, von der Bahn 2 zur Bahn 0, von der Bahn 2 zur Bahn 1 usw. auf der Basis der Geometrie und der Anordnung der Bahnen unter anderen Beispielen vorgesehen sein.
  • Zusätzliche Merkmale können auf der Ebene der physikalischen PHY einer Beispiel-MCPL implementiert werden. Ein Empfängerversatz kann beispielsweise einen signifikanten Fehler einführen und die E/A-Spannungstoleranz in einigen Fällen begrenzen. Eine Schaltungsredundanz kann verwendet werden, um die Empfängerempfindlichkeit zu verbessern. In einigen Implementierungen kann die Schaltungsredundanz optimiert werden, um den Standardabweichungsversatz von Datenabtasteinrichtungen anzugehen, die in der MCPL verwendet werden. Eine Beispieldatenabtasteinrichtung kann beispielsweise vorgesehen sein, die für eine Spezifikation mit drei (3) Standardabweichungsversätzen ausgelegt ist. In den Beispielen von 6 und 7, in denen beispielsweise zwei (2) Datenabtasteinrichtungen für jeden Empfänger (z. B. für jede Bahn) verwendet werden sollen, würden einhundert (100) Abtasteinrichtungen für eine MCPL mit fünfzig (50) Bahnen verwendet werden. In diesem Beispiel ist die Wahrscheinlichkeit, dass eine der Empfängerbahnen (RX-Bahnen) die Spezifikation mit drei Standardabweichungsversätzen verfehlt, 24 %. Ein Chipreferenzspannungsgenerator kann vorgesehen sein, um die Versatzobergrenze einzustellen und sich zur nächsten Datenabtasteinrichtung am Empfänger zu bewegen, wenn festgestellt wird, dass eine der anderen Datenabtasteinrichtungen die Grenze überschreitet. Wenn jedoch vier (4) Datenabtasteinrichtungen pro Empfänger (d. h. anstelle von zwei in diesem Beispiel) verwendet werden sollen, fällt der Empfänger nur aus, wenn drei von den vier Abtasteinrichtungen ausfallen. Für eine MCPL mit fünfzig Bahnen, wie in den Beispielen von 6 und 7, kann das Hinzufügen dieser zusätzlichen Schaltungsredundanz die Ausfallrate von 24 % auf weniger als 0,01 % drastisch verringern.
  • In noch anderen Beispielen kann bei sehr hohen Datenraten eine Tastverhältniskorrektur pro Bit (DCC) und Entzerrung verwendet werden, um die Grundlinie pro Cluster-DCC und Entzerrung zu steigern, um die Verbindungstoleranz zu verbessern. Anstelle der Korrektur für alle Fälle wie in herkömmlichen Lösungen kann in einigen Implementierungen eine leistungsarme digitale Implementierung verwendet werden, die die Ausreißer erfasst und korrigiert, wenn die E/A-Bahn ausfallen würde. Eine globale Abstimmung der Bahnen kann beispielsweise durchgeführt werden, um Problembahnen innerhalb des Clusters zu identifizieren. Diese Problembahnen können dann für die Abstimmung pro Bahn angezielt werden, um die hohen Datenraten zu erreichen, die durch die MCPL unterstützt werden.
  • Zusätzliche Merkmale können auch wahlweise in einigen Beispielen einer MCPL implementiert werden, um die Leistungseigenschaften der physikalischen Verbindung zu verbessern. Leitungscodierung kann beispielsweise vorgesehen sein. Obwohl Mittelschienenabschlüsse, wie z. B. vorstehend beschrieben, ermöglichen können, dass die DC-Datenbusinversion (DBI) weggelassen wird, kann AC-DBI immer noch verwendet werden, um die dynamische Leistung zu verringern. Eine kompliziertere Codierung kann auch verwendet werden, um die Differenz der 1-en und 0-en des schlimmsten Falls zu beseitigen, um beispielsweise unter anderen Beispielvorteilen die Ansteueranforderung des Mittelschienenregulierers zu verringern sowie das E/A-Schaltrauschen zu begrenzen. Ferner kann der Senderabgleich auch optional implementiert werden. Bei sehr hohen Datenraten kann beispielsweise der Einfügeverlust für einen Kanal in der Baugruppe signifikant sein. Ein Zwei-Abgriffs-Gewichts-Senderabgleich (z. B. während einer anfänglichen Einschaltsequenz durchgeführt) kann in einigen Fällen ausreichen, um unter anderem einige dieser Probleme zu mildern.
  • Wenn man sich 11 zuwendet, ist ein vereinfachtes Blockdiagramm 1100 gezeigt, das eine logische Beispiel-PHY einer Beispiel-MCPL darstellt. Eine physikalische PHY 1105 kann mit einem Baustein verbinden, der eine logische PHY 1110 und eine zusätzliche Logik umfasst, die eine Verbindungsschicht der MCPL unterstützt. Der Baustein kann in diesem Beispiel ferner eine Logik umfassen, um mehrere verschiedene Protokolle auf der MCPL zu unterstützen. In dem Beispiel von 11 kann beispielsweise eine PCIe-Logik 1115 sowie eine IDI-Logik 1120 vorgesehen sein, so dass die Bausteine unter Verwendung von entweder PCIe oder IDI über dieselbe MCPL kommunizieren können, die die zwei Bausteine verbindet, unter potentiell vielen andere Beispielen, einschließlich Beispielen, in denen mehr als zwei Protokolle oder andere Protokolle als PCIe und IDI über die MCPL unterstützt werden. Verschiedene Protokolle, die zwischen den Bausteinen unterstützt werden, können veränderliche Dienstniveaus und Merkmale bieten.
  • Die logische PHY 1110 kann eine Verbindungszustandsmaschinenmanagementlogik 1125 zum Aushandeln von Verbindungszustandsübergängen in Verbindung mit Anforderungen der Logik der oberen Schicht des Bausteins umfassen (z. B. über PCIe oder IDI empfangen). Die logische PHY 1110 kann ferner eine Verbindungstest- und Fehlersuchlogik (z. B. 1130) in einigen Implementierungen umfassen. Wie vorstehend angegeben, kann eine Beispiel-MCPL Steuersignale unterstützen, die zwischen Bausteinen über die MCPL gesendet werden, um die Protokollagnostik, hohe Leistung und Leistungseffizienzmerkmale (unter anderen Beispielmerkmalen) der MCPL zu erleichtern. Die logische PHY 1110 kann beispielsweise die Erzeugung und das Senden sowie das Empfangen und Verarbeiten von Gültig-Signalen, Stromsignalen und LSM-Seitenbandsignalen in Verbindung mit dem Senden und Empfangen von Daten über zweckgebundene Datenbahnen unterstützen, wie z. B. in den obigen Beispielen beschrieben.
  • In einigen Implementierungen können eine Multiplexlogik (z. B. 1135) und Demultiplexlogik (z. B. 1140) in der logischen PHY 1110 enthalten sein oder anderweitig für diese zugänglich sein. Die Multiplexlogik (z. B. 1135) kann beispielsweise verwendet werden, um Daten zu identifizieren (z. B. als Pakete, Nachrichten usw. verkörpert), die auf die MCPL ausgesendet werden sollen. Die Multiplexlogik 1135 kann das Protokoll identifizieren, das die Daten steuert, und ein Stromsignal erzeugen, das codiert wird, um das Protokoll zu identifizieren. In einer Beispielimplementierung kann das Stromsignal beispielsweise als Byte von zwei Hexadezimalsymbolen (z. B. IDI: FFh; PCIe: FOh; LLP: AAh; Seitenband: 55h; usw.) codiert sein und kann während desselben Fensters (z. B. eines Byte-Zeitperiodenfensters) der Daten gesendet werden, die durch das identifizierte Protokoll gesteuert werden. Ebenso kann die Demultiplexlogik 1140 verwendet werden, um eingehende Stromsignale zu interpretieren, um das Stromsignal zu decodieren und das Protokoll zu identifizieren, das für Daten gelten soll, die gleichzeitig mit dem Stromsignal auf den Datenbahnen empfangen werden. Die Demultiplexlogik 1140 kann dann die protokollspezifische Verbindungsschichtbearbeitung anwenden (oder sicherstellen) und bewirken, dass die Daten durch die entsprechende Protokolllogik (z. B. PCIe-Logik 1115 oder IDI-Logik 1120) bearbeitet werden.
  • Die logische PHY 1110 kann ferner eine Verbindungsschichtpaketlogik 1150 umfassen, die verwendet werden kann, um verschiedene Verbindungssteuerfunktionen zu bearbeiten, einschließlich Leistungsmanagementaufgaben, Rückschleife, Deaktivierung, Neuzentrierung, Verwürfelung, usw. Die LLP-Logik 1150 kann unter anderen Funktionen Nachrichten von Verbindungsschicht zu Verbindungsschicht über die MCPL erleichtern. Daten die der LLP-Signalisierung entsprechen, können auch durch ein Stromsignal identifiziert werden, das auf einer zweckgebundenen Stromsignalbahn gesendet wird, das codiert ist, um zu identifizieren, dass die Datenbahnen LLP-Daten sind. Die Multiplex- und Demultiplexlogik (z. B. 1135, 1140) kann auch verwendet werden, um die Stromsignale zu erzeugen und interpretieren, die LLP-Verkehr entsprechen, sowie bewirken, dass solcher Verkehr durch die geeignete Bausteinlogik (z. B. LLP-Logik 1150) behandelt wird. Einige Implementierungen einer MCPL können ein zweckgebundenes Seitenband (z. B. Seitenband 1155 und Unterstützungslogik) umfassen, wie z. B. einen asynchronen Seitenbandkanal und/oder einen mit niedrigerer Frequenz, unter anderen Beispielen.
  • Die Logik 1110 der logischen PHY kann ferner eine Verbindungszustandsmaschinenmanagementlogik umfassen, die eine Verbindungszustandsmanagementnachrichtenübermittlung erzeugen und über eine zweckgebundene LSM-Seitenbandbahn empfangen (und verwenden) kann. Eine LSM-Seitenbandbahn kann beispielsweise unter anderen potentiellen Beispielen verwendet werden, um einen Quittungsaustausch durchzuführen, um einen Verbindungstrainingszustand zu befördern, aus Leistungsmanagementzuständen (z. B. einem L1-Zustand) auszutreten. Das LSM-Seitenbandsignal kann insofern ein asynchrones Signal sein, als es nicht auf die Daten-, Gültig- und Stromsignale der Verbindung ausgerichtet ist, sondern stattdessen Signalisierungszustandsübergängen entspricht und die Verbindungszustandsmaschine zwischen den zwei Bausteinen oder Chips ausrichtet, die durch die Verbindung verbunden sind, unter anderen Beispielen. Das Bereitstellen einer zweckgebundenen LSM-Seitenbandbahn kann in einigen Beispielen ermöglichen, dass unter anderen Beispielvorteilen herkömmliche Rauschsperren- und Empfangsdetektionsschaltungen eines analogen Frontend (AFE) beseitigt werden.
  • Wenn man sich 12 zuwendet, ist ein vereinfachtes Blockdiagramm 1200 gezeigt, das eine andere Darstellung einer Logik darstellt, die verwendet wird, um eine MCPL zu implementieren. Die logische PHY 1110 ist beispielsweise mit einer definierten Schnittstelle der logischen PHY (LPIF) 1205 versehen, durch die irgendeines von mehreren verschiedenen Protokollen (z. B. PCIe, IDI, QPI usw.) 1210, 1215, 1220, 1225 und Signalisierungsmodi (z. B. Seitenband) mit der Bitübertragungsschicht einer Beispiel-MCPL über eine Schnittstelle koppeln kann. In einigen Implementierungen kann eine Multiplex- und Zuteilungslogik 1230 auch als Schicht separat von der logischen PHY 1110 vorgesehen sein. In einem Beispiel kann die LPIF 1205 als Schnittstelle auf beiden Seiten dieser MuxArb-Schicht 1230 vorgesehen sein. Die logische PHY 1110 kann mit der physikalischen PHY (z. B. dem analogen Frontend (AFE) 1105 der MCPL-PHY) durch eine andere Schnittstelle koppeln.
  • Die LPIF kann die PHY (logisch und elektrisch/analog) von den oberen Schichten (z. B. 1210, 1215, 1220, 1225) abstrahieren, so dass eine vollständig andere PHY unter LPIF für die oberen Schichten transparent implementiert werden kann. Dies unter anderen Beispielen kann beim Fördern der Modularität und Wiederverwendung im Entwurf unterstützen, da die oberen Schichten intakt bleiben können, wenn die zugrundeliegende Signalisierungstechnologie-PHY aktualisiert wird. Ferner kann die LPIF eine Anzahl von Signalen definieren, die Multiplexen/Demultiplexen, LSM-Management, Fehlerdetektion und Fehlerbehandlung und eine andere Funktionalität der logischen PHY ermöglichen. Tabelle 1 fasst beispielsweise zumindest einen Teil der Signale zusammen, die für eine Beispiel-LPIF definiert sein können: TABELLE 1:
    Signalname Beschreibung
    Rst Rücksetzen
    Lclk Verbindungstakt - 8UI von PHY-Takt
    PI_trdy Die Bitübertragungsschicht ist bereit, Daten anzunehmen, Daten werden durch die Bitübertragungsschicht angenommen, wenn PI trdy und Lp_valid beide aktiviert sind.
    PI_data[N-1:0][7:0] Daten von Bitübertragungsschicht zu Verbindungsschicht, wobei N gleich der Anzahl von Bahnen ist.
    PI_valid Signal von Bitübertragungsschicht zu Verbindungsschicht, das Daten gültig anzeigt.
    PI_Stream[7:0] Signal von Bitübertragungsschicht zu Verbindungsschicht, das die Strom-ID angibt, die mit empfangenen Daten empfangen wird
    PI_error Bitübertragungsschicht hat einen Fehler detektiert (z. B. Rahmung oder Training)
    PI_AlignReq Anforderung der Bitübertragungsschicht an die Verbindungsschicht, Pakete auf LPIF-Breitengrenze auszurichten
    PI_in_L0 Zeigt an, dass sich die Verbindungszustandsmaschine (LSM) in L0 befindet
    PI_in_retrain Zeigt an, dass sich die LSM in Umlemen/Rückgewinnung befindet
    PI_rejectL1 Zeigt an, dass die PHY-Schicht den Eintritt in LI abgelehnt hat.
    PI_in_L12 Zeigt an, dass sich die LSM in L1 oder L2 befindet.
    PI_LSM (3:0) Aktuelle LSM-Zustandsinformationen
    Lp_data[N-1:0][7:0] Daten von Verbindungs- zu Bitübertragungsschicht, wobei N gleich der Anzahl von Bahnen ist.
    Lp_Stream[7:0] Signal von Verbindungsschicht zu Bitübertragungsschicht, das die Strom-ID angibt, die mit Daten zu verwenden ist
    Lp_AlignAck Verbindungsschicht zu Bitübertragungsschicht zeigt an, dass die Pakete auf die LPIF-Breitengrenze ausgerichtet sind
    Lp_valid Signal von Verbindungsschicht zu Bitübertragungsschicht, das Daten gültig anzeigt
    Lp_enterL1 Verbindungsschichtanforderung an Bitübertragungsschicht, in L1 einzutreten
    Lp_enterL2 Verbindungsschichtanforderung an Bitübertragungsschicht, in L2 einzutreten
    Lp_Retrain Verbindungsschichtanforderung an Bitübertragungsschicht, die PHY umzulernen
    Lp_exitL12 Verbindungsschichtanforderung an Bitübertragungsschicht, L1, L2 zu verlassen
    Lp_Disable Verbindungsschichtanforderung an Bitübertragungsschicht, PHY zu deaktivieren
  • Wie in Tabelle 1 angegeben, kann in einigen Implementierungen ein Ausrichtungsmechanismus durch einen AlignReq/AlignAck-Quittungsaustausch vorgesehen sein. Wenn beispielsweise die Bitübertragungsschicht in die Rückgewinnung eintritt, können einige Protokolle die Paketrahmung verlieren. Die Ausrichtung der Pakete kann beispielsweise korrigiert werden, um eine korrekte Rahmungsidentifikation durch die Verbindungsschicht zu garantieren. Wie in 13 gezeigt, kann außerdem die Bitübertragungsschicht ein StallReq-Signal aktivieren, wenn sie in die Rückgewinnung eintritt, so dass die Verbindungsschicht ein Stillstand-Signal aktiviert, wenn ein neues ausgerichtetes Paket bereit ist, übertragen zu werden. Die Bitübertragungsschichtlogik kann sowohl Stillstand als auch Gültig abtasten, um zu bestimmen, ob das Paket ausgerichtet ist. Die Bitübertragungsschicht kann beispielsweise weiterhin trdy ansteuern, um die Verbindungsschichtpakete abzuziehen, bis Stillstand und Gültig aktiviert abgetastet werden, unter anderen potentiellen Implementierungen, einschließlich anderer alternativer Implementierungen unter Verwendung von Gültig, um bei der Paketausrichtung zu unterstützen.
  • Verschiedene Fehlertoleranzen können für Signale auf der MCPL definiert werden. Fehlertoleranzen können beispielsweise für Gültig, Strom, LSM-Seitenband, Niederfrequenzseitenband, Verbindungsschichtpakete und andere Typen von Signalen definiert werden. Fehlertoleranzen für Pakete, Nachrichten und andere Daten, die über die zweckgebundenen Datenbahnen der MCPL gesendet werden, können auf dem speziellen Protokoll basieren, das die Daten steuert. In einigen Implementierungen können Fehlerdetektions- und Fehlerbehandlungsmechanismen vorgesehen sein, wie z. B. zyklische Redundanzprüfung (CRC), Neuversuchspuffer, unter anderen potentiellen Beispielen. Als Beispiele kann für PCIe-Pakete, die über die MCPL gesendet werden, 32-Bit-CRC für PCIe-Transaktionsschichtpakete (TLPs) verwendet werden (mit garantierter Lieferung (z. B. durch einen Wiederholungsmechanismus)) und 16-Bit-CRC kann für PCIe-Verbindungsschichtpakete verwendet werden (die so aufgebaut sein können, dass sie verlustbehaftet sind (z. B. wobei eine Wiederholung nicht angewendet wird)). Für PCIe-Rahmungs-Token kann ferner ein spezieller Hamming-Abstand (z. B. ein Hamming-Abstand von vier (4)) für den Token-Identifizierer definiert werden; Paritäts- und 4-Bit-CRC kann auch unter anderen Beispielen verwendet werden. Für IDI-Pakete kann andererseits 16-Bit-CRC verwendet werden.
  • In einigen Implementierungen können Fehlertoleranzen für Verbindungsschichtpakete (LLPs) definiert werden, die das Erfordernis umfassen, dass ein Gültig-Signal von niedrig auf hoch (d. h. 0 auf 1) übergeht (z. B. um das Sicherstellen von Bit- und Symbolverriegelung zu unterstützen). In einem Beispiel kann ferner eine spezielle Anzahl von aufeinander folgenden identischen LLPs definiert werden, die gesendet werden sollen, und Antworten können auf jede Anforderung erwartet werden, wobei der Anfordernde nach einer Antwortzeitüberschreitung erneut versucht, unter anderen definierten Eigenschaften, die als Basis zum Bestimmen von Störungen in LLP-Daten auf der MCPL verwendet werden können. In weiteren Beispielen kann eine Fehlertoleranz für ein Gültig-Signal bereitgestellt werden, beispielsweise durch Erweitern des Gültig-Signals über ein ganzes Zeitperiodenfenster oder Symbol (z. B. durch Halten des Gültig-Signals hoch für acht UIs). Außerdem können Fehler oder Störungen in Stromsignalen durch Aufrechterhalten eines Hamming-Abstandes für das Codieren von Werten des Stromsignals unter anderen Beispielen verhindert werden.
  • Implementierungen einer logischen PHY können eine Fehlerdetektions-, Fehlermeldungs- und Fehlerbehandlungslogik umfassen. In einigen Implementierungen kann eine logische PHY einer Beispiel-MCPL eine Logik umfassen, um unter anderen Beispielen PHY-Schichtentrahmungsfehler (z. B. auf den Gültig- und Strombahnen), Seitenbandfehler (z. B. in Bezug auf LSM-Zustandsübergänge), Fehler in LLPs (z. B. die für LSM-Zustandsübergänge kritisch sind) zu detektieren. Eine gewisse Fehler-Detektion/Auflösung kann an die Logik der oberen Schicht übertragen werden, wie z. B. PCIe-Logik, die dazu ausgelegt ist, PCIe-spezifische Fehler zu detektieren, unter anderen Beispielen.
  • Im Fall von Entrahmungsfehlern können in einigen Implementierungen ein oder mehrere Mechanismen durch eine Fehlerbehandlungslogik bereitgestellt werden. Entrahmungsfehler können auf der Basis des beteiligten Protokolls behandelt werden. In einigen Implementierungen können beispielsweise Verbindungsschichten über den Fehler informiert werden, um einen Neuversuch auszulösen. Entrahmung kann auch eine Neuausrichtung der Entrahmung der logischen PHY verursachen. Ferner kann unter anderen Techniken eine Neuzentrierung der logischen PHY durchgeführt werden und eine Symbol/Fenster-Verriegelung kann wiedererworben werden. Die Zentrierung kann in einigen Beispielen umfassen, dass die PHY die Empfängertaktphase zum optimalen Punkt bewegt, um die ankommenden Daten zu detektieren. „Optimal“ kann sich in diesem Zusammenhang darauf beziehen, wo es die meiste Toleranz für Rauschen und Taktjitter aufweist. Die Neuzentrierung kann unter anderen Beispielen vereinfachte Zentrierfunktionen umfassen, die beispielsweise durchgeführt werden, wenn die PHY aus einem leistungsarmen Zustand aufwacht.
  • Andere Typen von Fehlern können andere Fehlerbehandlungstechniken beinhalten. Fehler, die in einem Seitenband detektiert werden, können beispielsweise durch einen Zeitüberschreitungsmechanismus eines entsprechenden Zustandes (z. B. einer LSM) erfasst werden. Der Fehler kann protokolliert werden und die Verbindungszustandsmaschine kann dann auf Rücksetzen überführt werden. Die LSM kann in Rücksetzen bleiben, bis ein Neustartbefehl von der Software empfangen wird. In einem anderen Beispiel können LLP-Fehler wie z. B. Verbindungssteuerpaketfehler mit einem Zeitüberschreitungsmechanismus behandelt werden, der die LLP-Sequenz neustarten kann, wenn eine Bestätigung für die LLP-Sequenz nicht empfangen wird.
  • 14A-14C stellen Darstellungen von Beispielbitabbildungen auf Datenbahnen einer Beispiel-MCPL für verschiedene Typen von Daten dar. Eine Beispiel-MCPL kann beispielsweise fünfzig Datenbahnen umfassen. 14A stellt eine erste Bitabbildung von Beispiel-16-Byte-Schlitzen in einem ersten Protokoll wie z. B. IDI dar, die über die Datenbahnen innerhalb eines 8UI-Symbols oder 8UI-Fensters gesendet werden können. Innerhalb des definierten 8UI-Fensters können beispielsweise drei 16-Byte-Schlitze mit einem Kopfschlitz gesendet werden. Zwei Bytes von Daten verbleiben in diesem Beispiel und diese restlichen zwei Bytes können verwendete CRC-Bits (z. B. in Bahnen DATA[48] und DATA[49]) sein.
  • In einem anderen Beispiel stellt 14B eine zweite Beispielbitabbildung für PCIe-Paketdaten dar, die über die fünfzig Datenbahnen einer Beispiel-MCPL gesendet werden. In dem Beispiel von 14B können 16-Byte-Pakete (z. B. Transaktionsschicht-PCIe-Pakete (TLP-PCIe-Pakete) oder Datenverbindungsschicht-PCIe-Pakete (DLLP-PCIe-Pakete) über die MCPL gesendet werden. In einem 8UI-Fenster können drei Pakete gesendet werden, wobei die restlichen zwei Bytes von Bandbreite innerhalb des Fensters ungenutzt gelassen werden. Rahmungs-Token können in diesen Symbolen enthalten sein und verwendet werden, um den Start und das Ende jedes Pakets aufzufinden. In einem Beispiel von PCIe kann die Rahmung, die im Beispiel von 14B verwendet wird, dieselbe wie jenes Token sein, das für PCIe bei 8GT/s verwendet wird.
  • In noch einem anderen Beispiel, das in 14C dargestellt ist, ist eine Beispielbitabbildung von Paketen von Verbindung zu Verbindung (z. B. LLP-Paketen), die über eine Beispiel-MCPL gesendet werden, gezeigt. LLPs können jeweils 4 Bytes sein und jedes LLP (z. B. LLPO, LLP1, LLP2 usw.) kann gemäß Fehlertoleranz und I Fehlerdetektion innerhalb einer Beispielimplementierung vier aufeinander folgende Male gesendet werden. Ein Misslingen, vier aufeinander folgende identische LLPs zu empfangen, kann beispielsweise auf einen Fehler hinweisen. Wie bei anderen Datentypen kann ein Misslingen, ein GÜLTIG in einem fortschreitenden Zeitfenster oder Symbol zu empfangen, außerdem auch auf einen Fehler hinweisen. In einigen Fällen können LLPs feste Schlitze aufweisen. In diesem Beispiel können außerdem ungenutzte oder „freie“ Bits in der Byte-Zeitperiode dazu führen, dass unter anderen Beispielen logische 0-en über zwei der fünfzig Bahnen (z. B. DATA[48-49]) gesendet werden.
  • Wenn man sich 15 zuwendet, ist ein vereinfachtes Verbindungszustandsmaschinenübergangsdiagramm 1400 zusammen mit einem Seitenbandquittungsaustausch gezeigt, der zwischen den Zustandsübergängen verwendet wird. Ein Reset.Idle-Zustand (z. B. in dem eine Phasenregelkreis-Verriegelungskalibrierung (PLL-Verriegelungskalibrierung) durchgeführt wird) kann beispielsweise durch einen Seitenbandquittungsaustausch in einen Reset.Cal-Zustand (z. B. in dem die Verbindung weiter kalibriert wird) übergehen. Reset.Cal kann durch einen Seitenbandquittungsaustausch in einen Reset.ClockDCC-Zustand (z. B. in dem eine Tastverhältniskorrektur (DCC) und verzögerungsverriegelte Schleifenverriegelung (DLL-Verriegelung) durchgeführt werden kann) übergehen. Ein zusätzlicher Quittungsaustausch kann durchgeführt werden, um von Reset.ClockDCC- in den Reset.Quiet-Zustand überzugehen (z. B. um das Gültig-Signal zu deaktivieren). Um bei der Ausrichtung der Signalisierung auf den Bahnen der MCPL zu unterstützen, können die Daten durch einen Center.Pattern-Zustand zentriert werden.
  • In einigen Implementierungen, wie im Beispiel von 16 gezeigt, kann während des Center.Pattern-Zustandes der Sender Trainingsmuster oder andere Daten erzeugen. Der Empfänger kann seine Empfängerschaltungsanordnung konditionieren, um solche Trainingsmuster zu empfangen, beispielsweise durch Setzen der Phaseninterpolatorposition und der vref-Position und Setzen des Komparators. Der Empfänger kann kontinuierlich die empfangenen Muster mit erwarteten Mustern vergleichen und das Ergebnis in einem Register speichern. Nachdem ein Satz von Mustern vollständig ist, kann der Empfänger die Phaseninterpolatoreinstellung inkrementieren, wobei vref gleich gehalten wird. Der Testmustererzeugungs- und Testmustervergleichsprozess kann fortfahren und neue Vergleichsergebnisse können im Register gespeichert werden, wobei die Prozedur wiederholt alle Phaseninterpolatorwerte und alle Werte von vref durchschreitet. In den Center.Quiet-Zustand kann eingetreten werden, wenn der Mustererzeugungs- und Mustervergleichsprozess ganz vollständig ist. Nach der Zentrierung der Bahnen durch die Center.Pattern- und Center.Quiet-Verbindungszustände kann ein Seitenbandquittungsaustausch (z. B. unter Verwendung eines LSM-Seitenbandsignals über die zweckgebundene LSM-Seitenbandbahn der Verbindung) erleichtert werden, um in einen Link.Init-Zustand überzugehen, um die MCPL zu initialisieren und das Senden von Daten auf der MCPL zu ermöglichen.
  • Mit momentaner Rückkehr zur Erörterung von 15, wie vorstehend angegeben, können Seitenbandquittungsaustauschvorgänge verwendet werden, um Verbindungszustandsmaschinenübergänge zwischen Bausteinen oder Chips in einer Mehrchipbaugruppe zu erleichtern. Signale auf den LSM-Seitenbandbahnen der MCPL können beispielsweise verwendet werden, um die Zustandsmaschinenübergänge über den Baustein zu synchronisieren. Wenn beispielsweise die Bedingungen zum Verlassen eines Zustandes (z. B. Reset.Idle) erfüllt sind, kann die Seite, die diese Bedingungen erfüllt hat, auf ihrer ausgehenden LSM_SB-Bahn ein LSM-Seitenbandsignal aktivieren und warten, bis der andere entfernte Baustein dieselbe Bedingung erreicht und ein LSM-Seitenbandsignal auf seiner LSM_SB-Bahn aktiviert. Wenn beide LSM_SB-Signale aktiviert sind, kann die Verbindungszustandsmaschine jedes jeweiligen Bausteins in den nächsten Zustand (z. B. einen Reset.Cal-Zustand) übergehen. Eine minimale Überlappungszeit kann definiert sein, während der beide LSM_SB-Signale vor dem Übergangszustand aktiviert gehalten werden sollten. Ferner kann eine minimale Stilllegungszeit definiert sein, nachdem LSM_SB deaktiviert wird, um eine genaue Umkehrdetektion zu ermöglichen. In einigen Implementierungen kann jeder Verbindungszustandsmaschinenübergang bei solchen LSM_SB-Quittungsaustauschvorgängen konditioniert und durch diese erleichtert werden.
  • 17 ist ein detaillierteres Verbindungszustandsmaschinendiagramm 1700, das zumindest einige der zusätzlichen Verbindungszustände und Verbindungszustandsübergänge darstellt, die in einer Beispiel-MCPL enthalten sein können. Übergänge zwischen jedem der Verbindungszustände können durch Seitenbandquittungsaustausch erleichtert werden, der durch eine Seitenbandbahn der MCPL bereitgestellt wird.
  • In einigen Implementierungen kann eine Beispielverbindungszustandsmaschine unter den anderen Zuständen und Zustandsübergängen, die in 17 dargestellt sind, einen „Directed Loopback“-Übergang umfassen, der vorgesehen sein kann, um die Bahnen einer MCPL in eine digitale Rückschleife zu setzen. Die Empfängerbahnen einer MCPL können beispielsweise nach den Taktrückgewinnungsschaltungen auf die Senderbahnen zurückgeschleift werden. Ein „LB_Recenter“-Zustand kann auch in einigen Fällen vorgesehen sein, der verwendet werden kann, um die Datensymbole auszurichten. Außerdem, wie in 15 gezeigt, kann die MCPL mehrere Verbindungszustände unterstützen, einschließlich unter potentiell anderen Beispielen eines aktiven LO-Zustandes und leistungsarmer Zustände, wie z. B. eines inaktiven L1-Zustandes und L2-Schlafzustandes.
  • 18 ist ein vereinfachtes Blockdiagramm 1800, das einen Beispielfluss in einem Übergang zwischen einem aktiven Zustand (z. B. L0) und einem leistungsarmen oder inaktiven Zustand (z. B. L1) darstellt. In diesem speziellen Beispiel sind eine erste Vorrichtung 1805 und eine zweite Vorrichtung 1810 unter Verwendung einer MCPL kommunikativ gekoppelt. Während sie sich im aktiven Zustand befinden, werden Daten über die Bahnen der MCPL (z. B. DATA, VALID, STREAM usw.) übertragen. Verbindungsschichtpakete (LLPs) können über die Bahnen (z. B. Datenbahnen, wobei das Stromsignal angibt, dass die Daten LLP-Daten sind) übermittelt werden, um das Erleichtern von Verbindungszustandsübergängen zu unterstützen. Beispielsweise können LLPs zwischen der ersten und der zweiten Vorrichtung 1805, 1810 gesendet werden, um den Eintritt von L0 in L1 auszuhandeln. Protokolle der oberen Schicht, die durch die MCPL unterstützt werden, können beispielsweise übermitteln, dass der Eintritt in den L1 (oder einen anderen Zustand) erwünscht ist, und die Protokolle der oberen Schicht können bewirken, dass LLPs über die MCPL gesendet werden, um einen Verbindungsschichtquittungsaustausch zu erleichtern, um zu bewirken, dass die Bitübertragungsschicht in den L1 eintritt. 18 zeigt beispielsweise zumindest einen Teil von LLPs, die gesendet werden, einschließlich eines „Enter L1“-Anforderungs-LLP, das von der zweiten (stromaufseitigen) Vorrichtung 1810 zur ersten (stromabseitigen) Vorrichtung 1805 gesendet wird. In einigen Implementierungen und Protokollen der oberen Ebene leitet der stromabseitige Port den Eintritt in den L1 nicht ein. Die empfangende erste Vorrichtung 1805 kann ein „Änderung auf L1“-Anforderungs-LLP in Reaktion senden, das die zweite Vorrichtung 1810 durch ein „Änderung auf L1“-Bestätigungs-LLP (ACK-LLP) bestätigen kann, unter anderen Beispielen. Beim Detektieren der Vollendung des Quittungsaustauschs kann die logische PHY bewirken, dass ein Seitenbandsignal auf einer zweckgebundenen Seitenbandverbindung aktiviert wird, um zu bestätigen, dass die ACK empfangen wurde und dass die Vorrichtung (z. B. 1805) zum Eintritt in den L1 bereit ist und diesen erwartet. Die erste Vorrichtung 1805 kann beispielsweise ein Seitenbandsignal 1815 aktivieren, das zur zweiten Vorrichtung 1810 gesendet wird, um den Empfang der endgültigen ACK im Verbindungsschichtquittungsaustausch zu bestätigen. Außerdem kann die zweite Vorrichtung 1810 auch ein Seitenbandsignal in Reaktion auf das Seitenbandsignal 1815 aktivieren, um die erste Vorrichtung 1805 über die Seitenband-ACK 1805 der ersten Vorrichtung zu benachrichtigen. Wenn die Verbindungsschichtsteuerung und die Seitenbandquittungsaustauschvorgänge vollendet sind, kann die MCPL-PHY in den L1-Zustand überführt werden, der bewirkt, dass alle Bahnen der MCPL in den inaktiven Leistungssparmodus gesetzt werden, einschließlich jeweiliger MCPL-Strobes der 1820, 1825 der Vorrichtungen 1805, 1810. Der L1 kann verlassen werden, nachdem die Logik der Schicht der oberen Ebene von einer der ersten und der zweiten Vorrichtung 1805, 1810 einen Neueintritt in L0 anfordert, beispielsweise in Reaktion auf das Detektieren, dass Daten zur anderen Vorrichtung über die i MCPL gesendet werden sollen.
  • Wie vorstehend angegeben, kann in einigen Implementierungen eine MCPL die Kommunikation zwischen zwei Vorrichtungen erleichtern, die potentiell mehrere verschiedene Protokolle unterstützen, und die MCPL kann Kommunikationen gemäß potentiell irgendeinem der mehreren Protokolle über die Bahnen der MCPL erleichtern. Das Erleichtern von mehreren Protokollen kann jedoch den Eintritt und Wiedereintritt in zumindest einige Verbindungszustände kompliziert machen. Obwohl einige herkömmliche Zwischenverbindungen ein einzelnes Protokoll der oberen Schicht aufweisen, das die Rolle des Masters in Zustandsübergängen annimmt, beinhaltet beispielsweise eine Implementierung der MCPL mit mehreren verschiedenen Protokollen effektiv mehrere Master. Als Beispiel, wie in 18 gezeigt, kann jedes von PCIe und IDI zwischen zwei Vorrichtungen 1805, 1810 über eine Implementierung einer MCPL unterstützt werden. Das Setzen der Bitübertragungsschicht in einen inaktiven oder leistungsarmen Zustand kann beispielsweise durch die Erlaubnis bedingt werden, die zuerst von jedem der unterstützten Protokolle (z. B. sowohl PCIe als auch IDI) erhalten wird.
  • In einigen Fällen kann der Eintritt in L1 (oder einen anderen Zustand) durch nur eines der mehreren unterstützten Protokolle angefordert werden, die für eine Implementierung einer MCPL unterstützt werden. Obwohl eine Wahrscheinlichkeit bestehen kann, dass die anderen Protokolle ebenso den Eintritt in den gleichen Zustand anfordern (z. B. auf der Basis der Identifikation von ähnlichen Bedingungen (z. B. geringer oder kein Verkehr) auf der MCPL), kann die logische PHY warten, bis die Erlaubnis oder Anweisungen von jedem Protokoll der oberen Schicht empfangen werden, bevor der Zustandsübergang tatsächlich erleichtert wird. Die logische PHY kann verfolgen, welche Protokolle der oberen Schicht die Zustandsänderung angefordert haben (z. B. einen entsprechenden Quittungsaustausch durchgeführt haben), und den Zustandsübergang bei der Identifikation auslösen, dass jedes der Protokolle die spezielle Zustandsänderung angefordert hat, wie z. B. einen Übergang von L0 auf L1 oder einen anderen Übergang, der sich auf die Kommunikationen von anderen Protokollen auswirken oder diesen stören würde. In einigen Implementierungen können Protokolle hinsichtlich ihrer zumindest teilweiseen Abhängigkeit von anderen Protokollen im System blind sein. In einigen Fällen kann ferner ein Protokoll eine Antwort (z. B. von der PHY) auf eine Anforderung, in einen speziellen Zustand einzutreten, erwarten, wie z. B. eine Bestätigung oder Ablehnung des angeforderten Zustandsübergangs. In solchen Fällen kann, während auf die Erlaubnis von anderen unterstützten Protokollen für den Eintritt in einen inaktiven Verbindungszustand gewartet wird, die logische PHY folglich synthetische Antworten auf eine Anforderung, in den inaktiven Zustand einzutreten, erzeugen, um das anfordernde Protokoll der oberen Schicht dahingehend zu „täuschen“, dass es glaubt, dass in einen speziellen Zustand eingetreten wurde (wenn in der Realität die Bahnen noch aktiv sind, zumindest bis die anderen Protokolle auch den Eintritt in den inaktiven Zustand anfordern). Unter anderen potentiellen Vorteilen kann dies das Koordinieren des Eintritts in den leistungsarmen Zustand zwischen mehreren Protokollen unter anderen Beispielen vereinfachen.
  • Wie vorstehend angegeben, kann die hohe Bandbreite, niedrige Latenz, zeitgemultiplexte Mehrprotokollunterstützung, die durch MCPLs in der Baugruppe bereitgestellt werden, auf Zwischenverbindungsimplementierungen außerhalb der Baugruppe erweitert werden. MCPL kann verwendet werden, um herkömmlichere universelle Zwischenverbindungen wie z. B. MIPI und PCIe zumindest in einigen Zusammenhängen zu ersetzen. In einigen Fällen können MCPLs außerhalb der Baugruppe herkömmliche externe Zwischenverbindungen übertreffen. MCPLs sind beispielsweise zu mehreren Protokollen fähig, während sie eine niedrigere Leistung, kürzere Eintritts/Austritts-Latenzen aufweisen und eine höhere Bandbreite pro Stift als viele andere herkömmliche Zwischenverbindungen bereitstellen. Obwohl einige Kanal- und Formfaktorspezifikationen für MCPLs definiert sein können, können MCPLs in und außerhalb der Baugruppe in einer Vielfalt von Anwendungen von in der Hand gehaltenen mobilen Computern bis zu Hochleistungsserversystemen verwendet werden.
  • In einigen Fällen kann das Erweitern einer MCPL auf eine Verbindung außerhalb der Baugruppe das Vorsehen einer zusätzlichen Schaltungsanordnung und Logik (jenseits dessen, was verwendet werden könnte, um eine MCPL in der Baugruppe zu implementieren) umfassen, um Probleme anzugehen, die durch die im Allgemeinen längeren Längen von Verbindungen eingeführt werden, die Vorrichtungen miteinander verbinden, die sich nicht in der gleichen Baugruppe oder im gleichen Baustein befinden. Das Verlängern einer MCPL für eine Verbindung außerhalb der Baugruppe kann beispielsweise eine erhöhte Empfindlichkeit gegen Nebensprechen, Einfügeverlust (Einführen einer Interferenz zwischen Symbolen), erhöhte Kanaldämpfung und Schwierigkeit beim Verwirklichen einer Synchronisation von Bahnabtastung nicht nur über den Satz von Datenbahnen der MCPL, sondern auch zwischen Datenbahnen und entsprechenden Gültig-Bahnen unter anderen Beispielproblemen einführen.
  • In einem Beispiel kann eine Kombination von Techniken verwendet werden, um die Nebensprechverringerung einer MCPL außerhalb der Baugruppe anzugehen. In einem Beispiel kann eine passive Lösung für die physikalischen MCPL-Bahnen verwendet werden. Streifenleitungsleitweglenkung und andere Techniken können beispielsweise verwendet werden, um das Signal-Masse-Verhältnis für die MCPL auf mehr als 1:2 zu verbessern. Solche Verbesserungen können eine ausreichende Nebensprechverringerung für lange MCPL-Kanäle schaffen. In einigen Implementierungen können aktive Lösungen zusätzlich oder alternativ geschaffen werden, um den Nebensprecheffekt zu mildern. Aktive Nebensprechverringerung kann beispielsweise durch Verbessern der MCPL-Empfängerlogik bereitgestellt werden, um ein Hochpassfilter und einen Summierer aufzunehmen, um eine gewichtete Ableitung eines Aggressorsignals (z. B. der zwei oder mehr) dominantesten Aggressoren (auf anderen Bahnen)) zu einem Opfersignal (auf der Zielbahn) zu addieren. Das Hochpassfilter kann beispielsweise als RC-Filter mit Werten von Widerstand (R) und Kapazität (C) implementiert werden, die so ausgewählt sind, dass die Filterpolfrequenz höher ist als die Signalisierungsfrequenz. Der Summierer kann unter anderen Beispielimplementierungen unter Verwendung einer Schaltkondensatorschaltung oder eines kontinuierlichen Zeitverstärkers implementiert werden. Tatsächlich kann die Summiererschaltungsanordnung mit einem Empfängerleseverstärker kombiniert werden, um die Leistung zu minimieren. Der Filterausgang kann dann zum Signal der Opferbahn durch einen zusätzlichen Zweig im Leseverstärker addiert werden. Andere Nebensprechaufhebungs- und Nebensprechmilderungstechniken können auch (oder stattdessen) verwendet werden, einschließlich unter anderen Beispielen auf Eigenmodussignalisierung basierender Nebensprechaufhebungstechniken und erweiterter Nebensprechbelastungsprüfung während des Verbindungstrainings und der Verbindungsinitialisierung.
  • Längere Längen von MCPLs können auch einen erhöhten Kanalverlust einführen. Entzerrungstechniken können in solchen Fällen implementiert werden, um den Kanalverlust zu mildern. Eine zeitkontinuierliche lineare Entzerrung (CTLE) kann beispielsweise zum Empfänger hinzugefügt werden. CTLE kann beispielsweise mit einer Spitzenverstärkung von 2, einer AC-zu-DC-Spitze von 6-12 dB und einer Einheitsverstärkungsbandbreite von 16 GHz für den Betrieb mit 8 Gb/s bereitgestellt werden. Leistungsarme CTLE kann beispielsweise durch fortschrittliche komplementäre Metalloxid-Halbleiter-Entzerrungsschaltungen (CMOS-Entzerrungsschaltungen) erreicht werden, um weniger als 2 pJ/b gesamte Verbindungsleistungseffizienz zu ermöglichen.
  • Wie vorstehend angegeben, kann das Synchronisieren von Bahnen einer MCPL zum Sicherstellen eines genauen Betriebs und einer genauen Abtastung der MCPL wichtig sein. Wenn jedoch die Länge der MCPL zunimmt und außerhalb die Baugruppe erweitert, kann es schwieriger sein, die Länge von Bahnspuren genau anzupassen. Dies kann das Training der Verbindung pro Bündel und den entsprechenden Kanalabgleich kompliziert machen. Folglich können Verzerrung pro Bahn und Phaseneinstellung für zumindest einige der MCPLs, die in einem System implementiert werden, implementiert werden, wie z. B. jene MCPLs mit längeren Längen oder die außerhalb der Baugruppe miteinander verbinden. In einem Beispiel kann eine Phaseneinstellschaltung (z. B. an einer Schnittstelle außerhalb der Baugruppe und/oder an mit MCPL kompatiblen Komponenten außerhalb der Baugruppe) für jede zu programmierende, zu steuernde oder anderweitig durch die Systemmanagement-Software zu managende Bahn vorgesehen sein, wie z. B. BIOS. Die Phaseneinstelleinrichtung kann in einem Beispiel als gewichteter Inverter implementiert werden, der einen Satz von paralleler Metalloxid-Halbleiterlogik vom N-Typ und P-Typ (NMOS und PMOS) mit der unabhängigen Aktivierung steuert. Das iterative Aktivieren von verschiedenen Kombinationen von NMOS/PMOS-Logik kann verwendet werden, um die Phase einzustellen. Solche Lösungen können in einigen Implementierungen anstelle eines vollen Phaseninterpolators (PI) verwendet werden (z. B. den andere MCPLs (z. B. Verbindungen in der Baugruppe) für die Phaseneinstellung pro Cluster verwenden können). In solchen Beispielen kann die Systemmanagement-Software einen Hardware-Phasendurchlauf steuern und verwenden, um die korrekte Phaseneinstellung für jede Bahn zu bestimmen. Die positionierte Toleranzphaseneinstellung des linken und rechten Auges kann für jede Bahn bestimmt werden, was ermöglicht, dass die Software die optimale Verschiebung pro Bahn bestimmt, um die Synchronisation über die MCPL-Bahnen zu verwirklichen. Wie vorstehend angegeben, kann die Phaseninterpolation in MCPLs auf einer Bahnclusterebene ausgeführt werden. Die Phaseneinstellung pro Bahn kann in Kombination mit der Phaseninterpolation pro Cluster verwendet werden. Die Phaseninterpolation kann unter anderen Beispielen beispielsweise zuerst auf der Clusterebene vor dem Fortschritt zu einer Phaseneinstellung pro Bahn ausgeführt werden, um die Verzerrung innerhalb des Clusters feinabzustimmen.
  • MCPL-Verbindungen außerhalb der Baugruppe unterliegen stärkeren Ereignissen von elektrostatischer Entladung. Um dies anzugehen, können eine Schaltungsanordnung von mit MCPL kompatiblen Vorrichtungen außerhalb der Baugruppe oder MCPL-Schnittstellen außerhalb der Baugruppe mit vergleichsweise größeren Strukturen für elektrostatische Entladung (ESD) unter anderen Verbesserungen versehen werden. Insgesamt können Verbesserungen, die am Empfänger, Sender und/oder Kanal einer MCPL bereitgestellt werden, MCPLs außerhalb der Baugruppe mit längerem Abstand mit vergleichbaren Leistungs-, Latenz-, Nebensprech- und Jitter-Eigenschaften realisieren, wie für kurze MCPLs in der Baugruppe definiert oder erwartet. Tatsächlich kann eine MCPL in einigen Implementierungen durch die Spezifikation definierte Kompatibilitätsanforderungen und Eigenschaften aufweisen, um eine korrekte Zusammenwirkung zwischen Vorrichtungen sicherzustellen, die unter Verwendung einer MCPL miteinander verbunden werden sollen. Kompatibilitätstests können definiert werden, um Vorrichtungen zur Verwendung in MCPL-Verbindungen zu testen und zu bewilligen (z. B. von verschiedenen Herstellern oder Anbietern).
  • Die MCPL-Logik und MCPL-Schaltungsanordnung, die Zwischenverbindungen außerhalb der Baugruppe unterstützen, wie z. B. vorstehend beschrieben, können MCPLs implementieren, die innerhalb der genannten Spezifikationen von MCPLs in der Baugruppe arbeiten. Ein Kanal außerhalb der Baugruppe von 10 dB kann beispielsweise aufgenommen werden, während er in einer Leistungshüllkurve von 2pJ/Bit bleibt und schnelle Eintritts/Austritts-Zeiten (z. B. 8UI) wie bei MCPLs in der Baugruppe unterstützt. Außerdem kann dieselbe Seitenbandsignalisierungs- und Zustandsmaschinenlogik von MCPLs in der Baugruppe innerhalb MCPLs außerhalb der Baugruppe wiederverwendet werden. Das MCPL-Seitenband kann Seitenkanalkommunikationen mit einem entfernten Baustein ermöglichen, während die Hauptverbindung unter Training steht oder sich im Leistungsmanagementmodus befindet.
  • 19-20 sind vereinfachte Blockdiagramme 1900, 2000, die Beispiele einer MCPL-Kompatibilitätsprüfung gemäß mindestens einigen Ausführungsformen darstellen. In einigen Fällen können existierende Verbindungstrainings- und Verbindungstestzustände der MCPL-Zustandsmaschine verwendet werden, wie z. B. Rückschleifenzustände und andere Zustände (wie z. B. in 17 dargestellt). In 19 kann beispielsweise ein Rückschleifenverbindungszustand verwendet werden, um Signale, die durch den Sender einer Vorrichtung ausgegeben werden, zu testen. Um den Senderkompatibilitätstest durchzuführen, kann die getestete Vorrichtung (DUT) in einen Rückschleifenzustand der MCPL-Zustandsmaschine gezwungen werden. Wie bei anderen Verbindungszustandsübergängen einer MCPL kann eine definierte MCPL-Seitenbandbahn verwendet werden, um die Senderlogik in den Rückschleifenzustand (z. B. von einem Rücksetzzustand) zu überführen. In einem Beispiel kann, da nur eine einzelne Komponente (Baustein) im Test (d. h. in der DUT) vorhanden sein kann, der Seitenbandquittungsaustausch durch Verbinden der ausgehenden Seitenbandbahn des DUT-Senders mit der eingehenden Seitenbandbahn derselben DUT erhalten werden (d. h. wobei der Sender mit sich einen Quittungsaustausch durchführt, um den Eintritt in den Rückschleifenzustand (oder einen anderen Testzustand) zu erzwingen). Eine weitere Einrichtung der getesteten Vorrichtung kann innerhalb eines Initialisierungsruhezustandes (INIT.QUIET-Zustandes) durchgeführt werden, wobei die DUT-Verbindungszustandsmaschine aufgrund einer Kompatibilitätshalteeinstellung blockiert wird. Der Eingang für die Empfängerbahnen kann aus der Rückschleife oder durch Abbinden des Empfängers erhalten werden und die Empfängerfehlerprüfung kann maskiert werden.
  • Mit Fortsetzung des Beispiels von 19 kann die DUT für das Sendertesten als Rückschleifenmaster innerhalb des erzwungenen Rückschleifenzustandes wirken. Testbefehle können bewirken, dass ein Mustergenerator 1905 Testmuster erzeugt, die durch die MCPL-Senderlogik der DUT 1910 gesendet werden sollen. Testmuster können beispielsweise durch die Senderlogik in einen Puffer 1915 (z. B. First-in-First-out-Puffer (FIFO-Puffer)) geladen, durch einen SerDes 1920 zum analogen Frontend (AFE) 1925 des MCPL-Senders für die Übertragung auf Bahnen eines MCPL-Kanals geleitet werden. Der Kanal kann eine Zwischenlage 1930 umfassen, die gründlich betrachtet werden kann (z. B. durch das Oszilloskop 1935), um die Signale 1940 zu detektieren, die vom Sender-Port der Komponente ausgehen, um zu bestimmen, ob die Signale wie erwartet sind (auf der Basis der bereitgestellten Testmuster) und der Sender arbeitet, wie es durch eine mit MCPL kompatible Komponente erwartet werden würde.
  • Ebenso kann die Empfängerlogik einer MCPL-Komponente auf Kompatibilität getestet werden, wie z. B. in 20 gezeigt. In diesem Beispiel kann die DUT 1910 wieder in einen Rückschleifenzustand gezwungen werden, wobei die DUT im Empfängerkompatibilitätstest als Rückschleifen-Slave wirkt. Ein Bitfehlerratentester (BERT) 2005 oder ein anderer Tester kann mit dem Empfänger der DUT verbunden werden. Während des Tests können alle Bahnen außer der getesteten Bahn zurückgeschleift werden und eine Empfängerbahnfehlerprüfung kann maskiert werden, einschließlich Fehlerprüfung für Gültig-, Strobe- und Strombahnen. Während des Tests liefert der Tester 2005 ein Testsignal 2008, das durch die DUT empfangen und zurückgeschleift werden soll. Die Empfänger-AFE 2010 empfängt das Testsignal 2008 und die restliche Empfängerlogik (z. B. SERDES 2015, FIFO 2020) und die logische PHY 2025 verarbeiten das empfangene Testmuster unter Rückschleife, wobei der Mustergenerator 2030 dann versucht, das Testsignal, wie empfangen, zu übertragen. Das zurückgeschleifte Signal kann untersucht werden (z. B. durch ein Oszilloskop an der Zwischenlage 2035), um zu bestimmen, ob die Empfangslogik der DUT wie erwartet arbeitet. Außerdem kann der Tester 2005 unter anderen Beispielen Jitter einführen und anderweitig die Qualität der Empfängerlogik durch die Testsignale, die er erzeugt und zur DUT innerhalb der Rückschleifenprüfung sendet, herausfordern, um die Qualität und Kompatibilität der Empfängerlogik sicherzustellen.
  • Wie vorstehend angegeben, kann eine Zwischenlage (z. B. 1930, 2035) verwendet werden, um die Beobachtung der Leistungsfähigkeit einer DUT außerhalb der Baugruppe oder einer MCPL-Schnittstelle unter anderen Beispielen zu erleichtern, die verwendet wird, um die Vorrichtungen außerhalb der Baugruppe zu verbinden, die die Zugriffsfähigkeit auf Vorrichtungsstifte ermöglichen. In einem Beispiel kann eine Zwischenlageplatine vorgesehen sein, um den Zugriff auf sowohl die Sende- (Tx) als auch Empfänger- (Rx) Stifte zu ermöglichen, so dass der Tx-Ausgang zu einem Oszilloskop für eine weitere Spezifikationskompatibilitätsanalyse gebracht werden kann, oder die Rx-Toleranzumlauffehlerrate kann mit einem Tester (z. B. einem Jitter-Bitfehlerratentester (J-BERT)) getestet werden. Für eine breitere Verwendung der MCPL-Technologie außerhalb der Baugruppe können normierte Stiftfußabdrücke definiert werden, wie z. B. unter anderen Beispielen eine Kugelgittermatrix (BGA), die die Baugruppe mit der gedruckten Leiterplatte (PCB) oder einer Zwischenlage verbindet.
  • Die Entfaltung von MCPLs außerhalb der Baugruppe kann eine Vielfalt von Zwischenverbindungsanwendungen mit hoher Geschwindigkeit, niedriger Leistung und niedriger Latenz ermöglichen. In einem Beispiel, das in 21 gezeigt ist, kann eine MCPL implementiert werden, um Bit-Scheiben-Entwürfe zu ermöglichen, wobei mehrere Bausteine desselben Typs auf einer Platine kombiniert sein können, um ein größeres System zu bilden. Als ein Beispiel können zwei Ethernet-Koppler (z. B. 2105, 2110) durch eine MCPL 2115 miteinander verbunden sein, um effektiv einen einzelnen vereinheitlichten Koppler mit zweimal der Anzahl von Ports zu bilden. Der Entwurf auf MCPL-Basis kann in diesem Beispiel ermöglichen, dass ein kleinerer Baustein für jeden der Koppler verwendet wird, um einen Koppler mit höherer Basis ohne Entwickeln eines neuen zweckgebundenen Baustein- oder Baugruppenentwurfs zu implementieren.
  • In einem anderen Beispiel kann das Problem des „letzten Zoll“, dem Hochgeschwindigkeits-SerDes-Systeme gegenüberstehen, zumindest teilweise unter Verwendung einer MCPL außerhalb der Baugruppe angegangen werden. Wie im vereinfachten Blockdiagramm 2200 von 22 gezeigt, kann beispielsweise die SerDes-Komponente 2205, die einer Vorrichtung 2210 (z. B. innerhalb eines Hochleistungscomputersystems (HPC-Systems)) zugeordnet ist, dazu ausgelegt sein, von der Vorrichtung 2210 (z. B. in der Baugruppe) zur Platine 2215 verlagert zu werden, so dass die SerDes-Komponente 2205 in unmittelbarer Nähe zum Hochgeschwindigkeitskoppler 2220 angeordnet wird, durch den Daten zu/von der Vorrichtung 2210 zu anderen Vorrichtungen (z. B. Verarbeitungsknoten) innerhalb des HPC-Systems geleitet werden sollen. Die Vorrichtung 2210 kann eine MCPL-Schnittstelle umfassen, um mit ihrem entsprechenden SerDes 2205 über eine MCPL 2225 zu verbinden. Daten, die über die MCPL mit längerem Abstand gesendet werden, können auf einer niedrigeren Datenrate liegen als Daten, die zwischen dem Hochgeschwindigkeits-SerDes 2205 und dem Koppler 2220 übermittelt werden. Durch Bewegen des SerDes 2205 näher an seinen Verbindungspartner (z. B. Koppler 2220) kann die gesamte Netzgeschwindigkeit durch Begrenzen von Datenraten mit höchster Geschwindigkeit auf das kürzeste Segment der gesamten Verbindung zwischen der Vorrichtung 2210 und dem Koppler 2205 wesentlich erhöht werden (z. B. verdoppelt oder mehr), wodurch die Halbierungsbandbreite erhöht wird. Daten, die andererseits über die MCPL übermittelt werden (d. h. das längere Segment der gesamten Verbindung in diesem Beispiel), während immer noch mit „hoher Geschwindigkeit“, können mit Geschwindigkeiten gesendet werden, die mehrere Male niedriger sind als die zwischen dem SerDes 2205 und dem Koppler 2220 gesendeten Daten (über die Verbindung 2230).
  • Zusätzlich zu den obigen Beispielen kann das Erweitern der MCPLs außerhalb der Baugruppe noch zusätzliche Vorteile und Beispielverwendungsfälle realisieren. Verbindungen in der Baugruppe (einschließlich MCPLs) können beispielsweise eingeschränkten (oder relativ kleinen) Leistungs- und thermischen Budgets unterliegen, da solche Budgets für die Baugruppe als Ganzes definiert sein können. Als Beispiel kann eine eingekapselte Baugruppe durch ihre Geometrie und Konstruktion in ihrer Fähigkeit eingeschränkt sein, Wärme loszuwerden und andere Vorteile von flexibleren Entwurfsarchitekturen zu ermöglichen. Tatsächlich kann eine MCPL, die außerhalb der Baugruppe auf einem Hauptbaustein oder einer Leiterplatte implementiert wird, größere thermische und Leistungsbudgets aufweisen und mehr Flexibilität im Entwurf auf solche Grenzen ermöglichen. Als anderes Beispiel kann das Erweitern von MCPLs außerhalb der Baugruppe eine Innovation über einen einzelnen Baugruppenanbieter hinaus ermöglichen und Flexibilität für Originalausrüstungshersteller (OEMs) und/oder Endbenutzer ermöglichen, um verschiedene Verwendungen mit verschiedenen Begleitbausteinen zu unterstützen, ohne eine neue Baugruppe entwerfen oder validieren zu müssen. Eine weitere Innovation kann durch Ermöglichen, dass MCPL-Schnittstellen oder MCPL-„Schlitze“ ermöglichen, dass eine Baugruppe durch Verbinden außerhalb der Baugruppe unter Verwendung von einer oder mehreren MCPLs mit anderen Komponenten erweitert wird, bereitgestellt werden, einschließlich Drittkomponenten. Eine solche Innovation kann die Erweiterung von Protokollen und Diensten ermöglichen, die für MCPL-Daten bereitgestellt werden, einschließlich reicher Kohärenz- und E/A-Protokollen, die in der Hochgeschwindigkeits- und leistungsarmen MCPL-Zwischenverbindungstechnologie implementiert werden.
  • Wenn man sich 23A-23B zuwendet, sind vereinfachte Blockdiagramme 2300a-b gezeigt, die eine Implementierung eines Blocks einer MCPL-Logik darstellen, die in der Lage ist, flexibel partitioniert zu werden, um zwei oder mehr separate Verbindungen zu unterstützen. Die MCPL-Logik 2305 kann innerhalb einer Baugruppe als Schnittstelle zu einer Komponente außerhalb der Baugruppe oder in einer Nicht-Baugruppen-Komponente, die mit anderen Vorrichtungen verbinden soll, unter anderen Beispielen implementiert werden. In dieser Implementierung kann die MCPL-Logik 2305 eine Logik der oberen Schicht umfassen, um Daten von zwei oder mehr verschiedenen Zwischenverbindungsprotokollen zu unterstützen. Die MCPL-Logik 2305 kann beispielsweise eine Logik 2308a-b der oberen Schicht von PCIe und IDI umfassen (obwohl in anderen Beispielen andere und größere Kombinationen einer Logik der oberen Schicht in Verbindung mit einer MCPL unterstützt oder bereitgestellt werden können). Eine Zuteilungs- und Multiplexerlogik 2310 kann verwendet werden, um Daten der mehreren unterstützten Protokolle zu multiplexieren und zuzuteilen. Die logische PHY 2312 kann die Daten vorbereiten und bewirken, dass die physikalische PHY oder die „Physical Coding Sublayer“ (PCS) 2315 die Daten (einschließlich entsprechender Strobe-, Strom- und Gültig-Signalen) auf den zweckgebundenen physikalischen Bahnen der MCPL sendet. In diesem Beispiel können Cluster von MCPL-Bahnen definiert sein und jeweiligen logischen anlogen Frontends (AFEs) 2320a-b zugeordnet sein. In diesem Beispiel ist jede logische AFE 2320a-b mit Blöcken von Bahnen versehen, die 25 Datenbahnen, mindestens eine Strombahn und mindestens eine Gültig-Bahn, mindestens eine differentielle Strobe- und mindestens eine Seitenbandbahn für jede Richtung (Rx und Tx) (z. B. mindestens 60 Bahnen für jeden Block) umfassen.
  • Die MCPL-Logik 2305 kann implementiert werden, um einen Modus mit entweder vollständiger Verbindung oder partitionierter Verbindung konfigurierbar zu unterstützen. Im Modus mit vollständiger Verbindung, wie in 23A gezeigt, werden alle der logischen AFEs 2320a-b (und die zugehörigen Bahnen) in einer einzelnen MCPL 2325 außerhalb der Baugruppe verwendet, die 50 Datenbahnen in jeder Richtung bereitstellt, um mit einer einzelnen entfernten Bausteinbaugruppe 2330 zu verbinden. Die MCPL-Logik ist, obwohl sie zugeteilt werden kann und parallel arbeiten kann, um mehrere MCPLs zu unterstützen, wenn sie sich im Modus mit vollständiger Verbindung befindet, nur zum Unterstützen der einzelnen MCPL 2325 zweckgebunden. Wenn man sich 23B zuwendet, kann in anderen Implementierungen dieselbe Logik 2305 dazu konfiguriert sein (z. B. durch die Einstellung eines zugehörigen Registerwerts oder anderen Mechanismus), in einem Modus mit partitionierter Verbindung zu arbeiten, wie im Beispiel von 23B gezeigt. Im Modus mit partitionierter Verbindung können Partitionen in jedem der Unterblöcke (z. B. 2308a, 2308b, 2310, 2315) durchgesetzt werden, wobei jede Partition dazu konfiguriert ist, eine Signalisierung an einem der logischen AFEs (z. B. 2320a oder 2320b) zu unterstützen. Dies kann ermöglichen, dass zwei separate MCPLs 2325a,b außerhalb der Baugruppe gleichzeitig unter Verwendung desselben MCPL-Logikblocks 2305 implementiert werden, wobei jede resultierende MCPL 2325a,b einen jeweiligen Block von Bahnen verwendet, um 25 Datenbahnen in jeder Richtung für eine Verbindung bereitzustellen, die mit einer anderen, jeweiligen entfernten Bausteinbaugruppe (z. B. 2335, 2340) verbindet. Tatsächlich können die zwei MCPLs 2325a,b unabhängig arbeiten, beispielsweise mit separaten Takten (Strobes). Die zwei MCPLs 2325a,b können beispielsweise unabhängig trainiert werden (in Zusammenwirkung mit einer entsprechenden MCPL-Logik an ihrer Partnerkomponente 2335, 2340), eine kann Daten eines Typs (z. B. PCIe) senden oder empfangen, während die andere Daten eines anderen unterstützten Typs (z. B. IDI) sendet oder empfängt, die zwei MCPLs 2325a,b können zwischen Datentypen unterschiedlich multiplexieren, von inaktiven auf aktive Modi unabhängig übergehen, unter anderen Beispielen.
  • Obwohl das Beispiel von 23B die Partitionierung eines einzelnen MCPL-Logikblocks 2305 zeigt, der dazu konfiguriert ist, in zwei gleiche Partitionen mit 25 Bahnen partitioniert zu werden (z. B. 2325a,b), sollte erkannt werden, dass andere Implementierungen mehr als zwei Blöcke von Bahnen und eine Logik bereitstellen können, die in drei oder mehr Partitionen partitioniert werden können. Ferner können einige alternative Implementierungen unterschiedlich bemessene Partitionen bereitstellen. Eine verfügbare Partition kann beispielsweise ein AFE mit 30 Datenbahnen und eine andere Partition ein AFE mit 20 Datenbahnen unterstützen, die im Modus mit vollständiger Verbindung auch ein AFR mit 50 Bahnen (und entsprechende MCPLs) unter anderen Beispielen bereitstellt.
  • Es ist zu beachten, dass die Einrichtungen, Verfahren und Systeme, die vorstehend beschrieben sind, in irgendeiner elektronischen Vorrichtung oder irgendeinem elektronischen System implementiert werden können, wie vorstehend erwähnt. Als spezielle Darstellungen schaffen die nachstehenden Figuren beispielhafte Systeme für die Verwendung der Erfindung, wie hier beschrieben. Da die nachstehenden Systeme genauer beschrieben werden, wird eine Anzahl von verschiedenen Zwischenverbindungen offenbart, beschrieben und aus der obigen Erörterung erneut darauf zurückgekommen. Und wie leicht ersichtlich ist, können die vorstehend beschriebenen Fortschritte auf beliebige dieser Zwischenverbindungen, Gebilde oder Architekturen angewendet werden.
  • Mit Bezug auf 24 ist ein Blockdiagramm eines Systems 2400 gemäß zumindest einigen Ausführungsformen gezeigt. Wie in 24 gezeigt, kann das Mehrprozessorsystem 2400 als Punkt-Punkt-Zwischenverbindungssystem implementiert werden und umfasst einen ersten Prozessor 2470 und einen zweiten Prozessor 2480, die über eine Punkt-Punkt-Zwischenverbindung 2450 gekoppelt sind. Jeder der Prozessoren 2470 und 2480 kann eine gewisse Version eines Prozessors sein. In einer Ausführungsform sind 2452 und 2454 ein Teil eines seriellen kohärenten Punkt-Punkt-Zwischenverbindungsgebildes, wie z. B. einer Hochleistungsarchitektur.
  • Obwohl nur mit zwei Prozessoren 2470, 2480 gezeigt, ist der Schutzbereich der vorliegenden Erfindung selbstverständlich nicht so begrenzt. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 2470 und 2480 sind mit integrierten Arbeitsspeichersteuereinheiten 2472 bzw. 2482 gezeigt. Der Prozessor 2470 umfasst auch als Teil seiner Bussteuereinheiten Punkt-Punkt-Schnittstellen (P-P-Schnittstellen) 2476 und 2478; ebenso umfasst der zweite Prozessor 2480 P-P-Schnittstellen 2486 und 2488. Die Prozessoren 2470, 2480 können Informationen über eine Punkt-Punkt-Schnittstelle (P-P-Schnittstelle) 2450 unter Verwendung von P-P-Schnittstellenschaltungen 2478, 2488 austauschen. Wie in 24 gezeigt, koppeln IMCs 2472 und 2482 die Prozessoren mit jeweiligen Arbeitsspeichern, nämlich einem Arbeitsspeicher 2432 und einem Arbeitsspeicher 2434, die Abschnitte eines Hauptarbeitsspeichers sein können, der lokal an den jeweiligen Prozessoren befestigt ist.
  • Die Prozessoren 2470, 2480 tauschen jeweils Informationen mit einem Chipsatz 2490 über individuelle P-P-Schnittstellen 2452, 2454 unter Verwendung von Punkt-Punkt-Schnittstellenschaltungen 2476, 2494, 2486, 2498 aus. Der Chipsatz 2490 tauscht auch Informationen mit einer Hochleistungsgraphikschaltung 2438 über eine Schnittstellenschaltung 2492 entlang einer Hochleistungsgraphikzwischenverbindung 2439 aus.
  • Ein geteilter Cache (nicht gezeigt) kann entweder im Prozessor oder außerhalb beider Prozessoren enthalten sein; dennoch mit den Prozessoren über eine P-P-Zwischenverbindung verbunden sein, so dass lokale Cache-Informationen eines oder beider Prozessoren im geteilten Cache gespeichert werden können, wenn ein Prozessor in einen leistungsarmen Modus gesetzt ist.
  • Der Chipsatz 2490 kann mit einem ersten Bus 2416 über eine Schnittstelle 2496 gekoppelt sein. In einer Ausführungsform kann der erste Bus 2416 ein „Peripheral Component Interconnect“-Bus (PCI-Bus) oder ein Bus wie z. B. ein PCI-Expressbus oder ein anderer E/A-Zwischenverbindungsbus der dritten Generation sein, obwohl der Schutzbereich der vorliegenden Erfindung nicht so begrenzt ist.
  • Wie in 24 gezeigt, sind verschiedene E/A-Vorrichtungen 2414 mit dem ersten Bus 2416 zusammen mit einer Busbrücke 2418, die den ersten Bus 2416 mit einem zweiten Bus 2420 koppelt, gekoppelt. In einer Ausführungsform umfasst der zweite Bus 2420 einen Bus mit niedriger Stiftzahl (LPC). Verschiedene Vorrichtungen sind mit dem zweiten Bus 2420 gekoppelt, einschließlich beispielsweise in einer Ausführungsform einer Tastatur und/oder einer Maus 2422, Kommunikationsvorrichtungen 2427 und einer Speichereinheit 2428 wie z. B. eines Plattenlaufwerks oder einer anderen Massenspeichervorrichtung, die häufig Befehle/Code und Daten 2430 umfasst. Ferner ist ein Audio-E/A 2424 mit dem zweiten Bus 2420 gekoppelt gezeigt. Es ist zu beachten, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zwischenverbindungsarchitekturen variieren. Anstelle der Punkt-Punkt-Architektur von 24 kann ein System beispielsweise einen Multi-Drop-Bus oder eine andere solche Architektur implementieren.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, erkennt der Fachmann auf dem Gebiet zahlreiche Modifikationen und Variationen davon. Es ist beabsichtigt, dass die beigefügten Ansprüche alle solchen Modifikationen und Variationen abdecken, die in den wahren Gedanken und Schutzbereich dieser vorliegenden Erfindung fallen.
  • Ein Entwurf kann verschiedene Stufen durchlaufen, von der Erzeugung bis zur Simulation bis zur Herstellung. Daten, die einen Entwurf darstellen, können den Entwurf in einer Anzahl von Weisen darstellen. Wie es bei Simulationen nützlich ist, kann die Hardware zuerst unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen Funktionsbeschreibungssprache dargestellt werden. Außerdem kann ein Schaltungsebenenmodell mit Logik- und/oder Transistor-Gates in einigen Stufen des Entwurfsprozesses erzeugt werden. Ferner erreichen die meisten Entwürfe in einer gewissen Stufe ein Niveau von Daten, die die physikalische Anordnung von verschiedenen Vorrichtungen im Hardware-Modell darstellen. In dem Fall, in dem herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardware-Modell darstellen, die Daten sein, die die Anwesenheit oder Abwesenheit von verschiedenen Merkmalen auf verschiedenen Maskenschichten für Masken festlegen, die verwendet werden, um die integrierte Schaltung zu erzeugen. In irgendeiner Darstellung des Entwurfs können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert werden. Ein Arbeitsspeicher oder ein magnetischer oder optischer Speicher wie z. B. eine Platte kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über eine optische oder elektrische Welle übertragen werden, die moduliert oder anderweitig erzeugt wird, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder Entwurf angibt oder trägt, übertragen wird, wird in dem Umfang, in dem Kopieren, Puffern oder Neuübertragung des elektrischen Signals durchgeführt wird, eine neue Kopie hergestellt. Folglich kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem konkreten, maschinenlesbaren Medium zumindest vorübergehend einen Gegenstand wie z. B. Informationen speichern, die in einer Trägerwelle codiert sind, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpert.
  • Ein Modul, wie hier verwendet, bezieht sich auf irgendeine Kombination von Hardware, Software und/oder Firmware. Als Beispiel umfasst ein Modul Hardware wie z. B. einen Mikrocontroller, der einem nichttransitorischen Medium zugeordnet ist, um einen Code zu speichern, der dazu ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden. Daher bezieht sich die Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die speziell konfiguriert ist, um den Code zu erkennen und/oder auszuführen, der auf einem nichttransitorischen Medium gehalten werden soll. In einer anderen Ausführungsform bezieht sich ferner die Verwendung eines Moduls auf das nichttransitorische Medium mit dem Code, der speziell dazu ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Und wie gefolgert werden kann, kann in noch einer anderen Ausführungsform sich der Begriff Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nichttransitorischen Mediums beziehen. Modulgrenzen, die als separat dargestellt sind, variieren häufig üblicherweise und überlappen potentiell. Ein erstes und ein zweites Modul können sich beispielsweise Hardware, Software, Firmware oder eine Kombination davon teilen, während potentiell eine gewisse unabhängige Hardware, Software oder Firmware beibehalten wird. In einer Ausführungsform umfasst die Verwendung des Begriffs Logik Hardware wie z. B. Transistoren, Register oder andere Hardware, wie z. B. programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „dazu konfiguriert“ bezieht sich in einer Ausführungsform auf die Anordnung, Zusammensetzung, Herstellung, das Angebot zum Verkauf, den Import und/oder den Entwurf einer Einrichtung, einer Hardware, einer Logik oder eines Elements, um eine festgelegte oder bestimmte Aufgabe durchzuführen. In diesem Beispiel ist eine Einrichtung oder ein Element davon, das nicht arbeitet, dennoch „dazu konfiguriert“, eine festgelegte Aufgabe durchzuführen, wenn es dazu ausgelegt, gekoppelt und/oder verbunden ist, um die festgelegte Aufgabe durchzuführen. Als rein erläuterndes Beispiel kann ein Logikgatter eine 0 oder eine 1 während der Operation liefern. Aber ein Logikgatter, das „dazu konfiguriert“ ist, ein Freigabesignal zu einem Takt zu liefern, umfasst nicht jedes potentielle Logikgatter, das eine 1 oder 0 liefern kann. Stattdessen ist das Logikgatter eines, das in einer gewissen Weise gekoppelt ist, in der während der Operation die 1- oder 0-Ausgabe den Takt freigeben soll. Wiederum ist zu beachten, dass die Verwendung des Begriffs „dazu konfiguriert“, keine Operation erfordert, sondern sich stattdessen auf den latenten Zustand einer Einrichtung, einer Hardware und/oder eines Elements bezieht, wobei im latenten Zustand die Einrichtung, die Hardware und/oder das Element dazu ausgelegt ist, eine spezielle Aufgabe durchzuführen, wenn die Einrichtung, die Hardware und/oder das Element arbeiten.
  • Ferner bezieht sich die Verwendung der Ausdrücke „zu“, „in der Lage zu“ und/oder „betriebsfähig zu“ in einer Ausführungsform auf irgendeine Einrichtung, eine Logik, eine Hardware und/oder ein Element, das in einer solchen Weise entworfen ist, dass die Verwendung der Einrichtung, der Logik, der Hardware und/oder des Elements in einer festgelegten Weise ermöglicht wird. Wie vorstehend ist zu beachten, dass die Verwendung zu, in der Lage zu oder betriebsfähig zu in einer Ausführungsform sich auf den latenten Zustand einer Einrichtung, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei die Einrichtung, die Logik, die Hardware und/oder das Element nicht arbeiten, aber in einer solchen Weise entworfen sind, dass die Verwendung einer Einrichtung in einer festgelegten Weise ermöglicht wird.
  • Ein Wert, wie hier verwendet, umfasst irgendeine bekannte Darstellung einer Zahl, eines Zustandes, eines logischen Zustandes oder eines binären logischen Zustandes. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1-en und 0-en bezeichnet, die einfach binäre Logikzustände darstellen. Eine 1 bezieht sich beispielsweise auf einen hohen Logikpegel und 0 bezieht sich auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle wie z. B. ein Transistor oder eine Flash-Zelle in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Die Dezimalzahl zehn kann beispielsweise auch als binärer Wert von 1010 und Hexadezimalbuchstabe A dargestellt werden. Daher umfasst ein Wert irgendeine Darstellung von Informationen, die in einem Computersystem gehalten werden können.
  • Überdies können Zustände durch Werte oder Teile von Werten dargestellt werden. Als Beispiel kann ein erster Wert wie z. B. eine logische Eins einen Vorgabe- oder Anfangszustand darstellen, während ein zweiter Wert wie z. B. eine logische Null einen Nicht-Vorgabe-Zustand darstellen kann. Außerdem beziehen sich die Begriffe Rücksetzen und Setzen in einer Ausführungsform auf einen Vorgabe- bzw. einen aktualisierten Wert oder Zustand. Ein Vorgabewert umfasst beispielsweise potentiell einen hohen logischen Wert, d. h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert, d. h. Setzen, umfasst. Es ist zu beachten, dass irgendeine Kombination von Werten verwendet werden kann, um irgendeine Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code, die vorstehend dargelegt sind, können über Befehle oder einen Code implementiert werden, der auf einem für eine Maschine zugänglichen, maschinenlesbaren, für einen Computer zugänglichen oder computerlesbaren Medium gespeichert ist, die durch ein Verarbeitungselement ausführbar sind. Ein nichttransitorisches für eine Maschine zugängliches/maschinenlesbares Medium umfasst irgendeinen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die für eine Maschine wie z. B. einen Computer oder ein elektronisches System lesbar ist. Ein nichttransitorisches für eine Maschine zugängliches Medium umfasst beispielsweise einen Direktzugriffsarbeitsspeicher (RAM), wie z. B. einen statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Arbeitsspeichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die von transitorischen (ausgebreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von nichttransitorischen Medien unterschieden werden sollen, die Informationen davon empfangen können.
  • Befehle, die verwendet werden, um eine Logik zu programmieren, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Arbeitsspeichers im System, wie z. B. eines DRAM, Cache, Flash-Arbeitsspeichers oder eines anderen Speichers, gespeichert werden. Ferner können die Befehle über ein Netz oder durch andere computerlesbare Medien verteilt werden. Folglich kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form umfassen, die durch eine Maschine (z. B. einen Computer) lesbar ist, ist jedoch nicht auf Disketten, optische Platten, eine Kompaktdisk, einen Festwertspeicher (CD-ROMs) und magnetooptische Platten, Festwertspeicher (ROMs), Direktzugriffsarbeitsspeicher (RAM), löschbaren programmierbaren Festwertarbeitsspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertarbeitsspeicher (EEPROM), magnetische oder optische Karten, einen Flash-Arbeitsspeicher oder einen konkreten, 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, digitale Signale usw.) verwendet wird, begrenzt. Folglich umfasst das computerlesbare Medium irgendeinem Typ von konkretem maschinenlesbarem Medium, das zum Speichern oder Übertragen von elektronischen Befehlen oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form geeignet ist.
  • Die folgenden Beispiele betreffen Ausführungsformen gemäß dieser Patentbeschreibung. Eine oder mehrere Ausführungsformen können eine Einrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um eine Zwischenverbindungsschnittstelle bereitzustellen, um eine Kommunikation mit einer Vorrichtung außerhalb der Baugruppe über eine Verbindung mit mehreren Bahnen zu ermöglichen. Die Logik der Zwischenverbindungsschnittstelle kann eine Empfängerlogik (zumindest teilweise durch eine Hardware-Schaltungsanordnung implementiert) umfassen, um ein Gültig-Signal von der Vorrichtung außerhalb der Baugruppe auf einer zweckgebundenen Gültig-Bahn der Verbindung zu empfangen, das anzeigt, dass Daten auf mehreren zweckgebundenen Datenbahnen in den mehreren Bahnen ankommen sollen, die Daten auf den Datenbahnen von der Vorrichtung außerhalb der Baugruppe zu empfangen, die auf der Basis der Ankunft des Gültig-Signals abgetastet werden, und ein Stromsignal von der Vorrichtung außerhalb der Baugruppe auf einer zweckgebundenen Strombahn in den mehreren Bahnen zu empfangen, wobei das Stromsignal den Daten entspricht und einen speziellen Datentyp der Daten anzeigt. Der spezielle Datentyp kann einer von mehreren verschiedenen Datentypen sein, die auf den mehreren Datenbahnen auf der Verbindung empfangen werden können.
  • In einem Beispiel soll die Empfängerlogik einen Start der Daten auf der Basis eines Starts und einer Dauer des Gültig-Signals bestimmen.
  • In einem Beispiel sind die Daten so definiert, dass sie nach einer Anzahl von Einheitsintervallen des Gültig-Signals empfangen werden.
  • In einem Beispiel wird das Stromsignal gleichzeitig mit Daten empfangen, damit es den Daten entspricht.
  • In einem Beispiel umfasst die Zwischenverbindungsschnittstelle ferner eine Zustandsmaschinenlogik, um zwischen mehreren Verbindungszuständen auf der Basis von Seitenbandsignalen überzugehen, die von der Vorrichtung außerhalb der Baugruppe über eine Seitenbandbahn in den mehreren Bahnen empfangen werden.
  • In einem Beispiel soll die Zustandsmaschinenlogik ferner bewirken, dass Quittungsaustauschsignale zur Vorrichtung außerhalb der Baugruppe gesendet werden, um die Übergänge zwischen den mehreren Verbindungszuständen zu erleichtern.
  • In einem Beispiel wird jedes des Gültig-Signals, der Daten und des Stromsignals in einem jeweiligen von einer Reihe von definierten Signalisierungsfenstern für die Verbindung gesendet und jedes der definierten Signalisierungsfenster ist von gleicher Dauer.
  • In einem Beispiel wird das Gültig-Signal in einem ersten der Reihe von Signalisierungsfenstern gesendet und die Daten und das Stromsignal sollen in einem zweiten der Reihe von Signalisierungsfenstern gesendet werden, das unmittelbar dem ersten Signalisierungsfenster nachfolgt.
  • In einem Beispiel umfassen die Daten erste Daten und das Stromsignal umfasst ein erstes Stromsignal. Die Empfängerlogik kann ferner dazu konfiguriert sein, zweite Daten über zumindest einen Teil der mehreren Datenbahnen in einem dritten der Reihe von Signalisierungsfenstern, das unmittelbar dem zweiten Signalisierungsfenster nachfolgt, zu empfangen, wobei die zweiten Daten ein anderer der mehreren Datentypen sind, und ein zweites Stromsignal über die Strombahn im dritten Signalisierungsfenster zu empfangen, wobei das zweite Stromsignal den anderen Datentyp anzeigt. Das Gültig-Signal soll über zumindest das zweite Signalisierungsfenster aktiviert bleiben, um die ersten und die zweiten Daten anzuzeigen.
  • In einem Beispiel werden zwei Komponenten in der Baugruppe bereitgestellt, die unter Verwendung einer Verbindung in der Baugruppe mit anderen mehreren Datenbahnen, einer Instanz der Gültig-Bahn und einer Instanz der Strombahn verbunden sind, und die Empfängerlogik basiert auf der Empfängerlogik für die Verbindung in der Baugruppe.
  • In einem Beispiel soll die Empfängerlogik ferner die mehreren Bahnen trainieren, um die Abtastphase für jede Bahn zu synchronisieren, wobei die Phasensteuerung auf einer Basis pro Bahn für die mehreren Bahnen durchgeführt wird.
  • In einem Beispiel entspricht jeder der mehreren Datentypen einem jeweiligen von mehreren verschiedenen Protokollen.
  • In einem Beispiel eine Protokolllogik der oberen Schicht von jedem der mehreren verschiedenen Protokolle, wobei das Stromsignal verwendet wird, um die Protokolllogik der oberen Schicht entsprechend dem Datentyp aufzurufen, der im Stromsignal angezeigt wird.
  • In einem Beispiel sollen Daten, die auf den Datenbahnen erscheinen, innerhalb eines speziellen Signalisierungsfensters, das unmittelbar einem vorangehenden Fenster folgt, in dem das Gültig-Signal nicht aktiviert ist, ignoriert werden.
  • Eine oder mehrere Ausführungsformen können eine Einrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um eine Zwischenverbindungsschnittstelle bereitzustellen, um die Kommunikation mit einer Vorrichtung außerhalb der Baugruppe über eine Verbindung mit mehreren Bahnen zu ermöglichen, wobei die Zwischenverbindungsschnittstelle eine Senderlogik (zumindest teilweise durch eine Hardware-Schaltungsanordnung implementiert) umfasst, um ein Gültig-Signal zur Vorrichtung außerhalb der Baugruppe auf einer zweckgebundenen Gültig-Bahn der Verbindung zu senden, das der Vorrichtung außerhalb der Baugruppe anzeigt, dass Daten zur Vorrichtung außerhalb der Baugruppe auf mehreren zweckgebundenen Datenbahnen in den mehreren Bahnen gesendet werden sollen, die Daten auf den Datenbahnen zur Vorrichtung außerhalb der Baugruppe zu senden und ein Stromsignal zur Vorrichtung außerhalb der Baugruppe auf einer zweckgebundenen Strombahn in den mehreren Bahnen zu senden. Das Stromsignal kann den Daten entsprechen und einen speziellen Datentyp der Daten anzeigen und der spezielle Datentyp kann einer von mehreren verschiedenen Datentypen sein, die auf den mehreren Datenbahnen auf der Verbindung übermittelt werden können.
  • In einem Beispiel umfassen die mehreren Bahnen zweite mehrere Datenbahnen, eine zweite Gültig-Bahn und eine zweite Strombahn, wobei die zweiten mehreren Datenbahnen, die zweite Gültig-Bahn und die zweite Strombahn mit einer anderen Vorrichtung außerhalb der Baugruppe gekoppelt sind und die Empfängerlogik partitioniert ist und eine Zuteilungslogik umfasst, um gleichzeitig verschiedene Datenströme zur speziellen Vorrichtung außerhalb der Baugruppe und zur anderen Vorrichtung außerhalb der Baugruppe unter Verwendung der mehreren Bahnen zu senden.
  • In einem Beispiel entspricht jeder der mehreren Datentypen einem jeweiligen von mehreren verschiedenen Protokollen und die Senderlogik umfasst eine Protokolllogik der oberen Schicht von jedem der mehreren verschiedenen Protokolle.
  • In einem Beispiel ist eine Zustandsmaschinenlogik vorgesehen, um zwischen mehreren Verbindungszuständen auf der Basis von Seitenbandsignalen überzugehen, die mit der Vorrichtung außerhalb der Baugruppe über eine Seitenbahnbahn in den mehreren Bahnen kommuniziert werden.
  • Eine oder mehrere Ausführungsformen können ein System mit einer ersten Vorrichtung, einer zweiten Vorrichtung, die von der ersten Vorrichtung entfernt ist, und einer Verbindung, die die erste Vorrichtung mit der zweiten Vorrichtung verbindet, bereitstellen. Die Verbindung kann mehrere Bahnen umfassen und die mehreren Bahnen können mehrere Datenbahnen, eine Gültig-Bahn und eine Strombahn umfassen. Daten sollen von der ersten Vorrichtung zur zweiten Vorrichtung unter Verwendung der mehreren Datenbahnen gesendet werden, die Strombahn soll verwendet werden, um ein Stromsignal zu senden, um einen Typ der Daten von mehreren Typen anzuzeigen, und die Gültig-Bahn soll verwendet werden, um ein Gültig-Signal zu senden, um anzuzeigen, dass die Daten in einem unmittelbar nachfolgenden Signalisierungsfenster gesendet werden sollen.
  • In einem Beispiel umfasst die erste Vorrichtung einen Prozessor und die zweite Vorrichtung umfasst einen Serialisierer/Entserialisierer (SerDes), die Verbindung umfasst eine erste Verbindung, das System umfasst ferner einen Hochgeschwindigkeitskoppler, der mit dem SerDes durch eine zweite Verbindung gekoppelt ist, und die zweite Verbindung ist kürzer als die erste Verbindung.
  • In einem Beispiel umfasst die zweite Vorrichtung eine zeitkontinuierliche lineare Entzerrungsschaltungsanordnung.
  • In einem Beispiel verwendet die Verbindung Streifenleitungsleitweglenkung durch eine Leiterplatte.
  • In einem Beispiel umfasst das System die Leiterplatte.
  • In einem Beispiel umfasst die Verbindung ferner eine Seitenbandbahn, die verwendet werden soll, um Seitenbandquittungsaustauschsignale zu senden, um Verbindungszustandsübergänge für die Verbindung zu erleichtern.
  • In einem Beispiel umfasst die Verbindung eine erste Verbindung und die erste Vorrichtung umfasst mindestens zwei Komponenten, die durch eine zweite Verbindung miteinander verbunden sind, wobei die zweite Verbindung jeweilige mehrere Datenbahnen, eine jeweilige Gültig-Bahn und eine jeweilige Strombahn umfasst.
  • In einem Beispiel arbeiten die erste Verbindung und die zweite Verbindung beide innerhalb einer gemeinsamen Kanaldämpfungs- und Leistungshüllkurve.
  • In einem Beispiel ist die erste Verbindung mindestens dreimal länger als die zweite Verbindung.
  • In einem Beispiel umfassen die mehreren Datenbahnen erste mehrere Datenbahnen, die Gültig-Bahn umfasst eine erste Gültig-Bahn und die Strombahn umfasst eine erste Strombahn, die mehreren Bahnen umfassen zweite mehrere Datenbahnen, eine zweite Gültig-Bahn und eine zweite Strombahn, die erste Vorrichtung umfasst eine Senderlogik, um Daten unter Verwendung der mehreren Bahnen zu übertragen, und die Senderlogik ist partitionierbar.
  • In einem Beispiel unterstützt die Senderlogik, wenn sie partitioniert ist, eine Kopplung mit zwei oder mehr Vorrichtungen, einschließlich der zweiten Vorrichtung, unter Verwendung der mehreren Bahnen, wobei die zweiten mehreren Datenbahnen, die zweite Gültig-Bahn und die zweite Strombahn verwendet werden, um die erste Vorrichtung mit einer dritten Vorrichtung zu verbinden.
  • In einem Beispiel ist die Senderlogik, wenn sie sich im Modus mit vollständiger Verbindung befindet, nicht partitioniert und die Verbindung umfasst die ersten und zweiten mehreren Datenbahnen, die erste und die zweite Gültig-Bahn und die erste und die zweite Strombahn.
  • In einem Beispiel umfasst das System ferner einen Systemmanager, der zumindest teilweise in Software implementiert wird, um das Einstellen der Phase von jeder der Bahnen in den mehreren Bahnen zu unterstützen, so dass die Abtastung der mehreren Bahnen synchronisiert wird.
  • In einem Beispiel umfasst die erste Vorrichtung einen ersten Koppler und die zweite Vorrichtung umfasst einen zweiten Koppler und die Zwischenverbindung des ersten und des zweiten Kopplers mit der Verbindung implementiert einen Koppler mit hoher Basis.
  • In einem Beispiel sind jeder des ersten und des zweiten Kopplers Ethernet-Koppler.

Claims (11)

  1. Mehrchipbaugruppe (505), umfassend: ein Substrat; einen ersten integrierten Schaltungs-, IC,-Baustein (510) der auf das Substrat gepackt ist, einen zweiten integrierten Schaltungs-, IC,-Baustein (575) der auf das Substrat gepackt ist und mit dem ersten IC-Baustein (510) unter Verwendung einer Mehrchipbaugruppenverbindung, MCPL, (520d) verbunden ist, wobei der erste IC-Baustein (510) umfasst: einen Host-Prozessor, und eine erste MCPL Schnittstelle, um den Host-Prozessor zu verbinden, wobei die erste MCPL Schnittstelle eine physikalische Schicht, PHY, umfasst, um eine physikalische Verbindung bereitzustellen, über die Daten zwischen dem ersten IC-Baustein (510) und dem zweiten IC-Baustein (575) über eine erste Mehrzahl von Datenbahnen kommuniziert werden, wobei die PHY umfasst: einen Sender zum Senden von Daten zu dem zweiten IC-Baustein, wobei der Sender der ersten Mehrzahl von Datenbahnen zugeordnet ist, einen Empfänger zum Empfangen von Daten von dem zweiten IC-Baustein, wobei der Empfänger der ersten Mehrzahl von Datenbahnen zugeordnet ist, eine Taktrückgewinnungsschaltung (815), um ein Taktsignal von dem zweiten IC-Baustein über eine Strobe-Bahn zu erhalten, einen Phaseninterpolator, um eine Phase von eingehenden Daten einzustellen, einen Referenzspannungsgenerator (825), um einen Versatz für eine Eingangsspannung einzustellen, um eine Referenzspannung zu erzeugen, und eine oder mehrere Datenabtasteinrichtungen, um Daten für den Empfänger für jede der einen oder mehreren der ersten Mehrzahl von Datenbahnen auf Basis der Referenzspannung abzutasten, eine zweite MCPL Schnittstelle (2305), die in der Lage ist, partitioniert zu werden um zwei oder mehrere separate MCPLs (2325a; 2325b) mit Nicht-Baugruppen Vorrichtungen, einschließlich einer anderen Mehrchipbaugruppe (2340) und einer Eingangs/Ausgangs, I/O, Vorrichtung (2335), zu unterstützen, wobei die zweite MCPL Schnittstelle (2305) umfasst: eine Logik der oberen Schicht (2308a-b), um Daten von zwei oder mehreren verschiedenen Zwischenverbindungsprotokollen zu unterstützen, einen Physical Coding Sublayer, PCS, (2315) eine Mehrzahl von analogen Frontends, AFE, (2320a; 2320b) von denen jedes den zwei oder mehreren separaten MCPLs (2325a; 2325b) zugeordnet ist, wobei jede MCPL (2325a; 2325b) einen entsprechenden Block von Datenbahnen verwendet, um eine Mehrzahl von Datenbahnen zur Kommunikation von Daten bereitzustellen, einschließlich eines ersten Blocks an Datenbahnen, um eine zweite MCPL (2325a; 2325b) zu implementieren und eines zweiten Blocks an Datenbahnen, um eine dritte MCPL (2325a; 2325b) zu implementieren, und Zuteilungs- und Multiplexerlogik (2310), zum Zuteilen und Multiplexen von Daten von den zwei oder mehreren verschiedenen Zwischenverbindungsprotokollen zu der zweiten MCPL (2325a; 2325b) und der dritten MCPL (2325a; 2325b).
  2. Mehrchipbaugruppe (505) nach Anspruch 1, wobei ein erstes AFE (2320a; 2320b) zum Senden und Empfangen von Daten über die zweite MCPL (2325a; 2325b) ist und ein zweites AFE (2320a; 2320b) zum Senden und Empfangen von Daten über die dritte MCPL (2325a; 2325b) ist.
  3. Mehrchipbaugruppe (505) nach den Ansprüchen 1 und 2, wobei das erste AFE (2320a; 2320b) zum Senden und Empfangen der Daten in Übereinstimmung mit einem ersten Zwischenverbindungsprotokoll der zwei oder mehreren Zwischenverbindungsprotokollen ist und das zweite AFE (2320a; 2320b) zum Senden und Empfangen der Daten in Übereinstimmung mit einem zweiten Zwischenverbindungsprotokoll der zwei oder mehreren Zwischenverbindungsprotokollen ist.
  4. Mehrchipbaugruppe (505) nach Anspruch 3, wobei die Logik der oberen Schicht (2308a-b) in eine erste Logik der oberen Schicht partitioniert werden soll, um das erste Zwischenverbindungsprotokoll zu implementieren und in eine zweite Logik der oberen Schicht, um das zweite Zwischenverbindungsprotokoll zu implementieren.
  5. Mehrchipbaugruppe (505) nach den Ansprüchen 3 und 4, wobei die Zuteilungs- und Multiplexerlogik (2310) zum Verbinden des ersten AFE (2320a; 2320b) mit der ersten Logik der oberen Schicht und zum Verbinden des zweiten AFE (2320a; 2320b) mit der zweiten Logik der oberen Schicht ist.
  6. Mehrchipbaugruppe (505) nach den Ansprüchen 3 und 4, wobei das erste Zwischenverbindungsprotokoll PCIe umfasst.
  7. Mehrchipbaugruppe (505) nach Anspruch 1, wobei der Host-Prozessor einen Multiprozessor umfasst.
  8. Mehrchipbaugruppe (505) nach Anspruch 7, wobei der Host-Prozessor einen Prozessorkern umfasst.
  9. Mehrchipbaugruppe (505) nach Anspruch 1, wobei die andere Mehrchipbaugruppe einen Systemarbeitsspeicher umfasst.
  10. Mehrchipbaugruppe (505) nach Anspruch 1, wobei die PHY zum Ausführen von unsymmetrischer Signalisierung ist.
  11. Mehrchipbaugruppe (505) nach Anspruch 1, wobei die andere Mehrchipbaugruppe einen Grafikprozessor umfasst.
DE112015007276.4T 2015-09-25 2015-09-25 Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe Active DE112015007276B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE112015007276.4T DE112015007276B3 (de) 2015-09-25 2015-09-25 Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE112015007276.4T DE112015007276B3 (de) 2015-09-25 2015-09-25 Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe

Publications (1)

Publication Number Publication Date
DE112015007276B3 true DE112015007276B3 (de) 2023-08-17

Family

ID=87430963

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015007276.4T Active DE112015007276B3 (de) 2015-09-25 2015-09-25 Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe

Country Status (1)

Country Link
DE (1) DE112015007276B3 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007483A1 (en) 2011-07-01 2013-01-03 Diefenbaugh Paul S Method and apparatus to reduce idle link power in a platform
US20150269108A1 (en) 2014-03-20 2015-09-24 Bryan L. Spry Method, apparatus and system for configuring a protocol stack of an integrated circuit chip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007483A1 (en) 2011-07-01 2013-01-03 Diefenbaugh Paul S Method and apparatus to reduce idle link power in a platform
US20150269108A1 (en) 2014-03-20 2015-09-24 Bryan L. Spry Method, apparatus and system for configuring a protocol stack of an integrated circuit chip

Similar Documents

Publication Publication Date Title
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
US10152446B2 (en) Link-physical layer interface adapter
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE102018128569A1 (de) Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens
DE112017006687T5 (de) Hochgeschwindigkeitsverbindungen mit kanalerweiterung
DE112015006961T5 (de) Verbindungsfehlerdetektion in mehrfachchipgehäusen
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112013001661T5 (de) Bereitstellung eines konsolidierten Seitenband Kommunikationskanal zwischen Geräten
DE112015006953T5 (de) Training einer gültigen lane
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE102018005753A1 (de) Serdes link training
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
WO2017112330A1 (en) Automated detection of high performance interconnect coupling
DE102021121490A1 (de) Annähernde datenbusinversionstechnik für latenzempfindliche anwendungen
DE112015007276B3 (de) Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe
DE112015007278B3 (de) Verfahren, System und Vorrichtung mit einer Schnittstelle zum Koppeln von integrierten Schaltungspaketen

Legal Events

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

Ref document number: 112015006944

Country of ref document: DE

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division