DE112017005002T5 - Verbindungsphysikalischer schichtschnittstellenadapter - Google Patents

Verbindungsphysikalischer schichtschnittstellenadapter Download PDF

Info

Publication number
DE112017005002T5
DE112017005002T5 DE112017005002.2T DE112017005002T DE112017005002T5 DE 112017005002 T5 DE112017005002 T5 DE 112017005002T5 DE 112017005002 T DE112017005002 T DE 112017005002T DE 112017005002 T5 DE112017005002 T5 DE 112017005002T5
Authority
DE
Germany
Prior art keywords
connection
data
layer
physical
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017005002.2T
Other languages
English (en)
Inventor
Venkatraman Iyer
Mahesh Wagh
William R. Halleck
Rahul Shah
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112017005002T5 publication Critical patent/DE112017005002T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

Ein Schnittstellenadapter zum Identifizieren eines ersten Bereitschaftssignals von einer ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage (LL-PHY) eines ersten Kommunikationsprotokolls zur Anzeige der Bereitschaft einer physischen Lage des ersten Protokolls, Verbindungslagendaten für die Übertragung auf einer Verbindung anzunehmen. Die Schnittstelle erzeugt ein zweites Bereitschaftssignal, das mit einer zweiten LL-PHY-Schnittstelle eines zweiten Kommunikationsprotokolls kompatibel ist, um das Senden der Verbindungslagendaten von einer Verbindungslage des zweiten Kommunikationsprotokolls nach einer vorgegebenen Verzögerung senden zu lassen. Ein drittes Bereitschaftssignal wird erzeugt, das mit der ersten LL-PHY-Schnittstelle kompatibel ist, um für die physische Lage des ersten Kommunikationsprotokolls anzugeben, dass die Verbindungslagendaten gesendet werden sollen. Der Schnittstellenadapter verwendet ein Schaltregister, um die Verbindungslagendaten an die physische Lage der vorgegeben Verzögerung entsprechend weitergeben zu lassen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der U.S. nichtprovisorischen Patentanmeldung Nr. 15/283,309 , eingereicht am 01. Oktober 2016, mit dem Titel „LINK-PHYSICAL LAYER INTERFACE ADAPTER“, die hierin durch Verweis vollständig eingeschlossen ist.
  • GEBIET DER ERFINDUNG
  • Diese Offenbarung bezieht sich auf ein Rechnersystem, und insbesondere (aber nicht ausschließlich) auch Punkt-zu-Punkt-Verbindungen.
  • ALLGEMEINER STAND DER TECHNIK
  • Fortschritte der Halbleiterverarbeitung und des Logikaufbaus haben eine Erhöhung der Logikmenge erlaubt, die auf Vorrichtungen mit integrierten Schaltkreisen vorhanden sein können. Als Folge davon haben sich Computersystemkonfigurationen aus einem einzelnen oder mehreren integrierten Schaltkreisen in einem System für mehrere Kerne, mehrere Hardwarethreads und mehrere logische Prozessoren, die an einzelnen integrierten Schaltkreisen vorhanden sind, sowie andere Schnittstellen, die in solchen Prozessoren integriert sind, entwickelt. Ein Prozessor oder integrierter Schaltkreis umfasst üblicherweise eine einzelne physische Prozessormatrize, wobei die Prozessormatrize eine beliebige Anzahl von Kernen, Hardwarethreads, logischen Prozessoren, Schnittstellen, Speicher, Controllerhubs usw. enthalten kann.
  • Als Ergebnis der größeren Fähigkeit, mehr Rechnerkraft in kleinere Pakete zu packen, sind kleinere Rechnervorrichtungen in der Beliebtheit angestiegen. Smartphones, Tablets, ultradünne Notebooks und andere Benutzerausrüstung sind exponentiell angewachsen. Diese kleineren Vorrichtungen verlassen sich jedoch auf Server für die Datenspeicherung sowie für komplexe Verarbeitung, die den Formfaktor überschreitet. Infolgedessen ist auch der Bedarf an dem Hochleistungsrechnermarkt (d. h. Serverraum) angestiegen. Beispielsweise gibt es bei modernen Servern typischerweise nicht einen einzigen Prozessor mit mehreren Kernen, sondern auch mehrere physische Prozessoren (auch bezeichnet als mehrere Sockets), um die Rechenleistung zu erhöhen. Da die Rechenleistung mit zunehmender Anzahl von Vorrichtungen in einem Rechnersystem ansteigt, wird die Kommunikation zwischen Sockets und anderen Vorrichtungen kritischer.
  • Verbindungen sind aus traditionelleren Multidrop-Busverbindungen, die vornehmlich elektrische Kommunikation gehandhabt haben, in vollständige Verbindungsarchitekturen gewachsen, die schnelle Kommunikation erleichtern. Leider bestehen entsprechende Anforderungen an die Fähigkeiten bestehender Verbindungsarchitekturen, während der Bedarf für künftige Prozessoren bei noch höheren Raten verbrauchen soll.
  • Figurenliste
    • 1 illustriert eine Ausführungsform eines Rechnersystems, das eine Verbindungsarchitektur enthält.
    • 2 illustriert eine Ausführungsform einer Verbindungsarchitektur, die einen geschichteten Stapel enthält.
    • 3 illustriert eine Ausführungsform einer Anfrage oder eines Pakets, die/das innerhalb einer Verbindungsarchitektur erzeugt oder empfangen werden soll.
    • 4 illustriert eine Ausführungsform eines Sender- und Empfängerpaars für eine Verbindungsarchitektur.
    • 5 illustriert Ausführungsformen potenzieller Hochleistungsverbindungs- (HPI) Systemkonfigurationen.
    • 6 illustriert eine Ausführungsform eines geschichteten Protokollstapels, der mit HPI assoziiert ist.
    • 7 illustriert eine Ausführungsform eines Multichip-Pakets.
    • 8 ist ein vereinfachtes Blockdiagramm einer Mehrchippaketverbindung (MCPL).
    • 9 ist eine Darstellung einer Beispielssignalisierung an einer Beispiel-MCPL.
    • 10 ist ein vereinfachtes Blockdiagramm einer MCPL.
    • 11 ist ein vereinfachtes Blockdiagramm einer MCPL, die eine Schnittstelle mit einer Logik der oberen Lage mehrerer Protokolle unter Verwendung einer logischen PHY-Schnittstelle (LPIF) bildet.
    • 12 ist ein vereinfachtes Blockdiagramm einer Beispiel-MCPL-LPIF.
    • 13 ist ein vereinfachtes Blockdiagramm eines Adapters für eine Schnittstelle zwischen der Verbindungslage und der physischen Lage.
    • 14 illustriert eine Darstellung eines Beispielssteuerfensters, das in einen Datenstrom eingebettet ist.
    • 15 illustriert ein Ablaufdiagramm eines Beispiel-Handshakes.
    • 16 ist ein vereinfachtes Blockdiagramm eines Beispieladapters.
    • 17 bis 19 illustrieren eine Beispielverwendung einer Schnittstelle zwischen der Verbindungslage und der physischen Lage, die einen Adapter enthält.
    • 20 illustriert eine Beispielverwendung eines Adapters zur Vereinfachung eines Handshakes einer Schnittstelle zwischen der Verbindungslage und der physischen Lage.
    • 21 illustriert eine Ausführungsform eines Blockdiagramms für ein Rechnersystem, das einen Mehrkernprozessor enthält.
    • 22 illustriert eine Ausführungsform eines Blocks eines Rechnersystems, das mehrere Prozessoren enthält.
  • Gleiche Referenzziffern und Bezeichnungen in den unterschiedlichen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details festgelegt, wie etwa Beispiele bestimmter Typen von Prozessoren und Systemkonfigurationen, spezifischer Hardwarestruktur, spezifischer architektonischer und mikroarchitektonischer Details, spezifischer Registerkonfigurationen, spezifischer Anweisungstypen, spezifischer Systemkomponenten, spezifischer Messungen/Höhen, spezifischer Prozessorpipelinestufen und Betrieb usw., um ein eingehendes Verständnis der vorliegenden Erfindung bereitzustellen. Es ist jedoch für einen Fachmann offensichtlich, dass diese spezifischen Details nicht umgesetzt werden müssen, um die vorliegende Erfindung zu praktizieren. In anderen Fällen wurden bekannte Komponenten oder Verfahren wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltkreise/Code für beschriebene Algorithmen, spezifischer Firmwarecode, spezifische Verbindungsfunktion, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compilerumsetzungen, spezifischer Ausdruck von Algorithmen in Code, spezifische Abschaltung und Gating-Techniken/Logik und andere spezifische Betriebsdetails des Computersystems nicht ausführlich beschrieben, um unnötiges Verdecken der vorliegenden Erfindung zu vermeiden.
  • Wenn auch die folgenden Ausführungsformen mit Verweis auf Energieerhalt und Energieeffizienz in spezifischen integrierten Schaltkreisen beschrieben sein können, wie etwa in Rechnerplattformen oder Mikroprozessoren, gelten andere Ausführungsformen für andere Typen von integrierten Schaltkreisen und Logikvorrichtungen. Ähnliche Techniken und Lehren der hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltkreisen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung einen Nutzen ziehen könnten. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Desktopcomputersysteme oder Ultrabooks™ beschränkt. Und können außerdem in anderen Vorrichtungen verwendet werden, wie etwa in tragbaren Vorrichtungen, Tablets, anderen dünnen Notebooks, Vorrichtungen für Systeme auf einem Chip (SOC) und eingebettete Anwendungen. Einige Beispiele von tragbaren Vorrichtungen enthalten Handys, Internet-Protocol-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und tragbare PCs. Eingebettete Anwendungen enthalten typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzwerkcomputer (NetPC), Set-Top Boxen, Netzwerkhubs, Wide Area Network (WAN) Switches oder jedes andere System umfassen, das sie Funktionen und Operationen ausführen kann, die nachfolgend offenbart werden. Weiterhin sind die hierin beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechnervorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und -effizienz beziehen. Wie in der folgenden Beschreibung leicht deutlich wird, sind die hierin beschriebenen Ausführungsformen von Verfahren, Vorrichtungen und Systemen (egal, ob mit Verweis auf Hardware, Firmware, Software oder einer Kombination daraus) entscheidend für eine Zukunft ‚grüner Technologie‘, die mit Leistungsüberlegungen im Geleichgewicht steht.
  • Mit zunehmendem Fortschritt von Rechnersystemen werden die darin enthaltenen Bauteile komplexer. Daher steigt auch die Komplexität der Verbindungsarchitektur zur Verbindung und Kommunikation zwischen den Bauteilen an, um die Erfüllung der Bandbreitenanforderungen für optimalen Betrieb sicherzustellen. Weiterhin verlangen verschiedene Marktsegmente unterschiedliche Aspekte von Verbindungsarchitekturen, um die Marktbedürfnisse zu erfüllen. Beispielsweise verlangen Server höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, Gesamtleistung zugunsten von Energieeinsparung zu opfern. Dennoch ist es ein einziger Zweck der meisten Gewebe, die höchst mögliche Leistung mit maximaler Leistungseinsparung zu bieten. Nachfolgend wird eine Anzahl von Verbindungen besprochen, die potenziell von Aspekten der hierin beschriebenen Erfindung profieren würden.
  • Eine Verbindungsgewebearchitektur erhält die periphere Komponentenverbindungs- (PCI) Express- (PCIe) Architektur. Ein Hauptziel von PCIe ist es, Komponenten und Vorrichtungen von verschiedenen Händlern die Zusammenarbeit in einer offenen Architektur mehrere Marktsegmente, Clients (Desktops und Mobil), Server (Standard und Enterprise) und eingebettete und Kommunikationsvorrichtungen überspannend zu ermöglichen. PCI Express ist eine Allzweck-E/A-Verbindung mit hoher Leistung, die für eine große Vielzahl künftiger Rechner- und Kommunikationsplattformen definiert wurde. Einige PCI-Attribute, wie etwa sein Verwendungsmodell, die Lastspeicherarchitektur und Softwareschnittstellen, wurden durch alle Revisionen erhalten, während vorherige parallele Busumsetzungen durch eine stark skalierbare, vollständig serielle Schnittstelle ersetzt wurde. Die neuesten Versionen von PCI Express nutzen die Vorteile in Punkt-zu-Punkt Verbindungen, switchbasierter Technologie und paketisiertem Protokoll zum Bereitstellen neuer Leistungsebenen und Funktionen. Leistungsmanagement, Quality Of Service (QoS), Hot-Plug/Hot-Swap-Support, Datenintegrität und Fehlerbehandlung sind unter den fortgeschrittenen Funktionen, die durch PCI Express unterstützt werden.
  • Mit Verweis auf 1 ist eine Ausführungsform eines Gewebes, das aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz Komponenten verbinden, illustriert. System 100 enthält Prozessor 105 und Systemspeicher 110, der mit der Controllernabe 115 verbunden ist. Prozessor 105 enthält ein beliebiges Verarbeitungselement, wie etwa einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Prozessor 105 ist mit der Controllernabe 115 über den vorderseitigen Bus (FSB) 106 verbunden. In einer Ausführungsform ist FSB 106 eine serielle Punkt-zu-Punkt-Verbindung wie nachfolgend beschrieben. In einer anderen Ausführungsform enthält die Verbindung 106 enthält eine serielle, differenzielle Verbindungsarchitektur, die verschiedenen Verbindungsstandards entspricht.
  • Der Systemspeicher 110 enthält eine beliebige Speichervorrichtung wie einen Direktzugriffsspeicher (RAM), nichtflüchtigen (NV) Speicher oder anderen Speicher, auf den Vorrichtungen in System 100 zugreifen können. Der Systemspeicher 110 ist mit der Controllernabe 115 über die Speicherschnittstelle 116 verbunden. Beispiele einer Speicherschnittstelle enthalten eine Double-Data-Rate (DDR) Speicherschnittstelle, eine Dualchannel-DDR-Speicherschnittstelle und eine dynamische RAM- (DRAM) Speicherschnittstelle.
  • In einer Ausführungsform ist die Controllernabe 115 eine Root-Nabe, ein Root-Komplex oder ein Root-Controller in einer Peripheral Component Interconnect Express (PCIe oder PCIE) Verbindungshierarchie. Beispiele der Controllernabe 115 enthalten einen Chipsatz, eine Speicher-Controllernabe (MCH), eine Northbridge, eine Verbindungs-Controllernabe (ICH), eine Southbridge sowie einen Root-Controller/eine Root-Nabe. Oft bezieht sich der Begriff Chipsatz auf zwei physisch separate Controllernaben, d. h. eine Speicher-Controllernabe (MCH), die mit einer Verbindungs-Controllernabe (ICH) verbunden ist. Es ist zu beachten, dass aktuelle Systeme häufig die MCH enthalten, die in Prozessor 105 integriert ist, während der Controller 115 mit E/A-Vorrichtungen in ähnlicher Weise wie unten beschrieben kommunizieren soll. In einigen Ausführungsformen ist Peer-to-Peer-Routing optional durch Root-Komplex 115 unterstützt.
  • Hier ist die Controllernabe 115 mit einem Switch/Bridge 120 durch eine serielle Verbindung 119 verbunden. Eingabe-/Ausgabemodule 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, enthalten/setzen einen Schichtenprotokollstapel um, um die Kommunikation zwischen der Controllernabe 115 und dem Switch 120 bereitzustellen. In einer Ausführungsform sind mehrere Vorrichtungen in der Lage, mit dem Switch 120 verbunden zu werden.
  • Der Switch/Bridge 120 routet Pakete/Nachrichten von der Vorrichtung 125 stromaufwärts, d. h. eine Hierarchie nach oben in Richtung eines Rootkomplex, zur Controllernabe 115 und stromabwärts, d. h. eine Hierarchie nach unten weg von einem Rootcontroller, von dem Prozessor 105 oder Systemspeicher 110 zur Vorrichtung 125. Switch 120 wird in einer Ausführungsform als logische Baugruppe mehrerer virtueller PCI-to-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 enthält eine beliebige interne oder externe Vorrichtung oder Komponente zur Verbindung mit einem elektronischen System, wie etwa eine E/A-Vorrichtung, einen Network Interface Controller (NIC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DVD ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal Serial Bus (USB) Vorrichtung, einen Scanner und andere Eingabe-/Ausgabevorrichtungen. Oft wird im Sprachgebrauch des PCIe wie etwa die Vorrichtung als ein Endpunkt bezeichnet. Wenn auch nicht speziell dargestellt, kann die Vorrichtung 125 eine PCIe zu PCI/PCI-X Bridge enthalten, um PCI-Vorrichtungen aus Alt- oder anderen Versionen zu unterstützen. Endpunktvorrichtungen in PCIe sind häufig als Altsystem, PCIe, oder in den Root-Komplex integrierte Endpunkte bezeichnet.
  • Der Grafikbeschleuniger 130 ist ebenfalls mit der Controllernabe 115 über die serielle Verbindung 132 verbunden. In einer Ausführungsform ist der Grafikbeschleuniger 130 mit einer MCH verbunden, die mit einer ICH verbunden ist. Der Switch 120, und dementsprechend die E/A-Vorrichtung 125 wird dann mit dem ICH verbunden. Die E/A-Module 131 und 118 sollen außerdem einen Schichtenprotokollstapel umsetzen, um zwischen dem Grafikbeschleuniger 130 und der Controllernabe 115 zu kommunizieren. Ähnlich wie die obige MCH-Diskussion kann ein Grafikcontroller oder der Grafikbeschleuniger 130 selbst in den Prozessor 105 integriert sein.
  • Mit Blick auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels, der mit HPI assoziiert ist, illustriert. Der Lagenprotokollstapel 200 enthält jede Form von Lagenkommunikationsstapel, wie einen Quick Path Interconnect (QPI) Stapel, einen PCie-Stapel, einem Rechnerverbindungsstapel der nächsten Generation mit hoher Leistung oder andere Lagenstapel. Auch, wenn die Diskussion direkt nachfolgend mit Verweis auf 1 bis 4 in Zusammenhang mit einem PCIe-Stapel stehen, können dieselben Konzepte für andere Verbindungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 200 ein PCIe-Protokollstapel, der die Transaktionslage 205, Verbindungslage 210 und physische Lage 220 enthält. Eine Schnittstelle wie die Schnittstellen 117, 118, 121, 122, 126 und 131 in 1 kann als Kommunikationsprotokollstapel 200 dargestellt sein. Die Darstellung als ein Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, das/die einen Protokollstapel umsetzt/enthält.
  • PCI Express verwendet Pakete zur Kommunikation von Informationen zwischen Komponenten. Pakete werden in der Transaktionslage 205 und der Datenverbindungslage 210 erzeugt, um die Informationen von der übertragenden Komponente zu der empfangenden Komponente zu tragen. Wenn die gesendeten Pakete durch die anderen Lagen fließen, werden sie um weitere Informationen erweitert, die notwendig sind, Pakete in diesen Lagen zu handhaben. Auf der Empfangsseite erfolgt der umgekehrte Ablauf und die Pakete werden von ihrer Darstellung der physischen Lage 220 auf die Darstellung der Datenverbindungslage 210 und schließlich (für Transaktionslagenpakete) in die Form, die durch die Transaktionslage 205 der empfangenden Vorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionslage
  • In einer Ausführungsform soll die Transaktionslage 205 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Verbindungsarchitektur bereitstellen, wie etwa einer Datenverbindungslage 210 und einer physischen Lage 220. In dieser Hinsicht ist eine Hauptverantwortung der Translationslage 205 die Montage und Demontage von Paketen (d. h. Transaktionslagenpakete oder TLPs). Die Übersetzungslage 205 verwaltetet üblicherweise die guthabenbasierte Flusskontrolle für TLPs. PCIe setzt geteilte Transaktionen um, d. h. Transaktionen, in denen Anfrage und Antwort zeitlich getrennt sind, wodurch eine Verbindung anderen Traffic tragen kann, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Weiterhin nutzt PCIe guthabenbasierte Flusssteuerung. In diesem Plan bewirbt eine Vorrichtung eine anfängliche Guthabenmenge für jeden der Empfangspuffer in der Transaktionslage 205. Eine externe Vorrichtung am gegenüberliegenden Ende der Verbindung, wie die Controllernabe 115 in 1, zählt die Guthabenmenge, die durch jedes TLP verbraucht wird. Eine Transaktion kann übertragen werden, wenn die Transaktion eine Guthabengrenze nicht überschreitet. Nach Empfang einer Antwort wird eine Guthabenmenge wiederhergestellt. Ein Vorteil eines Guthabenplans ist, dass die Latenz der Guthabenrückkehr sich nicht auf die Leistung auswirkt, sofern die Guthabengrenze nicht erreicht wird.
  • In einer Ausführungsform enthalten vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe-/Ausgabeadressraum und einen Meldungsadressraum. Speicherraumtransaktionen enthalten eine oder mehrere Leseanfragen und Schreibanfragen zur Übertragung von Daten an/von einem speicherzugeordneten Ort. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei verschiedene Adressformate zu verwenden, z. B. ein kurzes Adressformat wie eine 32-bit-Adresse, oder ein langes Adressformat, wie eine 64-bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen für den Konfigurationsraum enthalten Leseanfragen und Schreibanfragen. Meldungsraumtransaktionen (oder einfach Nachrichten) sind definiert, um In-Band-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher assembliert in einer Ausführungsform die Transaktionslage 205 Paketheader/-ladung 206. Das Format für die aktuellen Paketheader/-ladungen können in der PCIe-Vorgabe auf der PCIe-Vorgabewebsite gefunden werden.
  • Mit schnellem Verweis auf 3 ist eine Ausführungsform einer PCIe-Transaktionsbeschreibung illustriert. In einer Ausführungsform ist die Transaktionsbeschreibung 300 ein Mechanismus zum Tragen der Transaktionsinformationen. Diesbezüglich unterstützt die Transaktionsbeschreibung 300 die Identifizierung von Transaktionen in einem System. Andere potenzielle Verwendungen enthalten Trackingmodifizierungen von Standardtransaktionssortierung und Assoziation der Transaktion mit Kanälen.
  • Die Transaktionsbeschreibung 300 enthält das globale Kennungsfeld 302, Attributefeld 304 und Kanalkennungsfeld 306. In dem illustrierten Beispiel ist das globale Kennungsfeld 302 als ein lokales Transaktionskennungsfeld 308 und Quellkennungsfeld 310 umfassend dargestellt. In einer Ausführungsform ist die globale Transaktionskennung 302 für alle ausstehenden Anfragen eindeutig.
  • Nach einer Umsetzung ist das lokale Transaktionskennungsfeld 308 ein Feld, das durch einen anfragenden Agenten erzeugt wurde, und ist eindeutig für alle ausstehenden Anfragen, die einen Abschluss des anfragenden Agenten verlangen. Weiterhin identifiziert in diesem Beispiel die Quellkennung 310 eindeutig den anfragenden Agenten innerhalb einer PCIe-Hierarchie. Dementsprechend bietet das Feld der örtlichen Transaktionskennung 308 zusammen mit der Quell-ID 310 eine globale Identifizierung einer Transaktion innerhalb einer Hierarchiedomäne.
  • Das Attributefeld 304 gibt Eigenschaften und Beziehungen der Transaktion vor. Diesbezüglich wird das Attributefeld 304 potenziell verwendet, weitere Informationen bereitzustellen, die die Modifizierung der Standardhandhabung von Transaktionen erlaubt. In einer Ausführungsform enthält das Attributefeld 304 ein Prioritätsfeld 312, reserviertes Feld 314, Sortierungsfeld 316 und No-Snoop-Feld 318. Hier kann das Prioritäts-Unterfeld 312 durch einen Initiator modifiziert werden, um einer Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 314 bleibt für die Zukunft oder für händlerdefinierte Verwendung reserviert. Mögliche Verwendungsmodelle unter Verwendung von Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds umgesetzt werden.
  • In diesem Beispiel wird das Sortierungsattributfeld 316 verwendet, um optionale Informationen bereitzustellen, die die Art von Sortierung übermitteln, die Standardsortierregeln modifizieren können. Nach einer Beispielumsetzung bezeichnet ein Sortierungsattribut „0“ Standardsortierungsregeln, während ein Sortierungsattribut „1“ entspannte Sortierung bezeichnet, wobei Schreibvorgänge andere Schreibvorgänge in derselben Richtung überholen können, und Leseabschlüsse Schreibvorgängen in derselben Richtung überholen können. Das Snoop-Attributfeld 318 wird verwendet, um zu bestimmen, ob Transaktionen im Voraus betrachtet werden. Wie dargestellt, identifiziert das Kanal-ID-Feld 306 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungslage
  • Die Verbindungslage 210, auch bezeichnet als Datenverbindungslage 210, handelt als Zwischenstufe zwischen der Transaktionslage 205 und der physischen Lage 220. In einer Ausführungsform ist eine Zuständigkeit der Datenverbindungslage 210 die Breitstellung eines zuverlässigen Mechanismus für den Austausch von Transaktionslagenpaketen (TLPs) zwischen zwei Komponenten einer Verbindung. Eine Seite der Datenverbindungslage 210 nimmt TLPs an, die durch die Transaktionslage 205 assembliert wurden, wendet die Paketsequenzkennung 211 an, d. h. eine Identifizierungsnummer oder Paketnummer, berechnet und wendet einen Fehlererkennungscode an, d. h. CRC 212, und überträgt die modifizierten TLPs auf die physische Lage 220 zur Übertragung über eine externe Vorrichtung.
  • Physische Lage
  • In einer Ausführungsform enthält die physische Lage 220 den logischen Unterblock 221 und elektrischen Unterblock 222 für die physische Übertragung eines Pakets an eine externe Vorrichtung. Hier ist der logische Unterblock 221 zuständig für die „digitalen“ Funktionen der physische Lage 221. Diesbezüglich enthält ein logischer Unterblock enthält einen Übertragungsabschnitt zur Vorbereitung ausgehender Informationen zur Übertragung durch den physischen Unterblock 222, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie an die Verbindungslage 210 weitergebeben werden.
  • Der physische Block 222 enthält einen Sender und einen Empfänger. Der Sender wird mit einem logischen Unterblock 221 mit Symbolen versorgt, den der Sender serialisiert und an eine externe Vorrichtung überträgt. Der Empfänger wird von einer externen Vorrichtung mit serialisierten Symbolen versorgt und wandelt die empfangenen Signale in einen Bitstream um. Der Bitstream wird entserialisiert und dem logischen Unterblock 221 zugeführt. In einer Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, wobei Zehnbitsymbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu umgeben. Weiterhin stellt in einem Beispiel der Empfänger auch eine Symboluhr bereit, die von dem eingehenden seriellen Stream abgerufen werden.
  • Wie oben angegeben, werden zwar die Transaktionslage 205, Verbindungslage 210 und physische Lage 220 mit Verweis auf eine spezifische Ausführungsform eines PCIe-Protokollstapels besprochen, aber ein Lagenprotokollstapel ist nicht darauf beschränkt. In der Tat kann jedes Lagenprotokoll eingeschlossen/umgesetzt sein. Als Beispiel enthält ein Port/eine Schnittstelle, der/die als Lagenprotokoll dargestellt ist: (1) eine erste Lage zum Assemblieren von Paketen, d. h. eine Transaktionslage; eine zweite Lage zum Sequenzieren von Paketen, d. h. eine Verbindungslage; und eine dritte Lage zum Übertragen der Pakete, d. h. eine physische Lage. Als spezifisches Beispiel wird ein Schichtenprotokoll einer Common Standard Interface (CSI) verwendet.
  • Als nächstes wird mit Verweis auf 4 eine Ausführungsform eines seriellen PCIe-Punkt-zu-Punkt-Gewebes illustriert. Wenn auch eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt Verbindung illustriert ist, ist eine serielle Punkt-zu-Punkt Verbindung nicht darauf eingeschränkt, da sie jeden Übertragungspfad für die Übertragung serieller Daten enthält. In der dargestellten Ausführungsform enthält eine grundlegende PCIe-Verbindung zwei Niederspannungssignalpaare, die differenzial angetrieben sind: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Dementsprechend enthält die Vorrichtung 405 eine Übertragungslogik 406 zum Senden von Daten an die Vorrichtung 410 und eine Empfangslogik 407 zum Empfangen von Daten von der Vorrichtung 410. In anderen Worten, zwei Sendepfade, d. h. Pfade 416 und 417, und zwei Empfangspfade, d. h. Pfade 418 und 419, sind in einer PCIe-Verbindung enthalten.
  • Ein Sendepfad bezieht sich auf einen Pfad zum Senden von Daten, wie etwa einer Sendeleitung, einer Kupferleitung, einer optischen Leitung, ein drahtloser Kommunikationskanal, eine infrarote Kommunikationsverbindung oder ein anderer Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen wie etwa Vorrichtung 405 und Vorrichtung 410, wird als eine Vierbindung bezeichnet, wie etwa Verbindung 415. Eine Verbindung kann eine Spur unterstützen - jede Spur stellt einen Satz differenzialer Signalpaare dar (ein Paar für die Übertragung, ein Paar für den Empfang) . Zur Skalierung der Bandbreite kann eine Verbindung mehrere Spuren sammeln, die mit xN bezeichnet sind, wobei N jede beliebige unterstützte Verbindungsbreite ist, wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein Differenzialpaar bezieht sich auf zwei Übertragungspfade, wie etwa Leitungen 416 und 417, zur Übertragung von Differenzialsignalen. Als ein Beispiel fährt die Leitung 417, wenn die Leitung 416 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. bei einer steigenden Kante, von einem hohen Logikpegel auf einen niedrigen Logikpegel, d. h. eine fallende Kante. Differenzialsignale demonstrieren potenziell bessere elektrische Eigenschaften, wie etwa bessere Signalintegrität, d. h. Querverbindung, Spannungsüber-/-unterschreitung, Klingeln usw. Dies erlaubt ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • In einer Ausführungsform kann eine Ultra Path Interconnect (UPI) verwendet werden, um zwei oder mehr Vorrichtungen zu verbinden. UPI kann eine cachekohärente verbindungsbasierte Verbindung der nächsten Generation umsetzen. Als ein Beispiel kann die UPI in Hochleistungsrechnerplattformen verwendet werden, wie etwa in Workstations oder Servern, einschließlich in Systemen, in denen PCIe oder ein anderes Verbindungsprotokoll üblicherweise verwendet wird, um Prozessoren, Beschleuniger, E/A-Vorrichtungen und so weiter zu verbinden. Die UPI ist jedoch nicht so beschränkt. Stattdessen kann die UPI in einem der Systeme oder der Plattformen verwendet werden, die hierin beschrieben sind. Weiter können die einzelnen Ideen, die entwickelt wurden, auf andere solche Verbindungen und Plattformen angewendet werden, wie etwa PCIe, MIPI, QPI, usw.
  • Zur Unterstützung mehrerer Vorrichtungen in einer Beispielumsetzung kann die UPI eine Instruction Set Architecture (ISA) Agnostik enthalten (d. h. die UPI kann in mehreren verschiedenen Vorrichtungen umgesetzt werden). In einem anderen Szenario kann die UPI auch verwendet werden, um Hochleistungs-E/A-Vorrichtungen zu verbinden, nicht nur Prozessoren oder Beschleuniger. Beispielsweise kann eine Hochleistungs-PCIe-Vorrichtung mit der UPI durch eine geeignete Übersetzungsbridge verbunden sein (d. h. UPI zu PCIe). Weiterhin können die UPI-Verbindungen durch viele UPI-basierte Vorrichtungen, wie etwa Prozessoren, auf verschiedene Weise verwendet werden (z. B. Sterne, Ringe, Netze usw.). 5 illustriert Beispielumsetzungen mehrerer potenzieller Multisocketkonfigurationen. Eine Zwei-Socket-Konfiguration 505 wie dargestellt, kann zwei UPI-Verbindungen enthalten; in anderen Umsetzungen jedoch kann eine UPI-Verbindung verwendet werden. Für größere Topologien kann jede Konfiguration verwendet werden, sofern eine Kennung (ID) zugewiesen werden kann und es eine Art von virtuellem Pfad gibt, unter anderem weitere oder Ersatzeigenschaften. Wie dargestellt, weist in einem Beispiel eine Vier-Socket-Konfiguration 510 eine UPI-Verbindung von jedem Prozessor zu einem anderen auf. In der Acht-Socket-Umsetzung, die in der Konfiguration 515 gezeigt ist, ist nicht jeder Socket direkt mit jedem anderen durch eine UPI-Verbindung verbunden. Wenn jedoch ein virtueller Pfad oder Kanal zwischen den Prozessoren existiert, wird die Konfiguration unterstützt. Ein Bereich von unterstützen Prozessoren enthält 2-32 in einer nativen Domäne. Höhere Anzahlen von Prozessoren können erreicht werden, indem, unter anderen Beispielen, mehre Domänen oder andere Verbindungen zwischen Knotencontrollern verwendet werden.
  • Die UPI-Architektur enthält eine Definition einer Lagenprotokollarchitektur, die in einigen Beispielen Protokolllagen (kohärente, nichtkohärente und optional andere speicherbasierte Protokolle), eine Routinglage, eine Verbindungslage und eine physische Lage enthält. Weiter kann die UPI Verbesserungen bezüglich der Leistungsmanager (wie etwa unter anderem Leistungssteuereinheiten (PCUs)), Design zum Testen und Debuggen (DFT), Fehlerbehandlung, Register, Sicherheit enthalten. 5 illustriert eine Ausführungsform eines Beispiel-UPI-Lagenprotokollstapels. In einigen Umsetzungen können wenigstens einige der Lagen, die in 5 illustriert sind, optional sein. Jede Lage kümmert sich um ihre eigene Stufe der Granularität oder Informationsmenge (die Protokolllage 620a,b mit Paketen 630, die Verbindungslage 610a,b mit Flits 635, und die physische Lage 605a,b mit Phits 640). Es ist zu beachten, dass ein Paket in einigen Ausführungsformen Teil-Flits, ein einzelnes Flit oder mehrere Flits basierend auf der Umsetzung enthalten können.
  • Als ein erstes Beispiel enthält eine Breite eines Phit 640 eine 1 zu 1 Zuordnung der Verbindungsbreite zu Bits (z. B. enthält eine 20-bit-Verbindungsbreite ein Phit von 20 Bit usw.). Flits können größer sein, wie etwa 184, 192 oder 200 Bit. Es ist zu beachten, dass es, wenn ein Phit 640 20 Bit breit ist und die Größe eines Flit 635 184 Bit beträgt, eine fraktionale Anzahl von Phits 640 benötigt, ein Flit 635 zu übertragen (z. B. unter anderem 9,2 Phits mit 20 Bit zur Übertragung eines 184-Bit-Flit 635 oder 9, 6 mit 20 Bit zur Übertragung eines 192-Bit-Flit). Es ist zu beachten, dass die Breiten der grundlegenden Verbindung auf der physischen Lage variieren können. Beispielsweise kann die Anzahl der Spuren pro Richtung 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, usw. beinhalten. In einer Ausführungsform ist die Verbindungslage 610a,b in der Lage, mehrere Stücke verschiedener Transaktionen in ein einziges Flit einzubetten, und einer oder mehrere der mehreren Header (z. B. 1, 2, 3, 4) kann in dem Flit eingebettet sein. In einem Beispiel teilt die UPI die Header in entsprechende Slots auf, um mehrere Nachrichten in dem Flit zu ermöglichen, die für verschiedene Knoten gedacht sind.
  • Die physische Lage 605a,b kann in einer Ausführungsform zuständig für die schnelle Übertragung von Informationen auf dem physischen Medium (elektrisch oder optisch usw. sein). Die physische Verbindung kann eine Punkt-zu-Punkt-Verbindung zwischen zwei Verbindungslagenentitäten sein, wie etwa Lage 605a und 605b. Die Verbindungslage 610a,b kann die physische Lage 605a,b von den oberen Lagen abstrahieren und stellt die Fähigkeit bereit, zuverlässig Daten (sowie Anfragen) übertragen und die Ablaufkontrolle zwischenzwei direkt verbundenen Entitäten zu verwalten. Die Verbindungslage kann außerdem zuständig sein für die Virtualisierung des physischen Kanals in mehrere virtuelle Kanäle und Meldungsklassen. Die Protokolllage 620a,b verlässt sich auf die Verbindungslage 610a,b zur Zuordnung von Protokollnachrichten zu den geeigneten Meldungsklassen und virtuellen Klassen vor der Übergabe an die physische Lage 605a,b zur Übertagung über die physischen Verbindungen hinweg. Die Verbindungslage 610a,b kann mehrere Nachrichten unterstützen, wie etwa unter anderem eine Anfrage, Snoop, Antwort, Writeback, nichtkohärente Daten.
  • Die physische Lage 605a,b (oder PHY) der UPI kann über der elektrischen Lage (d. h. elektrische Leiter, die zwei Komponenten verbinden) und unter der Verbindungslage 610a,b umgesetzt sein, wie illustriert in 6. Die physische Lage und die entsprechende Logik können auf jedem Agenten sitzen und verbinden die Verbindungslagen auf zwei Agenten (A und B) getrennt voneinander (z. B. auf Vorrichtungen auf jeder Seite einer Verbindung). Die örtlichen und externen elektrischen Lagen sind durch physische Medien verbunden (z. B. Kabel, Leiter, optisch, usw.). Die physische Lage 605a,b, weist in einer Ausführungsform zwei große Phasen auf: die Initialisierung und den Betrieb. Während der Initialisierung ist die Verbindung opak für die Verbindungslage und die Signalisierung kann eine Kombination aus getimten zuständen und Handshake-Ereignissen umfassen. Während des Betriebs ist die Verbindung transparent für die Verbindungslage und die Signalisierung erfolgt mit einer Geschwindigkeit, wobei alle Spuren zusammen als eine einzige Verbindung wirken. Während der Betriebsphase transportiert die physische Lage Flits von Agent A zu Agent B und von Agent B zu Agent A. Die Verbindung wird auch als ein Link bezeichnet und abstrahiert einige physische Aspekte, einschließlich Medien, Breite und Geschwindigkeit aus den Verbindungslagen während des Austauschs von Flits und der Kontrolle/des Status der aktuellen Konfiguration (z. B. Breite) mit der Verbindungslage. Die Initialisierungsphase enthält kleine Phasen z. B. Polling, Konfiguration. Die Betriebsphase enthält ebenfalls kleine Phasen (z. B. Verbindungsleistungsmanagementzustände).
  • In einer Ausführungsform kann die Verbindungslage 610a,b so umgesetzt sein, dass eine zuverlässige Datenübertragung zwischen zwei Protokoll- oder Routingentitäten bereitgestellt wird. Die Verbindungslage kann die physische Lage 605a,b von der Protokolllage 620a,b abstrahieren und für die Flusssteuerung zwischen zwei Protokollagenten (A, B) zuständig sein, und virtuelle Kanaldienste für die Protokolllage (Meldungsklassen) und Routinglage (Virtuelle Netze) bereitstellen. Die Schnittstelle zwischen der Protokolllage 620a,b und der Verbindungslage 610a,b kann typischerweise auf Paketebene ablaufen. In einer Ausführungsform wird die kleinste Übertragungseinheit als ein Flit bezeichnet, das eine vorgegebene Anzahl von Bits, wie etwa 192 Bits oder eine andere Benennung. Die Verbindungslage 610a,b verlässt sich auf die physische Lage 605a,b zum Einrahmen der Übertragungseinheit (Phit) der physischen Lage 605a,b auf die Übertragungseinheit (Flit) der Verbindungslage 610a,b. Weiterhin kann die Verbindungslage 610a,b logisch in zwei Teile unterteilt werden: einen Sender und einen Empfänger. Ein Sender/Empfängerpaar an einer Entität kann mit einem Empfänger-/Senderpaar an einer anderen Entität verbunden werden. Die Flusskontrolle erfolgt oft auf Grundlage eines Flits und eines Pakets. Die Fehlererkennung und Korrektur wird ebenfalls potenziell auf Grundlage der Flit-Ebene ausgeführt.
  • In einer Ausführungsform kann die Routinglage 615a,b ein flexibles und verteiltes Verfahren bereitstellen, UPI-Transaktionen von einer Quelle zu einem Ziel zu routen. Das Schema ist flexibel, da Routingalgorithmen für mehrere Topologien durch programmierbare Routingtabellen an jedem Router vorgegeben sein können (wobei die Programmierung in einer Ausführungsform durch Firmware, Software, oder einer Kombination daraus erfolgt). Die Routingfunktion kann verteilt sein; das Routing kann durch eine Reihe von Routingschritten erfolgen, wobei jeder Routingschritt durch ein Nachschlagen einer Tabelle am Quell-, Zwischen- oder Zielrouter definiert sein kann. Das Nachschlagen an einer Quelle kann verwendet werden, um ein UPI-Paket in das UPI-Gewebe einzuschleusen. Das Nachschlagen an einem Zwischenrouter kann verwendet werden, um ein UPI-Paket von einem Eingangsport an einen Ausgangsport zu routen. Das Nachschlagen an einem Zielport kann verwendet werden, auf den Ziel-UPI-Protokollagenten abzuzielen. Es ist zu beachten, dass die Routinglage in einigen Umsetzungen dünn sein kann, da die Routingtabellen und daher die Routingalgorithmen nicht speziell durch die Vorgabe definiert sind. Dies erlaubt Flexibilität und eine Vielzahl von Nutzungsmodellen, einschließlich flexibler Plattformarchitekturtopologien, die durch die Systemumsetzung definiert werden sollen. Die Routinglage 615a,b verlässt sich auf die Verbindungslage 610a,b zum Bereitstellen der Verwendung von bis zu drei (oder mehr) virtuellen Netzen (VNs) - in einem Beispiel zwei deadlockfreie VNs, VN0 und VN1 mit mehreren Meldungsklassen, die in jedem virtuellen Netz definiert sind. Ein geteiltes adaptives virtuelles Netz (VNA) kann in der Verbindungslage, definiert sein, aber dieses adaptive Netz ist in Routingkonzepten nicht unbedingt direkt ausgesetzt, da jede Meldungsklasse und das virtuelle Netz neben anderen Eigenschaften und Beispielen möglicherweise spezielle Ressourcen und einen garantierten Vorwärtsfortschritt aufweisen.
  • In einigen Umsetzungen kann die UPI einen eingebetteten Taktgeber verwenden. Ein Taktsignal kann in Daten eingebettet werden, die unter Verwendung der Verbindung übertragen werden. Mit dem Taktsignal, das in die Daten eingebettet ist, können getrennte und spezifische Taktspuren ausgelassen werden. Dies kann nützlich sein, da es beispielsweise erlauben kann, dass mehr Pins einer Vorrichtung für die Datenübertragung zugewiesen werden, insbesondere in Systemen, in denen der Raum für die Pins sehr knapp ist.
  • Eine Verbindung kann zwischen zwei Agenten auf jeder Seite der Verbindung aufgebaut werden. Ein Agent, der Daten sendet, kann ein örtlicher Agent sein, und der Agent, der Daten empfängt, kann ein externer Agent sein. Zustandsmaschinen können durch beide Agenten eingesetzt werden, um verschiedene Aspekte der Verbindung zu verwalten. In einer Ausführungsform kann der Datenpfad der physischen Lage Flits von der Verbindungslage zu dem elektrischen Frontend übertragen. Der Steuerpfad enthält in einer Umsetzung eine Zustandsmaschine (auch bezeichnet als eine Verbindungsschulungsmaschine oder etwas Ähnliches). Die Aktionen der Zustandsmaschine und ihre Ausstiege aus Zuständen können von internen Signalen, Timern, externen Signalen oder anderen Informationen abhängen. In der Tat können einige der Zustände, wie etwa einige Initialisierungszustände, Timer aufweisen, um einen Timeoutwert bereitzustellen, um einen Zustand zu verlassen. Es ist zu beachten, dass sich die Erkennung in einigen Ausführungsformen auf die Erkennung eines Ereignisses auf beiden Strecken einer Spur bezieht; aber nicht notwendigerweise gleichzeitig. In anderen Ausführungsformen bezieht sich jedoch die Erkennung auf die Erkennung eines Ereignisses durch einen Referenzagenten. Debouncing bezieht sich als ein Beispiel auf die nachhaltige Ausübung eines Signals. In einer Ausführungsform unterstütz die UPI die Funktion in einem Fall von funktionsfreuen Spuren. Hier können Spuren in spezifischen Zuständen fallengelassen werden.
  • 7 ist ein vereinfachtes Blockdiagramm 700, das ein Beispiel für ein Multichippaket 705 illustriert, das zwei oder mehr Chips oder Matrizen enthält (z. B. 710, 715), die kommunikativ verbunden sind, unter Verwendung einer Beispiel-Multichippaketverbindung (MCPL) 720. Während 7 illustriert ein Beispiel von zwei (oder mehr) Matrizen, die unter Verwendung einer Beispiel-MCPL 720 verbunden sind, sollte beachtet werden, dass die Grundsätze und Funktionen, die hierin bezüglich der Umsetzungen durch einen MCPL beschrieben sind, auf jede Verbindung oder jeden Link angewendet werden kann, die/der eine Matrize (z. B. 710) und andere Komponenten verbindet, einschließlich der Verbindung von zwei oder mehr Matrizen (z. B. 710, 715), eine Matrize (oder einen Chip) mit einer anderen Komponente außerhalb der Matrize verbindet, eine Matrize mit einer anderen Vorrichtung oder Matrize außerhalb des Pakets verbindet (z. B. 705), eine Matrize mit einem BGA-Paket verbindet, Umsetzung eines Patchs auf einem Interposer (POINT), oder bei möglichen anderen Beispielen.
  • Allgemein kann ein Multichippaket (z. B. 705) ein elektrisches Paket sein, in dem mehrere integrierte Schaltkreise (ICs), Halbleitermatrizen oder andere diskrete Komponenten (z. B. 710, 715) auf ein vereinendes Substrat gepackt sind (z. B. Silizium oder ein anderes Halbleitersubstrat), was die Verwendung der kombinierten Komponenten als eine einzige Komponente ermöglicht (z. B. als ob eine größere IC). In einigen Fällen können die größeren Komponenten (z. B. Matrizen 710, 715) selbst IC-Systeme sein, wie etwa Systeme auf Chip (SoC), Multiprozessorchips oder andere Komponenten, die mehrere Komponenten (z. B. 725-730 und 740-745) auf der Vorrichtung enthalten, wie beispielsweise auf einer einzelnen Matrize (z. B. 710, 715). Multichip-Pakete 705 können Flexibilität für den Aufbau komplexer und variierter Systeme von potenziell mehreren diskreten Komponenten und Systemen bereitstellen. Beispielsweise kann jede der Matrizen 710, 715 hergestellt oder anderweitig von zwei verschiedenen Entitäten bereitgestellt werden, wobei das Siliziumsubstrat des Pakets 705 neben vielen anderen Beispielen durch eine dritte Entität bereitgestellt wird. Ferner können Matrizen und andere Komponenten innerhalb eines Multichip-Pakets 705 selbst eine Verbindung oder andere Kommunikationsgewebe (z. B. 735, 750) enthalten, die die Infrastruktur für die Kommunikation zwischen Komponenten (z. B. 725-730 und 740-745) innerhalb der Vorrichtung (z. B. 710 bzw. 715) bereitstellen. Die verschiedenen Komponenten und Verbindungen (z. B. 735, 750) können potenziell mehrere verschiedene Protokolle unterstützen oder verwenden. Ferner kann die Kommunikation zwischen den Matrizen (z. B. 710, 715) potenziell Transaktionen zwischen den verschiedenen Komponenten auf den Matrizen über mehrere verschiedene Protokolle enthalten. Das Design von Mechanismen zur Bereitstellung von Kommunikation zwischen Chips (oder Matrizen) auf einem Multichip-Paket kann eine Herausforderung sein, wobei traditionelle Lösungen hoch spezialisierte, teure und paketspezifische Lösungen nutzen, die auf den spezifischen Kombinationen von Komponenten (und gewünschten Transaktionen) basieren, die verbunden werden sollen.
  • Die Beispiele, Systeme, Algorithmen, Vorrichtung, Logik und Eigenschaften, die innerhalb dieser Vorgaben beschrieben sind, können zumindest einige der oben identifizierten Probleme behandeln, einschließlich möglicherweise vielen anderen, die nicht ausdrücklich darin genannt sind. Beispielsweise kann in einigen Umsetzungen eine Schnittstelle für hohe Bandbreite, geringe Leistung, geringe Latenz bereitgestellt werden, um eine Hostvorrichtung (z. B. eine CPU) oder eine andere Vorrichtung mit einem Companion-Chip zu verbinden, der in demselben Paket sitzt, wie der Host. Eine solche Multichip-Paketverbindung (MCPL) kann mehrere Paketoptionen, mehrere E/A-Protokolle sowie die Eigenschatten der Zuverlässigkeit, Verfügbarkeit und Wartungsfähigkeit (RAS) unterstützen. Ferner kann die physische Lage (PHY) eine elektrische Lage und eine Logiklage enthalten und kann längere Kanallängen unterstützen, einschließlich Kanallängen bis zu und in einigen Fällen von mehr als etwa 45 mm. In einigen Umsetzungen kann eine Beispiel-MCPL mit hohen Datenraten laufen, einschließlich Datentraten von mehr als 8 bis 10Gb/s.
  • In einer Beispielumsetzung einer MCPL kann eine elektrische PHY-Lage traditionelle Multikanalverbindungslösungen (z. B. Multikanal-DRAM-E/A) verbessern, und etwa die Datenrate und Kanalkonfiguration um eine Anzahl von Funktionen erweitern, einschließlich unter anderem beispielsweise regulierter Mittelschienenanschlüsse, aktivem Niederleistungs-Crosstalk-Abbruch, Schaltkreisredundanz, Korrektur und Endzerrung des Lastzyklus pro Bit, Leitungscodierung und Senderequalisierung.
  • In einer Beispielumsetzung einer MCPL kann eine logische PHY-Lage umgesetzt werden, die ferner bei der Erweiterung der Datenrate und Kanalkonfiguration unterstützen kann (z. B. Eigenschaften der elektrischen Lage), die Datenrate und Kanalkonfiguration zu erweitern und dabei der Verbindung auch ermöglicht, mehrere Protokolle über die elektrische Lage zu routen. Solche Umsetzungen können eine modulare gemeinsame physische Lage bereitstellen und definieren, die protokollagnostisch ist und deren Architektur dazu dient, mit potenziell jedem bestehenden oder künftigen Verbindungsprotokoll zu funktionieren.
  • Mit Blick auf 8 wird ein vereinfachtes Blockdiagramm 800 gezeigt, das mindestens einen Abschnitt eines Systems zeigt, das eine Beispielumsetzung einer Multichip-Paketverbindung (MCPL) zeigt. Eine MCPL kann unter Verwendung physischer elektrischer Verbindungen umgesetzt werden (z. B. Drähte, die als Spuren umgesetzt sind), die eine erste Vorrichtung 805 (z. B. eine erste Matrize, die eine oder mehrere Unterkomponenten enthält) mit einer zweiten Vorrichtung 810 (z. B. einer zweiten Matrize, die eine oder mehrere andere Unterkomponenten enthält) verbindet. In dem speziellen Beispiel, das in der Darstellung des Diagramms 800 auf hoher Ebene dargestellt ist, können alle Signale (in den Kanälen 815, 820) unidirektional sein und Spuren könne bereitgestellt sein, damit die Datensignale eine vor- und eine nachgelagerte Datenübertragung aufweisen. Während das Blockdiagramm 800 aus 8 eine erste Komponente 805 als vorgelagerte Komponente und die zweite Komponente 810 als nachgelagerte Komponenten, und physische Spuren der MCPL, die zum Senden von Daten verwendet werden, als nachgelagerter Kanal 815 und Spuren, die zum Empfangen von Daten (von der Komponente 810) verwendet werden, als vorgelagerter Kanal 820 bezeichnet werden, sollte beachtet werden, dass die MCPL zwischen den Vorrichtungen 805, 810 durch jede Vorrichtung verwendet werden kann, um Daten zwischen den Vorrichtungen zu senden und zu empfangen.
  • In einer Beispielumsetzung kann eine MCPL eine physische Lage (PHY) bereitstellen, einschließlich der elektrischen MCPL PHY 825a,b (oder kollektiv 825) und eine ausführbare logikumsetzende MCPL-logische PHY 830a,b (oder kollektiv 830). Elektrisch oder physisch kann PHY 825 die physische Verbindung bereitstellen, über die Daten zwischen den Vorrichtungen 805, 810 kommuniziert werden. Signalkonditionierungskomponenten und Logik können in Verbindung mit der physischen PHY 825 umgesetzt werden, um die Möglichkeit hoher Datenraten und Kanalkonfiguration der Verbindung einzurichten, die in einigen Anweisungen dicht geclusterte physische Verbindungen mit Längen von etwa 45 mm oder mehr beinhalten können. Die logische PHY 830 kann eine Logik zum Ermöglichen der Taktung, Verbindungszustandsmanagement (z. B. für die Verbindungslagen 835a, 835b), und Protokollmultiplexing zwischen potenziell mehreren verschiedenen Protokollen enthalten, die zur Kommunikation über die MCPL verwendet werden.
  • In einer Beispielumsetzung kann die physische PHY 825 kann für jeden Kanal (z. B. 815, 820) einen Satz Datenspuren enthalten, über die Daten im Band geschickt werden können. In diesem speziellen Beispiel werden 50 Datenspuren in jedem der vorgelagerten und nachgelagerten Kanäle 815, 820, bereitgestellt, auch wenn jede andere Anzahl von Spuren verwendet werden kann, wie durch das Layout und die Leitungseinschränkungen, die gewünschten Anwendungen, Vorrichtungseinschränkungen usw. erlaubt. Jeder Kanal kann ferner eine oder mehrere spezielle Spuren für ein Stroboskop- oder Taktsignal für den Kanal, eine oder mehrere spezielle Spuren für ein gültiges Signal für den Kanal, eine oder mehrere spezielle Spuren für ein Streamsignal und eine oder mehrere spezielle Spuren für ein Verbindungstatusmaschinenmanagement oder Seitenbandsignal enthalten. Die physische PHY kann ferner eine Seitenbandverbindung 840 enthalten, kann in einigen Beispiele eine bidirektionale untere Frequenzsteuersignalverbindung sein, die verwendet wird, um unter anderem Zustandsübergänge und andere Attribute der MCPL, die Vorrichtungen 805, 810 verbindet, zu koordinieren.
  • Wie oben angemerkt, können mehrere Protokolle unter Verwendung einer Umsetzung der MCPL unterstützt werden. In der Tat können mehrere unabhängige Transaktionslagen 850a, 850b an jeder Vorrichtung 805, 810 bereitgestellt sein. Beispielsweise kann jede Vorrichtung 805, 810 zwei oder mehr Protokolle wie PCI, PCIe, QPI, Intel In-Die Interconnect (IDI) und andere unterstützen und nutzen. IDI ist ein kohärentes Protokoll, das auf der Matrize verwendet wird, um zwischen Kernen, Last Level Caches (LLCs), Speicher, Grafiken und EA-Controllern zu kommunizieren. Andere Protokolle können ebenfalls unterstützt werden, einschließlich Ethernet-Protokoll, Infiniband-Protokollen und anderen PCIe-gewebebasierten Protokollen. Die Kombination der logischen PHY und physischen PHY kann ebenfalls als Matrize-zu-Matrizenverbindung verwendet werden, um unter anderem eine SerDes PHY (PCIe, Ethernet, Infiniband oder andere Hochgeschwindigkeits-SerDes) an einer Matrize mit ihren oberen Lagen zu verbinden, die auf der anderen Matrize umgesetzt sind.
  • Die logische PHY 830 kann Multiplexing zwischen diesen mehreren Protokollen auf einer MCPL unterstützen. Beispielsweise kann die Spur mit dem speziellen Stream verwendet werden, ein codiertes Streamsignal auszuüben, das identifiziert, welches Protokoll für Daten gelten soll, die im Wesentlichen gleichzeitig auf den Datenspuren des Kanals verschickt werden. Ferner kann die logische PHY 830 verwendet werden, die verschiedenen Typen der Verbindungszustandsübergänge zu verhandeln, die die verschiedenen Protokolle unterstützen oder anfragen können. In einigen Fällen können LSM_SB-Signale, die über die spezielle LSM_SB-Spur des Kanals geschickt werden, zusammen mit einer Sideband-Verbindung 840 verwendet werden, um die Verbindungszustandsübergänge zwischen den Vorrichtungen 805, 810 zu kommunizieren und zu verhandeln. Ferner können Verbindungstraining, Fehlererkennung, Verzerrungserkennung, Entzerrung und andere Funktionen traditioneller Verbindungen teilweise unter Verwendung logischer PHY 830 ersetzt oder kontrolliert werden. Beispielsweise können gültige Signale, die über eine oder mehrere spezielle gültige Signalspuren in jedem Kanal gesendet werden, verwendet werden, um unter anderem die Verbindungsaktivität zu signalisieren, Verzerrung, Verbindungsfehler zu erkenne und andere Funktionen umzusetzen. In dem speziellen Beispiel aus 8 werden mehrere gültige Spuren pro Kanal bereitgestellt. Beispielsweise können Datenspuren innerhalb eines Kanals gebündelt oder geclustert werden (physisch und/oder logisch) und eine gültige Spur kann für jeden Cluster bereitgestellt werden. Ferner können mehrere Stroboskopspuren bereitgestellt in einigen Fällen auch bereitgestellt werden, um unter anderem ein spezielles Stroboskopsignal für jedes Cluster in mehreren Datenspurclustern in einem Kanal bereitzustellen.
  • Wie oben angemerkt, kann die logische PHY 830 verwendet werden, um Verbindungssteuersignale, die zwischen Vorrichtungen, die von der MCPL verbunden werden, zu verhandeln und zu verwalten. In einigen Umsetzungen kann die logische PHY 830 eine Verbindungslagenpaket- (LLP) Erzeugungslogik 860 enthalten, die verwendet werden kann, Verbindungslagensteuernachrichten über die MCPL (d. h. im Band) zu senden. Solche Nachrichten können über Datenspuren des Kanals gesendet werden, wobei die Stream-Spur unter anderem identifiziert, dass die Daten Verbindungslage-zu-Verbindungslage-Meldungen sind, wie etwa Verbindungslagensteuerdaten. Verbindungslagennachrichten, die unter Verwendung des LL-Moduls 860 aktiviert wurden, können bei der Verhandlung und Durchführung des Verbindungslagenzustandsübergangs, Leistungsmanagement, Loopback, bei der Deaktivierung, Neuzentrierung, beim Scrambling, unter anderem von Verbindungslageneigenschaften zwischen den Verbindungslagen 835a, 835b der Vorrichtungen 805 bzw. 810 helfen.
  • Mit Blick auf 9 ist ein Diagramm 900 dargestellt, das eine Beispielsignalisierung unter Verwendung eines Satzes Spuren (z. B. 815, 820) in einem bestimmten Kanal einer Beispiel-MCPL darstellt. In dem Beispiel von 9 sind zwei Cluster von fünfundzwanzig (25) Datenspuren für insgesamt fünfzig (50) Datenspuren in dem Kanal bereitgestellt. Ein Abschnitt der Spuren ist dargestellt, während andere (z. B. DATEN[4-46] und eine zweite Stroboskopsignalspur (STRB)) ausgelassen sind (z. B. als redundante Signale), um das spezielle Beispiel einfacher zu illustrieren. Wenn die physische Lage sich in einem aktiven Zustand befindet (z. B. nicht im abgeschalteten Zustand oder in einem Niederleistungsmodus (z. B. einem Ll-Zustand)), können Stroboskopspuren (STRB) mit einem synchronen Taktsignal versehen sein. In einigen Umsetzungen können Daten auf steigenden und fallenden Kanten des Stroboskops gesendet werden. Jede Kante (oder jeder Halbtaktzyklus) kann eine Einheitenintervall (UI) markieren. Dementsprechend kann in diesem Beispiel ein Bit (z. B. 905) auf jeder Spur geschickt werden, sodass alle 8UI ein Byte gesendet werden kann. Ein Bytezeitraum 910 kann als 8UI oder die Zeit zum Senden eines Bytes auf einer einzigen Datenspur (z. B. DATEN[0-49]) definiert sein.
  • In einigen Umsetzungen kann ein gütiges Signal, das auf einem oder mehreren speziellen gültigen Signalkanälen (z. B. VALID0, VALID1), gesendet wird, als führende Anzeige für die Empfangsvorrichtung dienen, um für die Empfangsvorrichtung, oder Senke identifizieren, wenn dies ausgegeben wird (hoch), dass Daten von der Sendevorrichtung, oder Quelle, auf Datenspuren (z. B. DATEN[0-49]) während des folgenden Zeitraums, wie etwa einem Bytezeitraum 910, gesendet werden. Alternativ zeigt, wenn das gütige Signal zu niedrig ist, die Quelle der Senke an, dass die Senke während dem folgenden Zeitraum keine Daten auf den Datenspuren sendet. Dementsprechend kann, wenn die logische PHY der Senke erkennt, dass das gültige Signal nicht ausgeübt wird (z. B. auf den Spuren VALID0 und VALID1), die Senke alle Daten ignorieren, die auf den Datenspuren (z. B. DATEN[0-49]) während des folgenden Zeitraums erkannt werden. Beispielsweise kann das Crosstalk-Rauschen oder andere Bits auf einer oder mehreren der Datenspuren erscheinen, wenn die Quelle faktisch keine Daten sendet. Durch ein niedriges oder nicht ausgeübtes gütiges Signal während des vorherigen Zeitraums (z. B. dem vorherigen Byte-Zeitraums) kann die Senke bestimmen, dass die Datenspuren während des folgenden Zeitraums nicht beachtet werden.
  • Daten, die auf jeder der Spuren der MCPL gesendet werden, können streng an dem Stroboskopsignal ausgerichtet sein. Ein Zeitraum kann auf Grundlage des Stroboskops definiert werden, wie etwa einem Byte-Zeitraum, und jeder dieser Zeiträume kann einem definierten Fenster entsprechen, in dem Signale auf den Datenspuren (z. B. DATEN[0-49]), den gültigen Spuren (z. B. VALID1, VALID2), und der Streamspur (z. B. STREAM) gesendet werden. Dementsprechend kann die Ausrichtung dieser Signale die Identifizierung ermöglichen, dass ein gütiges Signal in einem vorherigen Zeitfenster für Daten in dem folgenden Zeitfenster gilt, und dass ein Streamsignal für Daten in demselben Zeitfenster gilt. Das Streamsignal kann ein codiertes Signal sein (z. B. 1 Byte Daten für ein Byte-Zeitfenster), das codiert ist, das Protokoll zu identifizieren, das für die Daten gilt, die während desselben Zeitfensters gesendet werden.
  • Illustrativ ist in dem speziellen Beispiel aus 9 ein Byte-Zeitfenster definiert. Eine gültige wird an einem Zeitfenster n (915) ausgeübt, bevor Daten in die Datenspuren DATEN[0-49] eingeschleust werden. In dem folgenden Zeitfenster n+1 (920) werden Daten auf mindestens einigen der Datenspuren gesendet. In diesem Fall werden während n+1 (920) Daten auf allen fünfzig Datenspuren gesendet. Da einige gültige für die Dauer des vorhergehenden Zeitfensters n (915) ausgeübt wurde, kann die Senkevorrichtung die Daten auf Datenspuren DATEN[0-49] während des Zeitfensters n+1 (920) validieren. Weiterhin erlaubt die führende Art des gültigen Signals während des Zeitfensters n (915) der Empfangsvorrichtung die Vorbereitung auf eingehende Daten. Fortfahrend mit dem Beispiel aus 9, bleibt das gültige Signal (auf VALID1 und VALID2) während der Dauer des Zeitfensters n+1 (920) ausgeübt, sodass die Senkevorrichtung die Daten, die über die Datenspuren DATEN[0-49] gesendet werden, während des Zeitfensters n+2 (925) erwartet. Wenn das gültige Signal während des Zeitfensters n+2 (925) ausgeübt bleibt, kann die Vorrichtung ferner erwarten, weitere Daten zu empfangen (und zu verarbeiten), die während eines direkt nachfolgenden Zeitfensters n+3 (930) gesendet wurden. In dem Beispiel von 9 wird jedoch das gültige Signal während der Dauer des Zeitfensters n+2 (925) nicht mehr ausgeübt, was für die Senkevorrichtung anzeigt, dass keine Daten während des Zeitfensters n+3 (930) gesendet werden, und dass jedes Bit, das auf den Datenspuren DATEN[0-49] erkannt wird, während des Zeitfensters n+3 (930) verworfen werden soll.
  • Wie oben angemerkt, können pro Kanal mehrere gültige Spuren und Stroboskopspuren erhalten werden. Dies kann unter anderem dabei helfen, die Einfachheit des Schaltkreises und die Synchronisierung unter den Clustern relativ langer physischer Spuren aufrechtzuerhalten, die die beiden Vorrichtungen verbinden. In einigen Umsetzungen kann ein Satz Datenspuren in Cluster von Datenspuren unterteilt werden. In dem Beispiel aus 9 beispielsweise können Datenspuren DATEN[0-49] in zwei Cluster mit je fünfundzwanzig Spuren unterteilt werden und jeder Cluster kann eine spezielle gültige und Stroboskopspur aufweisen. Beispielsweise kann die gültige Spur VALID1 mit den Datenspuren DATEN[0-24] assoziiert sein und die gültige Spur VALID2 kann mit den Datenspuren DATEN[25-49] assoziiert sein. Die Signale jeder „Kopie“ der gültigen und Stroboskopspuren für jeden Cluster können identisch sein.
  • Wie oben eingeführt, können die Daten auf der Streamspur STREAM verwendet werden, um der empfangenden logischen PHY anzuzeigen, welches Protokoll für Daten gelten soll, die auf Datenspuren DATEN[0-49] gesendet werden. In dem Beispiel von 9 wird ein Streamsignal auf STREAM während desselben Zeitfensters gesendet, wie Daten auf den Datenspuren DATEN[0-49], um das Protokoll der Daten auf den Datenspuren anzuzeigen. In alternativen Umsetzungen kann das Streamsignal während eines vorhergehenden Zeitfensters gesendet werden, wie etwa mit jeweiligen gültigen Signalen, oder anderen möglichen Modifikationen. Fortfahrend mit dem Beispiel aus 9, wird jedoch ein Streamsignal 935 während des Zeitfensters n+1 (920) gesendet, das codiert ist, das Protokoll (z. B. PCIe, PCI, IDI, QPI, usw.) abzugeben, das für das Bit gelten soll, das über die Datenspuren DATEN[0-49] während des Zeitfensters n+1 (920) gesendet wird. Ähnlich kann ein anderes Streamsignal 940 während des nachfolgenden Zeitfensters n+2 (925) gesendet werden, um das Protokoll anzuzeigen, das für das Bit gilt, das über die Datenspuren DATEN[0-49] während des Zeitfensters n+2 (925) gesendet wird, und so weiter. In einigen Fällen, wie etwa im Beispiel aus 9 (wo beide Streamsignale 935, 940 dieselbe Codierung aufweisen, binäre FF), können Daten in sequenziellen Zeitraumfenstern (z. B. n+1 (920) und n+2 (925)) zu demselben Protokoll gehören. In anderen Fällen jedoch können Daten in sequenziellen Zeitraumfenstern (z. B. n+1 (920) und n+2 (925)) von verschiedenen Transaktionen stammen, auf die verschiedene Protokolle angewendet werden sollen, und Streamsignale (z. B. 935, 940) können entsprechend codiert sein, um unter anderem die verschiedenen Protokolle zu identifizieren, die für die sequenziellen Datenbytes auf den Datenspuren (z. B. DATEN[0-49]) gelten.
  • In einigen Umsetzungen kann ein Zustand niedriger Leistung oder im Leerlauf für die MCPL definiert sein. Beispielsweise kann, wenn keine Vorrichtung an der MCPL Daten sendet, die (elektrische und logische) physische Lage der MCPL in einen Leerlauf- oder Niederleistungszustand schalten. In dem Beispiel aus 9 befindet sich im Zeitfenster n-2 (945) beispielsweise die MCPL in einem ruhigen oder Leerlaufzustand und das Stroboskop ist deaktiviert, um Leistung zu sparen. Die MCPL kann aus dem Niederleistungs- oder Leerlaufzustand gehen und das Stroboskop im Zeitfenster n-1 (z. B. 906) aufwecken. Das Stroboskop kann eine Übertragungspräambel abschließen (z. B., um beim Aufwecken und der Synchronisierung jeder der Spuren des Kanals sowie der Senkevorrichtung zu helfen), beginnend mit dem Stroboskopsignal vor jedem anderen Signal auf den anderen Nicht-Stroboskopspuren. Nach diesem Zeitfenster n-1 (906) kann das gültige Signal in Zeitfenster n (915) ausgeübt werden, um die Senke zu informieren, dass Daten in dem folgenden Zeitfenster n+1 (920) gesendet werden, wie oben erklärt.
  • Die MCPL kann erneut in einen Niederleistungs- oder Leerlaufzustand (z. B. einen L1-Zustand) eintreten, nachdem die Leerlaufbedingungen für die gültigen Spuren, Datenspuren, und/oder andere Spuren des MCPL-Kanals erkannt wurden. Beispielsweise kann zu Beginn des Zeitfensters n+3 (930) und danach keine Signalisierung erkannt werden. Die Logik der Quellen- oder Senkevorrichtung kann den Übergang zurück in einen Niederleistungszustand einleiten, was erneut (z. B. Zeitfenster n+5 (955)) unter anderen Beispielen und Grundsätzen (einschließlich denen, die hierin nachfolgend besprochen werden) dazu führt, dass das Stroboskop in einem Leistungssparmodus in den Leerlauf schaltet.
  • Elektrische Eigenschaften der physischen PHY können ein oder mehrere Einzelendensignalisierungen, Halbraten-Weitergeleitete Taktung, Abgleich des Verbindungskanals sowie Onchip-Transportverzögerung des Senders (der Quelle) und Empfängers (der Senke), optimierter Schutz vor elektrostatischer Entladung (ESD), Padleitfähigkeit und andere Eigenschaften enthalten. Ferner kann eine MCPL umgesetzt werden, um eine höhere Datenrate (z. B. bei der Annäherung an 16 Gb/s) und Energieeffizienzeigenschaften zu erreichen, als traditionelle Paket-E/A-Lösungen.
  • Weitere Eigenschaften können auch optional in einigen Beispielen einer MPL umgesetzt sein, um die Leistungseigenschaften der physischen Verbindung zu verbessern. Beispielsweise kann eine Leistungscodierung bereitgestellt sein. Während Mittelschienenanschlüsse wie oben beschrieben eine DC-Invertierung des Datenbus (DBI) unnötig machen können, kann die AC DBI dennoch verwendet werde, um die dynamische Leistung zu verringern. Eine kompliziertere Codierung kann ebenfalls verwendet werden, um den Unterschied zwischen den 1en und 0en im schlimmsten Fall zu eliminieren, um etwa neben anderen Beispielsvorteilen die Antriebsanforderung des Mittelschienenreglers zu verringern und das E/A-Umschaltgeräusch einzuschränken. Ferner kann die Senderequalisierung auch optional umgesetzt werden. Beispielsweise kann bei sehr hohen Datenraten der Einfügungsverlust für einen paketinternen Kanal wesentlich sein. Eine Zwei-Tap-Gewichtungssenderequalisierung (z. B. während einer anfänglichen Einschaltsequenz durchgeführt) kann in einigen Fällen ausreichen, um unter anderem einige der Probleme zu verringern.
  • Mit Blick auf 10 wird ein vereinfachtes Blockdiagramm 1000 dargestellt, das ein Beispiel einer logischen PHY einer Beispiel-MCPL illustriert. Eine physische PHY 1005 kann sich mit einer Matrize verbinden, die die logische PHY 1010 und weitere Logik enthält, die eine Verbindungslage der MCPL trägt. Die Matrize kann in diesem Beispiel ferner eine Logik enthalten, um mehrere verschiedene Protokolle auf der MCPL zu unterstützen. In dem Beispiel aus 10 beispielsweise kann eine PCIe-Logik 1015 sowie eine UPI-Logik 1020 bereitgestellt werden, sodass die Matrizen unter potenziell vielen anderen Beispielen Verwendung von PCIe oder IDI über dieselbe MCPL kommunizieren können, 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 Matrizen unterstützt werden, können unterschiedliche Dienstebenen und Eigenschaften anbieten.
  • Die logische PHY 1010 kann die Verbindungszustandsmaschinenmanagementlogik 1025 zum Verhandeln von Verbindungszustandsübergängen in Verbindung mit Anfragen der oberen Lagenlogik der Matrize (z. B. über PCIe oder IDI empfangen) enthalten. Die logische PHY 1010 kann ferner die Verbindungsprüfung und Debuglogik (z. B. 1030) Ion einigen Umsetzungen enthalten. Wie oben angemerkt, kann eine Beispiel-MCPL Steuersignale unterstützen, die zwischen Matrizen über die MCPL verschickt werden, um die protokollagnostischen Eigenschaften mit hoher Leistung und Leistungseffizienz (sowie weitere Beispieleigenschaften) der MCPL zu unterstützen. Beispielsweise kann die logische PHY 1010 die Erzeugung und das Senden sowie Empfangen und Verarbeiten gültiger Signale und LSM-Sideband-Signale in Verbindung mit dem Senden und Empfangen der Daten über spezielle Datenspuren unterstützen, wie in den obigen Beispielen beschrieben.
  • In einigen Umsetzungen kann die Multiplexing-(z. B. 1035) und Demultiplexing- (z. B. 1040) Logik in der logischen PHY 1010 enthalten oder anderweitig für sie zugänglich sein. Beispielsweise kann eine Multiplexinglogik (z. B. 1035) verwendet werden, um Daten zu identifizieren (z. B. verkörpert als Pakete, Nachrichten usw.), die an die MCPL verschickt werden sollen. Die Multiplexinglogik 1035 kann das Protokoll identifizieren, das die Daten steuert, und ein Streamsignal erzeugen, das codiert ist, das Protokoll zu identifizieren. Beispielsweise kann in einer Beispielumsetzung das Streamsignal als ein Byte von zwei Hexadezimalsymbolen codiert sein (z. B. IDI: FFh; PCIe: F0h; LLP: AAh; Sideband: 55h; usw.), und während desselben Fensters (z. B. eines Byte-Zeitfensters) der Daten versendet werden, die von dem identifizierten Protokoll gesteuert werden. Ähnlich kann eine Demultiplexinglogik 1040 eigesetzt werden, um die eingehenden Streamsignale zu interpretieren, um das Streamsignal zu decodieren und das Protokoll zu identifizieren, das für die Daten gelten soll, die aktuell mit dem Streamsignal auf den Datenspuren empfangen werden. Die Demultiplexinglogik 1040 kann dann protokollspezifische Verbindungslagenhandhabung anwenden (oder sicherstellen) und dafür sorgen, dass die Daten durch die jeweilige Protokolllogik (z. B. PCIe Logik 1015 oder UPI-Logik 1020) gehandhabt werden.
  • Die logische PHY 1010 kann ferner eine Verbindungslagenpaketlogik 1050 enthalten, die verwendet werden kann, verschiedene Verbindungssteuerfunktionen zu handhaben, einschließlich Leistungsmanagementaufgaben, Loopback, Deaktivieren, Neuzentrierung, Scrambling, usw. Die LLP-Logik 1050 kann Nachrichten von Verbindungslage-zu-Verbindungslage über MCLP, oder andere Funktionen ermöglichen. Daten, die der LLP-Signalisierung entsprechen, können ebenfalls durch ein Streamsignal identifiziert werden, das auf einer speziellen Streamsignalspur versendet wird, die codiert ist, zu identifizieren, dass die Datenspuren LLP-Daten. Die Multiplexing- und Demultiplexinglogik (z. B. 1035, 1040) können auch verwendet werden, um die Streamsignale, die dem LLP-Traffic entsprechen, zu erzeugen und zu interpretieren, sowie die Handhabung dieses Traffic durch die entsprechenden Matrizenlogik (z. B. LLP-Logik 1050) auszulösen. Ebenso, da einige Umsetzungen einer MCLP ein spezielles Sideband (z. B. Sideband 1055 und unterstützende Logik) enthalten kann, wie etwa unter anderem einen asynchronen Sideband-Kanal und/oder einen Sideband-Kanal mit niedrigerer Frequenz.
  • Die logische PHY-Logik 1010 kann ferner eine Verbindungszustandsmaschinenmanagementlogik enthalten, die Verbindungszustandsmanagementbenachrichtigung über eine spezielle LSM-Sideband-Spur erzeugen und empfangen (und verwenden) kann. Beispielsweise kann eine LSM-Sideband-Spur verwendet werden, das Handshaking mit einem vorgeschalteten Verbindungstrainingszustand durchzuführen, aus den Leistungsmanagementzuständen auszutreten (z. B. einem L1-Zustand), und für andere mögliche Beispiele. Das LSM-Sideband-Signal kann ein asynchrones Signal sein, indem es nicht an den Daten-, gültigen und Stream-Signalen der Verbindung ausgerichtet ist, sondern stattdessen den Signalisierungszustandsübergängen entspricht und beispielsweise die Verbindungszustandsmaschine zwischen den zwei Matrizen oder Chips ausrichtet, die durch die Verbindung verbunden sind. Die Bereitstellung einer speziellen LSM Sideband-Spur kann in einigen Beispielen traditionelles Squelching und Eliminierung empfangener Erkennungsschaltkreise eines analogen Frontend (AFE) sowie andere Beispielvorteile erlauben.
  • Mit Blick auf 11 wird ein vereinfachtes Blockdiagramm 1100 dargestellt, das eine andere Darstellung der Logik illustriert, die zur Umsetzung einer MCPL verwendet wird. Beispielsweise ist die logische PHY 1010 mit einer definierten logischen PHY-Schnittstelle (LPIF) 1105 ausgestattete, durch die jedes der mehreren verschiedenen Protokolle (z. B. PCIe, IDI, QPI usw.) 1110, 1115, 1120, 1125 und Signalisierungsmodi (z. B. Sideband) eine Schnittstelle mit der physischen Lage eines Beispiels MCPL darstellen kann. In einigen Umsetzungen kann auch eine Multiplexing- und Vermittlungslogik 1130 als eine Lage bereitgestellt, werden, die von der logischen PHY 1010 getrennt ist. In einigem Beispiel kann die LPIF 1105 als Schnittstelle auf jeder Seite dieser MuxArb-Lage 1130 bereitgestellt werden. Die logische PHY 1010 kann eine Schnittstelle zur der physischen PHY (z. B. dem analogen Frontend (AFE) 1005 der MCPL PHY) durch eine andere Schnittstelle darstellen.
  • Die LPIF kann die PHY (logische und elektrische/analoge) von den oberen Lagen (z. B. 1110, 1115, 1120, 1125) abstrahieren, sodass eine vollständig andere PHY unter LPIF für die oberen Lagen transparent umgesetzt werden kann. Dies kann unter anderem dabei helfen, die Modularität und Wiederverwendung im Design zu fördern, da die oberen Lagen intakt bleiben können, wenn die zugrundeliegende Signalisierungstechnik PHY aktualisiert wird. Ferner kann die LPIF eine Anzahl von Signalen definieren, die Multiplexing/Demultiplexing, LSM-Management, Fehlererkennung und Handhabung und andere Funktionen der logischen PHY ermöglicht. Beispielsweise fasst Tabelle 1 mindestens einen Abschnitt der Signale zusammen, die für eine Beispiel-LPIF definiert werden können: TABELLE 1:
    Signal name Beschreibung
    Rst Reset
    Lclk Verbindung des Taktgebers - 8UI des PHY-Taktgebers
    Pl-trdy Die physische Lage ist bereit, Daten anzunehmen, Daten werden durch die physische Lage angenommen, wenn P1_trdy und Lp_valid beide ausgeübt werden.
    Pl_data[N-1:0] [7:0] Physische Lage-zu-Verbindungslage-Daten, wobei N der Anzahl Spuren entspricht.
    Pl_valid Physische Lage-zu-Verbindungslage-Signal, das anzeigt, dass die Daten gültig sind
    Pl_Stream[7:0] Physische Lage-zu-Verbindungslage-Signal, das die Stream-ID anzeigt, die mit empfangenen Daten empfangen wurde
    Pl_error Die physische Lage hat einen Fehler erkannt (z. B. Framing oder Training)
    Pl_AlignReq Anfrage der physischen Lage an die Verbindungslage zur Ausrichtung der Pakete bei der
    LPIF-Breitengrenze
    Pl_in_L0 Zeigt an, dass die Verbindungszustandsmaschine (LSM) in L0 ist
    Pl_in_retrain Zeigt an, dass die LSM in Retraining/Erholung ist
    Pl_rejectL1 Zeigt an, dass die PHY-Lage den Eintrag in L1 abgelehnt hat.
    Pl_in_L12 Zeigt an, dass LSM in L1 oder L2 steht.
    Pl_LSM (3:0) Aktuelle LSM-Zustands informationen
    Lp_data[N-1:0] [7:0] Verbindungslage-zu-physische Lage-Daten, wobei N der Anzahl Spuren entspricht.
    Lp_Stream[7:0] Verbindungslage-zu-physische Lage-Signal, das die Stream-ID anzeigt, die mit den Daten verwendet werden soll
    Lp_AlignAck Verbindungslage zu physische Lage zeigt an, dass Pakete an der LPIF-Breitengrenze ausgerichtet sind
    Lp_valid Verbindungslage-zu-physische Lage-Signal, das anzeigt
    Lp_enterL1 Verbindungslageanfrage an physische Lage zum Eintritt in L1
    Lp_enterL2 Verbindungslageanfrage an physische Lage zum Eintritt in L2
    Lp_Retrain Verbindungslageanfrage an physische Lage für Retraining der PHY
    Lp_exitL12 Verbindungslageanfrage an physische Lage zum Austritt aus L1, L2
    Lp_Disable Verbindungslageanfrage an
    physische Lage für Deaktivierung der PHY
  • Wie in Tabelle 1 angemerkt, kann in einigen Umsetzungen ein Ausrichtmechanismus durch einen AlignReq/AlignAck-Handshake bereitgestellt werden. Wenn beispielsweise die physische Lage in die Erholung eintritt, können einige Protokolle Paketframing verlieren. Die Ausrichtung der Pakete kann etwa korrigiert werden, um die korrekte Framingidentifizierung durch die Verbindungslage zu garnieren.
  • Mit Blick auf 12 kann, wie oben erwähnt, die in einer Vorrichtung, die MCPL unterstützt, umzusetzende logische PHY eine definierte logische PHY-Schnittstelle (LPIF) enthalten, die eine Schnittstelle zwischen der MCPL PHY und der Verbindungslage einer der mehreren verschiedenen Protokolle (z. B. PCIe, IDI, QPI, UPI, USB, usw.) definiert. 12 ist ein vereinfachtes Blockdiagramm 1200, das ein Beispiel einer solchen Schnittstelle darstellt. Beispielsweise kann die MCPL PHY 1205 eine logische PHY 1210 und eine analoge Frontend (AFE)/physische Codierungssublayer (PCS) 1215 enthalten. Die MCPL PHY kann über eine LPIF 1220 mit den Verbindungslagen (z. B. 1225) (und damit den Transaktionslagen (z. B. 1230)) anderer Kommunikationsprotokolle verbunden sein.
  • Die Verbindungslagen mehrere Kommunikationsprotokolle mit verschiedenen Eigenschaften können die PHY verwenden, die durch die MCPL bereitgestellt ist. In einigen Umsetzungen kann ein Kommunikationsprotokoll, das für eine MCPL verwendet werden soll, auf Grundlage einer Schnittstelle zwischen der Verbindungslage und der physischen Lage inkompatibel mit der LPIF der MCPL sein oder anderweitig davon abweichen. Beispielsweise kann in einem Beispiel eine MCPL-LPIF 1220 basierend auf Die MCPL-LPIF kann spezifikationsdefinierte gemeinsame Schnittstelle zwischen einer Verbindungslage und der MCPL-logischen PHY sein, um die Interfunktionalität, das Design und die Validierungswiederverbindung zwischen Verbindungslagen verschiedener Protokolle und der physischen MCPL-Lage zu ermöglichen. In einigen Umsetzungen kann die MCPL-LPIF ein Push- (oder „Free-Put-“) Modell umsetzen, in dem die Verbindungslage Verbindungslage-Flits auf die physische Lage pusht. Einige Kommunikationsprotokolle können jedoch verschiedene Konventionen für ihre Verbindungslage-PHY-Schnittstelle verwenden. Beispielsweise verwendet die Ultra Path Interconnect (UPI) ein pullbasiertes (oder „Avail-Get-“) Modell. Im Pullmodus soll die PHY der Verbindungslage anzeigen, dass eine Gelegenheit besteht, dass ein Flit gesendet werden kann, und die PHY „zieht“ effektiv eine vorgegeben Anzahl von Zyklen (oder UIs) (z. B. 2 Zyklen) später das Flit aus der Verbindungslage. Ein pushbasiertes Modell jedoch kann der Verbindungslage erlauben, ein Flit bereitzustellen, was dazu führt, dass die PHY das Flit in die First-in-First-out- (FIFO) Warteschlange einstellt und das Flit auf der Verbindung bei nächster Gelegenheit sendet.
  • Es können weitere Probleme auftreten, wenn versucht wird, verschiedenen Verbindungslagentraffic über eine MCPL PHY zu tragen. Mit dem Beispiel der UPI fortfahrend, können Null-Flits zur Sendung definiert sein, beispielweise während Leerlaufzeiten, Zustandsübergängen und in anderen Fällen. Ein rollierender CRC und eine ständige Konfiguration kann durch das Senden solcher Null-Flits ermöglicht werden. MCPL benötigen oder unterstützen jedoch in einigen Umsetzungen möglicherweise keine Null-Flits und senden stattdessen keine Daten auf der Verbindung (z. B. um Energie zu sparen und andere Vorteile zu erreichen). Einige Zustandsübergänge können definierte Handshakes zwischen der Verbindungslage und der physischen Lage bereitstellen und die Umsetzung solcher Handshakes kann ferner durch eine standardisierte LPIF verkompliziert werden, die entworfen wurde, mehrere verschiedene Kommunikationsprotokolle zu unterstützen. In noch andere Umsetzungen können physische Lagensteuerungen unter anderem in einem Kommunikationsprotokoll davon umgesetzt werden, wie sie unter Verwendung einer MCPL-PHY umgesetzt werden.
  • Mindestens einige der Beispielprobleme, die oben besprochen werden, können in einigen Umsetzungen durch einen Adapter für die Schnittstelle zwischen der Verbindungslage und der physischen Lage (z. B. 1305) behandelt werden, der innerhalb einer Komponente bereitgestellt wird, die MCPL unterstützt oder als separate Komponente bereitgestellt ist, die eine Hardware und/oder Softwarelogik aufweist, um den Adapter 1305 umzusetzen. Beispielsweise wird mit Blick auf 13 ein vereinfachtes Blockdiagramm 1300 dargestellt, das einen Beispieladapter 1305 illustriert, um Aspekte von Anfragen von einer bestimmten Verbindungslage (z. B. einer UPI-Verbindungslage 1020), die über die definierte Schnittstelle des Protokolls geschickt wird (z. B. UPIs Verbindungslage-zu-PHY-Schnittstelle (ULPI) 1310) in Anfragen zu übersetzen, die mit Anfragen kompatibel sind, die auf der MCPL-LPIF 1220 gesendet werden sollen. Ebenso kann ein Adapter 1305 Aspekte von Nachrichten, die von der MCPL-PHY gesendet werden (angepasst an LPIF 1220), übersetzen, um diesen zu erlauben, angemessen durch die Verbindungslage (z. B. 1020) des Protokolls der Verbindungslage- (LL)- PHY Schnittstelle (z. B. ULPI 1310), die für das jeweilige Protokoll definiert ist, verarbeitet zu werden.
  • Ein Schnittstellenadapter (z. B. 1305) kann eine Vielzahl von Eigenschaften ermöglichen, um Meldungen über eine erste Protokolle-LL-PHY-Schnittstelle (z. B. 1310) in Meldungen umzuwandeln, die mit MCPL LPIF kompatibel sind (und umgekehrt). In einem Beispiel kann ein Schnittstellenadapter 1305 konfiguriert sein, die ULPI der UPI für MCPL anzupassen. Beispielsweise kann der Adapter 1305 das pullbasierte Modell, das in der ULPI verwendet wird, an das pushzentrische Modell in der LPIF anpassen. Ein Adapter für UPI in MCPL (oder U2R) kann ferner etwa die Verwendung von NULL-Flits in der UPI behandeln, indem die Energiesparfunktionen der MCPL erhalten bleiben, indem das NULL-Flit erkannt und von der UPI-LL angenommen wird, und verhindert wird, dass solche NULL-Flits auf der MCPL-PHY gesendet werden. Der U2R-adapter 1305 kann weiterhin den L1-Eintrittshandshake der UPI zwischen der UPI-LL 1020 und MPCL-PHY 1210 verwalten. Der Adapter 1305 kann weitere Funktionen bereitstellen, einschließlich unter anderem der Verwaltung der physischen Lagensteuerungsmeldungen über die Schnittstelle zwischen der UPI-LL und MCPL-PHY.
  • Die UPI kann einen Mechanismus vorsehen, um die Steuerinformationen der physischen Lage zu kommunizieren und die Steueraufgaben der physischen Lage, die sich von den definierten Paketen der physischen Lage unterscheidet, die über eine MCPL gesendet werden sollen, durchzuführen. Ein Adapter (z. B. 1305) kann weiterhin bei der Behandlung von Asynchronitäten zwischen Steuerumsetzungen der MCPL in der physischen Lage und den darüber laufenden Protokollen helfen. Beispielsweise kann in der UPI, während sie sich in einem Sendeverbindungszustand (TLS) (z. B. L0) befindet, die physische UPI-Lage eingeschränkte Gelegenheit erhalten, Steueraufgaben auszuführen. Beispielsweise können Bitfehler und andere Fehler auf einer oder mehreren Spuren während eines L0-Zustands identifiziert werden. In einer Umsetzung kann ein Steuerzustand L0c bereitgestellt werden, in dem Steueraufgaben der physischen Lage durchgeführt werden können. Beispielsweise kann der L0c-Zustand als periodisches Fenster innerhalb des TLS bereitgestellt werden, um zu erlauben, dass Nachrichten der physischen Lagensteuerung zwischen Flitstreams gesendet werden, die durch die Verbindungslage gesendet werden. Beispielsweise, wie in dem Beispiel dargestellt, das in 14 illustriert ist, kann ein L0-Zustand in L0c-Intervalle unterteilt sein. Diese Intervalle können definiert sein, sodass sie in wiederkehrenden, vorhersehbaren Intervallen auftreten. Jedes L0c-Intervall kann mit einem L0c-Zustand oder Fenster (z. B. 1405) beginnen, indem die Steuercodes der physischen Lage oder andere Daten gesendet werden können. Der Rest (z. B. 1410) des L0c-Intervalls kann speziell für das Senden der Flits dienen. Die Länge des L0c-Intervalls und L0c-Zustands in jedem Intervall kann programmatisch definiert sein, beispielsweise unter anderem durch ein BIOS von einer oder mehreren Vorrichtungen oder einem anderen softwarebasierten Controller. Der L0c-Zustand kann wesentlich kürzer sein, als der Rest eines L0c-Intervalls. Beispielsweise kann in einem Beispiel der L0c 8UI sein, während der Rest des L0c-Intervalls etwa auf Anordnung von 4KUI erfolgt. Dies kann Fenster erlauben in denen relativ kurze, vordefinierte Nachrichten gesendet werden können, ohne wesentlich die Verbindungsdatenbandbreite zu stören oder zu verschwenden.
  • L0c-Zustandsnachrichten können eine Vielzahl von Bedingungen auf Ebene der physischen Lage kommunizieren. In einem Beispiel kann eine Vorrichtung ein Zurücksetzen der Verbindung oder einer Spur beispielsweise basierend auf Bitfehlern oder anderen Fehlern einleiten, die über einen bestimmten Grenzbetrag hinausgehen. Solche Fehler können auch in L0c-Fenstern kommuniziert werden (wie etwa vorhergehenden L0c-Fenstern). Der L0c-Zustand kann auch eingesetzt werden, um andere Signalisierung im Band umzusetzen, wie etwa die Signalisierung zur Verwendung bei der Hilfe oder beim Auslösen von Übergängen zwischen anderen Verbindungszuständen. In einem Beispiel können L0c-Nachrichten verwendet werden, um eine Verbindung von einem aktiven L0-Zustand auf einen Standby- oder Niederleistungszustand, wie einen L1-Zustand zu übertragen. Wie in dem vereinfachten Ablaufdiagramm aus 15 gezeugt, kann ein bestimmter L0c-Zustand verwendet werden, um eine L1-Eintrittsanfrage (z. B. 1510) zu kommunizieren. Weitere Flits (z. B. 1520, 1530) können gesendet werden, während die Vorrichtung (oder ein Agent an der Vorrichtung) auf eine Bestätigung der Anfrage 1510 wartet. Die andere Vorrichtung an der Verbindung kann die Bestätigung (z. B. 1540) senden. In einigen Beispielen kann die Bestätigung auch in einem L0c-Fenster gesendet werden. In einigen Fällen kann die Bestätigung in dem nächsten L0c-Fenster nach Empfang/Senden der L1-Anfrage 1510 gesendet werden. Timer können eingesetzt werden (in der PHY), um die L0c-Intervalle an jeder Vorrichtung zu synchronisieren und die anfragende Vorrichtung kann die Bestätigung 1540 etwa als eine Bestätigung der Anfrage 1510 (z. B. statt einer unabhängigen L1-Eintrittsanfrage) basierend auf einer Identifizierung, dass die Bestätigung 1540 zum nächsten L0c-Fenster geendet wurde, identifizieren. In einigen Fällen kann eine Bestätigung durch einen L0c-Code kommuniziert werden, der sich von dem unterscheidet, der für die L1-Eintrittsanfrage 1510 verwendet wird. In anderen Fällen kann die Bestätigung 1540 unter anderem das Echo des L1-Eintrittsanfragecodes enthalten, der in der Anfrage 1510 verwendet wurde. Ferner kann in alternativen Beispielen ein Nichtbestätigungssignal oder NAK in dem L0c-Fenster kommuniziert werden.
  • Neben (oder als Alternative zu) dem Handshaking unter Verwendung von L0c-Codes können Supersequenzen wie eine Erkennungssupersequenz in Zusammenhang mit dem Zurücksetzen und Reinitialisieren der Verbindung gesendet werden. Ein weiteres Handshaking kann zwischen den Vorrichtungen auftreten, wie die Supersequenzen, die, die durch eine erste Vorrichtung gesendet und durch die zweite Empfangsvorrichtung wiederholt werden. Supersequences können verwendet werden, wie oben beschrieben, um bei der Reinitialisierung der Verbindung zu helfen, einschließlich Debouncing, Bitsperre, Bytesperre, Descrambling und Entzerren der Spuren der Verbindung. Ferner können die Vorrichtungen den Timer verwenden (der z. B. das L0c-Intervall verkörpert), um den Eintritt der Vorrichtungen und der Verbindung in den angefragten L1-Zustand zu synchronisieren. Beispielsweise kann der Empfang der Bestätigung 1540 für die Vorrichtungen anzeigen, dass sie unter anderem gegenseitig in den L1-Zustand am Ende des L0c-Intervalls eintreten sollen (oder mit dem Eintritt beginnen sollen), das dem L0c-Fenster entspricht, in dem die Bestätigung gesendet wurde. Beispielsweise können Daten, die in einem L0c-Fenster geendet werden, das in der Bestätigung 1540 enthalten oder anderweitig damit assoziiert ist, etwa die Zeit angeben, zu der die Vorrichtungen in den L1-Zustand eintreten sollen. Weitere Flits (z. B. 1550) können in einigen Fällen gesendet werden, während die Vorrichtungen auf den Timeout warten, der dem Übergang in den L1-Zustand entspricht, unter anderen Beispielverwendungen des L0c-Zustands. Die vorhersehbare Art des L0c-Zustands (d.h. wo die physischen Lagensteuerungsnachrichten nach einem vorgegebenen Zeitplan gesendet werden) kann eine Abweichung von dem Mechanismus darstellen, der in MCPL verwendet wird (z. B. Pakete der physischen Lage (PLPs)), die unvorhersehbar jederzeit gesendet werden können.
  • Mit Blick auf 16 ist ein vereinfachtes Blockdiagramm 1600 dargestellt, das eine Beispiellogik für die Umsetzung von mindestens einem Abschnitt eines Schnittstellenadapters darstellt, um Umwandlungen von einer ersten LL-PHY-Schnittstelle basierend auf einem Pullmodell (z. B. ULPI) auf das LPIF pushbasierte Modell umzusetzen. In einem Beispiel kann ein U2R-Adapter mit einem synchronisierten Design versehen sein, das auf dem Taktgeber (LCLK) läuft (z. B. einem SUI-Taktgeber oder einen Taktzyklus), der auch die unterstützte LL und die logische MCPL-PHY taktet. Ein gemeinsames Zurücksetzungssignal (LRST) kann den Adapter zurücksetzen und außerdem zum Zurücksetzen der unterstützten LL und der logischen MCPL-PHY dienen. LRST kann zum Beispiel bei Cold- (mit Energieversorgung) Reset ausgeübt werden. In einem Beispiel kann die Adaption entlang des Empfangspfads (d. h. von der MCPL-PHY zur unterstützten LL (z. B. UPI-LL) durch den Adapter einfach sein, insbesondere, wenn die virtuellen und physischen Spurzahlen gleich sind. Beispielsweise kann im Fall eines U2R-Adapters eine 24-Spur-LPIF-Umsetzung der MCPL ein 192-Bit-Flit (pl_data) mit gültigem (pl_valid) auf jedem LCLK bereitstellen, da L0c von UPI in der MCPL-PHY nicht bereitgestellt (oder benötigt) wird, da stattdessen PLPs verwendet werden. In der Tat können in einigen Zyklen keine Flits zu senden sein, und solche Zeiträume können einfach dadurch angezeigt werden, dass das gültige MCPL-Signal nicht mehr ausgeübt wird.
  • In dem Beispiel aus 16 ist ein Satz „n“ Schaltregister (z. B. 1605, 1610) bereitgestellt, um eine Verzögerung zu synthetisieren, die durch ein bestimmtes pullbasiertes Protokoll (z. B. UPI) von einer Anzeige bereitgestellt wird, dass die PHY für ein LL-Flit bereit ist, um das Flit zur Lieferung auf der Verbindung zu ziehen. Die Anzahl der n Register kann der Anzahl „n“ Zyklen für die Verzögerung entsprechen. In dem Beispiel aus 16 sind 2 Schaltregister bereitgestellt, um eine 2-Zyklusverzögerung zu synthetisieren, die in deiner Umsetzung der UPI vorhanden ist. In einer Umsetzung, in der das bestimmte Protokoll das Senden der NULL-Flits unterstützt, die durch ihre Verbindungslage erzeugt wird (wie etwa in der UPI), kann der Standardwert (z. B. nach dem Zurücksetzen) jedes der Schichtregister NULL-Flits sein. Jedes Register kann außerdem mit einem Tagbit versehen sein (z. B. 1615, 1620), um anzuzeigen, ob das Register aktuell ein Daten- oder NULL-Flit speichert (z. B. wie durch den Adapter erkannt). Diese Information kann mit dem Flit durch die UPI-Verbindungslage über ein DVALID-Signal 1625 bereitgestellt werden. Eine Schreibpointer- (WEN) und Lesepointer- (RP) spur, auf die jedes Flit geschrieben und von der es gelesen wird.
  • In dem Beispiel aus 16 ist LP_IRDY 1630 das Signal Initiator bereit und PL_TRDY 1635 ist das Signal Ziel bereit zur Verwendung in einem pushbasierten Modell der MCPL-LPIF. Verbindungslagen-Flits könne gesendet werden, wenn der Initiator (die Verbindungslage) über das LP_IRDY-Signal 1630 in der LPIF anzeigt, dass Flits bereits sind, und das Ziel (die PHY) auch anzeigt, dass es bereit ist, die Flits zu erhalten (wie durch PL-TRDY 1635) angezeigt. In einem Pushmodell kann die Verbindungslage Flits unabhängig von der Bereitschaft der PHY pushen, wobei Flits sich anstauen, wenn die PHY keine Öffnung hat, um die Flits zu senden. Innerhalb des pullbasierten Modells einer LL-PHY-Schnittstelle des Protokolls (z. B. UPI) die die MCPL-PHY verwenden soll, können ähnliche Signale bereitgestellt werden, wie innerhalb der LL-PHY-Schnittstelle definiert. Beispielsweise entspricht innerhalb einer Beispiel-ULPI, ETxReady 1640 dem LPIF PL_TRDY und zeigt die Anfrage der PHY, ein Flit auf ETxData 1645 eine bestimmte Anzahl von Zyklen (z. B. 2, wie in der Umsetzung des pullbasierten Beispielprotokolls definiert) später zu ziehen. Ein Flit-Ready- (FRDY) Signal kann in dem Adapter bereitgestellt sein, um anzuzeigen, dass ein Flit bereit ist, basierend auf Signalen, die von der ULPI empfangen wurden, wobei DVALID Daten-Flits, die durch die Verbindungslage 1660 erzeugt wurden, von NULL-Flits unterscheidet. Wenn Flits nicht fallengelassen werden (und als LL-PHY-Daten 1670 gesendet werden), bleibt LP_IRDY 1630 ausgeübt, wie für das Pushmodell erforderlich. Wenn die PHY die Steuernachrichten der physischen Lage sendet (z. B. durch ein PLP), kann das PL_TRDY 1635 für 1 Zyklus nicht mehr ausgeübt werden, während LP_IRDY 1630 weiter ausgeübt bleibt. Es wird angenommen, dass solche Nichtausübungen mindestens ‚n+1‘ Zyklen voneinander getrennt sind, wenn auch einige Umsetzungen (wie in 19 unten besprochen) Back-to-Back PLPs unterstützen. Flits werden von der ULPI (der Verbindungslage 1660) an die LPIF (der logischen PHY 1665) mit einer Nulllatenz weitergegeben, außer bei einer solchen PL_TRDY 1635 Nichtausübung, die unter anderem zu einer vorgegebenen Anzahl von Verzögerungen (z. B. Verzögerung von 3 Flits um einen Zyklus) führen kann.
  • 17 illustriert eine Beispielsignalisierung in Verbindung mit einem Beispielschnittstellenadapter, um eine LL-zu-PHY-Schnittstelle zu erlauben, wobei die Verbindungslage eine pullbasierte Schnittstelle verwendet und die PHY eine pushbasierte Schnittstelle verwendet, wie beschrieben in dem Beispiel aus 16. Beispielsweise soll in diesem bestimmten Beispiel die Verbindungslage Flits mit einer bestimmten Zyklusverzögerung bereitstellen, einer Angabe einer PHY (z. B. ETxReady) folgend, die verfügbar ist, um die Flits zu senden. In der Tat wird in dem Beispiel aus 17 ein Zurücksetzungssignal 1705 nicht mehr ausgeübt, um zu erlauben, dass Daten von der Verbindungslage in die PHY fließen. Der Adapter kann ein synthetisiertes ETxReady 1640 auslösen, das an der ULPI ausgeübt werden soll, um das Ziehen eines Stroms von Daten auf ETxData 1645, die von der UPI-Verbindungslage erzeugt wurden, zwei Zyklen nach der Ausübung von ETxReady 1640 auszulösen. Um diese Verzögerung auf dem Adapter zu synthetisieren, können die Schaltregister (z. B. 2 Register mit einem definierten Nullwert (z. B. bei 1720), der einer synthetisierten 2-Zyklusverzögerung entspricht) bei Ausübung des ETxReady 1640 geleert werden. Beispielsweise kann, wenn das Zurücksetzen 1705 nicht mehr ausgeübt wird, LP_IRDY 1630 und LP_TRDY 1635 automatisch ausgeübt werden. Statt Daten (D0-D12) sofort nach den Ausübungen von LP_IRDY 1630 und LP_TRDY 1635 zu liefern, wird die 2-Zyklusverzögerung erreicht, indem Daten D0-D12 hinter zwei Zyklen Nulldaten 1720 eingereiht werden, was dazu führt, dass Daten 2 Zyklen auf die MCPL-PHY geschoben werden (hinter den definierten Nulldaten 1720), dem entsprechend, was durch die Verbindungslage erwartet wird.
  • Um zu bestimmen, ob Daten, die von der Verbindungslage empfangen werden (über die UPLI und den Adapter) tatsächlich über die MCPL übertragen werden sollten, kann der Adapter bestimmen, ob die Daten gültig sind und/oder den physischen Lagensteuerungsnachrichten entsprechend, die gesendet werden sollen. Beispielsweise kann das Flit-Ready-FRDY-Signal 1650 das Fenster anzeigen, in dem Flits der Verbindungslage entsprechende gesendet werden. Das DVALID-Signal 1625 kann der Adapterkontrolle der Verbindungslagen-Flits (in ETxData 1645) entsprechend eingestellt werden, um anzuzeigen, ob das Flit von einer Art ist, die an die PHY gesendet wird. Beispielsweise können in dem Beispiel von UPI NULL-Flits in den Flits der ETxData 1645 gesendet werden, aber die MCPL-PHY kann konfiguriert werden, keine solche Flits zu senden. Beispielsweise kann ein Adapter bereitgestellt werden, der angepasst ist, die NULL-Flits von der Übertragung an die MCPL (in 1710) fallenzulassen. In anderen Beispielen kann der Adapter NULL-Flits für die Übertragung zulassen.
  • Mit dem Beispiel aus 17 fortfahrend, können NULL-Flits (z. B. 1725, 1730) durch den Adapter erkannt werden. In Antwort darauf kann der Adapter das DVALID-Signal 1625 nicht mehr ausüben lassen (z. B. bei 1735, 1740) um anzuzeigen, dass das NULL-Flit von einem Typ ist, der fallengelassen werden soll, bevor er von der Verbindungslage an die MCPL PHY (bei 1670) übertragen wird. Die Adapterlogik kann ein synthetisiertes LP_IRDY-Signal basierend auf den DVALID 1625 (und FRDY 1650) Signalen erzeugen, die aus den ETxReady 1640 und ETxData 1645 Signalen der Verbindungslage erzeugt wurden. Wenn das LP_IRDY-Signal 1630 ausgeübt wird und das LP_TRDY-Signal 1635 ebenfalls ausgeübt wird, können die LL-Flits (z. B. D0-D12) von ETxData 1645 auf die MCPL-PHY gesendet werden (bei LP-Daten 1710). Die Nichtausübung von LP_IRDY 1630 andererseits führt dazu, dass NULL-Flits fallengelassen werden. Wenn der Adapter auch veranlasst, dass LP_IRDY 1630 nicht ausgeübt werden (z. B. 1745, 1750), wenn NULL-Flits (z. B. 1725, 1730) erkannt werden, sollte angemerkt werden, dass das native Signal Initiator bereit der Quellverbindungslage, ETxReady, ausgeübt bliebt. Die Daten (bei LP_DATEN 1670) können an der MCPL-PHY verarbeitet werden, um ein entsprechendes gültiges Signal 1715 zu erzeugen, das eine Zyklus vor den übertragenden Daten 1710 (verzögert nach der internen Latenz der PHY) anzeigen soll, ob ein nächster Zyklus gültige Daten oder ungültige Daten (z. B. eine fallengelassene NULL, die ignoriert werden sollte) enthält.
  • Ein Schnittstellenadapter kann weiter Steuerereignisse der physischen Lage erkennen. In einem Beispiel in jedem der pull- und pushbasierten Schnittstellenmodelle kann eine PHY die Einführung einer Steueraufgabe der physischen Lage antreiben. In der UPI können, wie oben angemerkt, L0c-Fenster verwendet werden, die zu vorhersehbaren Intervallen auftreten. In einem Beispiel kann eine MCPL ein PLP potenziell zu jedem Zeitpunkt senden. In dem Fall der UPI erwartet die UPI-LL nicht nativ Steuerereignisse der physischen Lage. Für ein Protokoll, das ein pullbasierte Schnittstellenmodell verwendet, wie bei der UPI, ist die Verbindungslage jedoch daran gewöhnt, die PHY als Master zu verwenden. Dementsprechend kann, wie in dem Beispiel aus 17 illustriert, eine PHY der MCPL ein PLP einleiten, indem einfach (z. B. bei 1755) LP_TRDY 1635 nicht ausgeübt wird. Für ein Protokoll, das eine pullbasierte Schnittstelle verwendet, kann das Nichtausüben des Bereitschaftssignals 1635 durch die PHY automatisch dazu führen, dass das LL-Bereitschaftssignal (z. B. ETxReady 1640) ebenfalls nicht ausgeübt wird (bei 1760). Die Nichtausübung der ETxReady 1640 wird möglicherweise in der Schnittstelle für eine vorgegebene Anzahl von Zyklen (z. B. 2 Zyklen in diesem Beispiel) nicht ausgeübt. Ferner führt, während die Verbindungslage bereits bereitgestellte Daten (z. B. D7 in ETxData 1645) hat, die 2-Zyklusverzögerung der Verbindungslage dazu, dass drei Flits um einen Zyklus verzögert werden und leere Daten 3 Zyklen später auftreten, um ein „Loch“ in dem Datenstream der ETxData 1645 zu bilden. Dieses Loch erlaubt es dem Stream, nach der Nichtausübung „wieder aufzuholen“ (bei 1755, 1760).
  • Wie oben angemerkt, werden LP_TRDY 1635 und ETxReady 1640 nicht ausgeübt, damit die PHY LL-Flits pausieren kann, um die Steuerdaten der physischen Lage zu senden. Wenn dies geschieht, wird der Traffic der Verbindungslage in den Schaltregistern des Adapters angesammelt, sodass, wenn LP_TRDY 1635 (und ETxReady 1640) wieder ausgeübt werden, der Adapter Verbindungslagendaten von seinen Schaltregistern (in LP_DATEN 1670 bei 1770) bereitstellt, statt direkt aus den ETxData 1645 des Verbindungslagenstreams, um die Übertragung von Daten-Flits an der Stelle widere aufzunehmen, an der die Nichtausübung von LP_TRDY 1635 erfolgt ist. Die daraus entstehende Übertragung (TxData 710) ist der Strom von Datenflits D4-D6, gefolgt von einem PLP (der der Nichtausübung von LP_TRDY 1635) entspricht, und dann Datenflits D7-D11 (bis ein anderes NULL-Flit 1730 übertragen wird).
  • In dem Beispiel aus 17 führte die Übertragung eines PLP dazu, dass die Verbindungslage ein Loch in seinem Stream erzeugt, um das Leeren der Schaltregister und der „Echtzeit-“Verbindungslagendaten zu ermöglichen, eine Anzahl von Zyklen nach dem PLP wieder gesendet zu werden. In einigen Fällen kann, wenn ein NULL-Flit gesendet und innerhalb einer Anzahl von Zyklen des PLP als gesendet erkannt wird, die NULL das „Loch“ bilden, das erforderlich ist, damit die Verbindungslagendaten aufholen können. In dem Beispiel aus 18 soll ein PLP 1805 gesendet werden, sodass LP_TRDY 1635 nicht mehr ausgeübt wird (bei 1810). Wie im vorhereigenen Beispiel führt dies dazu, dass ETxReady 1640 auch automatisch nicht ausgeübt wird (bei 1820). Üblicherweise folgt in dieser Beispielumsetzung (mit Definition einer 2-Zyklenverzögerung von der Ausübung von LP_TRDY bis zum Zielen von ETxData 1645) ein leerer Datensatz (z. B. „na“-Daten) drei Zyklen nach der Nichtausübung von ETxReady 1640. In dem Beispiel aus 18 kommt ein NULL-Flit 1815 drei Zyklen nach der Nichtausübung von ETxReady 1640 an, die wiederum ein ebenso akzeptables Loch erzeugt, durch das Daten-Flits (z. B. D9-D11), die in den Adapterschaltregistern gespeichert sind, freigegeben werden können, um die Übertragung von Live-Verbindungslagendaten an die PHY zu erlauben.
  • 19 hat ein weiteres Beispiel illustriert, das ein Beispiel zeigt, in dem zwei konsekutive PLPs 1905, 1910 gesendet werden können. In diesem Beispiel werden erneut zwei Schaltregister durch einen Adapter gehalten, der ausreichend Speicherplatz bereitstellt (während des Ansammelns der LL-Daten während des Versandens der PLPs), um das Senden von bis zu zwei konsekutiven PLPs zu erlauben, wobei LL-Daten, die in den Schaltregistern gespeichert werden, auf der Verbindung nach den PLPs auftreten dürfen, wie gezeigt in 19. Es sollte angemerkt werden, dass alle LL-Daten in den Adapterregistern gespeichert werden können. Beispielsweise können Daten- oder NULL-Flits in den Registern in Zusammenhang mit einer Nichtausübung des LP_TRDY 1635 und ETxReady 1640 gespeichert werden.
  • Mit Blick auf 20 wird ein anderes Beispiel 2000 zur Verwendung eines Schnittstellenadapters bereitgestellt, um Handshakes zu ermöglichen, die Verbindungslagen und PHY-Lagen beinhalten, die möglicherweise zumindest teilweise durch eine MCPL-Umsetzung mit Inkompatibilitäten zwischen deiner Verbindungslage gestört werden, die auf der MCPL-PHY und MCPL-PHY läuft. Beispielsweise kann in einigen Fällen ein Handshake über einer LL-PHY-Schnittstelle in Zusammenhang mit einem Zustandswechsel ausgeführt werden, wie etwa ein Wechsel des Verbindungsleistungszustands. Als Beispielkann eine nachgelagerte Verbindungslage 2005 (z. B. eine UPI-Verbindungslage) den Eintritt in einen Zustand niedriger Energie (z. B. L1) einleiten. Beispielsweise kann die Verbindungslage 2005 eine Zustandsübergangsanfrage 2010 an die nachgelagerte PHY senden. In gewöhnlichen Fällen ist der Handshake nicht bemerkenswert und wird ohne Zwischenfall gehandhabt, aber bei einer MCPL-PHY sind die Nachrichten, die durch die Verbindungslage 2005 an die MCPL-PHY 2015 gesendet werden, oder die Nachrichten, die durch die PHY 2015 an die Verbindungslage 2005 gesendet werden, möglicherweise nicht konform damit, was bei dem Handshake erwartet wird. Beispielsweise kann in der Illustration aus 20 die MCPL-PHY 2015 eine L1-Eintrittsanfrage 2010 empfangen und nach seinen nativen Konventionen antworten, namentlich mit einer Stall-Anfrage 2020, die in einem Austausch einer Stall-Anfrage (REQ)/Bestätigung (ACK) enthalten ist. Die Stall-Anfrage 2020 kann jedoch durch die Verbindungslage 2005 unterwartet sein.
  • In einer Umsetzung kann ein Schnittstellenadapter 2030 bereitgestellt sein, wie oben beschrieben, um eine LPIF der PHY 2015 mit der LL-PHY-Schnittstelle (z. B. ULPI) der Verbindungslage 2005 (z. B. eine UPI-Verbindungslage) anzupassen. Beispielsweise kann der Adapter 2030 Anfragen abfangen, die durch entweder die Verbindungslage 2005 oder PHY 2015 erfolgen, und Fälle identifizieren, in denen ein Adapter eingreifen soll, um sicherzustellen, dass ein Handshake in einer Weise vorgeht, die mit der Verbindungslage und der MCPL-PHY kompatibel ist. In dem Beispiel aus 20 fängt der Adapter 2030 die Stall-REQ 2020 ab und erzeugt eine synthetisierte Version der Stall-ACK 2035, die durch die PHY 2015 erwartet wird, die die PHY 2015 als von der Verbindungslage in Reaktion auf die Stall-REG 2020 ausgehend interpretiert. In Reaktion auf die Stall-ACK 2035 kann die MCPL-PHY 2015 eine Stall-Anfrage 2040 erzeugen, die anzeigt, dass der Eintritt in L1 fortgesetzt werden soll und sein Zielbereitschafts- (TRDY) Signal nicht ausübt. In diesem Beispiel erlaubt der Adapter 2030 das Fortführen des TRDY-Signals auf die Verbindungslage, während die Stall-Anfrage 2040 durch den Adapter 230 ausgefiltert wird.
  • Ein ähnlicher Workflow kann in jeder vorgelagerten Verbindungslage 2050 und MCPL-PHY 2055 stattfinden, wie ferner gezeigt in dem Beispiel aus 20. Eine L1-Eintrittsanfrage 2060 kann von der Verbindungslage 2050 an die PHY 2055 gesendet werden, wobei die PHY mit einer Stall-Anfrage 2065 reagiert, die durch einen Schnittstellenadapter 2070 abgefangen wird, der eine synthetisierte Stall-ACK 2075 in Reaktion dazu erzeugt. In diesem Beispiel kann in L1 nur eingetreten werden, wenn die nach- und vorgelagerten Komponenten beide anfragen, in L1 einzutreten. Der Abschluss des nachgelagerten Handshakes kann zum Senden einer Zustandsübergangsanfrage 2080 über die Verbindung von der nachgelagerten Komponente an die vorgelagerte Komponente führen. Wenn die vorgelagerte Komponente ebenso versucht, in L1 einzutreten, kann der Eintritt der Verbindung in L1 abgeschlossen werden. Dementsprechend kann in Reaktion auf die synthetisierte Stall-ACK 2075, eine STATE_STS-Bestätigung 2080 an die Verbindungslage kommuniziert werden, um den Eintritt in L1 zu bestätigen. Die vor- und nachgelagerten Komponenten können einen eigenen Handshake durchführen, der dazu führt, dass auch die Bestätigung des L1-Übergangs (STATE_STS) durch die PHY 2015 über den Adapter 2030 (bei 2085) an die Verbindungslage 2005 kommuniziert wird. Ein Adapter 2030, 2070 kann neben anderen Beispieleigenschaften andere Übersetzungen, Filter, Abfangen und Handshake-Synthetisierung über die in diesem eingeschränkten Beispiel beschriebenen hinausgehend bereitstellen, in Übereinstimmung mit dem jeweiligen Protokoll und der jeweiligen Logik, die in dem Adapter umgesetzt ist.
  • Es ist zu beachten, dass die Vorrichtungen, Verfahren und Systeme, die oben beschrieben sind, in jeder elektronischen Vorrichtung oder jedem System wie oben genannt umgesetzt werden können. Als spezifische Illustrationen stellen die folgenden Figuren Beispielsysteme zur Nutzung des hierin beschriebenen Eingriffs bereit. Wie die nachfolgend ausführlicher beschriebenen Systeme wird eine Anzahl verschiedener Verbindungen offenbart, beschrieben und aus der obigen Erklärung erneut aufgegriffen. Und wie klar zu sehen ist, können die Fortschritte, die oben beschrieben sind, auf jede dieser Verbindungen, Gewebe oder Architekturen angewendet werden.
  • Mit Verweis auf 21 ist eine Ausführungsform eines Blockdiagramms für ein Rechnersystem, das einen Mehrkernprozessor enthält, dargestellt. Der Prozessor 2100 enthält jeden Prozessor oder jeder Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SOC) oder eine andere Vorrichtung, um Code auszuführen. Der Prozessor 2100 enthält in einer Ausführungsform mindestens zwei Kerne - Kern 2101 und 2102, die asymmetrische Kerne oder symmetrische Kerne enthalten können (die illustrierte Ausführungsform). Prozessor 2100 kann jedoch jede Anzahl von Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele von Hardware-Verarbeitungselementen enthalten: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Thread, einen Kern, und/oder jedes andere Element, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie etwa einen Ausführungszustand oder Architektonischen Zustand. In anderen Worten: ein Verarbeitungselement bezieht sich in einer Ausführungsform auf jede Hardware, die in der Lage ist, unabhängig mit Code assoziiert zu werden, wie etwa ein Software-Thread, ein Betriebssystem, eine Anwendung oder ein anderer Code. Ein physischer Prozessor (oder Prozessor-Socket) bezieht sich üblicherweise auf einen integrierten Schaltkreis, der potenziell jede Anzahl anderer Verarbeitungselemente enthält, wie Kerne oder Hardwarethreads.
  • Ein Kern bezieht sich oft auf die Logik, die sich auf einem integrierten Schaltkreis befindet, der in der Lage ist, einen unabhängigen architektonischen Zustand zu halten, wobei jeder unabhängig unterhaltene architektonische Zustand mit mindestens einigen speziellen Ausführungsressourcen assoziiert ist. Im Gegensatz zu Kernen, bezieht sich ein Hardware-Thread typischerweise auf jede Logik, die sich auf einem integrierten Schaltkreis befindet, der in der Lage ist, einen unabhängigen architektonischen Zustand zu erhalten, wobei die unabhängig erhaltenem architektonischen Zustand gemeinsam auf Ausführungsressourcen zugreifen. Wie zu sehen ist, überlappt sich die Linie zwischen der Benennung eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen geteilt und andere speziell einem architektonischen Zustand zugeordnet sind. Oft werden jedoch ein Kern und ein Hardware-Thread durch ein Betriebssystem als einzelne logische Prozessoren betrachtet, wenn das Betriebssystem in der Lage ist, Funktionen einzelne auf jedem logischen Prozessor zu planen.
  • Physischer Prozessor 2100, wie illustriert in 21, enthält zwei Kerne - Kern 2101 und 2102. Hier werden Kern 2101 und 2102 als symmetrische Kerne betrachtet, d. h. Kerne mit denselben Konfigurationen, funktionalen Einheiten und/oder Logik. In einer anderen Ausführungsform enthält Kern 2101 einen Prozessorkern außerhalb der Reihenfolge, während der Kern 2102 einen Prozessorkern in Reihenfolge enthält. Die Kerne 2101 und 2102 können jedoch einzeln aus jeder Art von Kern gewählt werden wie etwa einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der angepasst ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einen Kern, der angepasst ist, eine übersetzte Anweisungssatzarchitektur (ISA) auszuführen, einen codesignten Kern oder einen anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine Form von Übersetzung wie eine binäre Übersetzung verwendet werden, Code auf einem oder beiden Kernen zu planen oder auszuführen. Um jedoch die Erklärung voranzubringen, sind die funktionalen Einheiten, die in Kern 2101 enthalten sind, ausführlicher nachfolgend beschrieben, da die Einheiten im Kern 2102 in der dargestellten Ausführungsform in ähnlicher Weise funktionieren.
  • Wie dargestellt, enthält Kern 2101 zwei Hardware-Threads 2101a und 2101b, die auch als Hardware-Thread-Slots 2101a und 2101b bezeichnet werden können. Daher können Softwareeinheiten wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor 2100 als vier separate Prozessoren betrachten, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig durchzuführen. Wie oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 2101a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 2101b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 2102a assoziiert sein und ein vierter Thread kann mit Architekturzustandsregistern 2102b assoziiert sein. Hier kann jedes der Architekturzustandsregister (2101a, 2101b, 2102a, und 2102b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten bezeichnet sein, wie oben beschrieben. Wie illustriert, werden die Architekturzustandsregister 2101a in Architekturzustandsregistern 2101b repliziert, sodass einzelne Architekturzustände/-zusammenhänge in der Lage sind, für den logischen Prozessor 2101a und den logischen Prozessor 2101b gespeichert werden. In Kern 2101 können andre kleinere Ressourcen wie Anweisungspointers und Umbenennungslogik im Allokator und Umbenennerblock 2130 ebenfalls für die Threads 2101a und 2101b repliziert werden. Einige Ressourcen, wie etwa Umsortierungspuffer in der Umsortierungs-/Rücknahmeeinheit 2135, ILTB 2120, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie etwa interne Allzweckregister, ein oder mehrere Seitentabellenbasisregister, Datencache auf niedriger Ebene und Daten-TLB 2115, Ausführungseinheit(en) 2140, und Abschnitte der Einheit außerhalb der Reihenfolge 2135 sind potenziell vollständig geteilt.
  • Prozessor 2100 enthält oft andere Ressourcen, die vollständig durch Partitionierung geteilt werden können, oder die speziell durch/zu andern Verarbeitungselementen zugeordnet sind. In 21 ist eine Ausführungsform eines rein exemplarischen Prozessors mit illustrativen logischen Einheiten/Ressourcen eines Prozessors illustriert. Beachten Sie, dass ein Prozessor jede dieser funktionieren Einheiten enthalten oder auslassen kann, sowie andere bekannte funktionale Einheiten, Logik oder Firmware, die nicht dargestellt sind, enthalten oder auslassen kann. Wie illustriert, enthält Kern 2101 einen vereinfachten, repräsentativen Prozessorkern außerhalb der Reihenfolge (OOO). Ein Prozessor innerhalb der Reihenfolge kann jedoch in anderen Ausführungsformen verwendet werden. Der OOO-Kern enthält einen Zweig-Zielpuffer 2120, um Zweige, die ausgeführt/verwendet werden sollen, und einen Anweisungs-Übersetzungspuffer (I-TLB) 2120 vorherzusagen, um Adressübersetzungseinträge für Anweisungen zu speichern.
  • Kern 2101 enthält ferner ein Decodierungsmodul 2125, das mit der Abrufeinheit 2120 verbunden ist, um abgerufene Elemente zu decodieren. Die Abruflogik enthält in einer Ausführungsform einzelne Sequenzer, die mit Threadslots 2101a bzw. 2101b assoziiert sind. Üblicherweise ist der Kern 2101 mit einer ersten ISA assoziiert, die Anweisungen definiert/spezifiziert, die auf Prozessor 2100 ausführbar sind. Oft enthalten Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Abschnitt der Anweisung (bezeichnet als ein Opcode), der sich auf eine Anweisung oder Funktion bezieht, die ausgeführt werden soll/diese spezifiziert. Die Decoderlogik 2125 enthält Schaltungen, die diese Anweisungen von ihren Opcodes erkannt und die decodierten Anweisungen in der Pipeline für die Verarbeitung weitergibt, wie durch die erste ISA definiert. Beispielsweise enthalten die Decoder 2125, wie nachfolgend ausführlicher erklärt, eine Logik, die entworfen oder angepasst sind, um spezifische Anweisungen zu erkennen, wie etwa eine transaktionale Anweisung. Als Ergebnis der Erkennung durch die Decoder 2125, ergreift die Architektur oder der Kern 2101 spezifische vordefinierte Aktionen zur Durchführung von Aufgaben, die mit den geeigneten Anweisungen assoziiert sind. Es ist wichtig, zu beachten, dass jede der Aufgaben, Blocks, Funktionen und Verfahren, die hierin beschrieben sind, in Reaktion auf eine einzige oder auf mehrere Anweisungen ausgeführt werden können; einige davon können neue oder alte Anweisungen sein. Es ist zu beachten, dass Decoder 2126 in einer Ausführungsform dieselbe ISA (oder einen Untersatz davon) erkennen. Alternativ erkennen in einer heterogenen Kernumgebung Decoder 2126 eine zweite ISA (entweder ein Untersatz der ersten ISA oder einer speziellen ISA).
  • In einem Beispiel enthält der Allokator und Umbenennerblock 2130 einen Allokator zur Reservierung von Ressourcen, wie etwa Registerdateien zum Speichern von Anweisungsverarbeitungsergebnissen. Die Threads 2101a und 2101b sind jedoch potenziell in der Lage, eine Ausführung außerhalb der Reihenfolge durchzuführen, wenn der Allokator und Umbenennerblock 2130 ebenfalls andere Ressourcen reservieren, wie etwa Umsortierungspuffer zum Verfolgen von Anweisungsergebnissen. Einheit 2130 kann außerdem einen Registerumbenenner enthalten, um Programm-/Anweisungsreferenzregister auf andere Register umzubenennen, die intern in Prozessor 2100 vorhanden sind. Die Umsortierungs-/Rücknahmeeinheit 2135 enthält Bauteile, wie etwa die oben genannten Umsortierungspuffer, und Speicherpuffer, um eine Ausführung außerhalb der Reihenfolge und später die Rücknahme der Anweisungen, die außerhalb der Reihenfolge ausgeführt wurden, in Reihenfolge, zu unterstützen.
  • Der Planer- und Ausführungseinheit(en)-Block 2140 in einer Ausführungsform enthält eine Planereinheit zur Planung von Anweisungen/Betrieb der Ausführungseinheiten. Beispielsweise ist eine Floating-Point-Anweisung auf einem Port einer Ausführungseinheit geplant, der eine verfügbare Floating-Point-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten assoziiert sind, sind ebenfalls enthalten, um Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Floating-Point-Ausführungseinheit, eine Integer-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencache auf niedrigerer Ebene und ein Datenübersetzungspuffer (D-TLB) 2150 sind mit einer oder mehreren Ausführungseinheit(en) 2140 verbunden. Der Datencache soll kürzlich verwendete/bediente Elemente verwenden, wie etwa Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll kürzliche virtuelle/zur physischen Adresse lineare Übersetzungen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier teilen sich die Kerne 2101 und 2102 den Zugriff auf einen Cache auf höherer Ebene oder mit größerem Abstand, wie etwa ein Cache auf zweiter Ebene, das mit einer On-Chip-Schnittstelle 2110 assoziiert ist. Es ist zu beachten, dass sich höhere Ebene oder weiter weg auf Cacheebenen bezieht, die ansteigen oder sich weiter von der/den Ausführungseinheit(en) weg befinden. In einer Ausführungsform ist den Cache auf höherer Ebene ein Cache auf letzter Ebene in der Speicherhierarchie des Prozessors 2100-wie etwa ein Datencache auf zweiter oder dritter Ebene. Ein Cache auf höherer Ebene ist jedoch nicht so beschränkt, da es mit einem Anweisungscache assoziiert sein oder dieses enthalten kann. Ein Trace-Cache - eine Art von Anweisungscache - kann stattdessen hinter dem Decoder 2125 verbunden sein, um kürzlich decodierte Traces zu speichern. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d. h. eine allgemeine Anweisung, die durch die Decoder erkannt wird), die in eine Anzahl von Mikroanweisungen decodieren kann (Mikrofunktionen).
  • In der dargestellten Konfiguration enthält der Prozessor 2100 auch das On-Chip-Schnittstellenmodul 2110. Historisch wurde ein Speichercontroller, der nachfolgend ausführlicher beschrieben ist, in ein Rechnersystem eingeschlossen, das sich außerhalb des Prozessors 2100 befindet. In diesem Szenario soll die On-Chip-Schnittstelle 2110 mit Vorrichtungen außerhalb des Prozessors 2100 kommunizieren, wie etwa dem Systemspeicher 2175, einem Chipset (oft einschließlich einer Speicher-Controllernabe zum Verbinden des Speichers 2175 und einer E/A-Controllernabe zum Verbinden der peripheren Vorrichtungen), einer Speicher-Controllernabe, einer Northbridge oder eines anderen integrierten Schaltkreises. Und in diesem Szenario kann der Bus 2105 jede bekannte Verbindung enthalten, wie etwa einen Multidrop-Bus, eine Punkt-zu-Punkt-Verbindung, eine serielle Verbindung, einen parallelen Bus, einen kohärenten (z. B. cachekohärenten) Bus, eine Schichtenprotokollarchitektur, einen Differenzialbus und einen GTL-Bus.
  • Der Speicher 2175 kann ausschließlich dem Prozessor 2100 dienen oder mit anderen Vorrichtungen in einem System geteilt werden. Häufige Beispiele von Speicherarten 2175 enthalten DRAM, SRAM, nichtflüchtiger Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass Vorrichtung 2180 einen Grafikbeschleuniger, Prozessor oder eine Karte, die mit einer Speicher-Controllernabe verbunden ist, Datenspeicher, die mit einer E/A-Controllernabe verbunden sind, einem Drahtlosempfänger, eine Flash-Vorrichtung, einen Audiocontroller, einem Netzcontroller, oder einer eine andere bekannte Vorrichtung enthalten kann.
  • In letzter Zeit werden jedoch weitere Logik und Vorrichtungen in eine einzige Matrize integriert, wie etwa ein SOC, wobei jede dieser Vorrichtungen auf dem Prozessor 2100 verkörpert sein können. Zum Beispiel ist in einer Ausführungsform eine Speicher-Controllernabe an demselben Paket und/oder derselben Matrize mit dem Prozessor 2100. Hier enthält ein Abschnitt des Kerns (ein Abschnitt auf dem Kern) 2110 einen oder mehrere Controller als Schnittstelle mit anderen Vorrichtungen wie ein Speicher 2175 oder eine Grafikvorrichtung 2180. Die Konfiguration, einschließlich einer Verbindung und Controllern als Schnittstelle mit solchen Vorrichtungen wird oft als Auf-Kern (oder Un-Kern-Konfiguration) bezeichnet. Beispielsweise enthält eine On-Chip-Schnittstelle 2110 eine Ringverbindung für die On-Chip-Kommunikation und eine serielle Punkt-zu-Punkt Hochgeschwindigkeitsverbindung 2105 für Kommunikation außerhalb des Chips. Dennoch können in der SOC-Umgebung noch mehr Vorrichtungen, wie etwa eine Netzschnittstelle, Koprozessoren, Speicher 2175, Grafikprozessor 2180 und alle anderen bekannten Computervorrichtungen/-schnittstellen auf einer einzigen Matrize oder einen integrierten Schaltkreis integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 2100 in der Lage, einen Compiler, eine Optimierung und/oder einen Übersetzercode 2177 auszuführen, um den Anwendungscode 2176 zu kompilieren, übersetzen und/oder optimieren, um die Vorrichtung und Verfahren wie hierin beschrieben oder die Schnittstelle damit zu unterstützten. Ein Compiler enthält oft ein Programm oder einen Satz Programme zur Übersetzung von Quelltext/-code in den Zieltext/-code. Üblicherweise erfolgt die Kompilierung des Programm-/Anwendungscodes mit einem Compiler in mehreren Phasen und Durchgängen, um Programmiersprachencode auf hoher Ebene in Maschine- oder Assembliersprachencode auf niedriger Ebene umzuwandeln. Dennoch können Compiler mit einem einzigen Durchgang dennoch für eine einfache Kompilierung verwendet werden. Ein Compiler kann alle bekannten Kompilierungstechniken verwenden und alle bekannten Compilerfunktionen durchführen, wie etwa lexische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codegeneration, Codetransformation und Codeoptimierung.
  • Größere Compiler enthalten oft mehrere Phasen, aber diese Phasen sind meistens innerhalb von zwei allgemeinen Phasen enthalten: (1) ein Frontend, d. h. allgemein wo die syntaktische Verarbeitung, semantische Verarbeitung und einige Transformationen/Optimierungen stattfinden können und (2) ein Backend, d. h. allgemein wo die Analyse, Transformationen, Optimierungen und Codeerzeugung stattfindet. Einige Compiler beziehen sich auf eine Mitte, die das Verschwimmen der Begrenzung zwischen einem Frontend und einem Backend eines Compilers illustriert. Als Ergebnis davon kann die Einfügung, Assoziation, Erzeugung oder andere Funktion eines Compilers in jeder der zuvor genannten Phasen oder Durchgänge erfolgen, sowie in allen anderen bekannten Phasen oder Durchgängen eines Compilers. Als illustratives Beispiel fügt ein Compiler potenziell Operationen, Aufrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung ein, wie etwa Einfügung von Aufrufen/Funktionen in einer Frontend-Phase der Kompilierung, gefolgt von der Transformation der Aufrufe/Funktionen in Code niedrigerer Ebene während einer Transformationsphase. Es ist zu beachten, dass während der dynamischen Kompilierung Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen sowie den Code zur Ausführung während der Runtime aufrufen kann. Als ein spezifisches illustratives Beispiel kann Binärcode (bereits kompilierter Code) dynamisch während der Runtime optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer wie etwa ein binärer Übersetzer, Code entweder statisch oder dynamisch zur Optimierung und/oder Übersetzung von Code. Daher kann sich die Ausführung von Code, Anwendungscode, Programmcode oder einer andren Softwareumgebung auf Folgendes beziehen: (1) Ausführung eines oder mehrerer Compilerprogramm(e), Optimierung des Codeoptimierers oder Übersetzers, dynamisch oder statisch, zur Kompilierung von Programmcode, zum Erhalt von Softwarestrukturen, zur Ausführung anderer Funktionen, zum Optimieren von Code oder zum Übersetzen von Code; (2) Ausführung des Hauptprogrammcodes einschließlich der Funktionen/aufrufe, wie etwa Anwendungscode, der optimiert/kompiliert wurde; (3) Ausführung von anderem Programmcode, wie etwa Bibliotheken, die mit dem Hauptprogramm assoziiert sind, um die Softwarestrukturen zu erhalten, andere softwarebezogenen Funktionen durchzuführen oder Code zu optimieren; oder (4) eine Kombination davon.
  • Mit Verweis auf 22 ist ein Blockdiagramm eines zweiten Systems 2200 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 22 dargestellt, ist ein Multiprozessorsystem 2200 ein Punkt-zu-Punkt Verbindungssystem, und enthält einen ersten Prozessor 2270 und einen zweiten Prozessor 2280, die über eine Punkt-zu-Punkt-Verbindung 2250 verknüpft sind. Jeder der Prozessoren 2270 und 2280 kann eine Version eines Prozessors sein. In einer Ausführungsform sind 2252 und 2254 Teil eines seriellen kohärenten, Punkt-zu-Punkt-Verbindungsgewebes wie einer Hochleistungsarchitektur. Daher kann die Erfindung innerhalb der QPI-Architektur umgesetzt werden.
  • Während die Darstellung nur zwei Prozessoren 2270, 2280 zeigt, versteht es sich, dass der Umfang der vorliegenden Erfindung nicht so beschränkt ist. In anderen Ausführungsformen können eine oder mehrere weitere Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Prozessoren 2270 und 2280 sind dargestellt, einschließlich integrierter Speichercontrollereinheiten 2272 bzw. 2282. Der Prozessor 2270 enthält auch als Bestandteil seiner Buscontrollereinheiten Punkt-zu-Punkt- (P-P) Schnittstellen 2276 und 2278; ebenso enthält der zweite Prozessor 2280 P-P-Schnittstellen 2286 und 2288. Die Prozessoren 2270, 2280 können Informationen über eine Punkt-zu-Punkt- (P-P) Schnittstelle 2250 unter Verwendung von P-P-Schnittstellenschaltkreisen 2278, 2288 austauschen. Wie in 22 gezeigt, verbinden die IMCs 2272 und 2282 die Prozessoren mit jeweiligen Speichern, namentlich einem Speicher 2232 und einem Speicher 2234, die Abschnitte des Hauptspeichers sein können, der lokal an den jeweiligen Prozessoren befestigt ist.
  • Die Prozessoren 2270, 2280 tauschen jeweils Informationen mit einem Chipset 2290 über einzelne P-P-Schnittstellen 2252, 2254 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltkreise 2276, 2294, 2286, 2298 aus. Das Chipset 2290 tauscht außerdem Informationen mit einem Hochleistungs-Grafikschaltkreis 2238 über einen Schnittstellenschaltkreis 2292 entlang einer Hochleistungsgrafikverbindung 2239 aus.
  • Ein geteiltes Cache (nicht dargestellt) kann in einem Prozessor oder außerhalb beider Prozessoren enthalten sein; dennoch kann in Verbindung mit den Prozessoren über die P-P-Verbindung, sodass die örtlichen Cacheinformationen jedes oder beider Prozessoren in dem geteilten Cache gespeichert sind, wenn ein Prozessor in einen Niedrigenergiemodus geschaltet wird.
  • Das Chipset 2290 kann über eine Schnittstelle 2296 mit einem ersten Bus 2216 verbunden sein. In einer Ausführungsform kann der erste Bus 2216 ein Peripheral Component Interconnect (PCI) Bus oder ein Bus wie ein PCI-Express-bus oder ein anderer E/A-Verbindungsbus der dritten Generation sein, wenn auch der Umfang der vorliegenden Erfindung nicht so eingeschränkt ist.
  • Wie in 22 dargestellt, sind verschiedene E/A-Vorrichtungen 2214 mit einem ersten Bus 2216 verbunden, zusammen mit einer Busbridge 2218, die den ersten Bus 2216 mit einem zweiten Bus 2220 verbindet. In einer Ausführungsform enthält der zweite Bus 2220 einen „Low Pin Count“- (LPC) Bus. Verschiedene Vorrichtungen sind mit dem zweiten Bus 2220 verbunden, in einer Ausführungsform beispielsweise einschließlich einer Tastatur und/oder Maus 2222, Kommunikationsvorrichtungen 2227 und einer Speichereinheit 2228 wie etwa einem Diskettenlaufwerk oder einer anderen Massenspeichervorrichtung, die oft Anweisungen/Code und Daten 2230 enthält. Ferner ist ein Audio-E/A 2224 mit dem zweiten Bus 2220 verbunden dargestellt. Es ist zu beachten, dass andere Architekturen möglich sind, wenn die enthaltenen Komponenten und Verbindungsarchitekturen schwanken. Beispielsweise kann statt der Punkt-zu-Punkt-Architektur von 22 ein System einen Multidropbus oder eine andere solche Architektur umsetzen.
  • Während die vorliegende Erfindung bezüglich einer eingeschränkten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifizierungen und Variationen davon verstehen. Es ist vorgesehen, dass die anhängenden Ansprüche alle solchen Modifizierungen und Variationen abdecken, die in den wahren Geist der vorliegenden Erfindung fallen.
  • Ein Entwurf kann verschiedene Stufen von der Erstellung bis zur Simulation und Herstellung durchlaufen. Daten, die ein Design darstellen können das Design in einer Reihe von Weisen darstellen. Zuerst kann, wie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen Funktionalen Beschreibungssprache dargestellt werden. Weiterhin kann ein Schaltkreisebenenmodell mit Logik- und/oder Transistorgates in einigen Stadien des Designprozesses erzeugt werden. Ferner erreichen die meisten Designs auf einer Stufe eine Datenebene, die die physische Platzierung verschiedener Vorrichtungen in dem Hardwaremodell darstellt. In dem Fall, in dem konventionelle Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die die Anwesenheit oder Abwesenheit verschiedener Eigenschaften auf verschiedenen Maskenlagen für Masken vorgeben, die verwendet werden, um einen integrierten Schaltkreis zu erzeugen. In jeder Darstellung des Designs können die Daten in jeder Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein Magnet- oder optischer Speicher wie etwa eine Diskette kann das maschinenlesbare Medium darstellen, um Informationen zu speichern, die über optische oder elektrische Wellen übertragen werden, die moduliert oder anderweitig erzeugt werden, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder das Design anzeigt oder trägt übertragen wird, wird, soweit das Kopieren, Puffern oder die erneute Übertragung des elektrischen Signals ausgeführt wird, eine neue Kopie erstellt. So kann ein Kommunikationsprovider oder ein Netzprovider auf einem greifbaren maschinenlesbaren Medium zumindest temporär einen Artikel speichern, wie etwa Informationen, die in eine Trägerwelle codiert sind, die Techniken oder Ausführungsformen der vorliegenden Erfindung verkörpern.
  • Ein Modul wie hierin verwendet, bezieht sich auf jede Kombination von Hardware, Software und/oder Firmware. Als Beispiel enthält ein Modul Hardware, wie etwa einen Mikrocontroller, die mit einem nicht transitorischen Medium assoziiert ist, um Code zu speichern, der angepasst ist, durch den Mikrocontroller ausgeführt zu werden. Daher bezieht sich ein Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die speziell konfiguriert ist, den Code, der auf einem nicht transitorischen Medium enthalten ist, zu erkennen und/oder auszuführen. Weiter bezieht sich in einer anderen Ausführungsform die Verwendung eines Modus auf das nicht transitorische Medium, das den Code enthält, der speziell angepasst ist, um durch den Mikrocontroller ausgeführt zu werden, um vorgegebene Funktionen durchzuführen. Wie geschlossen werden kann, kann sich in noch einer weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nicht transitorischen Mediums beziehen. Oft variieren Modulgrenzen, die als getrennt illustriert sind, und können sich überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während sie potenziell einige unabhängige Hardware, Software oder Firmware behalten. In einer Ausführungsform enthält der Begriff Logik Hardware, wie etwa Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung des Begriffs ‚konfiguriert, um‘ bezieht sich in einer Ausführungsform auf das Anordnung, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Entwerfen einer Vorrichtung, Hardware, Logik oder eines Elements zur Durchführung einer vorgegebenen oder bestimmten Aufgabe. In diesem Beispiel ist ein Apparat oder Element davon, der/das nicht funktioniert, dennoch ‚konfiguriert, um‘ eine vorgegebene Aufgabe durchzuführen, wenn er/es entworfen, verknüpft und/oder verbunden ist, um die genannte Aufgabe auszuführen. Als ein rein illustratives Beispiel kann ein Logikgate im Betrieb eine 0 oder eine 1 bereitstellen. Aber ein Logikgate, das ‚konfiguriert ist, um‘ ein Aktivierungssignal für einen Taktgeber bereitzustellen, enthält nicht jedes potenzielle Logikgate, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgate eines, das in einer Weise verknüpft ist, dass während des Betriebs die ausgegebene 1 oder 0 den Taktgeber aktivieren soll. Es ist erneut zu beachten, dass die Verwendung des Begriffs ‚konfiguriert, um‘ keine Funktion erlangt, sondern sich auf den latenten Zustand einer Vorrichtung, Hardware und/oder eines Elements bezieht, wobei in dem latenten Zustand die Vorrichtung, Hardware und/oder das Element entworfen ist, eine bestimmte Aufgabe durchzuführen, wenn die Vorrichtung, Hardware und/oder das Element funktioniert.
  • Weiterhin bezieht sich die Verwendung der Begriffe ‚um‘, ‚in der Lage, zu‘ und/oder ‚bedienbar, um‘ in einer Ausführungsform auf eine Vorrichtung, Logik, Hardware und/oder ein Element, die/das so entworfen ist, dass sie/es die Verwendung der Vorrichtung, Logik, Hardware und/oder des Elements in einer vorgegebenen Weise ermöglicht. Es ist wie oben zu beachten, dass die Verbindung von um, in der Lage, zu, oder bedienbar, um sich in einer Ausführungsform auf einen latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, Logik, Hardware und/oder das Element nicht funktioniert, sondern in einer solchen Weise entworfen ist, um die Verwendung einer Vorrichtung in einer vorgegeben Weise zu ermöglichen.
  • ein Wert, wie hierin verwendet, enthält jede bekannte Darstellung einer Nummer, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Oft wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch als 1en und Oen bezeichnet, was einfach binäre Logikzustände darstellt. Beispielsweise bezieht sich eine 1 auf eine hohe Logikebene und 0 bezieht sich auf eine niedrige Logikebene. In einer Ausführungsform kann eine Speicherzelle wie etwa ein Transistor oder eine Flashzelle in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Anderer Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Beispielsweise kann die Dezimalzahl zehn auch als binärer Wert 1010 und hexadezimaler Buchstabe A dargestellt werden. Daher enthält ein Wert jede Darstellung von Informationen, die in einem Computersystem enthalten sein können.
  • Weiterhin können Zustände durch Werte oder Abschnitte von Werten dargestellt werden. Beispielsweise kann ein erster Wert wie etwa ein logischer Wert einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie etwa eine logische Null, einen Nichtstandardzustand darstellen kann. Weiterhin beziehen sich die Begriffe zurücksetzen und setzen in einer Ausführungsform auf einen Standard- bzw. einen aktualisierten Wert oder Zustand. Beispielsweise enthält ein Standardwert potenziell einen hohen logischen Wert, d. h. Zurücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert, d. h. Setzen, enthält. Es ist zu beachten, dass jede Kombination von Werten eingesetzt werden kann, um eine beliebige Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von verfahren, Hardware, Software, Firmware oder Code, wie oben dargelegt, kann über Anweisungen oder Code umgesetzt werden, die auf einem maschinenzugriffsfähigen, maschinenlesbaren, computerzugriffsfähigen oder computerlesbaren Medium enthalten sind, die durch ein Verarbeitungselement ausgeführt werden können. Ein nichttransitorisches maschinenzugriffsfähiges/-lesbares Medium enthält einen beliebigen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die durch eine Maschine wie etwa einen Computer oder ein elektronisches System lesbar sind. Beispielsweise enthält ein nicht transitorisches maschinenzugriffsfähiges Medium Direktzugriffsspeicher (RAM), wie statischen RAM (SRAM) oder dynamischen RAM (DRAM) ; ROM; ein magnetisches oder optisches Speichermedium; Flashspeichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Aufbewahren von Informationen, die von transitorischen (propagierten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen); usw. übertragen empfangen werden, die von den nichttransitorischen Medium unterschieden werden, die Informationen davon empfangen können.
  • Anweisungen, die zum Programmieren von Logik zur Ausführung von Ausführungsformen der Erfindung verwendet werden können, können in einem Speicher in dem System gespeichert werden, wie etwa einem DRAM, Cache, Flashspeicher oder einem anderen Speicher. Weiter können die Anweisungen über ein Netz oder durch ein anderes computerlesbares Medium verteilt werden. So kann ein maschinenlesbares Medium jeden Mechanismus zum Speichern oder Übertragen von Informationen in einer Form enthalten, der durch eine Maschine lesbar ist (z. B. durch einen Computer) aber nicht beschränkt ist auf Floppydisketten, optische Disketten, Compact Disc, Read-Only Memory (CD-ROMs), und magnetooptische Disketten, Read-Only Memory (ROMs), Direktzugriffspeicher (RAM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetische oder optische Karten, Flashspeicher oder ein greifbarer, maschinenlesbarer Speicher, der für die Übertragen von Informationen über das Internet über elektrische, optische, akustische oder andere Formen weitergeleiteter Signale verwendet wird (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.). Dementsprechend enthält das computerlesbare Medium jede Art von greifbarem, maschinenlesbarem Medium, das sich zum Speichern oder Übertragen elektronischer Anweisungen oder Informationen in einer Form eignet, die durch eine Maschine zu lesen ist (z. B. einen Computer).
  • Während die vorliegende Erfindung bezüglich einer eingeschränkten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifizierungen und Variationen davon verstehen. Es ist vorgesehen, dass die anhängenden Ansprüche alle solchen Modifizierungen und Variationen abdecken, die in den wahren Geist der vorliegenden Erfindung fallen.
  • Aspekte der Ausführungsformen können eines oder eine Kombination der folgenden Beispiele enthalten:
  • Beispiel 1 ist ein System oder eine Vorrichtung, das/die einen Adapter für die Schnittstelle zwischen der Verbindungslage und der physischen Lage enthält, um ein erstes Bereitschaftssignal von einer ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines ersten Kommunikationsprotokolls zu identifizieren, wobei das erste Bereitschaftssignal die Bereitschaft einer physischen Lage des ersten Protokolls anzeigt, Verbindungslagendaten für die Übertragung auf einer Verbindung anzunehmen. Der Schnittstelle soll ferner ein zweites Bereitschaftssignal erzeugen, das mit einer zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines zweiten Kommunikationsprotokolls kompatibel ist, wobei das zweite Bereitschaftssignal die Verbindungslagendaten von einer Verbindungslage des zweiten Kommunikationsprotokolls nach einer vorgegebenen Verzögerung senden lässt. Der Schnittstellenadapter soll ferner ein drittes Bereitschaftssignal erzeugen, das mit der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage kompatibel ist, um der physischen Lage des ersten Kommunikationsprotokolls anzuzeigen, dass die Verbindungslagendaten durch die Verbindungslage des zweiten Kommunikationsprotokolls gesendet werden soll, ein Schaltregister zu verwenden, um die Verbindungslagendaten nach der vorgegebenen Verzögerung an die physische Lage weiterzuleiten, wobei die vorgegebene Verzögerung eine Verzögerung von der Ausübung des ersten Bereitschaftssignals zum Senden der Verbindungslagendaten an die physische Lage enthält.
  • Beispiel 2 kann den Inhalt von Beispiel 1 enthalten, wobei Verzögerung eine Anzahl von Zyklen enthält.
  • Beispiel 3 kann den Inhalt von Beispiel 2 enthalten, wobei das Schaltregister eine Anzahl von Schaltregistern enthält und die Anzahl der Schaltregister der Anzahl von Zyklen entspricht.
  • Beispiel 4 kann den Inhalt von Beispiel 3 enthalten, wobei der Schnittstellenadapter Schaltkreise enthält und die Schaltkreise die Schaltregister enthalten.
  • Beispiel 5 kann den Inhalt von jedem der Beispiele 1 bis 4 enthalten, wobei das erste Kommunikationsprotokoll NULL-Flits der Verbindungslage darstellt, und der Schnittstellenadapter ferner NULL-Flits und Daten-Flits in den Verbindungslagendaten erkennen und das Fallenlassen der NULL-Flits veranlassen soll, bevor mit der physischen Lage fortgefahren wird.
  • Beispiel 6 kann den Inhalt von Beispiel 5 enthalten, wobei der Schnittstellenadapter das dritte Bereitschaftssignal nicht ausübt, wenn NULL-Flits erkannt werden, um zu veranlassen, dass die NULL-Flits fallengelassen werden.
  • Beispiel 7 kann den Inhalt von Beispiel 6 enthalten, wobei das Nichtausüben des dritten Bereitschaftssignals dazu führt, dass das erste Bereitschaftssignal nicht ausgeübt wird.
  • Beispiel 8 kann den Inhalt von einem der Beispiele 6 bis 7 enthalten, wobei die zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage ein viertes Bereitschaftssignal erzeugt, um anzuzeigen, dass die Verbindungslagendaten bereit sind und das vierte Bereitschaftssignal ausgeübt bleiben soll, wenn NULL-Flits in den Verbindungslagendaten gesendet werden sollen.
  • Beispiel 9 kann den Inhalt von einem der Beispiele 6 bis 8 enthalten, wobei der Schnittstellenadapter ein datengültiges Signal erzeugen soll, um anzuzeigen, ob Verbindungslagendaten, die durch das erste Kommunikationsprotokoll unterstützt werden, von der Verbindungslage an die physische Lage gesendet werden sollen, und die Nichtausübung des dritten Bereitschaftssignals auf dem datengültigen Signal basiert.
  • Beispiel 10 kann den Inhalt von einem der Beispiele 1 bis 9 enthalten, wobei die Übertragung der Verbindungslagendaten von der Verbindungslage des ersten Kommunikationsprotokolls an eine physische Lage des ersten Kommunikationsprotokolls in der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage auf einem Pushmodell basiert, und die Übertragung von Verbindungslagendaten von einer Verbindungslage des zweiten Kommunikationsprotokolls an die physische Lage des zweiten Kommunikationsprotokolls in der zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage auf einem Pullmodell basiert.
  • Beispiel 11 kann den Inhalt von einem der Beispiele 1 bis 10 enthalten, wobei die physische Lage die Bereitstellung einer Reihe von Datenfenstern auslösen soll, in denen die Verbindungslagendaten über die Verbindung gesendet werden sollen, und Daten verschiedener Kommunikationsprotokolle in konsekutiven Datenfenstern in der Reihe gesendet werden können.
  • Beispiel 12 ist ein computerlesbares Medium mit ausführbaren Anweisungen, eine Vorrichtung, ein System oder ein Verfahren zur Identifizierung eines ersten Bereitschaftssignals von einer ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines ersten Kommunikationsprotokolls, wobei das erste Bereitschaftssignal die Bereitschaft einer physischen Lage des ersten Protokolls anzeigt, Verbindungslagendaten zur Übertragung auf einer Verbindung anzunehmen, wobei ein zweites Bereitschaftssignal erzeugt wird, des mit einer zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines zweiten Kommunikationsprotokolls kompatibel ist, wobei das zweite Bereitschaftssignal Verbindungslagendaten von einer Verbindungslage des zweiten Protokolls nach einer vorgegebenen Verzögerung senden lässt, wodurch ein drittes Bereitschaftssignal erzeugt wird, das mit der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage kompatibel ist, um für die physische Lage des ersten Protokolls anzuzeigen, das die Verbindungslagendaten durch die Verbindungslage des zweiten Kommunikationsprotokolls gesendet werden sollen, und ein Schaltregister verwendet wird, um die Verbindungslagendaten an die physische Lage nach der vorgegebenen Verzögerung weiterleiten zu lassen, wobei die vorgegebene Verzögerung eine Verzögerung nach der Ausübung des ersten Bereitschaftssignals bis zum Senden der Verbindungslagendaten an die physische Lage enthält.
  • Beispiel 12 ist ein System, das eine erste Komponente enthält, die einen geschichteten Kommunikationsstapel enthält, einschließlich einer Verbindungslage eines ersten Kommunikationsprotokolls und einer physischen Lage eines anderen, zweiten Kommunikationsprotokolls, wobei die Übertragung von Verbindungslagendaten an eine physische Lage auf einem Pullmodell in dem ersten Kommunikationsprotokoll basiert und auf einem Pushmodell in dem zweiten Kommunikationsprotokoll basiert, und die erste Komponente ferner einen Schnittstellenadapter enthält, einschließlich eines Satzes Schaltregister, wobei der Adapter ein oder mehrere Signale, die durch eine erste Schnittstelle zwischen der Verbindungslage und der physischen Lage des ersten Kommunikationsprotokolls erzeugt wurden, für eine zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage des zweiten Kommunikationsprotokolls anpassen soll, ein oder mehrere Signale, die durch die zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage erzeugt wurden, für die erste Schnittstelle zwischen der Verbindungslage und der physischen Lage anpassen soll, und die Übertragung von Verbindungslagendaten von der Verbindungslage an die physische Lage der zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage entsprechend unter Verwendung des Satzes Schaltregister verzögern lassen soll, wobei der geschichtete Kommunikationsstapel die Verbindungslagendaten über eine Verbindung an eine zweite Komponente senden soll.
  • Beispiel 14 kann den Inhalt von Beispiel 13 enthalten, wobei die physische Lage eine Reihe von Datenfenstern definieren soll, in denen Verbindungslagendaten auf Datenspuren der Verbindung geschickt werden sollen.
  • Beispiel 15 kann den Inhalt von Beispiel 14 enthalten, wobei die physische Lage ferner gültige Signale auf der Verbindung senden soll, die jedem aus der Reihe von Datenfenstern entsprechen, und jedes gültige Signal anzeigt, ob gültige Daten in einer entsprechenden der Reihe von Datenfenstern gesendet werden.
  • Beispiel 16 kann den Inhalt von Beispiel 15 enthalten, wobei die physische Lage ferner Streamidentifizierungssignale auf der Verbindung senden soll, die jedem aus der Reihe von Datenfenstern entsprechen, und jedes Streamidentifizierungssignal ein Kommunikationsprotokoll von Daten anzeigen soll, die in einem entsprechenden der Reihe von Datenfenstern gesendet werden.
  • Beispiel 17 kann den Inhalt von Beispiel 16 enthalten, wobei das Kommunikationsprotokoll eines aus mehreren verschiedenen Kommunikationsprotokollen sind, Daten von unterschiedlichen Kommunikationsprotokollen in konsekutiven Datenfenstern geschickt werden und die Verbindungslage der ersten Komponente mehrere Verbindungslagen enthalten, die den mehreren verschiedenen Protokollen entsprechen.
  • Beispiel 18 kann den Inhalt von Beispiel 17 enthalten, ferner enthaltend die zweite Komponente, wobei die zweite Komponente einen Lagenprotokollstapel enthält, der mehrere Verbindungslagen und die physische Lage enthält.
  • Beispiel 19 kann den Inhalt von einem der Beispiele 17 bis 18 enthalten, wobei eine Schnittstelle zwischen der Verbindungslage und der physischen Lage einer anderen der mehreren Verbindungslagen mit der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage kompatibel ist.
  • Beispiel 20 kann den Inhalt von einem der Beispiele 13 bis 19 enthalten, wobei das zweite Kommunikationsprotokoll Ultra Path Interconnect (UPI) enthält.
  • Beispiel 21 kann den Inhalt von Beispiel 20 enthalten, wobei das erste Kommunikationsprotokoll auf Peripheral Component Interconnect Express (PCIe) basiert.
  • Beispiel 22 kann den Inhalt von jedem der Beispiele 13 bis 21 enthalten, wobei das erste Kommunikationsprotokoll NULL-Flits der Verbindungslage darstellt, und der Schnittstellenadapter ferner NULL-Flits und Daten-Flits in den Verbindungslagendaten erkennen und das Fallenlassen der NULL-Flits veranlassen soll, bevor mit der physischen Lage fortgefahren wird.
  • Beispiel 23 kann den Inhalt von einem der Beispiele 13 bis 22 enthalten, wobei der Schnittstellenadapter ferner eine physische Lagensteuerungsmeldung identifizieren soll, die an die zweite Komponente geschickt werden soll, die Verbindungslagendaten während der Steuermeldung der physischen Lage unter Verwendung des Satzes Schaltregister puffern soll, und die Verbindungslagendaten veranlassen soll, für eine Anzahl von Zyklen zu stoppen, die einer Anzahl von Zyklen entsprechen, die zum Senden der Steuermeldung der physischen Lage verwendet werden.
  • Beispiel 24 kann den Inhalt von Beispiel 23 enthalten, wobei die Steuermeldung der physischen Lage ein Paket der physischen Lage (PLP) enthält.
  • Beispiel 25 kann den Inhalt von einem der Beispiele 13 bis 24 enthalten, ferner enthaltende einen Sideband-Kanal zur Kommunikation von Zustandsübergangsinformationen zwischen den ersten und zweiten Komponenten.
  • In diesen Vorgaben bedeutet ein Verweis auf „eine Ausführungsform“, dass eine bestimmte Funktion, Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich das Auftreten der Begriffe „in einer Ausführungsform“ an verschiedenen Stellen in dieser Vorgabe nicht notwendigerweise immer auf dieselbe Ausführungsform. Weiter können die spezifischen Funktionen, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der obigen Vorgabe wurde eine ausführliche Beschreibung mit Verweis auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch offenkundig, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Geist und Umfang der Erfindung abzuweichen, wie in den anhängenden Ansprüchen dargelegt. Die Vorgabe und die Zeichnungen sind entsprechend in illustrativer Weise statt in einschränkender Weise zu betrachten. Weiterhin beziehen sich die vorstehenden Verwendungen von Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern können sich auf unterschiedliche und getrennte Ausführungsformen sowie auf möglicherweise dieselbe Ausführungsform beziehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15/283309 [0001]

Claims (25)

  1. Vorrichtung, umfassend: einen Adapter für die Schnittstelle zwischen der Verbindungslage und der physischen Lage, zum: Identifizieren eines ersten Bereitschaftssignals von einer ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines ersten Kommunikationsprotokolls, wobei das erste Bereitschaftssignal die Bereitschaft einer physischen Lage des ersten Protokolls anzeigt, Verbindungslagendaten für die Übertragung auf einer Verbindung anzunehmen; Erzeugen eines zweiten Bereitschaftssignals, das mit einer zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines zweiten Kommunikationsprotokolls kompatibel ist, wobei das zweite Bereitschaftssignal die Verbindungslagendaten von einer Verbindungslage des zweiten Kommunikationsprotokolls nach einer vorgegebenen Verzögerung senden lässt; Erzeugen eines dritten Bereitschaftssignals, das mit der ersten Schnittstelle zwischen der Verbindungslage und physischen Lage kompatibel ist, um für die physische Lage des ersten Kommunikationsprotokolls anzuzeigen, dass die Verbindungslagendaten durch die Verbindungslage des zweiten Kommunikationsprotokolls gesendet werden sollen; und Verwenden eines Schaltregisters, um die Verbindungslagendaten nach der vorgegebenen Verzögerung an die physische Lage weiterleiten zu lassen, wobei die vorgegebene Verzögerung eine Verzögerung von der Ausübung des ersten Bereitschaftssignals bis zum Senden der Verbindungslagendaten an die physische Lage umfasst.
  2. Vorrichtung nach Anspruch 1, wobei die Verzögerung eine Anzahl von Zyklen umfasst.
  3. Vorrichtung nach Anspruch 2, wobei das Schaltregister eine Anzahl von Schaltregistern umfasst und die Anzahl der Schaltregister der Anzahl von Zyklen entspricht.
  4. Vorrichtung nach Anspruch 3, wobei der Schnittstellenadapter Schaltkreise umfasst und die Schaltkreise die Schaltregister umfassen.
  5. Vorrichtung nach Anspruch 1, wobei das erste Kommunikationsprotokoll NULL-Flits der Verbindungslage darstellt, und der Schnittstellenadapter ferner NULL-Flits und Daten-Flits in den Verbindungslagendaten erkennen und das Fallenlassen der NULL-Flits veranlassen soll, bevor mit der physischen Lage fortgefahren wird.
  6. Vorrichtung nach Anspruch 5, wobei der Schnittstellenadapter das dritte Bereitschaftssignal nicht ausübt, wenn NULL-Flits erkannt werden, um zu veranlassen, dass die NULL-Flits fallengelassen werden.
  7. Vorrichtung nach Anspruch 6, wobei das Nichtausüben des dritten Bereitschaftssignals dazu führt, dass das erste Bereitschaftssignal nicht ausgeübt wird.
  8. Vorrichtung nach Anspruch 6, wobei die zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage ein viertes Bereitschaftssignal erzeugt, um anzuzeigen, dass die Verbindungslagendaten bereit sind und das vierte Bereitschaftssignal ausgeübt bleiben soll, wenn NULL-Flits in den Verbindungslagendaten gesendet werden sollen.
  9. Vorrichtung nach Anspruch 6, wobei der Schnittstellenadapter ein datengültiges Signal erzeugen soll, um anzuzeigen, ob Verbindungslagendaten, die durch das erste Kommunikationsprotokoll unterstützt werden, von der Verbindungslage an die physische Lage gesendet werden sollen, und die Nichtausübung des dritten Bereitschaftssignals auf dem datengültigen Signal basiert.
  10. Vorrichtung nach Anspruch 1, wobei die Übertragung der Verbindungslagendaten von der Verbindungslage des ersten Kommunikationsprotokolls an eine physische Lage des ersten Kommunikationsprotokolls in der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage auf einem Pushmodell basiert, und die Übertragung von Verbindungslagendaten von einer Verbindungslage des zweiten Kommunikationsprotokolls an die physische Lage des zweiten Kommunikationsprotokolls in der zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage auf einem Pullmodell basiert.
  11. Vorrichtung nach Anspruch 1, wobei die physische Lage die Bereitstellung einer Reihe von Datenfenstern auslösen soll, in denen die Verbindungslagendaten über die Verbindung gesendet werden sollen, und Daten verschiedener Kommunikationsprotokolle in konsekutiven Datenfenstern in der Reihe gesendet werden können.
  12. Verfahren, umfassend: Identifizieren eines ersten Bereitschaftssignals von einer ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines ersten Kommunikationsprotokolls, wobei das erste Bereitschaftssignal die Bereitschaft einer physischen Lage des ersten Protokolls anzeigt, Verbindungslagendaten für die Übertragung auf einer Verbindung anzunehmen; Erzeugen eines zweiten Bereitschaftssignals, das mit einer zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage eines zweiten Kommunikationsprotokolls kompatibel ist, wobei das zweite Bereitschaftssignal die Verbindungslagendaten von einer Verbindungslage des zweiten Protokolls nach einer vorgegebenen Verzögerung senden lässt; Erzeugen eines dritten Bereitschaftssignals, das mit der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage kompatibel ist, um für die physische Lage des ersten Protokolls anzuzeigen, dass die Verbindungslagendaten durch die Verbindungslage des zweiten Kommunikationsprotokolls gesendet werden sollen; und Verwenden eines Schaltregisters, um die Verbindungslagendaten nach der vorgegebenen Verzögerung an die physische Lage weiterleiten zu lassen, wobei die vorgegebene Verzögerung eine Verzögerung von der Ausübung des ersten Bereitschaftssignals bis zum Senden der Verbindungslagendaten an die physische Lage umfasst.
  13. System, umfassend: eine erste Komponente, umfassend: einen geschichteten Kommunikationsstapel, der eine Verbindungslage eines ersten Kommunikationsprotokolls und eine physische Lage eines anderen, zweiten Kommunikationsprotokolls umfasst, wobei die Übertragung von Verbindungslagendaten an eine physische Lage in dem ersten Kommunikationsprotokoll auf einem Pullmodell und in dem zweiten Kommunikationsprotokoll auf einem Pushmodell basiert; und einen Schnittstellenadapter, umfassend einen Satz Schaltregister, wobei der Adapter folgendem Zweck dient: Anpassen eines oder mehrerer Signale, die durch eine erste Schnittstelle zwischen der Verbindungslage und der physischen Lage des ersten Kommunikationsprotokolls erzeugt wurden, für eine zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage des zweiten Kommunikationsprotokolls; Anpassen eines oder mehrerer Signale, die durch die zweite Schnittstelle zwischen der Verbindungslage und der physischen Lage für die erste Schnittstelle zwischen der Verbindungslage und der physischen Lage erzeugt werden; Veranlassen der Übertragung von Verbindungslagendaten von der Verbindungslage an die physische Lage, die nach der zweiten Schnittstelle zwischen der Verbindungslage und der physischen Lage unter Verwendung des Satzes Schaltregister verzögert werden soll, wobei der geschichtete Kommunikationsstapel die Verbindungslagendaten über eine Verbindung an eine zweite Komponente senden soll.
  14. System nach Anspruch 13, wobei die physische Lage eine Reihe von Datenfenstern definieren soll, in denen Verbindungslagendaten auf Datenspuren der Verbindung geschickt werden sollen.
  15. System nach Anspruch 14, wobei die physische Lage ferner gültige Signale auf der Verbindung senden soll, die jedem aus der Reihe von Datenfenstern entsprechen, und jedes gültige Signal anzeigt, ob gültige Daten in einem entsprechenden der Reihe von Datenfenstern gesendet werden.
  16. System nach Anspruch 15, wobei die physische Lage ferner Streamidentifizierungssignale auf der Verbindung senden soll, die jedem aus der Reihe von Datenfenstern entsprechen, und jedes Streamidentifizierungssignal ein Kommunikationsprotokoll von Daten anzeigen soll, die in einem entsprechenden der Reihe von Datenfenstern gesendet werden.
  17. System nach Anspruch 16, wobei das Kommunikationsprotokoll eines aus mehreren verschiedenen Kommunikationsprotokollen ist, Daten von unterschiedlichen Kommunikationsprotokollen in konsekutiven Datenfenstern geschickt werden und die Verbindungslage der ersten Komponente mehrere Verbindungslagen enthält, die den mehreren verschiedenen Protokollen entsprechen.
  18. System nach Anspruch 17, ferner enthaltend die zweite Komponente, wobei die zweite Komponente einen Lagenprotokollstapel umfasst, der mehrere Verbindungslagen und die physische Lage umfasst.
  19. System nach Anspruch 17, wobei eine Schnittstelle zwischen der Verbindungslage und physischen Lage einer anderen der mehreren Verbindungslagen mit der ersten Schnittstelle zwischen der Verbindungslage und der physischen Lage kompatibel ist.
  20. System nach Anspruch 13, wobei das zweite Kommunikationsprotokoll Ultra Path Interconnect (UPI) umfasst.
  21. System nach Anspruch 20, wobei das erste Kommunikationsprotokoll auf Peripheral Component Interconnect Express (PCIe) basiert.
  22. System nach Anspruch 13, wobei das erste Kommunikationsprotokoll NULL-Flits der Verbindungslage darstellt, und der Schnittstellenadapter ferner NULL-Flits und Daten-Flits in den Verbindungslagendaten erkennen und das Fallenlassen der NULL-Flits veranlassen soll, bevor mit der physischen Lage fortgefahren wird.
  23. System nach Anspruch 13, wobei der Schnittstellenadapter ferner Folgendes durchführen soll: Identifizieren einer physischen Lagensteuermeldung, die an die zweite Komponente gesendet werden soll; Puffern der Verbindungslagendaten während der Steuermeldung der physischen Lage unter Verwendung des Satzes Schaltregister; und Veranlassen des Anhaltens der Verbindungslagendaten für eine Anzahl von Zyklen, die einer Anzahl von Zyklen entspricht, die verwendet werden, um die Steuermeldung der physischen Lage zu senden.
  24. System nach Anspruch 23, wobei die Steuermeldung der physischen Lage ein Paket der physischen Lage (PLP) umfasst.
  25. System nach Anspruch 13, ferner umfassend einen Sideband-Kanal, um Zustandsübergangsinformationen zwischen den ersten und zweiten Komponenten zu kommunizieren.
DE112017005002.2T 2016-10-01 2017-09-01 Verbindungsphysikalischer schichtschnittstellenadapter Pending DE112017005002T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/283,309 2016-10-01
US15/283,309 US10152446B2 (en) 2016-10-01 2016-10-01 Link-physical layer interface adapter
PCT/US2017/049824 WO2018063740A1 (en) 2016-10-01 2017-09-01 Link-physical layer interface adapter

Publications (1)

Publication Number Publication Date
DE112017005002T5 true DE112017005002T5 (de) 2019-06-19

Family

ID=61758219

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005002.2T Pending DE112017005002T5 (de) 2016-10-01 2017-09-01 Verbindungsphysikalischer schichtschnittstellenadapter

Country Status (4)

Country Link
US (1) US10152446B2 (de)
CN (1) CN109661658B (de)
DE (1) DE112017005002T5 (de)
WO (1) WO2018063740A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI736559B (zh) * 2015-12-23 2021-08-21 美商英特爾公司 用以針對實體層裝置的組件傳輸資料之控制器
US10846258B2 (en) * 2016-09-30 2020-11-24 Intel Corporation Voltage modulated control lane
US10152446B2 (en) 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter
US10705142B2 (en) * 2016-12-29 2020-07-07 Intel Corporation Device, system and method for providing on-chip test/debug functionality
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
US11514996B2 (en) * 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors
US10638601B2 (en) * 2017-08-11 2020-04-28 Seagate Technology Llc Apparatus comprising conductive traces configured to transmit differential signals in printed circuit boards
US10489341B1 (en) * 2018-06-25 2019-11-26 Quanta Computer Inc. Flexible interconnect port connection
US10771189B2 (en) 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US20190324523A1 (en) * 2018-12-21 2019-10-24 Michelle C. Jen Alternate physical layer power mode
CN113348654B (zh) * 2019-01-28 2024-06-18 索尼半导体解决方案公司 发送装置、发送方法、接收装置、接收方法和发送/接收装置
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US10776302B2 (en) 2019-04-02 2020-09-15 Intel Corporation Virtualized link states of multiple protocol layer package interconnects
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11892965B2 (en) * 2019-07-09 2024-02-06 Hewlett-Packard Development Company, L.P. Routing and converting traffic based on communication protocols
CN112217851B (zh) * 2019-07-12 2023-05-12 西安诺瓦星云科技股份有限公司 数据传输方法、数据传输装置以及电子设备
CN110401939B (zh) * 2019-09-04 2023-03-24 大唐半导体科技有限公司 一种低功耗蓝牙控制器链路层装置
US10997112B2 (en) 2019-10-02 2021-05-04 International Business Machines Corporation Link interface
US11740958B2 (en) * 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
US11734105B2 (en) 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface
US12007929B2 (en) 2020-10-09 2024-06-11 Altera Corporation Low-latency optical connection for CXL for a server CPU
CN113824596B (zh) * 2021-10-08 2023-05-30 南昌航空大学 一种通信分层架构
US20230353281A1 (en) * 2022-04-28 2023-11-02 Keysight Technologies, Inc. Method and system for reducing data stored in capture buffer

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2271539A1 (en) * 1999-05-12 2000-11-12 Pmc-Sierra Inc. Interface between a link layer device and one or more physical layer devices
US6880111B2 (en) * 2001-10-31 2005-04-12 Intel Corporation Bounding data transmission latency based upon a data transmission event and arrangement
US6829663B1 (en) * 2002-08-21 2004-12-07 Adaptec, Inc. Method and apparatus for the synchronous control of a serial interface
US7376147B2 (en) 2003-12-18 2008-05-20 Intel Corporation Adaptor supporting different protocols
US9251873B1 (en) * 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9146610B2 (en) * 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US9042366B2 (en) 2010-09-30 2015-05-26 Vitesse Semiconductor Corporation Timestamp predictor for packets over a synchronous protocol
US8972646B2 (en) 2012-03-30 2015-03-03 Intel Corporation Superspeed inter-chip interface
US8972640B2 (en) * 2012-06-27 2015-03-03 Intel Corporation Controlling a physical link of a first protocol using an extended capability structure of a second protocol
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
US9396152B2 (en) 2013-03-15 2016-07-19 Intel Corporation Device, system and method for communication with heterogenous physical layers
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
US9921768B2 (en) * 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US10152446B2 (en) 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter

Also Published As

Publication number Publication date
WO2018063740A1 (en) 2018-04-05
CN109661658B (zh) 2023-07-21
CN109661658A (zh) 2019-04-19
US20180095923A1 (en) 2018-04-05
US10152446B2 (en) 2018-12-11

Similar Documents

Publication Publication Date Title
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE102018128569A1 (de) Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE102019108798A1 (de) Hochbandige verbindungsschicht für kohärente nachrichten
DE102021118048A1 (de) Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports
DE102018006852A1 (de) Verfahren, Vorrichtung und System für eine ThunderBolt-basierte Anzeigetopologie für duale Grafiksysteme
DE102020101958A1 (de) Dynamisches spurzugriffswechseln zwischen pcie-wurzelräumen
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE112015006953T5 (de) Training einer gültigen lane

Legal Events

Date Code Title Description
R083 Amendment of/additions to inventor(s)