DE112013007734B4 - Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt - Google Patents

Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt Download PDF

Info

Publication number
DE112013007734B4
DE112013007734B4 DE112013007734.5T DE112013007734T DE112013007734B4 DE 112013007734 B4 DE112013007734 B4 DE 112013007734B4 DE 112013007734 T DE112013007734 T DE 112013007734T DE 112013007734 B4 DE112013007734 B4 DE 112013007734B4
Authority
DE
Germany
Prior art keywords
data
lanes
signal
link
window
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112013007734.5T
Other languages
English (en)
Other versions
DE112013007734T5 (de
Inventor
Robert G. Blankenship
Zuoguo J. Wu
Mahesh Wagh
Debendra Das Sharma
Gerald S. Pasdast
Ananthan Ayyasamy
Xiaobei Li
Robert J. Safranek
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 DE112013007734T5 publication Critical patent/DE112013007734T5/de
Application granted granted Critical
Publication of DE112013007734B4 publication Critical patent/DE112013007734B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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
    • 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
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Gerät, umfassend:eine Logik einer physikalischen Schicht, um:Daten auf einer oder mehreren Datenbahnen einer physikalischen Verbindung zu empfangen;ein gültiges Signal auf einer anderen der Bahnen der physikalischen Verbindung zu empfangen, wobei das gültige Signal dazu dient, zu identifizieren, dass gültige Daten auf eine Zusicherung des gültigen Signals auf der einen oder den mehreren Datenbahnen folgen werden; undein Datenstromsignal auf einer anderen der Bahnen der physikalischen Verbindung zu empfangen, wobei das Datenstromsignal dazu dient, eine Art der Daten auf der einen oder den mehreren Datenbahnen zu identifizieren,wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die physikalische Verbindung nutzen, undwobei die Logik der physikalischen Schicht ferner dazu dient, das Datenstromsignal zu dekodieren, um das Protokoll zu identifizieren, das den Daten zugeordnet ist.

Description

  • GEBIET
  • Diese Offenbarung betrifft ein Rechensystem und insbesondere (aber nicht ausschließlich) Punkt-zu-Punkt-Zwischenverbindungen. Im Besonderen betrifft die Offenbarung Geräte, Verfahren und Systeme zum Identifizieren eines Protokolls, dass eine physikalische Verbindung nutzt.
  • HINTERGRUND
  • Fortschritte bei der Halbleiterverarbeitung und im Logikdesign haben eine Steigerung der Logikmenge ermöglicht, die auf integrierten Schaltungsvorrichtungen vorhanden sein können. Folglich haben sich Rechensystemkonfigurationen von Systemen mit einer oder mehreren integrierten Schaltungen zu solchen mit mehreren Kernen, mehreren Hardware-Threads und mehreren Logikprozessoren auf einzelnen integrierten Schaltungen sowie mit anderen Schnittstellen, die in solchen Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physikalischen Prozessor-Nacktchip, wobei der Prozessor-Nacktchip eine Reihe von Kernen, Hardware-Threads, Logikprozessoren, Schnittstellen, Speichern, Steuerungs-Hub usw. umfassen kann.
  • Als Folge der gesteigerten Möglichkeit, mehr Verarbeitungsleistung in kleineren Gehäusen unterzubringen, haben kleinere Rechenvorrichtungen an Popularität gewonnen. Smartphones, Tablets, ultradünne Notebooks und andere Endgeräte haben exponentiell zugenommen. Diese kleineren Vorrichtungen hängen jedoch sowohl zur Datenspeicherung als auch für komplexe Verarbeitungsvorgänge, die den Formfaktor übersteigen, von Servern ab. Folglich ist auch die Nachfrage nach auf dem Hochleistungsrechenmarkt (d.h. Serverplatz) gestiegen. In modernen Servern gibt es beispielsweise üblicherweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern mehrere physikalische Prozessoren (auch als mehrere Sockets bezeichnet), um die Rechenleistung zu erhöhen. Wenn die Verarbeitungsleistung jedoch gemeinsam mit der Anzahl an Vorrichtungen in deinem Rechensystem steigt, wird die Kommunikation zwischen Sockets und anderen Vorrichtungen entscheidender.
  • Tatsächlich haben sich Zwischenverbindungen von traditionelleren Mehrpunktbussen, die vorwiegend elektrische Kommunikation verwalteten, zu ausgereiften Zwischenverbindungsarchitekturen, die rasche Kommunikation ermöglichen, entwickelt. Unglücklicherweise wird mit der steigenden Nachfrage nach zukünftigen Prozessoren, die mit noch höheren Geschwindigkeiten konsumieren, entsprechend die Nachfrage nach Kapazitäten in vorhandenen Zwischenverbindungsarchitekturen zunehmen.
  • WO 2013/176 953 A1 betrifft Techniken für Zwischenverbindungen. In WO 2013/176 953 A1 ist beispielsweise einen Protokollstapel beschrieben, der eine Transaktionsschicht und eine Verbindungsschicht enthält. Zusätzlich wird eine erste physikalische (PHY) Haupteinheit an den Protokollstapel gekoppelt, um die Kommunikation zwischen dem Prozessor und einem Gerät über eine physikalische Verbindung mit dem Prozessor zu ermöglichen, wobei die PHY-Haupteinheit ein Niedrigenergie-Kommunikationsprotokoll einschließlich eines ersten physikalischen Einheitsschaltkreis ist. Wiederum wird eine zweite PHY-Einheit mit dem Protokollstapel verbunden, um die Kommunikation zwischen dem Prozessor und dem Gerät über einen Seitenbandkanal mit Verbindung zwischen dem Mehrkernprozessor und dem Gerät, getrennt von der physikalischen Verbindung, wobei die zweite PHY-Einheit eine zweite physikalische Einheitsschaltung enthält, zu ermöglichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es kann daher als eine Aufgabe der vorliegenden Erfindung angesehen werden, ein Gerät zur Verwendung mit einer physikalischen Verbindung bereitzustellen, dass im Vergleich zu herkömmlichen Zwischenverbindungslösungen wie beispielsweise in WO 2013/176 953 A1 flexibel bei der Übertragung von Daten ist und zudem eine hohe Bandbreite, einen geringen Energieverbrauch und eine niedrige Latenz erzielt.
  • Die vorstehende Aufgabe wird erfindungsgemäß mit dem Gerät gemäß dem unabhängigen Anspruch 1, dem Verfahren gemäß dem unabhängigen Anspruch 8, dem Gerät gemäß dem unabhängigen Anspruch 10, dem Verfahren gemäß dem unabhängigen Anspruch 18 und dem System gemäß dem unabhängigen Anspruch 20 gelöst. Die abhängigen Ansprüche definieren Weiterbildungen der erfindungsgemäßen Geräte, der erfindungsgemäßen Verfahren bzw. des erfindungsgemäßen Systems.
  • Figurenliste
    • 1 zeigt eine Ausführungsform eines Rechensystems, das eine Zwischenverbindungsarchitektur umfasst.
    • 2 zeigt eine Ausführungsform einer Zwischenverbindungsarchitektur, die einen Schichtstapel umfasst.
    • 3 zeigt eine Ausführungsform einer Anfrage oder eines Pakets, die in einer Zwischenverbindungsarchitektur erzeugt oder empfangen werden sollen.
    • 4 zeigt eine Ausführungsform eines Sender-und-Empfänger-Paars für eine Zwischenverbindungsarchitektur.
    • 5 zeigt eine Ausführungsform eines Mehrchipgehäuses.
    • 6 ist ein vereinfachtes Blockdiagramm einer Mehrchipgehäuseverbindung (MCPL).
    • 7 ist eine Darstellung einer beispielhaften Signalübertragung auf einer beispielhaften MCPL.
    • 8 ist ein vereinfachtes Blockdiagramm, das eine Datenbahn in einer beispielhaften MCPL zeigt.
    • 9 ist ein vereinfachtes Blockdiagramm, das beispielhafte Übersprechunterdrückungstechniken in einer Ausführungsform einer MCPL.
    • 10 ist ein vereinfachtes Schaltbild, das beispielhafte Übersprechunterdrückungkomponenten in einer Ausführungsform einer MCPL zeigt.
    • 11 ist ein vereinfachtes Blockdiagramm einer MCPL.
    • 12 ist ein vereinfachtes Blockdiagramm einer MCPL, die eine Schnittstelle mit einer Oberschichtlogik von mehreren Protokollen unter Verwendung einer logischen PHY-Schnittstelle (LPIF) aufweist.
    • 13 ist eine Darstellung einer beispielhaften Signalübertragung auf einer beispielhaften MCPL in Verbindung mit einer Wiederherstellung einer Verbindung.
    • 14A-14C sind beispielhaft Bit-Kartierungen von Daten auf Bahnen einer beispielhaften MCPL.
    • 15 ist eine Darstellung eines Teils einer beispielhaften Verbindungszustandsmaschine.
    • 16 ist eine Darstellung eines Ablaufs in Verbindung mit einer beispielhaften Zentrierung einer Verbindung.
    • 17 ist eine Darstellung einer beispielhaften Verbindungszustandsmaschine.
    • 18 ist eine Darstellung einer Signalübertragung zum Eintritt in einen Niedrigenergiezustand.
    • 19 zeigt eine Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor umfasst.
    • 20 zeigt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor umfasst.
    • 21 zeigt eine Ausführungsform eines Blockdiagramms für einen Prozessor.
    • 22 zeigt eine weitere Ausführungsform eines Blockdiagramms für ein a Rechensystem, das einen Prozessor umfasst.
    • 23 zeigt eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessoren umfasst.
    • 24 zeigt ein beispielhaftes System, das als Ein-Chip-System (SoC) implementiert ist.
  • Ähnliche Bezugszahlen und Bezeichnungen in den verschiedenen Zeichnungen bezeichnen ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, wie etwa Beispiele für spezifische Arten von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische Architektur- und Mikroarchitekturdetails, spezifische Registerkonfigurationen, spezifische Anweisungsarten, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessorpipelinestufen und -operationen usw., um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. Für Fachleute auf dem Gebiet der Erfindung wird jedoch offensichtlich sein, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Erfindung umzusetzen. In anderen Fällen wurden allgemein bekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Codes für beschriebene Algorithmen, spezifische Firmwarecodes, spezifische Verbindungsoperationen, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compilerimplementierungen, spezifische Darstellungen von Algorithmen in Codes, spezifische Abschalt- und Gatingtechniken/-logiken und andere spezifische Operationsdetails eines Rechensystems nicht im Detail beschrieben, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
  • Die folgenden Ausführungsformen können zwar in Bezug auf Energiesparen und Energieeffizienz in spezifischen integrierten Schaltungen, wie etwa Rechenplattformen oder Mikroprozessoren, beschrieben sein, bei anderen Arten von integrierten Schaltungen und Logikvorrichtungen können aber auch andere Ausführungsform eingesetzt werden. Ähnliche Verfahren und Lehren von Ausführungsformen, die hierin beschrieben sind, können auch für andere Arten von Schaltungen oder Halbleitervorrichtungen verwendet werden, die ebenfalls von besserer Energieeffizienz und Energiesparen profitieren können. Beispielsweise sind die vorliegenden Ausführungsformen nicht auf Desktop-Rechnersysteme oder Ultrabooks™ eingeschränkt. Sie können auch in anderen Vorrichtungen verwendet werden, wie etwa in Handgeräten, Tablets, anderen dünnen Notebooks, Systemen auf einem Chip (SOC-Vorrichtungen) und eingebetteten Anwendungen. Einige Beispiele für Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen umfassen üblicherweise eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), ein Ein-Chip-System, Netzwerkrechner (NetPC), Beistellgeräte, NetzwerkHub, Weitverkehrsnetz- (WAN-) Schalter oder ein beliebiges anderes System, das die nachstehende gelehrten Funktionen und Operationen ausführen kann. Darüber hinaus sind die hierin beschriebenen Geräte, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen eingeschränkt, sondern können sich auch auf Softwareoptimierungen für Energiesparen und -effizienz beziehen. Wie aus der nachfolgenden Beschreibung hervorgeht sind die Ausführungsformen der Verfahren, Geräte und Systeme, die hierin beschrieben sind (egal ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) entscheidend für eine Zukunft mit ausgeglichener Berücksichtigung von „grüner Technologie‟ und Leistung.
  • Mit der Weiterentwicklung von Rechensystemen werden die darin enthaltenen Komponenten immer komplexer. Als Folge nimmt auch die Komplexität der Zwischenverbindungsarchitektur zum Koppeln der und Kommunikation zwischen den Komponenten zu, um sicherzustellen, dass Bandbreitenaforderungen für einen optimalen Betrieb der Komponenten erfüllt werden. Außerdem fordern verschiedene Marktsegmente unterschiedliche die Bereitstellung unterschiedlicher Aspekte von Zwischenverbindungsarchitekturen zur Erfüllung ihrer Bedürfnisse. Beispielsweise erfordern Server höhere Leistung, während das mobile Ökosystem manchmal bei der Gesamtleistung verzichten kann, um Energie zu sparen. Trotzdem ist das Ziel der meisten Strukturen, die höchstmögliche Leistung bei maximalem Energiesparen bereitzustellen. Nachstehend werden ein paar Verbindungen erläutert, die möglicherweise von Aspekten der hierin beschriebenen Erfindung profitieren würden.
  • Eine Zwischenverbindungsstrukturarchitektur umfasst die Peripherkomponentenverbindungs- (PCI-) Express- (PCIe-) Architektur. Ein Hauptziel von PCIe besteht darin, es Komponenten und Vorrichtungen von unterschiedlichen Lieferfirmen zu ermöglichen, in einer offenen Architektur miteinander zu operieren, um mehrere Marktsegmenten zu überspannen; Clients (Desktop- und Mobilgerät), Servers (Standard und Unternehmen) und eingebettete und Kommunikationsvorrichtungen. PCI Express ist eine Mehrzweck-Hochleistungs-I/O-Zwischenverbindung, die für verschiedenste zukünftige Rechen- und Kommunikationsplattformen definiert ist. Manche PCI-Merkmale, wie z.B. sein Nutzungsmodell, seine Lade-Speicher-Architektur und Software-Schnittstellen, wurde bei Überarbeitungen beibehalten, während vorherige parallele Busimplementierungen durch eine stark skalierbare, vollkommen serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express nutzen die Vorteile der Fortschritte bei Punkt-zu-Punkt-Verbindungen, schalterbasierter Technologie und paketierten Protozollen zur Bereitstellung neuer Leistungsniveaus und Funktionen. Energiemanagement, Dienstgüte (QoS), Hot-Plug/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehebung sind einige der fortgeschrittenen Funktionen, die von PCI Express unterstützt werden.
  • Unter Bezugnahme auf 1 wird eine Ausführungsform einer Struktur dargestellt, die aus Punkt-zu-Punkt-Verbindungen besteht, die eine Gruppe von Komponenten verbinden. System 100 umfasst einen Prozessor 105 und einen Systemspeicher 110, der mit einen Steuerungs-Hub 115 gekoppelt ist. Prozessor 105 umfasst ein beliebiges Verarbeitungselement, wie z.B. einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Prozessor 105 ist mit Steuerungs-Hub 115 über einen Frontside-Bus (FSB) 106 gekoppelt. In einer Ausführungsform ist FSB 106 eine serielle Punkt-zu-Punkt-Verbindung, wie nachstehend beschrieben ist. In einer weiteren Ausführungsform umfasst Verbindung 106 eine serielle, differentielle Zwischenverbindungsarchitektur, die verschiedenen Verbindungsstandards entspricht.
  • Systemspeicher 110 umfasst eine beliebige Speichervorrichtung, wie z.B. einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen (NV) Speicher oder einen anderen Speicher, auf den Vorrichtungen im System 100 zugreifen können. Systemspeicher 110 ist mit Steuerungs-Hub 115 durch Speicherschnittstelle 116 gekoppelt. Beispiele für eine Speicherschnittstelle umfassen eine Doppeldatenraten- (DDR-) Speicherschnittstelle, eine Doppelkanal-DDR-Speicherschnittstelle und eine dynamische RAM- (DRAM-) Speicherschnittstelle.
  • In einer Ausführungsform ist Steuerungs-Hub 115 ein Root-Hub, ein Root-Komplex oder eine Root-Steuerung in einer Peripherkomponentenverbindung-Express- (PCIe- oder PCIE-) Verbindungshierarchie. Beispiele für Steuerungs-Hub 115 umfassen einen Chipsatz, einen Speichersteuerungs-Hub (MCH), ein Northbridge, einen Verbindungssteuerungs-Hub (ICH), ein Southbridge und eine(n) Root-Steuerung/Hub. Häufig bezieht sich die Bezeichnung Chipsatz auf zwei physikalische getrennte Steuerungs-Hub, d.h. einen Speichersteuerungs-Hub (MCH), der mit einem Verbindungssteuerungs-Hub (ICH) gekoppelt ist. Es gilt anzumerken, dass aktuelle Systeme den MCH häufig im Prozessor 105 integriert aufweisen, wobei Steuerung 115 zur Kommunikation mit I/O-Vorrichtungen dient, auf ähnliche Weise wie nachstehend beschrieben ist. In manchen Ausführungsformen wird Peer-zu-Peer-Routing gegebenenfalls von einem Root-Komplex 115 unterstützt.
  • Hier ist Steuerungs-Hub 115 mit Schalter/Brücke 120 durch serielle Verbindung 119 gekoppelt. Eingabe-/Ausgabemodule 117 und 121, die auch als Schnittstellen/Anschlüsse 117 und 121 bezeichnet werden können, umfassen/implementieren eine geschichteten Protokollstapel zur Bereitstellung von Kommunikation zwischen Steuerungs-Hub 115 und Schalter 120. In einer Ausführungsform können mehrere Vorrichtungen mit Schalter 120 gekoppelt werden.
  • Schalter/Brücke 120 leitet Pakete/Nachrichten von Vorrichtung 125 stromaufwärts, d.h. eine Hierarchie nach oben zu einem Root-Komplex, zu Steuerungs-Hub 115 und stromabwärts, d.h. eine Hierarchie nach unten weg von einer Root-Steuerung, von Prozessor 105 oder Systemspeicher 110 zu Vorrichtung 125. Schalter 120 wird in einer Ausführungsform als logische Gruppe aus mehreren virtuellen PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Vorrichtung 125 umfasst einen beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, beispielsweise mit einer I/O Vorrichtung, einer Netzwerkschnittstellensteuerung (NIC), einer Steckkarte, einem Audioprozessor, einem Netzwerkprozessor, einer Festplatte, einer Speichervorrichtung, einer CD/DVD ROM, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Router, einer tragbaren Speichervorrichtung, einer Firewire-Vorrichtung, einer universellen seriellen Bus- (USB-) Vorrichtung, einem Scanner und anderen Eingabe-/Ausgabevorrichtungen. In der PCIe-Fachsprache wird solch eine Vorrichtung häufig als Endgerät bezeichnet. Es ist zwar nicht spezifisch dargestellt, aber Vorrichtung 125 kann eine PCIe zur PCI/PCI-X-Brücke umfassen, um Legacy- oder andere Versionen von PCI-Vorrichtungen zu unterstützen. Endgerätevorrichtungen bei PCIe werden oft als Endgeräte mit integriertem Legacy, PCIe oder Root-Komplex bezeichnet.
  • Grafikbeschleuniger 130 ist ebenfalls mit Steuerungs-Hub 115 durch eine serielle Verbindung 132 gekoppelt. In einer Ausführungsform ist Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Schalter 120, und demgemäß I/O-Vorrichtung 125, ist dann mit dem ICH gekoppelt. I/O-Module 131 und 118 dienen ebenfalls zur Implementierung eines geschichteten Protokollstapels zur Kommunikation zwischen Grafikbeschleuniger 130 und Steuerungs-Hub 115. Ähnlich wie bei der Erläuterung des MCH oben kann eine Grafiksteuerung oder der Grafikbeschleuniger 130 selbst im Prozessor 105 integriert sein.
  • Unter Bezugnahme auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Geschichteter Protokollstapel 200 umfasst jede beliebige Form eines geschichteten Kommunikationsstapels, wie z.B. einen Quick-Path-Interconnect- (QPI) Stapel, einen PCie-Stapel, einen Hochleistungsrechenverbindungsstapel der nächsten Generation oder einen anderen Schichtstapel. Obwohl sich die direkt nachfolgende Erläuterung unter Bezugnahme auf 1-4 auf einen PCIe-Stapel bezieht, können die gleichen Konzepte auf bei anderen Verbindungsstapeln verwendet werden. In einer Ausführungsform ist Protokollstapel 200 ein PCIe-Protokollstapel, der Transaktionsschicht 205, Verbindungsschicht 210 und physikalische Schicht 220 umfasst. Eine Schnittstelle, wie z.B. Schnittstelle 117, 118, 121, 122, 126 und 131 in 1, kann als Kommunikationsprotokollstapel 200 dargestellt sein. Eine Darstellung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert/umfasst.
  • PCI Express nutzt Pakete zur Übertragung von Informationen zwischen Komponenten. Pakete werden in der Transaktionsschicht 205 Datenverbindungsschicht 210 gebildet, um die Informationen von der Sendekomponente zur Empfangskomponente zu übertragen. Wenn die übertragenen Pakete durch die äußeren Schichten wandern, werden sie mit zusätzlichen Informationen versehen, die notwendig sind, um Pakete in diesen Schichten zu verwalten. Auf der Empfangsseite findet der umgekehrte Prozess statt und Pakete werden von ihrer Darstellung in der physikalischen Schicht 220 zur Darstellung in der Datenverbindungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form, die von der Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionsschicht
  • In einer Ausführungsform dient die Transaktionsschicht 205 zur Bereitstellung einer Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur, z.B. einer Datenverbindungsschicht 210 und einer physikalischen Schicht 220. In diesem Zusammenhang besteht die Hauptaufgabe der Transaktionsschicht 205 darin, Pakete (d.h. Transaktionsschichtpakete oder TLPs) zusammenzustellen und auseinanderzunehmen. Die Transaktionsschicht 205 verwaltet üblicherweise Credit-basierte Flusskontrolle für TLPs. PCIe implementiert geteilte Transkationen, d.h. Transaktionen, bei denen Anfrage und Antwort zeitlich getrennt sind, was es einer Verbindung erlaubt, anderen Verkehr auszuführen, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Außerdem nutzt PCIe Credit-basierte Flusskontrolle. Bei diesem Schema gibt eine Vorrichtung eine Anfangsmenge an Credit für jeden der Empfangspuffer in Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie z.B. Steuerungs-Hub 115 in 1, zählt die Anzahl an Credits, die von jedem TLP verbraucht werden. Eine Transaktion kann übertragen werden, wenn die Transkation eine Credit-Grenze nicht überscheitet. Beim Empfang einer Antwort wird die Credit-Menge rückgesetzt. Ein Vorteil eines Credit-Schemas ist, dass sich die Latenz der Credit-Wiederherstellung nicht auf die Leistung auswirkt, solange die Credit-Grenze nicht erreicht ist.
  • In einer Ausführungsform umfassen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherplatztransaktionen umfassen eine oder mehrere aus Leseanforderungen und Schreibanforderungen zur Übertragung von Daten von/zu einer im Speicher abgebildeten Position. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei unterschiedliche Adressformate zu verwenden, z.B. ein kurzes Adressenformat, wie z.B. eine 32-Bit-Adresse, oder ein langes Adressenformat, wie z.B. eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen am Konfigurationsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind so definiert, dass sie bandinterne Kommunikation zwischen PCIe-Agenten unterstützen.
  • Daher assembliert in einer Ausführungsform Transaktionsschicht 205 Paketkopf/Nutzlast 206. Das Format für aktuelle Paketköpfe/Nutzlasten findet sich in den PCIe-Spezifikationen und auf der PCIe-Spezifikationswebseite.
  • Unter Bezugnahme auf 3 ist kurz eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. In einer Ausführungsform ist der Transaktionsdeskriptor 300 ein Mechanismus zum Tragen von Transaktionsinformationen. In diesem Zusammenhang unterstützt Transaktionsdeskriptor 300 eine Identifikation von Transaktionen in einem System. Andere möglichen Anwendungen umfassen Nachverfolgen von Modifikationen von Standardtransaktionsreihenfolgen und Zuordnung einer Transaktion zu Kanälen.
  • Transaktionsdeskriptor 300 umfasst ein globales Identifikatorfeld 302, ein Attributfeld 304 und ein Kanalidentifikatorfeld 306. Im veranschaulichten Beispiel ist das globale Identifikatorfeld 302 so dargestellt, dass es ein lokales Transaktionsidentifikatorfeld 308 und ein Quellidentifikatorfeld 310 umfasst. In einer Ausführungsform ist der globale Transaktionsidentifikator 302 einzigartig für alle ausstehenden Anforderungen.
  • Gemäß einer Ausführungsform ist das lokale Transaktionsidentifikatorfeld 308 ein Feld, das von einem Anforderungsagent erzeugt wird, und es ist einzigartig für alle ausstehenden Anforderungen, die eine Komplettierung für diesen Anforderungsagent erfordern. Außerdem identifiziert in diesem Beispiel der Quellidentifikator 310 auf einzigartige Weise den Anforderungsagent innerhalb einer PCIe-Hierarchie. Demgemäß stellt der lokale Transaktionsidentifikator 308 zusammen mit der Quell-ID 310 globale Identifikation einer Transaktion innerhalb einer hierarchischen Domäne bereit.
  • Attributfeld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. In diesem Zusammenhang wird Attributfeld 304 möglicherweise verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardverwaltung von Transaktionen ermöglichen. In einer Ausführungsform umfasst Attributfeld 304 Prioritätsfeld 312, reserviertes Feld 314, Reihenfolgenfeld 316 und abhörfreies Feld 318. Hier kann das Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 314 wird für die Zukunft oder vom Lieferanten definierte Verwendung reserviert. Mögliche Verwendungsmodelle unter Einsatz von Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds implementiert werden.
  • In diesem Beispiel wird das Reihenfolgenattributfeld 316 verwendet, um optionale Informationen bereitzustellen, welche die Art von Reihenfolge angeben, welche die Standardreihenfolgenregeln verändern können. Gemäß einer beispielhaften Implementierung bezeichnet ein Reihenfolgenattribut „0“, dass Standardreihenfolgenregeln anzuwenden sind, während ein Reihenfolgenattribut „1“ eine entspannte Reihenfolge bezeichnet, wobei Schreibvorgänge Schreiben in die gleiche Richtung weitergeben können und Lesekomplettierungen Schreiben in die gleiche Richtung weitergeben können. Das Abhörattributfeld 318 wird verwendet, um zu bestimmen, ob Transaktionen abgehört werden. Wie dargestellt identifiziert Kanal-ID-Field 306 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Verbindungsschicht
  • Verbindungsschicht 210, auch als Datenverbindungsschicht 210 bezeichnet, dient als Zwischenstufe zwischen Transaktionsschicht 205 und der physikalischen Schicht 220. In einer Ausführungsform ist es eine Aufgabe der Datenverbindungsschicht 210, einen verlässlichen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 210 akzeptiert TLPs, die von der Transaktionsschicht 205 assembliert werden, wendet Paketsequenzidentifikator 211 an, d.h. eine Identikationsnummer oder Paketnummer, berechnet einen Fehlererkennungscode und wendet ihn an, d.h. CRC 212, und weist die modifizierten TLPs der physikalischen Schicht 220 zu, damit sie über eine physikalische zu einer externen Vorrichtung gesendet werden.
  • Physikalische Schicht
  • In einer Ausführungsform umfasst die physikalische Schicht 220 einen logischen Subblock 221 und einen elektrischen Subblock 222, um ein Paket physikalisch zu einer externen Vorrichtung zu senden. Hier ist ein logischer Subblock 221 verantwortlich für die „digitalen“ Funktionen der physikalischen Schicht 221. In diesem Zusammenhang umfasst der logische Subblock einen Sendeabschnitt zur Bereitstellung von ausgehenden Informationen zum Senden durch einen physikalischen Subblock 222 und einen Empfängerabschnitt zur Identifikation und Vorbereitung von empfangenen Informationen, bevor sie in die Verbindungsschicht 210 weitergeleitet werden.
  • Der physikalische Block 222 umfasst einen Sender und einen Empfänger. Der Sender wird durch einen logischen Subblock 221 mit Symbolen versorgt, die der Sender serialisiert und zu einer externen Vorrichtung überträgt. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und zum logischen Subblock 221 geleitet. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole eingesetzt, um ein Paket mit Rahmen 223 einzurahmen. Außerdem stellt der Empfänger in einem Beispiel auch einen Symboltaktgeber bereit, der aus dem ankommenden Serienstrom gewonnen wird.
  • Wie oben angeführt werden zwar Transaktionsschicht 205, Verbindungsschicht 210 und physikalische Schicht 220 in Bezug auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erläutert, ein geschichteter Protokollstapel ist aber nicht darauf eingeschränkt. In der Tat kann jedes beliebige geschichtete Protokoll enthalten/implementiert sein. Als Beispiel umfasst ein Anschluss/eine Schnittstelle, der/die als geschichtetes Protokoll dargestellt ist: (1) eine erste Schicht zur Assemblierung von Paketen, d.h. eine Transaktionsschicht; eine zweite Schicht zur Sequenzierung von Paketen, d.h. eine Verbindungsschicht; und eine dritte Schicht zum Senden der Pakete, d.h. eine physikalische Schicht. Als spezifisches Beispiel wird ein geschichtetes Protokoll einer herkömmlichen Standardschnittstelle (CSI) verwendet.
  • Unter Bezugnahme auf 4 wird als Nächstes eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Struktur dargestellt. Es ist zwar eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung dargestellt, aber eine serielle Punkt-zu-Punkt-Verbindung ist nicht darauf eingeschränkt, das sie jeden beliebigen Sendepfad zum Senden von Seriendaten umfasst. In der dargestellten Ausführungsform umfasst eine grundlegende PCIe-Verbindung zwei differentiell angetriebene Niederspannungssignalpaare: ein Sendepaar 406/411 und ein Empfängerpaar 412/407. Demgemäß umfasst Vorrichtung 405 eine Sendelogik 406 zum Senden von Daten zu Vorrichtung 410 und eine Empfangslogik 407 zum Empfangen von Daten von Vorrichtung 410. Mit anderen Worten sind zwei Sendepfade, d.h. Pfad 416 und 417, und zwei Empfangspfade, d.h. Pfad 418 und 419, in einer PCIe-Verbindung enthalten.
  • Ein Sendepfad bezieht sich auf jeden beliebigen Pfad zum Senden von Daten, wie z.B. eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen Drahtloskommunikationskanal, eine Infrarotkommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, z.B. Vorrichtung 405 und Vorrichtung 410, wird als Verbindung bezeichnet, z.B. Verbindung 415. Eine Verbindung kann eine Bahn unterstützen - jede Bahn stellt einen Satz von Differenzsignalpaaren dar (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren kann eine Verbindung mehreren Bahnen aggregieren, die durch xN bezeichnet sind, wobei N jede beliebige unterstützte Verbindungsbreite ist, wie z.B. 1, 2, 4, 8, 12, 16, 32, 64 oder mehr.
  • Ein Differenzpaar bezieht sich auf zwei Sendepfade, wie z.B. Bahnen 416 und 417, zum Senden von Differenzsignalen. Wenn beispielsweise Leitung 416 von einem niedrigen Spannungswert zu einem hohen Spannungswert umschaltet, d.h. eine ansteigende Flanke, steuert Leitung 417 von einem hohen Logikpegel zu einem niedrigen Logikpegel, d.h. eine abfallende Flanke. Differenzsignale können eventuell bessere elektrische Eigenschaften aufwiesen, beispielsweise bessere Signalintegrität, d.h. Kreuzkopplung, Spannungsüberschreitung/-unterschreitung, Einschwingen usw. Dies ermöglicht ein besseres Zeitfenster, das raschere Sendefrequenzen ermöglicht.
  • 5 ist ein vereinfachtes Blockdiagramm 500, das ein Beispiel für ein Mehrchipgehäuse 505 zeigt, das zwei oder mehr Chips oder Nacktchips umfasst (z.B. 510, 515), die unter Verwendung einer beispielhaften Mehrchipgehäuseverbindung (MCPL) 520 zur Kommunikation verbunden sind. In 5 ist zwar ein Beispiel für zwei (oder mehr) Nacktchips dargestellt, die unter Verwendung einer beispielhaften MCPL 520 verbunden sind, es versteht sich jedoch, dass die hierin beschriebenen Prinzipien und Merkmale bezüglich Implementierungen einer MCPL für jede beliebige Zwischenverbindung oder Verbindung zwischen einem Nacktchip (z.B. 510) und anderen Komponenten angewandt werden können, einschließlich der Verbindung von zwei oder zwei oder mehr Nacktchips (z.B. 510, 515), der Verbindung eines Nacktchips (oder Chips) mit einer anderen Komponente, die nicht auf einem Nacktchip ist, der Verbindung eines Nacktchips mit einer anderen Vorrichtung oder einem anderen Nacktchip, die nicht im Gehäuse sind (z.B. 505), der Verbindung eines Nacktchips mit einem BGA-Gehäuse, der Implementierung eines Patch on Interposer (POINT), als eines von möglichen anderen Beispielen.
  • Im Allgemeinen kann ein Mehrchipgehäuse (z.B. 505) ein Elektronikgehäuse sein, in dem mehrere integrierte Schaltungen (ICs), Halbleiternacktchips oder andere einzelne Komponenten (z.B. 510, 515) auf einem vereinenden Substrat (z.B. Silicium oder ein anderes Halbleitersubstrat) gepackt sind, was die Verwendung der kombinierten Komponenten als einzelne Komponente ermöglicht (z.B. als ob es sich um eine größere IC handeln würde). In manchen Fällen können die größeren Komponenten (z.B. Nacktchips 510, 515) selbst IC-Systeme sein, wie z.B. Systeme auf einem Chip (SoC), Mehrprozessorchips oder anderen Komponenten, die mehrere Komponenten (z.B. 525-530 und 540-545) auf der Vorrichtung umfassen, beispielsweise auf einem einzelnen Nacktchip (z.B. 510, 515). Mehrchipgehäuse 505 können Flexibilität beim Bau von komplexen und unterschiedlichen Systemen aus möglicherweise mehreren separaten Komponenten und Systemen breitstellen. Beispielsweise kann jeder der Nacktchips 510, 515 aus zwei unterschiedlichen Einheiten hergestellt oder auf andere Weise bereitgestellt werden, wobei das Siliciumsubstrat des Gehäuses 505 durch eine dritte Einheit bereitgestellt wird, um eines von vielen Beispielen zu nennen. Außerdem können Nacktchips und andere Komponenten innerhalb eines Mehrchipgehäuses 505 selbst Verbindungs- oder andere Kommunikationsstrukturen enthalten (z.B. 535, 550), welche die Infrastruktur für eine Kommunikation zwischen Komponenten (z.B. 525-530 und 540-545) innerhalb der Vorrichtung bereitstellen (z.B. 510 bzw. 515). Die verschiedenen Komponenten und Zwischenverbindungen (z.B. 535, 550) können möglicherweise mehrere verschiedene Protokolle unterstützen oder nutzen. Ferner kann Kommunikation zwischen Nacktchips (z.B. 510, 515) möglicherweise Transaktionen zwischen den verschiedenen Komponenten auf den Nacktchips über mehrere verschieden Protokolle umfassen. Der Entwurf von Mechanismen zur Bereitstellung von Kommunikation zwischen Chips (oder Nacktchips) auf einem Mehrchipgehäuse kann eine Herausforderung darstellen, da herkömmliche Lösungen hochspezialisierte, teure und gehäusespezifische Lösungen nutzen, die auf spezifischen Kombinationen von Komponenten (und gewünschten Transaktionen) basieren, die verbunden werden sollen.
  • Die Beispiele, Systeme, Algorithmen, Geräte, Logiken und Merkmale, die in dieser Patentschrift beschrieben sind, können zumindest einige der oben identifizierten Probleme ansprechen, einschließlich möglicherweise vieler anderer, die hierin nicht erwähnt sind. Beispielsweise kann in manchen Implementierungen eine Schnittstelle mit hoher Bandbreite, geringer Energie und geringer Latenz bereitgestellt werden, um eine Host-Vorrichtung (z.B. eine CPU) oder andere Vorrichtung mit einem entsprechenden Chip verbinden, der im selben Gehäuse wie der Host enthalten ist. Solch eine Mehrchipgehäuseverbindung (MCPL) kann mehrere Gehäuseoptionen, mehrere I/O-Protokolle sowie Merkmale bezüglich Verlässlichkeit, Verfügbarkeit und Wartbarkeit (RAS) unterstützen. Ferner kann die physikalische Schicht (PHY) eine Elektrikschicht und eine Logikschicht umfassen und kann längere Kanallängen unterstützen, einschließlich Kanallängen von bis zu, und in manchen Fällen mehr als, etwa 45 mm. In manchen Implementierungen kann eine beispielhafte MCPL bei hohen Datenraten laufen, einschließlich Datenraten über 8-10 Gb/s.
  • In einer beispielhaften Implementierung einer MCPL kann eine PHY-Elektrikschicht eine Verbesserung gegenüber herkömmlichen Mehrkanalverbindungslösungen bereitstellen (z.B. Mehrkanal-DRAM-I/O), wodurch die Datenrate und die Kanalkonfiguration erweitert werden, beispielsweise um eine Reihe von Merkmalen, die beispielsweise regulierte Mittelschienentermination, aktive Niedrigenergie-Übersprechunterdrückung, Schaltungsredundanz, Pro-Bit-Arbeitszykluskorrektur und Entfernung von Laufzeitunterschieden, Zeilenkodierung und Senderausgleich, um einige von vielen Beispielen zu nennen.
  • In einer beispielhaften Implementierung einer MCPL kann eine PHY-Logikschicht implementiert sein, die zusätzlich die Erweiterung der Datenrate und Kanalkonfiguration unterstützen kann (z.B. Elektrikschichtmerkmale), während sie auch die Verbindung zum Routen von mehreren Protokollen durch die Elektrikschicht ermöglichen kann. Solche Implementierungen können eine modulare gemeinsame physikalische Schicht bereitstellen und definieren, die unabhängig vom Protokoll ist und eine Architektur aufweist, um mit möglicherweise jedem beliebigen existierenden oder zukünftigen Verbindungsprotokoll zu arbeiten.
  • Auf 6 Bezug nehmend wird ein vereinfachtes Blockdiagramm 600 dargestellt, das zumindest einen Teil eines Systems zeigt, das eine beispielhafte Implementierung einer Mehrchipgehäuseverbindung (MCPL) darstellt. Eine MCPL kann unter Verwendung physikalischer elektrischer Verbindungen (z.B. als Bahnen implementierte Drähte) implementiert sein, die eine erste Vorrichtung 605 (z.B. einen ersten Nacktchip, der eine oder mehrere Subkomponenten umfasst) mit einer zweiten Vorrichtung 610 (z.B. einem zweiten Nacktchip, der eine oder mehrere Subkomponenten umfasst) verbindet. In dem speziellen in der High-Level-Darstellung 600 dargestellten Beispiel können alle Signale (in Kanal 615, 620) unidirektional sein und es können Bahnen für die Datensignale bereitgestellt werden, um eine Datenübertragung sowohl stromaufwärts als auch stromabwärts zu erhalten. Blockdiagramm 600 aus 6 bezieht sich zwar auf die erste Komponente 605 als stromauf liegende Komponente und auf die zweite Komponente 610 als die stromab liegende Komponente sowie auf die physikalischen Bahnen der MCPL, die beim Senden von Daten verwendet werden, als stromab liegender Kanal 615, und Bahnen, die zum Empfangen von Daten (von Komponente 610) verwendet werden, als stromab liegender Kanal 620, es versteht sich jedoch, dass die MCPL zwischen den Vorrichtungen 605, 610 von jeder Vorrichtung zum sowohl Senden als auch Empfangen von Daten zwischen den Vorrichtungen verwendet werden kann.
  • In einer beispielhaften Implementierung kann eine MCPL eine physikalische Schicht (PHY) bereitstellen, welche die elektrische MCPL PHY 625a,b (oder gemeinsam 625) und die eine ausführbare Logik implementierbare MCPL-Logik-PHY 630a,b (oder gemeinsam 630) umfasst. Die elektrische oder physikalische PHY 625 kann die physikalische Verbindung bereitstellen, über die Daten zwischen Vorrichtungen 605, 610 übertragen werden. Signalkonditionierungskomponenten und Logik können in Verbindung mit der physikalischen PHY 625 implementiert sein, um eine hohen Datenrate und Kanalkonfigurationsfähigkeiten der Verbindung bereitzustellen, die in manchen Anwendungen dichte gebündelte physikalische Verbindungen mit Längen von etwa 45mm oder mehr umfassen können. Die logische PHY 630 kann eine Logik zur Vereinfachung von Taktgebung, Verbindungszustandsverwaltung (z.B. für Verbindungsschichten 635a, 635b) und Protokollmultiplexen zwischen möglicherweise mehreren, unterschiedlichen Protokollen, die für Kommunikationen über die MCPL verwendet werden, umfassen.
  • In einer beispielhaften Implementierung kann die physikalische PHY 625 für jeden Kanal (z.B. 615, 620) einen Satz von Datenbahnen umfassen, über die bandinterne Daten gesendet werden können. In diesem speziellen Beispiel sind 50 Datenbahnen in jedem aus dem stromauf und stromab gelegenen Kanal 615, 620 bereitgestellt, obwohl jede beliebige andere Anzahl von Bahnen verwendet werden kann, wenn dies aufgrund der Auslegungs- und Energieeinschränkungen, gewünschten Anwendungen, Vorrichtungseinschränkungen usw. erlaubt ist. Jeder Kanal kann ferner eine oder mehrere dedizierte Bahnen für ein Abtast-, oder Takt-, Signal für den Kanal, eine oder mehrere dedizierte Bahnen für ein gültiges Signal für den Kanal, eine oder mehrere dedizierte Bahnen für ein Stromsignal und eine oder mehrere dedizierte Bahnen für ein Verbindungszustandsmaschinenverwaltungs- oder Seitenbandsignal umfassen. Die physikalische PHY kann ferner eine Seitenbandverbindung 640 umfassen, die in einigen Beispielen eine bidirektionale Niedrigfrequenzsteuersignalverbindung sein kann, die zur Koordination von Zustandsübergängen und anderen Attributen der MCPL verwendet wird, welche die Vorrichtungen 605, 610 verbinden, um eines von mehreren Beispielen zu nennen.
  • Wie oben angemerkt können unter Verwendung einer Implementierung der MCPL mehrere Protokolle unterstützt werden. In der Tat können mehrere unabhängige Transaktionsschichten 650a, 650b bei jeder Vorrichtung 605, 610 bereitgestellt werden. Beispielsweise kann jede Vorrichtung 605, 610 zwei oder mehr Protokolle unterstützen und verwenden, wie z.B. unter anderem PCI, PCIe, QPI, Intel In-Die Interconnect (IDI). IDI ist ein kohärentes Protokoll, das auf dem Nacktchip verwendet wird, um zwischen Kernen, Caches der letzten Ebene (LLCs), Speichern, Grafiken und IO-Steuerungen zu kommunizieren. Andere Protokolle können ebenfalls unterstützt werden, einschließlich Ethernet-Protokoll, Infiniband-Protokolle und andere auf PCIe-Strukturen basierende Protokolle. Die Kombination aus der Logik-PHY und der physikalischen PHY kann auch als Verbindung zwischen Nacktchip und Nacktchip verwendet werden, um eine SerDes-PHY (PCIe, Ethernet, Infiniband oder andere Hochgeschwindigkeits-SerDes) auf einem Nacktchip mit den oberen Schichten zu verbinden, die auf dem anderen Nacktchip implementiert sind, um eines von mehreren Beispielen zu nennen.
  • Logik-PHY 630 kann Multiplexen zwischen diesen mehreren Protokollen auf einer MCPL unterstützen. Beispielsweise kann die dedizierte Datenstrombahn verwendet werden, um ein kodiertes Datenstromsignal zuzusichern, das identifiziert, welches Protokoll auf Daten angewandt werden soll, die im Wesentlichen gleichzeitig auf den Datenbahnen des Kanals gesendet werden. Ferner kann Logik-PHY 630 verwendet werden, um die verschiedenen Arten von Verbindungszustandsübergängen automatisch einzustellen, welche die verschiedenen Protokolle unterstützen oder erfordern. In manchen Fällen können LSM_SB-Signale, die über die dedizierte LSM_SB-Bahn des Kanals gesendet werden, zusammen mit der Seitenbandverbindung 640 verwendet werden, um Verbindungszustandsübergänge zwischen den Vorrichtungen 605, 610 zu kommunizieren und automatisch einzustellen. Ferner können Verbindungstraining, Fehlererkennung, Laufzeitunterschiedsfeststellung, Entfernung von Laufzeitunterschieden und andere Funktionalitäten von herkömmlichen Verbindungen unter Verwendung von Logik-PHY 630 teilweise ersetzt oder gesteuert werden. Beispielsweise können gültige Signale, die über eine oder mehrere dedizierte gültige Signalbahnen in jedem Kanal gesendet werden, zur Signalisierung von Verbindungsaktivität, Feststellung von Laufzeitverschiebungen, Verbindungsfehler, und Umsetzung anderer Merkmale, um einige Beispiele zu nennen, verwendet werden. Im speziellen Beispiel aus 6 werden mehrere gültige bahnen pro Kanal bereitgestellt. Beispielsweise können Datenbahnen innerhalb eines Kanals gebündelt oder zusammengeballt sein (physikalisch und/oder logisch), und eine gültige bahn für jedes Bündel kann bereitgestellt sein. Ferner können mehrere Abtastbahnen bereitgestellt sein, in manchen Fällen auch um ein dediziertes Abtastsignal für jedes Bündel in einer Vielzahl von Datenbahnbündeln in einem Kanal bereitzustellen, um ein Beispiel zu nennen.
  • Wie oben angemerkt kann Logik-PHY 630 verwendet werden, um Verbindungssteuerungssignale, die zwischen durch die MCPL verbundenen Vorrichtungen gesendet werden, automatisch einzustellen und zu verwalten. In einigen Implementierungen kann Logik-PHY 630 eine Verbindungsschichtpaket- (LLP) Erzeugungslogik 660 umfassen, die verwendet werden kann, um Verbindungsschichtsteuernachrichten über die MCPL (d.h. bandintern) zu senden. Solche Nachrichten können über Datenbahnen des Kanals gesendet werden, wobei die Datenstrombahn identifiziert, dass die Daten Verbindungsschicht-zu-Verbindungsschicht-Nachrichtenübertragung darstellen, wie z.B. Verbindungsschichtsteuerdaten, um ein Beispiel zu nennen. Verbindungsschichtnachrichten, die unter Verwendung eines LLP-Moduls 660 aktiviert sind, können die automatische Einstellung und Leistung von Verbindungsschichtzustandsübergängen, Energieverwaltung, Schleifenbetrieb, Deaktivierung, Neuzentrierung, Verwürflung, unter anderen Verbindungsschichtmerkmalen, zwischen den Verbindungsschichten 635a, 635b von Vorrichtung 605 bzw. 610 unterstützen.
  • Auf 7 Bezug nehmend wird ein Diagramm 700 dargestellt, das eine beispielhafte Signalübertragung unter Verwendung eines Satzes von Bahnen (z.B. 615, 620) in einem bestimmten Kanal einer beispielhaften MCPL zeigt. Im Beispiel aus 7 sind zwei Bündel aus fünfundzwanzig (25) Datenbahnen für insgesamt fünfzig (50) Datenbahnen im Kanal bereitgestellt. Ein Teil der Bahnen ist dargestellt, während andere (z.B. DATA[4-46] und eine zweite Abtastsignalbahn (STRB)) der einfacheren Darstellung des speziellen Beispiels halber weggelassen sind (z.B. als redundante Signale). Wenn die physikalische Schicht sich in einem aktiven Zustand befindet (z.B. nicht abgeschaltet oder in einem Niedrigenergiemodus (z.B. einem L1-Zustand)), können Abtastbahnen (STRB) mit einem synchronen Taktsignal versehen werden. In einigen Implementierungen können Daten auf sowohl der ansteigenden als auch der abfallenden Flanke der Abtastung gesendet werden. Jede Flanke (oder Halbtaktzyklus) kann ein Einheitsintervall (UI) begrenzen. Demgemäß kann in diesem Beispiel ein Bit (z.B. 705) auf jeder Bahn gesendet werden, sodass ein Byte alle 8 UI gesendet werden kann. Eine Byte-Zeitdauer 710 kann als 8 UI definiert werden, oder die Zeit, die zum Senden eines Bytes auf einer einzelnen der Datenbahnen notwendig ist (z.B. DATA[0-49]).
  • In einigen Implementierungen kann ein gültiges Signal, das auf einem oder mehreren dedizierten gültigen Signalkanälen (z.B. VALID0, VALID 1) gesendet wird, als führender Indikator für die Empfangsvorrichtung dienen, um, wenn zugesichert (hoch), für die Empfangsvorrichtung oder Senke, zu identifizieren, dass Daten von der Sendevorrichtung, oder Quelle, auf Datenbahnen (z.B. DATA[0-49]) während der folgenden Zeitperiode, z.B. eine Byte-Zeitdauer 710, gesendet werden. Alternativ dazu gibt, wenn das gültige Signal niedrig ist, die Quelle der Senke an, dass die Senke während der folgenden Zeitdauer keine Daten auf den Datenbahnen senden wird. Demgemäß kann, wenn die Senken-Logik-PHY feststellt, dass das gültige Signal nicht zugesichert ist (z.B. auf Bahne VALID0 und VALID 1), die Senke jegliche Daten, die auf den Datenbahnen (z.B. DATA[0-49]) während der folgenden Zeitdauer festgestellt werden, ignorieren. Beispielsweise können Übersprechgeräusche oder andere Bits auf einer oder mehreren der Datenbahnen auftreten, wenn die Quelle in Wahrheit keine Daten sendet. Aufgrund eines niedrigen, oder nicht zugesicherten, gültigen Signals während der vorherigen Zeitdauer (z.B. der vorherigen Byte-Zeitdauer), kann die Senke bestimmen, dass die Datenbahnen während der folgenden Zeitdauer zu ignorieren sind.
  • Auf einer der Bahnen der MCPL gesendete Daten können streng mit dem Abtastsignal abgeglichen sein. Eine Zeitdauer kann basierend auf der Abtastung definiert sein, wie z.B. eine Byte-Zeitdauer, und jede dieser Dauern kann einem definierten Fenster entsprechen, in dem Signale auf den Datenbahnen (z.B. DATA[0-49]), den gültigen Bahnen (z.B. VALID1, VALID2) und der Datenstrombahn (z.B. STREAM) zu senden sind. Demgemäß kann Abgleichen dieser Signale eine Identifikation ermöglichen, dass ein gültiges Signal in einem vorherigen Zeitraumfester für Daten im nachfolgenden Zeitraumfenster gilt, und dass ein Datenstromsignal für Daten im gleichen Zeitdauerfenster gilt. Das Datenstromsignal kann ein kodiertes Signal sein (z.B. 1 Byte von Daten für ein Byte-Zeitdauerfenster), das kodier ist, um das Protokoll zu identifizieren, das für Daten gilt, die während desselben Zeitdauerfensters gesendet werden.
  • Zur Veranschaulichung ist im speziellen Beispiel aus 7 ein Byte-Zeitdauerfenster definiert. Ein gültig wird bei einer Zeitdauerfenster n (715) zugesichert, bevor irgendwelche Daten auf die Datenbahnen DATA[0-49] geschickt werden. Im folgenden Zeitdauerfenster n+1 (720) werden Daten auf zumindest einer dieser Datenbahnen gesendet. In diesem Fall werden während n+1 (720) Daten auf allen fünfzig Datenbahnen gesendet. Da ein gültig für die Dauer des vorherigen Zeitdauerfensters n (715) zugesichert wurde, kann die Senkenvorrichtung die Daten validieren, die auf den Datenbahnen DATA[0-49] während des Zeitdauerfensters n+1 (720) empfangen werden. Außerdem erlaubt es die führende Art des gültigen Signals während des Zeitdauerfensters n (715) der Empfangsvorrichtung, sich auf die ankommenden Daten vorzubereiten. Mit dem Beispiel aus 7 fortsetzend wird bleibt das gültige Signal während der Dauer von Zeitdauerfenster n+1 (720) zugesichert (auf VALID1 und VALID2), was dazu führt, dass die Senkenvorrichtung die Daten erwartet, die über Datenbahnen DATA[0-49] während des Zeitdauerfensters n+2 (725) gesendet werden. Bliebe das gültige Signals während Zeitdauerfenster n+2 (725) zugesichert, könnte die Senkenvorrichtung weiterhin erwarten, weitere Daten zu empfangen (und zu verarbeiten), die während eines direkt nachfolgenden Zeitdauerfensters n+3 (730) gesendet werden. Im Beispiel aus 7 wird jedoch die Zusicherung des gültigen Signals während der Dauer von Zeitdauerfenster n+2 (725) aufgehoben, was der Senkenvorrichtung anzeigt, dass während Zeitdauerfenster n+3 (730) keine Daten gesendet werden und dass jegliche Bits, die auf Datenbahnen DATA[0-49] erfasst werden, während Zeitdauerfenster n+3 (730) ignoriert werden sollten.
  • Wie oben angemerkt können mehrere gültige Bahnen und Abtastbahnen pro Kanal aufrechterhalten werden. Dies kann, unter anderen Vorteilen, dazu beitragen, die Einfachheit der Schaltung und Synchronisation zwischen den Bündeln von relativ langen physikalischen Bahnen, welche die zwei Vorrichtungen verbinden, zu erhalten. In einigen Implementierungen kann ein Satz von Datenbahnen in Bündeln von Datenbahnen unterteilt werden. Im Beispiel aus 7 können beispielsweise Datenbahnen DATA[0-49] in zwei fünfundzwanzig Bahnen umfassende Bündel unterteilt werden, und jedes Bündel kann eine dedizierte gültige und Abtastbahne umfassen. Beispielsweise kann gültige Bahne VALID 1 Datenbahnen DATA[0-24] zugeordnet sein, und gültige Bahn VALID2 kann Datenbahnen DATA[25-49] zugeordnet sein. Die Signale auf jeder „Kopie“ der gültigen und Abtastbahnen für jedes Bündel können identisch sein.
  • Wie oben eingeführt können Daten auf Datenstrombahn STREAM verwendet werden, um der Empfangslogik-PHY anzuzeigen, welches Protokoll für entsprechende Daten anzuwenden ist, die auf Datenbahnen DATA[0-49] gesendet werden. Im Beispiel aus 7 wird ein Datenstromsignal auf STREAM während desselben Zeitdauerfensters gesendet wie Daten auf Datenbahnen DATA[0-49], um das Protokoll der Daten auf den Datenbahnen anzuzeigen. In alternativen Implementierungen kann das Datenstromsignal während eines vorherigen Zeitdauerfensters gesendet werden, beispielsweise mit entsprechenden gültigen Signalen, um eine von möglichen anderen Modifikationen zu nennen. Mit dem Beispiel aus 7 fortsetzend wird jedoch ein Datenstromsignal 735 während Zeitdauerfenster n+1 (720) gesendet, das kodiert ist, um das Protokoll (z.B. PCIe, PCI, IDI, QPI usw.) anzuzeigen, das auf die Bits anzuwenden ist, die über Datenbahnen DATA[0-49] während Zeitdauerfenster n+1 (720) gesendet werden. Auf ähnliche Weise kann ein weiteres Datenstromsignal 740 während des nachfolgenden Zeitdauerfensters n+2 (725) gesendet werden, um das Protokoll anzuzeigen, das auf die Bits anzuwenden ist, die über Datenbahnen DATA[0-49] während Zeitdauerfenster n+2 (725) gesendet werden, usw. In manchen Fällen, wie beim Beispiel aus 7 (wobei beide Datenstromsignale 735, 740 die gleiche Kodierung aufwiesen, binäres FF), können Daten in nachfolgenden Zeitdauerfenstern (z.B. n+1 (720) und n+2 (725)) zum selben Protokoll gehören. In anderen Fällen können jedoch Daten in nachfolgenden Zeitdauerfenstern (z.B. n+1 (720) und n+2 (725)) von verschiedenen Transaktionen stammen, bei denen unterschiedliche Protokolle anzuwenden sind, und Datenstromsignale (z.B. 735, 740) können demgemäß kodiert sein, um die unterschiedlichen Protokolle zu identifizieren, die für die nachfolgenden Bytes von Daten auf den Datenbahnen (z.B. DATA[0-49]) gelten, um ein Beispiel zu nennen.
  • In einigen Implementierungen kann ein Niedrigenergie- oder Ruhezustand für die MCPL definiert sen. Wenn beispielsweise keine Vorrichtung auf der MCPL Daten sendet, kann die physikalische Schicht (elektrisch und logisch) von MCPL in einen Ruhe- oder Niedrigenergiezustand übergehen. Im Beispiel aus 7 ist beispielsweise bei Zeitdauerfenster n-2 (745) die MCPL in einem inaktiven oder Ruhezustand und die Abtastung ist ausgeschaltet, um Energie zu sparen. Die MCPL kann aus einem Niedrigenergie- oder Ruhezustand austreten und die Abtastung bei Zeitdauerfenster n-1 (z.B. 705) aktivieren. Die Abtastung kann eine Sendepräambel komplettieren (z.B. um das Aufwaschen und Synchronisieren der einzelnen Bahnen des Kanals sowie der Senkenvorrichtung zu unterstützen), das Abtastsignal vor jeder anderen Signalübertragung auf den anderen Nicht-Abtastbahnen übertragen. Nach diesem Zeitdauerfenster n-1 (705) kann das gültige Signal bei Zeitdauerfenster n (715) zugesichert werden, um die Senke zu benachrichtigen, dass Daten im folgenden Zeitdauerfenster n+1 (720) kommen werden, wie oben erläutert ist.
  • Die MCPL kann wieder in einen Niedrigenergie- oder Ruhezustand (z.B. einen L1-Zustand) übergehen, nachdem Ruhezustände auf den gültigen Bahnen, Datenbahnen und/oder anderen Bahnen des MCPL-Kanals erfasst wurden. Beispielsweise kann eine Signalübertragung erfasst werden, die bei Zeitdauerfenster n+3 (730) beginnt und weiterläuft. Logik auf entweder der Quelle oder der Senkenvorrichtung kann initiierten, dass zurück in einen Niedrigenergiezustand gegangen wird, was wiederum (z.B. Zeitdauerfenster n+5 (755)) dazu führt, dass die Abtastung in einen Energiesparmodus übergeht, um ein Beispiel und Prinzipien zu nennen (einschließlich der später hierin erläuterten).
  • Elektrische Eigenschaften der physikalischen PHY können eine oder mehrere aus einseitiger Signalübertragung, weitergeleiteter Halbratentaktgebung, Abstimmung von Verbindungskanal sowie On-Chip-Transportverzögerung von Sender (Quelle) und Empfänger (Senke), optimiertem elektrostatischem Endladungs- (ESD-) Schutz, Kontaktstellenkapazität, und anderen Merkmalen, umfassen. Außerdem kann eine MCPL implementiert werden, um höhere Datenraten (z.B. nahe 16 Gb/s) und bessere Energieeffizienzeigenschaften als bei herkömmlichen Gehäuse-I/O-Lösungen zu erreichen.
  • 8 zeigt einen Teil eines vereinfachten Blockdiagramms 800, der einen Teil einer beispielhaften MCPL zeigt. Das Diagramm 800 aus 8 umfasst eine Darstellung einer beispielhaften Bahn 805 (z.B. einer Datenbahn, gültigen Bahn oder Datenstrombahn) und Takterzeugungslogik 810. Wie im Beispiel aus 8 gezeigt kann in einigen Implementierungen Takterzeugungslogik 810 als Taktbaum implementiert sein, um ein erzeugtes Taktsignal zu jedem Block zu senden, welche die einzelnen Bahnen in der beispielhaften MCPL implementieren, wie z.B. Datenbahn 805. Ferner kann eine Taktrücksetzschaltung 815 bereitgestellt sein. In einigen Implementierungen wird keine separate Taktrücksetzschaltung für jede Bahn bereitgestellt, in der das Taktsignal bereitgestellt wird, da herkömmlicherweise in zumindest einigen traditionellen Verbindungs-I/O-Architekturen eine einzelne Taktrücksetzschaltung für ein Bündel aus einer Vielzahl von Bahnen bereitgestellt werden kann. In der Tat können, wie in den beispielhaften Konfigurationen in 6 und 7, eine separate Abtastbahn und eine begleitende Taktrücksetzschaltung für jedes Bündel aus fünfundzwanzig Datenbahnen bereitgestellt werden.
  • Mit dem Beispiel aus 8 fortsetzend können in einigen Implementierungen zumindest die Datenbahnen, Datenstrombahnen und gültigen Bahnen in der Mitte der Bahn auf eine regulierte Spannung über null (Masse) terminiert werden. In einigen Implementierungen kann eine Mittelschienenspannung auf Vcc/2 geregelt werden. In einigen Implementierungen kann ein einzelner Spannungsregler 825 pro Bündel von Bahnen bereitgestellt sein. Bei Anwendung auf die Beispiele aus 6 und 7 kann beispielsweise ein erster Spannungsregler für ein erstes Bündel aus fünfundzwanzig Datenbahnen und ein zweiter Spannungsregler für das restliche Bündel aus fünfundzwanzig Datenbahnen bereitgestellt sein, um eines von möglichen Beispielen zu nennen. In einigen Beispielen kann ein beispielhafter Spannungsregler 825 als linearer Regler, geschaltete Kondensatorschaltung, um einige Beispiele zu nennen, implementiert sein. In einigen Implementierungen kann der lineare Regler mit einer analogen Rückkopplungsschleife oder einer digitalen Rückkopplungsschleife versehen sein, um einige Beispiele zu nennen.
  • In einigen Implementierungen kann auch eine Übersprechunterdrückungsschaltung für eine beispielhafte MCPL bereitgestellt sein. In einigen Fällen kann die kompakte Art der langen MCPL-Drähte Übersprechstörungen zwischen Bahnen einbringen. Übersprechunterdrückungslogik kann implementiert sein, um diese und andere Probleme anzusprechen. Beispielsweise kann in einem Beispiel, das in 9-10 dargestellt ist, Übersprechen mit einer beispielhaften aktiven Niedrigenergieschaltung, wie z.B. in den Diagrammen 900 und 1000 dargestellt, signifikant reduziert werden. Im Beispiel aus 9 kann beispielsweise ein gewichtetes hochpassgefiltertes „Aggressor“-Signal zum „Opfer“-Signal (d.h. das Signal, das von Übersprechstörungen vom Aggressor leidet) hinzugefügt werden. Jedes Signal kann als Opfer von Übersprechen durch ein beliebiges anderes Signal in der Verbindung betrachtet werden und kann selbst der Aggressor für das andere Signal sein, solange es die Quelle der Übersprechstörung ist. Solch ein Signal kann erzeugt werden und Übersprechen auf der Opferbahn um mehr als 50 % reduzieren, und zwar dank der derivativen Art des Übersprechens auf der Verbindung. Das tiefpassgefilterte Aggressorsignal im Beispiel aus 9 kann durch einen Hochpass-RC-Filter erzeugt werden (z.B. durch C und R1 implementiert), der das gefilterte Signal erzeugt, das unter Verwendung einer Summierschaltung 905 (z.B. RX-Sense-amp) hinzugefügt wird.
  • Ähnliche Implementierungen wie im Beispiel aus 9 beschrieben können besonders praktische Lösungen für eine Anwendung wie MCLP darstellen, da eine Implementierung der Schaltung mit relativ geringem zusätzlichem Platzbedarf erzeugt werden kann, wie im Diagramm aus 10 dargestellt ist, das ein beispielhaftes Schema auf Transistorebene der im Beispiel aus 9 dargestellten und beschriebenen Schaltung zeigt. Es gilt anzumerken, dass die Darstellungen in 9 und 10 vereinfachte Darstellungen sind, und dass eine tatsächliche Implementierung mehrere Kopien der in 9 und 10 dargestellten Schaltungen umfassen würde, um das Netzwerk von Übersprechstörungen unter und zwischen den Bahnen einer Verbindung unterzubringen. Als Beispiel könnte in einer Dreibahnverbindung (z.B. Bahnen 0-2) eine ähnliche Schaltung wie die in den Beispielen aus 9 und 10 bereitgestellt sein, von Bahn 0 bis Bahn 1, von Bahn 0 bis Bahn 2, von Bahn 1 bis Bahn 0, von Bahn 1 bis Bahn 2, von Bahn 2 bis Bahn 0, von Bahn 2 bis Bahn 1 usw., bezogen auf die Geometrie und die Auslegung der Bahnen, um ein Beispiel zu nennen.
  • Weitere Merkmale können auf der physikalischen PHY-Ebene einer beispielhaften MCPL implementiert sein. Beispielsweise kann eine Empfängerabweichung einen signifikanten Fehler einführen und I/O-Spannungsgrenzen in manchen Fällen begrenzen. Schaltungsredundanz kann verwendet werden, um Empfängerempfindlichkeit zu verbessern. In einigen Implementierungen kann Schaltungsredundanz optimiert werden, um die Standardabweichung von Datensamplern anzusprechen, die in der MCPL verwendet werden. Beispielsweise kann ein beispielhafter Datensampler bereitgestellt sein, der mit einer drei (3) Snandardabweichungsspezifikation ausgelegt ist. In den Beispielen aus 6 und 7 wurden beispielsweise zwei (2) Datensampler für jeden Empfänger verwendet (z.B. für jede Bahn), einhundert (100) Sampler würden für eine MCPL mit fünfzig (50) Bahnen verwendet. In diesem Beispiel ist die Wahrscheinlichkeit, dass eine der Empfänger- (RX-) bahnen nicht der Dreistandardabweichungsspezifikation entspricht, 24 %. Ein Chipbezugsspannungsgenerator kann bereitgestellt werden, um die Abweichungsobergrenze festzusetzen und zum nächsten Datensampler am Empfänger weiterzugehen, wenn bestimmt wird, dass ein weiterer Datensampler die Grenze überschreitet. Wenn jedoch vier (4) Datensampler pro Empfänger verwendet werden (d.h. anstelle von zwei in diesem Beispiel), versagt der Empfänger nicht nur, wenn drei von vier Samplern versagen. Bei einer Fünfzigbahn-MCPL, wie in den Beispiele aus 6 und 7, kann das Hinzufügen dieser zusätzlichen Schaltungsredundanz die Versagerate deutlich 24 % auf weniger als 0,01 % verringern.
  • In weiteren Beispielen kann bei sehr hohen Datenraten pro Bit-Arbeitszykluskorrektur (DCC) und Entfernung der Laufzeitverschiebung verwendet werden, um die Basislinie pro Bündel-DCC zu erhöhen und Entfernung der Laufzeitverschiebung, um den Verbindungsabstand zu verbessern. Anstatt in allen Fällen zu korrigieren, wie bei herkömmlichen Lösungen, kann in einigen Implementierungen eine Niedrigenergie-Digitalimplementierung eingesetzt werden, welche die Ausreißer abfühlt und korrigiert, wo die I/O-Bahn versagen würde. Beispielsweise kann ein globales Abstimmen der Bahnen durchgeführt werden, um Problembahnen innerhalb der Bündel zu identifizieren. Auf diese Problembahnen kann dann für Pro-Bahn-Abstimmung abgezielt werden, um die hohen Datenraten zu erreichen, die von der MCPL unterstützt werden.
  • Weitere Merkmale können ebenfalls gegebenenfalls in einigen Beispielen einer MCPL implementiert werden, um die Leistungsmerkmale der physikalischen Verbindung zu verbessern. Beispielsweise kann Zeilenkodierung bereitgestellt werden. Während Mittelbahnterminationen, wie oben beschrieben, das Auslassen einer DC-Datenbusinversion (DBI) ermöglichen können, kann AC-DBI immer noch verwendet werden, um die dynamische Leistung zu reduzieren. Kompliziertere Kodierung kann auch verwendet werden, um den ungünstigsten Fall einer Abweichung von 1's und 0's zu eliminieren, um beispielsweise die Ansteuerungsanforderung eines Mittelbahnreglers zu reduzieren sowie I/O-Schaltgeräusche zu begrenzen, um einige vorteilhafte Beispiele zu nennen. Ferner kann Senderausgleich auch gegebenenfalls implementiert werden. Beispielsweise kann bei sehr hohen Datenraten ein Einfügungsverlust bei einem Kanal innerhalb des Gehäuses signifikant sein. Unter anderem kann ein Zweiabgriffsgewichtungssenderausgleich (z.B. während einer anfänglichen Einschaltsequenz) kann in manchen Fällen ausreichen, um einige dieser Problem zu lindern.
  • Auf 11 Bezug nehmend wird ein vereinfachtes Blockdiagramm 1100 dargestellt, das eine beispielhafte Logik-PHY einer beispielhaften MCPL zeigt. Eine physikalische PHY 1105 kann mit einem Nacktchip verbunden werden, der Logik-PHY 1110 und weitere Logik umfasst, die eine Verbindungsschicht der MCPL unterstützt. Der Nacktchip kann in diesem Beispiel ferner Logik zur Unterstützung mehrerer unterschiedlicher Protokolle auf der MCPL umfassen. Im Beispiel aus 11 kann beispielsweise PCIe-Logik 1115 bereitgestellt sein, sowie IDI-Logik 1120, sodass die Nacktchips entweder unter Verwendung von PCIe oder IDI über die gleiche MCPL kommunizieren können, welche die beiden Nacktchips verbindet, um eines von vielen möglichen Beispielen zu nennen, einschließlich Beispielen, bei denen mehr als zwei Protokolle oder andere Protokolle als PCIe und IDI auf der MCPL unterstützt werden. Verschiedene Protokolle, die zwischen den Nacktchips unterstützt werden, können unterschiedliche Grade an Diensten und Funktionen bieten.
  • Logik-PHY 1110 kann eine Verbindungszustandsmaschinenverwaltungslogik 1125 zur automatischen Einstellung von Verbindungszustandsübergängen in Verbindung mit Anfrage einer übergenordneten Logik des Nacktchips (z.B. über PCIe oder IDI empfangen) zu umfassen. Logik-PHY 1110 kann ferner eine Verbindungstest- und Fehlerbehebungslogik (z.B. 1130) in einigen Implementierungen umfassen. Wie oben angemerkt kann eine beispielhafte MCPL Steuersignale unterstützen, die zwischen Nacktchips über die MCPL gesendet werden, um protokollunabhängige Hochleistungs- und Energieeffizienzfunktionen (unter andere beispielhaften Funktionen) der MCPL bereitzustellen. Beispielsweise kann Logik-PHY 1110 Erzeugen und Senden sowie Empfangen und Verarbeitung von gültigen Signalen, Datenstromsignalen und LSM-Seitenbandsignalen in Verbindung mit dem Senden und Empfangen von Daten über dedizierte Datenbahnen unterstützen, wie in den obigen Beispielen beschrieben ist.
  • In einigen Implementierungen kann eine Multiplexier- (z.B. 1135) und Demultiplexier- (z.B. 1140) logik in Logik-PHY 1110 enthalten sein oder auf andere Weise für diese zugänglich sein. Beispielsweise kann eine Multiplexierlogik (z.B. 1135) verwendet werden, um Daten (z.B. als Pakete, Nachrichten usw. ausgeführt) zu identifizieren, auf die MCPL hinaus gesendet werden sollen. Die Multiplexierlogik 1135 kann das Protokoll identifizieren, das die Daten verwaltet, und ein Datenstromsignal erzeugen, das kodiert ist, um das Protokoll zu identifizieren. Beispielsweise kann in einer beispielhaften Implementierung das Datenstromsignal als Byte aus zwei Hexadezimalsymbolen kodiert sein (z.B. IDI: FFh; PCIe: F0h; LLP: AAh; Seitenband: 55h; usw.) und kann während desselben Fensters (z.B. ein Byte-Zeitdauerfenster) der Daten gesendet werden, die vom identifizierte Protokoll verwaltet werden. Auf ähnliche Weise kann Demultiplexierlogik 1140 eingesetzt werden, um ankommende Datenstromsignale zu interpretieren, um das Datenstromsignal zu dekodieren und das Protokoll zu identifizieren, das auf die Daten anzuwenden ist, die gleichzeitig mit dem Datenstromsignal auf den Datenbahnen empfangen werden. Die Demultiplexierlogik 1140 kann dann protokollspezifische Verbindungsschichtabwicklung anwenden (oder sicherstellen) und dazu führen, dass die Daten von der entsprechenden Protokolllogik abgewickelt werden (z.B. PCIe-Logik 1115 oder IDI-Logik 1120).
  • Logik-PHY 1110 kann ferner Verbindungsschichtpaketlogik 1150 umfassen, die verwendet werden kann, um verschiedene Verbindungssteuerfunktionen handzuhaben, einschließlich Leistungsverwaltungsaufgaben, Schleifenbetrieb, Deaktivierung, Neuzentrierung, Verwürflung usw. LLP-Logik 1150 kann, neben anderen Funktionen, Verbindungsschicht-zu-Verbindungsschicht-Nachrichten über MCLP ermöglichen. Daten, die der LLP-Signalübertragung entsprechen, können auch durch ein Datenstromsignal identifiziert werden, das auf einer dedizierten Datenstromsignalbahn gesendet wird und das kodiert ist, um die Datenbahn-LLP-Daten zu identifizieren. Multiplexier- und Demultiplexierlogik (z.B. 1135, 1140) kann auch verwendet werden, um die Datenstromsignale zu erzeugen und zu interpretieren, die LLP-Verkehr entsprechen, sowie um dazu zu führen, dass solcher Verkehr von der entsprechenden Nacktchiplogik (z.B. LLP-Logik 1150) abgewickelt wird. Auf ähnliche Weise kann bei einigen Implementierungen eine MCLP ein dediziertes Seitenband (z.B. Seitenband 1155 und unterstützende Logik) umfassen, z.B. einen asynchronen und/oder Niederfrequenz-Seitenbandkanal, um ein Beispiel zu nennen.
  • Logische PHY-Logik 1110 kann ferner Verbindungszustandsmaschinenverwaltungslogik umfassen, die Verbindungszustandsverwaltungsnachrichtenübertragung über eine dedizierte LSM-Seitenbandbahn erzeugen (und verwenden) kann. Beispielsweise kann eine LSM-Seitenbandbahn verwendet werden, um eine Abstimmung durchzuführen und den Verbindungsübungszustand zu beschleunigen, aus den Leistungsverwaltungszuständen (z.B. einem L1-Zustand) auszutreten, um einige von möglichen Beispielen zu nennen. Das LSM-Seitenbandsignal kann ein asynchrones Signal sein, in dem Sinne, dass es nicht mit den Daten, gültigen und Datenstromsignalen der Verbindung abgeglichen ist, sondern stattdessen Signalübertragungszustandsübergängen entspricht und die Verbindungszustandsmaschine zwischen zwei Nacktchips oder Chips, die durch die Verbindung verbunden sind, abgleicht, um ein Beispiel zu nennen. Bereitstellen einer dedizierten LSM-Seitenbandbahn kann in manchen Fällen ermöglichen, dass eine vorübergehende Rauschsperre und empfangene Feststellungsschaltungen eines analogen Front-Ends (AFE) eliminiert werden, um einige vorteilhafte Beispiele zu nennen.
  • Auf 12 Bezug nehmen ist ein vereinfachtes Blockdiagramm 1200 dargestellt, das eine weitere Darstellung von Logik zeigt, die zur Implementierung einer MCPL verwendet wird. Beispielsweise wird Logik-PHY 1110 mit einer definierten Logik-PHY-Schnittstelle (LPIF) 1205 bereitgestellt, durch die jedes beliebige einer Vielzahl von unterschiedlichen Protokollen (z.B. PCIe, IDI, QPI, etc.) 1210, 1215, 1220, 1225 und Signalübertragungsmodi (z.B. Seitenband) eine Schnittstelle mit der physikalischen Schicht einer beispielhaften MCPL darstellen kann. In einigen Implementierungen kann Multiplexier- und Arbitrierlogik 1230 auch als von Logik-PHY 1110 separate Schicht bereitgestellt werden. In einem Beispiel kann LPIF 1205 als Schnittstelle auf einer beliebigen Seite dieser MuxArb-Schicht 1230 bereitgestellt werden. Die Logik-PHY 1110 kann eine Schnittstelle mit der physikalischen PHY (z.B. dem analogen Front-End (AFE) 1105 der MCPL PHY) durch eine weitere Schnittstelle darstellen.
  • Die LPIF kann die PHY (logisch und elektrisch/analog) von den oberen Schichten (z.B. 1210, 1215, 1220, 1225) abstrahieren, sodass eine komplett andere PHY unter LPIF implementiert werden kann, für die oberen Schichten transparent ist. Dies kann die Förderung von Modularität und Wiederverwendung in Design unterstützen, da die oberen Schichten intakt bleiben können, wenn darunterliegende Signalübertragungstechnologie-PHY aktualisiert wird, um ein Beispiel zu nennen. Ferner kann die LPIF eine Reihe von Signalen definieren, die Multiplexieren/Demultiplexieren, LSM-Verwaltung, Fehlererkennung und -behebung und andere Funktionalitäten der Logik-PHY ermöglichen. Beispielsweise ist in Table 1 zumindest ein Teil von Signalen zusammengefasst, die für eine beispielhafte LPIF definiert werden können: TABELLE 1:
    Signalname Beschreibung
    Rst Rückstellung
    Lclk Verbindungstaktgeber - 8UI von PHY-Verbindungstaktgeber
    P1_trdy Die physikalische Schicht ist bereit, Daten anzunehmen, Daten werden von der physikalischen Schicht angenommen, wenn P1_trdy und Lp_valid beide zugesichert sind.
    P1_data[N-1:0][7:0] Physikalische Schicht-zu-Verbindungsschicht-Daten, wobei N gleich der Anzahl an Bahnen ist.
    P1_valid Physikalische Schicht-zu-Verbindungsschicht-Signal, das Datengültigkeit anzeigt
    P1_Stream[7:0] Physikalische Schicht-zu-Verbindungsschicht-Signal, das die Datenstrom-ID anzeigt, die mit den Daten empfangen wurde
    P1_error Physikalische Schicht stellte einen Fehler fest (z.B. Rahmensynchronisation oder Training)
    P1_AlignReq Physikalische Schicht fordert die Verbindungsschicht auf, Pakete mit der LPIF-Breitengrenze abzugleichen
    P1_in_L0 Zeigt an, dass die Verbindungszustandsmaschine (LSM) in L0 ist
    P1_in_retrain Zeigt an, dass LSM in Retrain/Rückstellung ist
    P1_rejectL1 Zeigt an, dass die PHY-Schicht Eintritt in L1 abgewiesen hat
    P1_in_L12 Zeigt an, dass LSM in L1 oder L2 ist
    P1_LSM (3:0) Aktuelle LSM-Zustandsinformationen
    Lp_data[N-1:0][7:0] Verbindungsschicht-zu-physikalische-Schicht-Daten, wobei N gleich der Anzahl an Bahnen ist
    Lp_Stream[7:0] Verbindungsschicht-zu-physikalische-Schicht-Signal, das die Datenstrom-ID anzeigt, die mit Daten zu verwenden ist
    Lp_AlignAck Verbindungsschicht-zu-physikalische-Schicht zeigt an, dass die Pakete mit der LPIF-Breitengrenze abgeglichen sind
    Lp_valid Verbindungsschicht-zu-physikalische-Schicht-Signal, das Datengültigkeit anzeigt
    Lp_enterL1 Verbindungsschichtanfrage an physikalische Schicht, in L1 einzutreten
    Lp_enterL2 Verbindungsschichtanfrage an physikalische Schicht, in L2 einzutreten
    Lp_Retrain Verbindungsschichtanfrage an physikalische Schicht, die PHY einem Retrain zu unterziehen
    Lp _ exitL)2 Verbindungsschichtanfrage an physikalische Schicht, aus L1, L2 auszutreten
    Lp_Disable Verbindungsschichtanfrage an physikalische Schicht, PHY zu deaktivieren
  • Wie in Tabelle 1 zu sehen kann in einigen Implementierungen ein Abgleichungsmechanismus durch einen AlignReq/AlignAck-Handshake bereitgestellt werden. Wenn beispielsweise die physikalische Schicht in Rücksetzung eintritt, können einige Protokolle die Paketrahmensynchronisation verlieren. Abgleichen der Pakete kann korrigiert werden, beispielsweise um korrekte Rahmensynchronisationsidentifikation durch die Verbindungsschicht sicherzustellen. Außerdem kann, wie in 13 dargestellt, die physikalische Schicht ein StallReq-Signal zusichern, wenn es in Rücksetzung eintritt, sodass die Verbindungsschicht ein Stall-Signal zusichert, wenn ein neues abgeglichenes Paket bereit zur Übertragung ist. Die Logik der physikalischen Schicht kann sowohl Stall als auch Valid abtasten, um zu bestimmen, ob das Paket abgeglichen ist. Beispielsweise kann die physikalische Schicht fortsetzen, trdy anzusteuern, um die Verbindungsschichtpakete abzuleiten, bis Stall und Valid als zugesichert abgetastet werden, um eine von möglichen Implementierungen zu nennen, einschließlich anderer alternativer Implementierungen unter Verwendung von Valid, um die Paketabgleichung zu unterstützen.
  • Verschiedene Fehlertoleranzen können für Signale auf der MCPL definiert werden. Beispielsweise können Fehlertoleranzen für gültige, Datenstrom-, LSM-Seitenband-, Niedrigfrequenzweitenband-, Verbindungsschichtpakete- und andere Arten von Signale definiert werden. Fehlertoleranzen für Pakete, Nachrichten und andere Daten, die über die dedizierten Datenbahnen der MCPL gesendet werden, können auf dem jeweiligen Protokoll basieren, das die Daten verwaltet. In einigen Implementierungen können Fehlererkennungs- und -beseitigungsmechanismen bereitgestellt werden, wie z.B. zyklische Redundanzprüfung (CRC), Wiederholungspuffer, um einige mögliche Beispiele zu nennen. Als Beispiele kann für PCIe-Pakete, die über die MCPL gesendet werden, 32-Bit-CRC für PCIe-Transaktionsschichtpakete (TLPs) verwendet werden (mit garantierter Zustellung (z.B. durch einen Rückspielmechanismus)) und 16-Bit-CRC kann für PCIe-Verbindungsschichtpakete verwendet werden (deren Architektur verlustbehaftet ist (z.B. wo kein Rückspielen eingesetzt wird)). Ferner kann für PCIe Rahmensynchronisationtoken ein bestimmter Hamming-Abstand (z.B. Hamming-Abstand vier (4)) für den Tokenidentifikator definiert werden; Parität und 4-Bit-CRC können ebenfalls verwendet werden, um ein Beispiel zu nennen. Bei IDI-Paketen andererseits kann 16-Bit-CRC verwendet werden.
  • In einigen Implementierungen können Fehlertoleranzen für Verbindungsschichtpakete (LLPs) definiert werden, die Anfordern eines gültigen Signals zum Übergang von niedrig zu hoch (d.h. 0 zu 1) umfassen (z.B. um Bit- und Symbolsperrung zu unterstützen) umfassen. Ferner kann in einem Beispiel eine bestimmte Anzahl an aufeinanderfolgenden, identischen LLPs definiert werden, die gesendet werden sollen, und Antworten auf jede Anfrage können erwartet werden, mit Neuversuchen durch den Anfrager nachdem die Antwortzeit abgelaufen ist, einschließlich anderer definierter Eigenschaften, die als Basis zur Bestimmung von Fehlern in LLP-Daten auf der MCPL verwendet werden können. In weiteren Beispielen kann eine Fehlertoleranz für ein gültiges Signal bereitgestellt werden, beispielsweise durch Erweitern des gültigen Signals über ein ganzes Zeitdauerfenster oder Symbol (z.B. durch Hochhalten des gültigen Signals länger als für acht UIs). Darüber hinaus können Fehler oder Störungen in Datenstromsignalen verhindert werden, indem ein Hamming-Abstand für Kodierwerte des Datenstromsignals eingehalten wird, um ein Beispiel zu nennen.
  • Implementierungen einer Logik-PHY können Fehlerbestimmungs-, Fehlerberichterstattungs- und Fehlerbeseitigungslogik umfassen. In einigen Implementierungen kann eine Logik-PHY einer beispielhaften MCPL Logik zur Bestimmung von PHY-Schicht-Rahmensynchronisationsbeseitigungsfehlern (z.B. auf der gültigen und Datenstrombahn), Seitenbandfehler (z.B. in Bezug auf LSM-Zustandsübergänge), Fehler in LLPs (die z.B. entscheidend für LSM-Zustandsübergänge sind) umfassen, um einige Beispiele zu nennen. Manche Fehlerbestimmungen/-lösungen können zu einer Logik einer höheren Schicht delegiert werden, wie z.B. PCIe-Logik, die angepasst ist, um PCIe-spezifische Fehler zu bestimmen, um ein Beispiel zu nennen.
  • Im Falle von Rahmensynchronisationsbeseitigungsfehlern können in einigen Implementierungen ein oder mehrere Mechanismen bereitgestellt werden, die durch Fehlerbeseitigungslogik bereitgestellt werden können. Rahmensynchronisationsbeseitigungsfehler können basierend auf den beteiligten Protokollen beseitigt werden. Beispielsweise können in einigen Implementierungen Verbindungsschichten über den Fehler informiert werden, um einen Neuversuch auszulösen. Rahmensynchronisationsbeseitigung kann auch eine Neuabgleichung der Logik-PHY-Rahmensynchronisationsbeseitigung auslösen. Ferner kann eine Neuzentrierung der Logik-PHY durchgeführt werden, und Symbol/Fenster-Sperrung kann erneut erworben werden, neben anderen Techniken. Zentrieren kann in einigen Beispielen umfassen, dass die PHY die Empfängertaktphase zum optimalen Punkt bewegt, um die ankommenden Daten festzustellen. „Optimal“ kann in diesem Zusammenhang bedeuten, wo sie den größten Raum für Rauschen und Taktjitter hat. Neuzentrierung kann vereinfachte Zentrierfunktionen umfassen, die beispielsweise durchgeführt werden, wenn die PHY von einem Niedrigenergiezustand aufwacht, um ein Beispiel zu nennen.
  • Andere Arten von Fehlern können andere Fehlerbeseitigungstechniken umfassen. Beispielsweise können Fehler, die in einem Seitenband festgestellt werden, durch einen Zeitbegrenzungsemechanismus eines entsprechenden Zustands (z.B. einer LSM) abgefangen werden. Der Fehler kann geloggt werden, und die Verbindungszustandsmaschine kann dann in Rückstellung übergehen. Die LSM kann in Rückstellung bleiben, bis ein Neustartbefehl von einer Software empfangen wird. In einem weiteren Beispiel können LLP-Fehler, wie z.B. ein Verbindungssteuerungspaketfehler, mit einem Zeitbegrenzungsmechanismus abgewickelt werden, die die LLP-Sequenz neu starten kann, wenn keine Bestätigung der LLP-Sequenz erhalten wird.
  • 14A-14C zeigen Darstellungen von beispielhaften Bit-Kartierungen auf Datenbahnen einer beispielhaften MCPL für verschiedene Arten von Daten. Eine beispielhafte MCPL kann fünfzig Datenbahnen umfassen. 14A zeigt eine erste Bit-Kartierung aus beispielhaften 16-Byte-Slots in einem ersten Protokoll, wie z.B. IDI, di über die Datenbahnen innerhalb eines 8UI-Symbols oder eines Fensters gesendet werden kann. Innerhalb des definierten 8UI-Fensters können beispielsweise drei 16-Byte-Slots, einschließlich eines Kopf-Slots, gesendet werden. Zwei Byte von Daten verbleiben in diesem Beispiel, und die restlichen zwei Byte können als CRC-Bits verwendet werden (z.B. in Bahnen DATA[48] und DATA[49]).
  • In einem weiteren Beispiel zeigt 14B eine zweite beispielhafte Bit-Kartierung für PCIe-Paketdaten, die über die fünfzig Datenbahnen einer beispielhaften MCPL gesendet werden. Im Beispiel aus 14B können 16-Byte-Pkakete (z.B. Transaktionsschicht- (TLP-) oder Datenverbindungsschicht- (DLLP-) PCIe-Pakete) über die MCPL gesendet werden. In einem 8UI-Fenster können drei Pakete gesendet werden, wobei die restlichen zwei Byte der Bandbreite in dem Fenster ungenutzt bleiben. Rahmensynchronisationstoken können in diesen Symbolen enthalten sein und verwendet werden, um den Beginn und das Ende jedes Pakets zu bestimmen. In einem Beispiel von PCIe kann die Rahmensynchronisation, die im Beispiel aus 14B verwendet wird, die gleiche sein wie die für PCIe bei 8 GT/s implementierten Token.
  • In einem weiteren Beispiel, das in 14C dargestellt ist, ist eine beispielhafte Bit-Kartierung von Verbindung-zu-Verbindung-Paketen (z.B. LLP-Paketen) dargestellt, die über eine beispielhafte MCPL gesendet werden. LLPs können jeweils 4 Byte große sein, und jede LLP (z.B. LLP0, LLP1, LLP2 usw.) kann vier aufeinanderfolgende Male gesendet werden, in Übereinstimmung mit Fehlertoleranz und Fehlerbestimmung innerhalb einer beispielhaften Implementierung. Beispielsweise kann ein Versagen, vier aufeinanderfolgende identische LLPs zu empfangen, einen Fehler anzeigen. Außerdem kann, bei anderen Datenarten, ein Versagen, ein VALID in einem Verarbeitungszeitfenster oder Symbol zu empfangen, auch einen Fehler anzeigen. In manchen Fällen können LLPs fixe Slots aufweisen. Außerdem können in diesem Beispiel ungenutzte, oder „Ersatz-“, Bits in der Byte-Zeitperiode dazu führen, dass logische 0en über zwei der fünfzig Bahnen übertragen werden (z.B. DATA[48-49]), um ein Beispiel zu nennen.
  • Auf 15 Bezug nehmend ist ein vereinfachtes Verbindungszustandsmaschinenübergangsdiagramm 1400 zusammen mit Seitenband-Handshake dargestellt, die zwischen den Zustandsübergängen verwendet wird. Beispielsweise kann ein Reset.Idle-Zustand (z.B. wenn eine Phasensperrschleifen- (PLL-) Sperrkalibrierung durchgeführt wird) durch einen Seitenband-Handshake zu einem Reset.Cal-Zustand (wo z.B. die Verbindung weiter kalibriert wird) übergehen. Reset.Cal kann durch einen Seitenband-Handshake, zu einem Reset.ClockDCC-Zustand übergehen (wo z.B. eine Arbeitszykluskorrektur (DCC) und verzögerungsgesperrte Schleifen- (DLL-) Sperre durchgeführt wird). Ein zusätzlicher Handshake kann durchgeführt werden, um von einem Reset.ClockDCC- zu einem Reset.Quiet-Zustand überzugehen (z.B. um die Zusicherung des Valid-Signals aufzuheben). Um die Abgleichung der Signalübertragung auf den Bahnen der MCPL zu unterstützen, können die Bahnen durch einen Center.Pattern-Zustand zentriert werden.
  • In einigen Implementierungen kann, wie im Beispiel aus 16 dargestellt, während des Center.Pattern-Zustands der Sender Training-Muster oder andere Daten erzeugen. Der Empfänger kann seine Empfängerschaltung konditionieren, um solche Training-Muster zu empfangen, beispielsweise indem die Phaseninterpolatorposition und vref-Position eingestellt wird und der Komparator eingestellt wird. Der Empfänger kann kontinuierlich die empfangen Muster mit erwarteten Mustern vergleichen und das Ergebnis in einem Register speichern. Nachdem ein Satz von Mustern abgeschlossen ist, kann der Empfänger die Phaseninterpolatoreinstellung erhöhen und vref gleich lassen. Die Testmustererzeugung und der Vergleichsprozess können fortsetzen und neue Vergleichsergebnisse können im Register gespeichert werden, wobei das Verfahren wiederholt alle Phaseninterpolatorwerte und alle Werte für vref durchläuft. In den Center.Quiet-Zustand kann eingetreten werden, wenn der Mustererzeugungs- und Vergleichsvorgang abgeschlossen sind. Nach dem Zentrieren der Bahnen durch die Center.Pattern- und Center.Quiet-Verbindungszustände kann ein Seitenband-Handshake (z.B. unter Verwendung eines LSM-Seitenbandsignals auf der dedizierten LSM-Seitenbandbahn der Verbindung) ermöglicht werden, um in einen Link.Init-Zustand überzugehen, um die MCPL zu initialisieren und Senden von Daten auf der MCPL zu ermöglichen.
  • Kurz auf die Erläuterung von 15 zurückkommend kann, wie oben angemerkt, ein Seitenband-Handshake verwendet werden, um Verbindungszustandsmaschinenübergänge zwischen Nacktchips oder Chips in einem Mehrchipgehäuse zu vereinfachen. Beispielsweise können Signale auf den LSM-Seitenbandbahnen einer MCPL verwendet werden, um die Zustandsmaschinenübergänge am Nacktchip zu synchronisieren. Beispielsweise kann, wenn die Bedingungen zum Austritt aus seinem Zustand erfüllt sind (z.B. Reset.Idle), die Seite, die diese Bedingungen erfüllt hat, auf seiner ausgehenden LSM_SB-Bahn ein LSM-Seitenbandsignal zusichern und auf den anderen, separaten Nacktchip warten, bis dieser die gleiche Bedingung erreicht und ein LSM-Seitenbandsignal auf seiner LSM_SB-Bahn zusichern. Wenn beide LSM_SB-Signale zugesichert sind, kann die Verbindungszustandsmaschine jedes der Nacktchips in den nächsten Zustand übergehen (z.B. ein Reset.Cal-Zustand). Eine Mindestüberlappungszeit kann definiert werden, während der beide LSM_SB-Signale zugesichert bleiben sollten, bevor der Übergangszustand eintritt. Ferner kann eine Mindestruhezeit definiert werden, nachdem die Zusicherung von LSM_SB aufgehoben wurde, um eine genaue Umkehrfeststellung zu ermöglichen. In einigen Implementierungen kann jeder Verbindungszustandsmaschinenübergang auf/durch solche(n) LSM_SB-Handshakes konditioniert sein und vereinfacht werden.
  • 17 ist ein detailliertes Verbindungszustandsmaschinendiagramm 1700, das zumindest einige der zusätzlichen Verbindungszustände und Verbindungszustandsübergänge zeigt, die in einer beispielhaften MCPL enthalten sein können. In einigen Implementierungen kann bei einer beispielhaften Verbindungszustandsmaschine unter den anderen, in 17 dargestellten Zuständen und Zustandsübergängen auch ein „gelenkter Schleifenbetrieb-“ Übergang bereitgestellt sein, um die Bahnen einer MCPL in einen digitalen Schleifenbetrieb zu setzen. Beispielsweise können die Empfängerbahnen einer MCPL nach den Taktrücksetzschaltungen zurück zu den Senderbahnen geführt werden. Ein „LB_Neuzentrierung“-Zustand kann in manchen Fällen ebenfalls bereitgestellt werden, der verendet werden kann, um die Datensymbole abzugleichen. Außerdem kann, wie in 15 dargestellt, die MCPL mehrere Verbindungszustände unterstützen, einschließlich eines aktiven L0-Zustands und eines Niedrigenergiezustands, wie z.B. eines L1-Ruhezustands und L2-Schlafzustands, um einige von möglichen Beispielen zu nennen.
  • 18 ist ein vereinfachtes Blockdiagramm 1800, das einen beispielhaften Fluss in einem Übergang zwischen einem aktiven Zustand (z.B. L0) und einem Niedrigenergie-, oder Ruhe-, Zustand (z.B. L1) zeigt. In diesem speziellen Beispiel sind eine erste Vorrichtung 1805 und eine zweite Vorrichtung 1810 unter Verwendung einer MCPL kommunikativ gekoppelt. Im aktiven Zustand werden Daten über die Bahnen der MCPL (z.B. DATA, VALID, STREAM usw.) übertragen. Verbindungsschichtpakete (LLPs) können über die Bahnen kommuniziert werden (z.B. Datenbahnen, wobei das Datenstromsignal anzeigt, dass die Daten LLP-Daten sind), um die Vereinfachung von Verbindungszustandsübergängen zu unterstützen. Beispielsweise können LLPs zwischen der ersten und zweiten Vorrichtung 1805, 1810 gesendet werden, um von L0 in L1 automatisch überzugehen. Beispielsweise ist erwünscht, dass Oberschichtprotokolle, die von der MCPL unterstützt werden, diesen Eintritt in L1 (oder einen anderen Zustand) kommunizieren, und die Oberschichtprotokolle können dazu führen, dass LLPs über die MCPL gesendet werden, um einen Verbindungsschicht-Handshake zu vereinfachen, damit die physikalische Schicht in L1 eintritt. 18 zeigt beispielsweise zumindest einen Teil von LLPs, die unter Einschluss eines „Eintritt-in-L1“-Anfrage-LLP von der zweiten (stromauf liegenden) Vorrichtung 1810 zur ersten (stromab liegenden) Vorrichtung 1805 gesendet werden. In einigen Implementierungen und Protokollen der oberen Ebene initiiert der stromab liegende Anschluss nicht den Eintritt in L1. Die empfangende erste Vorrichtung 1805 kann als Antwort eine ein „Ändern-zu-Ll“-Anfrage-LLP schicken, welche die zweite Vorrichtung 1810 durch ein „Ändern-zu-L1“-Bestätigungs-(ACK-) LLP bestätigen kann, um ein Beispiel zu nennen. Wird die Beendigung des Handshakes festgestellt, kann die Logik-PHY dazu führen, dass ein Seitenbandsignal auf einer dedizierten Seitenbandverbindung zugesichert wird, um zu bestätigen, dass die ACK empfangen wurde und dass die Vorrichtung (z.B. 1805) bereit für den Eintritt in L1 ist und diesen erwartet. Beispielsweise kann die erste Vorrichtung 1805 ein Seitenbandsignal 1815 zusichern, das zur zweiten Vorrichtung 1810 gesendet wird, um den Empfang der endgültigen ACK im Verbindungsschicht-Handshake zu bestätigen. Außerdem kann die zweite Vorrichtung 1810 auch ein Seitenbandsignal als Antwort auf Seitenbandsignal 1815 zusichern, um die erste Vorrichtung 1805 über die Seitenband-ACK 1805 der ersten Vorrichtung zu benachrichtigen. Wenn die Verbindungsschichtkontrolle und der Seitenband-Handshake abgeschlossen sind, kann die MCPL-PHY in den L1-Zustand übergeführt werden, was dazu führt, dass alle Bahnen der MCPL in einen Ruhe-Energiesparmodus gesetzt werden, einschließlich entsprechender MCPL-Abtasten von 1820, 1825 der Vorrichtungen 1805, 1810. Aus L1 kann ausgestiegen werden, wenn Oberschichtlogik von einer der ersten und zweiten Vorrichtung 1805, 1810 einen Wiedereintritt in L0 anfordert, beispielsweise als Antwort darauf, dass Daten festgestellt werden, die über die MCPL zu der anderen Vorrichtung gesendet werden sollen.
  • Wie oben angemerkt kann in einigen Implementierungen eine MCPL Kommunikation zwischen zwei Vorrichtungen vereinfachen, die möglicherweise mehrere unterschiedliche Protokolle unterstützen, und die MCPL kann Kommunikationen gemäß möglicherweise einem der mehreren Protokolle über die Bahnen der MCPL ermöglichen. Ermöglichen mehrerer Protokolle kann jedoch den Eintritt und Wiedereintritt in zumindest einige Verbindungszustände erschweren. Während manche herkömmliche Verbindungen beispielsweise ein einziges Oberschichtprotokoll aufweisen, das den Master der Zustandsübergänge darstellt, umfasst eine Implementierung von MCPL mit mehreren unterschiedlichen Protokollen effektiv mehrere Master. Wie in 18 beispielhaft dargestellt kann jedes von PCIe und IDI zwischen zwei Vorrichtungen 1805, 1810 durch eine Implementierung von MCPL unterstützt werden, beispielsweise kann Setzen der physikalischen Schicht in einen Ruhe- oder Niedrigenergiezustand von der Bedingung abhängen, dass zuerst einer Erlaubnis von jedem der unterstützten Protokolle eingeholt wird (z.B. sowohl PCIe als auch IDI).
  • In manchen Fällen kann Eintritt in L1 (oder einen anderen Zustand) nur von einer der mehreren unterstützten Protokolle angefordert werden, die für die Implementierung einer MCPL unterstützt werden. Es mag zwar Wahrscheinlich sein, dass die anderen Protokolle ebenfalls einen Eintritt in den gleichen Zustand anfordern werden (z.B. basierend auf einer Identifikation ähnlicher Bedingungen (z.B. wenig oder kein Verkehr) auf der MCPL), die Logik-PHY kann aber warten, bis eine Erlaubnis oder Anweisungen von jedem Oberschichtprotokoll empfangen wurde, bevor der Zustandsübergang tatsächlich ermöglicht. Die Logik-PHY kann verfolgen, welche Oberschichtprotokolle die Zustandsänderung angefordert haben (z.B. einen entsprechenden Handshake durchgeführt hat) und den Zustandsübergang auslösen, wenn identifiziert wird, dass jedes der Protokolle die jeweiligen Zustandsänderung angefordert hat, wie z.B. einen Übergang von L0 zu L1 oder einen anderen Übergang, der sich auf die Kommunikationen der anderen Protokolle auswirken oder diese stören würde. In einigen Implementierungen können Protokolle blind in Bezug auf ihre zumindest teilweise Abhängigkeit von anderen Protokollen im System sein. Ferner kann in manchen Fällen ein Protokoll eine Antwort (z.B. von der PHY) auf eine Anfrage, in einen bestimmten Zustand überzugehen, erwarten, beispielsweise eine Bestätigung oder Ablehnung des angeforderten Zustandsübergangs. Demgemäß kann in solchen Fällen, während auf eine Erlaubnis von einem anderen unterstützten Protokolle für einen Eintritt in einen Ruheverbindungszustand gewartet wird, die Logik-PHY synthetische Antworten auf eine Anfrage, erzeugen, um in den Ruhezustand einzutreten und das anfragende Oberschichtprotokoll „auszutricksen“, sodass dieses annimmt, das in einen bestimmten Zustand übergegangen wurde (währen in Wahrheit die Bahnen immer noch aktive sind, zumindest bis die anderen Protokolle ebenfalls einen Eintritt in den Ruhezustand anfordern). Unter anderen möglichen Vorteilen kann dies den Eintritt in den Niedrigenergiezustand zwischen mehreren Protokollen durch Koordination vereinfachen, um ein Beispiel zu nennen.
  • Es gilt anzumerken, dass die oben beschriebenen Geräte, Verfahren und Systeme in jeder/m beliebigen elektrischen Vorrichtung oder System implementiert werden können, wie oben erwähnt ist. Als spezifische Veranschaulichungen stellen die nachfolgenden Figuren beispielhafte Systeme zur Verwendung der Erfindung wie hierin beschrieben bereit. Wenn die Systeme nachstehend genauer beschrieben werden, wird eine Reihe von unterschiedlichen Verbindungen offenbart, beschrieben und aus der obigen Erläuterung wiederaufgenommen. Und wie leicht erkennbar sein wird, können die oben beschriebenen Vorteile bei beliebigen dieser Verbindungen, Strukturen oder Architekturen angewandt werden.
  • Unter Bezugnahme auf 19 ist eine Ausführungsform eines Blockdiagramms für ein Rechensystem dargestellt, das einen Mehrkernprozessor umfasst. Prozessor 1900 umfasst eine Prozessor- oder Verarbeitungsvorrichtung, wie z.B. einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzwerkprozessor, einen Handprozessor, einen Anwendungsprozessor, einen Coprozessor, ein Ein-Chip-System (SOC) oder eine andere Vorrichtung zur Ausführung eines Codes. Prozessor 1900 umfasst in einer Ausführungsform zumindest zwei Kerne - Kern 1901 und 1902, die asymmetrische Kerne oder symmetrische Kerne (die dargestellte Ausführungsform) umfassen können. Prozessor 1900 kann jedoch auch eine Reihe von Verarbeitungselementen umfassen, 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 für Hardware-Verarbeitungselemente umfassen: eine Threadeinheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Thread, einen Kern, und/oder ein beliebiges anderes Element, das in der Lage ist, einen Zustand eines Prozessors zu halten, z.B. einen Ausführungszustand oder einen Architekturzustand. Mit anderen Worten kann sich ein Verarbeitungselement in einer Ausführungsform auf eine beliebige Hardware beziehen, die unabhängig einem Code zugeordnet sein kann, z.B. einem Software-Thread, einem Betriebssystem, einer Anwendung oder einem anderen Code. Ein physikalischer Prozessor (oder Prozessorsocket) bezieht sich üblicherweise auf eine integrierte Schaltung, die möglicherweise eine beliebige Anzahl von anderen Verarbeitungselementen umfasst, wie z.B. Kerne oder Hardware-Threads.
  • Ein Kern bezieht sich häufig auf eine Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand zumindest einigen dedizierten Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread üblicherweise auf eine beliebige Logik, die sich auf einer integrierten Schaltung befindet und in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände einen gemeinsamen Zugang zu Ausführungsressourcen haben. Wie zu sehen ist überlappt, wenn bestimmte Ressourcen geteilt werden und andere für einen Architekturzustand reserviert sind, die Grenze zwischen der Terminologie für einen Hardware-Thread und für einen Kern. Häufig werden ein Kern und ein Hardware-Thread jedoch von einem Betriebssystem als einzelne Logikprozessoren betrachtet, wobei das Betriebssystem in der Lage ist, Operationen auf jedem Logikprozessor separat zu planen.
  • Physikalischer Prozessor 1900, wie in 19 dargestellt, umfasst zwei Kerne - Kern 1901 und 1902. Hier werden Kern 1901 und 1902 als symmetrische Kerne gesehen, d.h. Kerne mit den gleichen Konfigurationen, Funktionseinheiten und/oder Logiken. In einer weiteren Ausführungsform umfasst Kern 1901 einen die Reihenfolge nicht einhaltenden Prozessorkern, während Kern 1902 einen die Reihenfolge einhaltenden Prozessorkern umfasst. Kerne 1901 und 1902 können jedoch unabhängig aus jeder beliebigen Art von Kern ausgewählt sein, wie z.B. einem nativen Kern, einem Software-verwalteten Kern, einem Kern, der zur Ausführung einer nativen Befehlssatzarchitektur (ISA) angepasst ist, einen Kern, der zur Ausführung einer übersetzten Befehlssatzarchitektur (ISA) angepasst ist, einem gemeinsam entworfenen Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d.h. asymmetrische Kerne) kann eine Form von Übersetzung, wie z.B. Binärübersetzung, verwendet werden, um einen Code auf einem oder beiden Kernen zu planen oder auszuführen. Um die Erläuterung zu verkürzen, sind nachstehend die in Kern 1901 dargestellten Funktionseinheiten genauer beschrieben, da die Einheiten in Kern 1902 in der dargestellten Ausführungsform auf ähnliche Weise arbeiten.
  • Wie dargestellt umfasst Kern 1901 zwei Hardware-Threads 1901a und 1901b, die auch als Hardware-Thread-Slots 1901a und 1901b bezeichnet werden können. Daher sehen Software-Einheiten, wie z.B. ein Betriebssystem, in einer Ausführungsform Prozessor 1900 möglicherweise als vier separate Prozessoren, d.h. vier Logikprozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angemerkt ist ein erster Thread Architekturzustandsregistern 1901a zugeordnet, ein zweiter Thread ist Architekturzustandsregistern 1901b zugeordnet, ein dritter Thread kann Architekturzustandsregistern 1902a zugeordnet sein und ein vierter Thread kann Architekturzustandsregistern 1902b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (1901a, 1901b, 1902a, und 1902b) als Verarbeitungselement, Thread-Slot oder Thread-Einheit bezeichnet werden, wie oben beschrieben ist. Wie dargestellt werden Architekturzustandsregister 1901a in Architekturzustandsregistern 1901b repliziert, sodass einzelne Architekturzustände/-kontexte in für Logikprozessor 1901a und Logikprozessor 1901b gespeichert werden können. In Kern 1901 können auch andere kleine Ressourcen, wie z.B. Anweisungszeiger und Umbenennungslogik im Zuordner- und Umbenennerblock 1930 für Threads 1901a und 1901b repliziert werden. Manche Ressourcen, wie z.B. Neuordnunsgpuffer in Neuordnungs-/Rückordnungseinheit 1935, ILTB 1920, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie z.B. interne Allzweckregister, (ein) auf Seiten-Tabellen basierende(s) Register, Datencaches der unteren Ebene und Daten-TLB 1915, (eine) Ausführungseinheit(en) 1940 sowie Teile von die Reihenfolge nicht einhaltender Einheit 1935, werden möglicherweise vollständig geteilt.
  • Prozessor 1900 umfasst häufig andere Ressourcen, die vollständig geteilt werden können, durch Partitionierung gemeinsam genutzt werden können oder von/für Verarbeitungselemente dediziert werden können. In 19 ist eine Ausführungsform eines rein exemplarischen Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors dargestellt. Es gilt anzumerken, dass ein Prozessor beliebige dieser Funktionseinheiten enthalten oder nicht enthalten kann sowie beliebige andere bekannte Funktionseinheiten, Logik oder Firmware enthalten kann, die nicht dargestellt sind. Wie dargestellt umfasst Kern 1901 einen vereinfachten, die Reihenfolge nicht einhaltenden (OOO) Prozessorkern. Aber in anderen Ausführungsformen kann ein die Reihenfolge einhaltender Prozessor verwendet werden. Der OOO-Kern umfasst einen Verzweigungszielpuffer 1920, um Verzweigungen vorherzusagen, die ausgeführt/genommen werden, und einen Anweisungsübersetzungspuffer (LTLB) 1920 zum Speichern von Adressübersetzungseintragungen für Anweisungen.
  • Kern 1901 umfasst ferner ein Dekodiermodul 1925, das mit Abrufeinheit 1920 gekoppelt ist, um abgerufene Elemente zu dekodieren. Eine Abruflogik umfasst in einer Ausführungsform einzelne Sequenzierer, die Thread-Slots 1901a bzw. 1901b zugeordnet sind. Üblicherweise ist Kern 1901 einer ersten ISA zugeordnet, die Anweisungen definiert/spezifiziert, die auf Prozessor 1900 ausführbar sind. Häufig umfassen Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Teil der Anweisung (als Opcode bezeichnet), die (auf) eine Anweisung oder eine Operation verweist/spezifiziert, die ausgeführt werden soll. Dekodierlogik 1925 umfasst eine Schaltung, die diese Anweisungen aus ihren Opcodes erkennt und die dekodierten Anweisungen in die Pipeline zur Verarbeitung weiterleitet, wie sie durch die erste ISA definiert ist. Wie nachstehend genauer erläutert können Dekodierer 1925 beispielsweise in einer Ausführungsform eine Logik umfassen, die ausgelegt oder angepasst ist, um spezifische Anweisungen zu erkennen, wie z.B. eine Transaktionsanweisung. Als Ergebnis der Erkennung durch Dekodierer 1925 setzt die Architektur oder der Kern 1901 bestimmte vordefinierte Aktionen zur Ausführung von Aufgaben, die der geeigneten Anweisung zugeordnet sind. Es ist wichtig, anzumerken, dass beliebige der Aufgaben, Blöcke, Operationen und Verfahren, die hierin beschrieben sind, als Antwort auf eine einzelne oder auf mehrere Anweisungen ausgeführt werden können; manche davon können neue oder alte Anweisungen sein. Es gilt anzumerken, dass Dekodierer 1926 in einer Ausführungsform die gleiche ISA (oder einen Subsatz davon) erkennen. Alternativ dazu erkennen Dekodierer 1926 in einer heterogenen Kernumgebung eine zweite ISA (entweder einen Subsatz einer ersten ISA oder einer anderen ISA).
  • In einem Beispiel umfasst der Zuordner- und Umbenennerblock 1930 einen Zuordner zur Reservierung von Ressourcen, wie z.B. Registerdateien zur Speicherung von Anweisungsverarbeitungsergebnissen. Threads 1901a und 1901b sind jedoch möglicherweise zur nicht die Reihenfolge nicht einhaltenden Ausführung in der Lage, wobei Zuordner- und Umbenennerblock 1930 auch andere Ressourcen reserviert, wie z.B. Neuordnungspuffers zum Nachverfolgen von Anweisungsergebnissen. Einheit 1930 kann auch einen Registerumbenenner zum Umbenennen von Programm-/Anweisungsreferenzregistern zu anderen internen Registern von Prozessor 1900 umfassen. Neuordnungs-/Rückordnungseinheit 1935 umfasst Komponenten, wie z.B. die oben genannten Neuordnungspuffer, Ladepuffers und Speicherpuffers, um die die Reihenfolge nicht einhaltende Ausführung und später und die die Reihenfolge einhaltenden Rückordnung von Anweisungen zu unterstützen, die nicht der Reihenfolge nach ausgeführt wurden.
  • Planer- und Ausführungseinheit(en)-Block 1940 umfasst in einer Ausführungsform eine Planereinheit zum Planen von Anweisungen/Operationen auf Ausführungseinheiten. Beispielsweise wird ein Gleitkommabefehl an einem Anschluss einer Ausführungseinheit geplant, der eine verfügbare Gleitkommaausführungseinheit aufweist. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Informationen über Anweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Lastausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencache der unteren Ebene und ein Datenübersetzungspuffer (D-TLB) 1950 werden mit Ausführungseinheit(en) 1940 gekoppelt. Der Datencache dient zur Speicherung von kürzlich verwendeter/bearbeiteter Elemente, wie z.B. Datenoperanden, di möglicherweise in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zur Speicherung kürzlicher virtuell/linear-zu-physikalischer Adressübersetzungen. Als spezifisches Beispiel kann ein Prozessor eine Seiten-Tabellen-Struktur umfassen, um einen physikalischen Speicher in eine Vielzahl von virtuellen Seiten aufzubrechen.
  • Hier teilen Kerne 1901 und 1902 Zugang zu einem Cache auf höherer Ebene oder weiter außerhalb, wie z.B. einem Cache auf zweiter Ebene, der einer On-Chip-Schnittstelle 1910 zugeordnet ist. Es gilt anzumerken, dass sich höhere Ebene oder weiter außerhalb auf Cacheebenen bezieht, die von der/den Ausführungseinheit(en) weg aufsteigen oder weiter weg liegen. In einer Ausführungsform ist ein Cache höherer Ebene ein Datencache der letzten Ebene - der letzte Cache in der Speicherhierarchie auf Prozessor 1900 - wie z.B. ein Cache der zweiten oder dritten Ebene. Ein Cache einer höheren Ebene ist jedoch nicht darauf eingeschränkt, da er einem Anweisungscache zugeordnet sein kann oder einen solchen umfassen kann. Ein Verfolgungscache - eine Art von Anweisungscache - kann stattdessen nach dem Dekodierer 1925 gekoppelt werden, um kürzlich dekodierte Abläufe zu speichern. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d.h. eine allgemeine Anweisung, die von den Dekodierern erkannt wird), die in eine Reihe von Mikroanweisungen (Mikrooperationen) dekodiert werden kann.
  • In der dargestellten Konfiguration umfasst Prozessor 1900 auch ein On-Chip-Schnittstellenmodul 1910. Früher war eine Speichersteuerung, die nachstehend genauer beschrieben ist, in einem Rechensystem enthalten, das außerhalb des Prozessors 1900 liegt. In diesem Szenario dient die On-Chip-Schnittstelle 1910 zur Kommunikation mit Vorrichtungen, die außerhalb des Prozessors 1900 liegen, z.B. einem Systemspeicher 1975, einem Chipsatz (häufig einen Speichersteuerungs-Hub umfassend, um Speicher 1975 und einen I/O-Steuerungs-Hub zu verbinden, um periphere Vorrichtungen zu verbinden), einem Speichersteuerungs-Hub, einer Northbridge oder anderen integrierten Schaltungen. Und in diesem Szenario kann Bus 1905 eine beliebige bekannte Verbindung umfassen, wie z.B. einen Mehrpunktbus, eine Punkt-zu-Punkt-Verbindung, eine Serielle Verbindung, einen parallelen Bus, einen kohärenten (z.B. cachekohärenten) Bus, eine Protokollschichtarchitektur, einen differentiellen Bus und einen GTL-Bus.
  • Speicher 1975 kann für Prozessor 1900 dediziert sein oder mit anderen Vorrichtungen in einem System geteilt werden. Herkömmliche Beispiele für Arten von Speicher 1975 umfassen DRAM, SRAM, nichtflüchtige Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es gilt anzumerken, dass Vorrichtung 1980 einen Grafikbeschleuniger, einen Prozessor oder eine Karte mit einem Speichersteuerungs-Hub gekoppelt, einen Datenspeicher mit einem I/O Steuerungs-Hub gekoppelt, einen Drahtlossendeempfänger, eine Flashvorrichtung, eine Audiosteuerung, eine Netzwerksteuerung oder eine andere bekannte Vorrichtung umfassen kann.
  • Seit Kurzem kann jedoch, da mehr Logik und Vorrichtungen auf einem einzelnen Nacktchip, wie z.B. SOC, untergebracht werden, jede dieser Vorrichtungen auf Prozessor 1900 inkorporiert sein. In einer Ausführungsform befindet sich beispielsweise ein Speichersteuerungs-Hub auf demselben Paket und/oder Nacktchip wie Prozessor 1900. Hier umfasst ein Teil des Kerns (ein On-Core-Teil) 1910 eine oder mehrere Steuerung(en) zur Bereitstellung einer Schnittstelle mit anderen Vorrichtungen, wie z.B. Speicher 1975 oder einer Grafikvorrichtung 1980. Die Konfiguration, die eine Verbindung und Steuerungen zur Bereitstellung einer Schnittstelle mit solchen Vorrichtungen umfasst, wird oft als On-Core bezeichnet (oder Un-Core-Konfiguration). Beispielsweise umfasst eine On-Chip-Schnittstelle 1910 eine Ringverbindung für On-Chip-Kommunikation und eine serielle Punkt-zu-Punkt-Hochgeschwindigkeitsverbindung 1905 für Off-Chip-Kommunikation. Nichtsdestotrotz könne in der SOC-Umgebung noch weitere Vorrichtungen, wie z.B. die Netzwerk-Schnittstelle, Coprozessoren, Speicher 1975, Grafikprozessor 1980 und beliebige andre bekannte Rechenvorrichtungen/Schnittstellen auf einem einzelnen Nacktchip oder einer integrierten Schaltung vorhanden sein, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist Prozessor 1900 in der Lage, einen Kompilierungs-, Optimierungs- und/oder Übersetzercode 1977 zum Kompilieren, Übersetzen und/oder Optimieren von Anwendungscode 1976 auszuführen, um das Gerät und die Verfahren, die hierin beschrieben sind, zu unterstützen oder eine Schnittstelle damit bereitzustellen. Ein Compiler umfasst oft ein Programm oder einen Satz von Programmen zur Übersetzung von Quelltest/-code in Zieltext/-code. Üblicherweise erfolgt eine Kompilierung von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und Durchläufen, um einen Programmiersprachencode höherer Ebene in einen Maschinen- oder Assemblersprachencode einer niedrigeren Ebene umzuwandeln. Nichtsdestotrotz können für einfache Kompilation auch Compiler mit einem Durchlauf eingesetzt werden. Ein Compiler kann beliebige bekannte Kompilationstechniken nutzen und beliebige bekannte Compileroperationen ausführen, wie z.B. eine lexikalische Analyse, Vorverarbeitung, Syntaxanalyse, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
  • Größere Compiler umfassen oft mehrere Phasen, aber meistens sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) Front-End, d.h. wo im Allgemeinen syntaktische Verarbeitung, semantische Verarbeitung und etwas Transformation/Optimierung stattfinden können, und (2) ein Back-End, d.h. wo im Allgemeinen Analysen, Transformationen, Optimierungen und Codeerzeugung stattfinden. Manche Compiler beziehen sich auf eine Mitte, was das Verschwimmen von Grenzen wischen einem Front-End und einem Back-End eines Compilers widerspiegelt. Als Folge kann ein Verweis auf eine Insertion, Zuordnung, Erzeugung oder andere Operation eines Compilers in jeder/m beliebigen der vorgenannten Phasen oder Durchgänge erfolgen sowie auch in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers. Als veranschaulichendes Beispiel insertiert ein Compiler möglicherweise Operationen, Aufrufe, Funktionen usw. in einer oder mehreren Kompilationsphasen, wie z.B. Insertion von Aufrufen/Operationen in einer Front-Ende-Phase der Kompilation und dann Transformation der Aufrufe/Operationen in einen Code einer niedrigeren Ebene während einer Transformationsphase. Es gilt anzumerken, dass während einer dynamischen Kompilation ein Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe insertieren kann, sowie auch den Code zur Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann ein Binärcode (schon kompilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon umfassen.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie z.B. ein Binärübersetzer, eine Code entweder statisch oder dynamisch, um den Code zu optimieren und/oder zu übersetzen. Daher kann ein Verweis auf eine Ausführung eines Codes, eines Anwendungscodes, eines Programmcodes oder einer anderen Software-Umgebung auf folgendes verweisen: (1) auf eine Ausführung eines oder mehrerer Compilerprogramme, eines Optimierungscodeoptimierers oder eines Übersetzers entweder dynamisch oder statisch, um einen Programmcode zu kompilieren, Software-Strukturen zu erhalten, um andere Operationen durchzuführen, einen Code zu optimieren oder einen Code zu übersetzen; (2) auf eine Ausführung eines Hauptprogrammcodes, einschließlich Operationen/Aufrufen, wie z.B. eines Anwendungscodes, der optimiert/kompiliert wurde; (3) auf eine Ausführungsform eines anderen Programmcodes, wie z.B. Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Software-Strukturen zu erhalten, um andere Software-bezogene Operationen auszuführen, oder um einen Code zu optimieren; oder (4) auf eine Kombination davon.
  • Auf 20 Bezug nehmend wird nun ein Blockdiagramm eine Ausführungsform eines Mehrkernprozessors gezeigt. Wie in der Ausführungsform von 20 zu sehen ist, umfasst Prozessor 2000 mehrere Domänen. Genauer gesagt umfasst eine Kerndomäne 2030 eine Vielzahl von Kernen 2030A-2030N, eine Grafikdomänen 2060 umfasst einen oder mehrere Grafikmaschinen mit einer Medienmaschine 2065 und einer Systemagentdomäne 2010.
  • In verschiedenen Ausführungsformen wickelt Systemagentdomäne 2010 Leistungssteuerungsvorgänge und Leistungsverwaltung ab, sodass einzelne Einheiten von Domänen 2030 und 2060 (z.B. Kerne und/oder Grafikmaschinen) unabhängig steuerbar sind, um ein(en) geeigneten/s Leistungsmodus/ebene dynamisch zu betreiben (z.B. Aktiv-, Turbo-, Schlaf-, Ruhe-, Tiefschlaf- oder andere ähnliche Zustände wie bei fortgeschnittenen Leistungsschnittstellenkonfigurationen), im Hinblick auf die Aktivität (oder Inaktivität) in der jeweiligen Einheit. Jede der Domänen 2030 und 2060 kann mit unterschiedlicher Spannung und/oder Leistung laufen, und außerdem können die einzelnen Einheiten innerhalb der Domänen jeweils möglicherweise mit unabhängiger Frequenz und Spannung laufen. Es gilt anzumerken, dass zwar nur drei Domänen dargestellt sind, der Schutzumfang der vorliegenden Erfindung aber nicht auf den Zusammenhang von Nacktchips eingeschränkt ist und in anderen Ausführungsformen weitere Domänen vorhanden sein können.
  • Wie dargestellt umfasst jeder Kern 2030 ferner Caches einer niedrigen Ebene zusätzlich zu verschiedenen Ausführungseinheiten und weiteren Verarbeitungselements. Hier sind die verschiedenen Kerne miteinander und mit einem geteilten Cachespeicher gekoppelt, der aus einer Vielzahl von Einheiten oder Scheiben aus zumindest einem Cache der letzten Ebene (LLC) 2040A-2040N gebildet ist; diese LLCs umfassen oft Speicher- und Cachesteuerungsfunktionalität und werden von den Kernen geteilt, sowie auch möglicherweise von den Grafikmaschinen.
  • Wie zu sehen ist, koppelt eine Ringverbindung 2050 die Kerne aneinander und stelle eine Verbindung zwischen der Kerndomäne 2030, der Grafikdomäne 2060 und der Systemagentschaltung 2010 über eine Vielzahl von Ringstopps 2052A-2052N bereit, jeder bei einer Kopplung zwischen einem Kern und einer LLC-Scheibe. Wie in 20 zu sehen ist, wird Verbindung 2050 verwendet, um verschiedene Informationen zu tragen, Einschließlich Adresseninformationen, Dateninformationen, Bestätigungsinformationen und Abhör-/ungültige Informationen. Obwohl eine Ringverbindung dargestellt ist, kann jede bekannte nacktchipgetragene Verbindung oder Struktur eingesetzt werden. Als veranschaulichendes Beispiel können einige der oben erläuterten Strukturen (z.B. eine weitere nacktchipgetragene Verbindung, On-Chip-System-Struktur (OSF) eine fortgeschrittene Mikrosteuerungsbusarchitektur- (AMBA-) Verbindung, ein mehrdimensionales Netzstruktur oder eine andere bekannte Zwischenverbindungsarchitektur) auf ähnliche Weise eingesetzt werden.
  • Wie ferner dargestellt umfasst Systemagentdomäne 2010 eine Anzeigemaschine 2012, die zur Bereitstellung einer Steuerung von und einer Schnittstelle mit einer zugeordnete Anzeige dient. Systemagentdomäne 2010 kann weitere Einheiten umfassen, wie etwa: eine integrierte Speichersteuerung 2020, die eine Schnittstelle mit einem Systemspeicher (z.B. einem DRAM, implementiert mit mehreren DIMMs) bereitstellt; eine Kohärenzlogik 2022 zur Ausführung von Speicherkohärenzoperationen. Mehrere Schnittstellen können vorhanden sein, um eine Verbindung zwischen dem Prozessor einer anderen Schaltung bereitzustellen. In einer Ausführungsform wird beispielsweise zumindest eine direkte Medienschnittstelle (DMI) 2016 breitgestellt, sowie eine oder mehreren PCIe™-Schnittstellen 2014. Die Anzeigemaschine und diese Schnittstellen sind typischerweise über eine PCIe™-Brücke 2018 mit einem Speicher gekoppelt. Ferner können zur Bereitstellung von Kommunikation zwischen anderen Agenten, wie z.B. zusätzlichen Prozessoren oder anderer Schaltung, eine oder mehrere andere Schnittstellen bereitgestellt werden.
  • Auf 21 Bezug nehmend wird nun ein Blockdiagramm eines repräsentativen Kerns dargestellt; genauer gesagt Logikblöcke eines Back-Ends eines Kerns, wie z.B. Kern 2030 aus 20. Im Allgemeinen umfasst die in 21 dargestellte Struktur einen die Reihenfolge nicht einhaltenden Prozessor, der eine Fron-End-Einheit 2170 umfasst, die zum Abrufen von ankommenden Anweisungen, Ausführung verschiedener Verarbeitungen (z.B. Cachen, Dekodieren, Verzweigungsvorhersage usw.) und Weiterleiten von Anweisungen/Operationen an die die Reihenfolge nicht einhaltenden (OOO) Maschine 2180 verwendet wird. OOO-Maschine 2180 führt weitere Verarbeitung an dekodierten Anweisungen aus.
  • Genauer gesagt umfasst in der Ausführungsform aus 21 die die Reihenfolge nicht einhaltende Maschine 2180 eine Zuordnungseinheit 2182 zum Empfangen von dekodierten Anweisungen, die in Form von einer oder mehreren Mikroanweisungen oder uops von der Front-End-Einheit 2170 vorliegen können, und ihr Zuordnen zu geeigneten Ressourcen, wie Register usw. Als Nächstes werden die Anweisungen zu einer Reservierungsstation 2184 geleitet, die Ressourcen dediziert und diese zur Ausführung auf einer von einer Vielzahl von Ausführungseinheiten 2186A-2186N plant. Verschiedene Arten von Ausführungseinheiten können vorhanden sein, beispielsweise arithmetisch- logische Einheiten (ALUs), Lade- und Speichereinheiten, Vektorverarbeitungseinheiten (VPUs), Gleitkommaausführungseinheiten und andere. Ergebnisse von diesen verschiedenen Ausführungseinheiten werden zu einem Neuordnungspuffer (ROB) 2188 bereitgestellt, der ungeordnete Ergebnisse nimmt und die korrekte Programmordnung wiederherstellt.
  • Noch unter Bezugnahme auf 21 gilt es anzumerken, dass sowohl die Front-End-Einheit 2170 als auch die Reihenfolge nicht einhaltenden Maschine 2180 mit unterschiedlichen Ebenen einer Speicherhierarchie gekoppelt sind. Spezifisch dargestellt ist ein Anweisungsebenencache 2172, der wiederum mit einem Cache der mittleren Ebene 2176 gekoppelt ist, der wiederum mit einem Cache der letzten Ebene 2195 gekoppelt ist. In einer Ausführungsform ist der Cache der letzten Ebene 2195 in einer On-Chip- (manchmal als Uncore bezeichnet) Einheit 2190 implementiert ist. Beispielsweise ist Einheit 2190 ähnlich wie Systemagent 2010 aus 20. Wie oben erläutert kommuniziert Uncore 2190 mit Systemspeicher 2199, der in der veranschaulichten Ausführungsform mittels ED-RAM implementiert ist. Es gilt auch anzumerken, dass die verschiedenen Ausführungseinheiten 2186 innerhalb der die Reihenfolge nicht einhaltenden Maschine 2180 in Kommunikation mit einem Cache der ersten Ebene 2174 stehen, der auch in Kommunikation mit einem Cache der mittleren Ebene 2176 steht. Es gilt auch anzumerken, dass weitere Kerne 2130N-2 - 2130N mit LLC 2195 gekoppelt sein können. Obwohl in der Ausführungsform aus 21 in dieser hohen Ebene dargestellt, versteht sich, dass verschiedene Änderungen und weitere Komponenten vorhanden sein können.
  • Auf 22 Bezug nehmen ist ein Blockdiagramm eines beispielhaften Rechnersystems dargestellt, das mit einem Prozessor gebildet ist, der Ausführungseinheiten zur Ausführung einer Anweisung umfasst, wobei eine oder mehrere der Verbindungen ein oder mehrere Merkmale gemäß einer Ausführungsform der vorliegenden Erfindung aufweisen. System 2200 umfasst eine Komponente, wie z.B. einen Prozessor 2202, zur Anwendung von Ausführungseinheiten, einschließlich Logik zur Ausführung von Algorithmen für Prozessdaten gemäß der vorliegenden Erfindung, wie z.B. in der hierin beschriebenen Ausführungsform. System 2200 ist veranschaulichend für Verarbeitungssysteme basierend auf Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™, obwohl auch andere Systeme verwendet werden können (einschließlich PCs mit anderen Mikroprozessoren, Entwicklungsworkstations, Beistellgeräte und dergleichen). In einer Ausführungsform führt ein Probengerät 2200 eine Version des Betriebssystems WINDOWS™ aus, das von Microsoft Corporation in Redmond, Washington, USA, erhältlich ist, obwohl auch andere Betriebssysteme (UNIX und Linux etwa), eingebettete Software und/oder graphische Benutzerschnittstellen verwendet werden können. Somit sind Ausführungsformen der vorliegenden Erfindung nicht auf eine bestimmte Kombination von Hardware-Schaltung und Software eingeschränkt.
  • Ausführungsformen sind nicht auf Rechensysteme eingeschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen, wie etwa Handvorrichtungen und eingebetteten Anwendungen, verwendet werden. Einige Beispiele für Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen können eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), ein Ein-chip-System, NetzwerkRechner (NetPC), Beistellgeräte, NetzwerkHub, Weitverkehrsnetz- (WAN-) Schalter oder ein beliebiges anderes System, das eine oder mehrere Anweisungen gemäß zumindest einer Ausführungsform ausführen kann, umfassen.
  • In dieser veranschaulichten Ausführungsform umfasst der Prozessor 2202 eine oder mehrere Ausführungseinheiten 2208 zur Implementierung eines Algorithmus, der zur Ausführung zumindest einer Anweisung dient. Eine Ausführungsform kann im Zusammenhang mit einem einzelnem Prozessortischgerät oder Serversystem beschrieben sein, aber alternative Ausführungsformen können in einem Mehrprozessorsystem enthalten sein. System 2200 ist ein Beispiel für eine „Hub“-Systemarchitektur. Das Rechensystem 2200 umfasst einen Prozessor 2202 zur Verarbeitung von Datensignalen. Der Prozessor 2202 kann in einem veranschaulichenden Beispiel etwa einen Mikroprozessor eines Rechners mit komplexem Anweisungssatz (CISC), einen Mikroprozessor eines Rechners mit reduziertem Anweisungssatz (RISC), einen Mikroprozessor für sehr lange Anweisungswörter (VLIW), einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie z.B. einen Digitalsignalprozessor umfassen. Der Prozessor 2202 ist mit einem Prozessorbus 2210 gekoppelt, der Datensignale zwischen dem Prozessor 2202 und anderen Komponenten im System 2200 überträgt. Die Elemente von System 2200 (z.B. Grafikbeschleuniger 2212, Speichersteuerungs-Hub 2216, Speicher 2220, I/O-Steuerungs-Hub 2224, Drahtlossendeempfänger 2226, Flash-BIOS 2228, Netzwerk-Steuerung 2234, Audio-Steuerung 2236, serieller Erweiterungsanschluss 2238, I/O-Steuerung 2240 usw.) führen ihre herkömmlichen Funktionen aus, die Fachleuten auf dem Gebiet der Erfindung wohlbekannt sind.
  • In einer Ausführungsform umfasst der Prozessor 2202 einen internen Level-1-(L1-) Cache-Speicher 2204. Je nach Architektur kann der Prozessor 2202 einen einzelnen internen Cache oder mehrere Ebenen von internen Caches aufweisen. Andere Ausführungsformen umfassen eine Kombination aus sowohl internen als auch externen Caches, je nach jeweiliger Implementierung und Anforderungen. Registerdatei 2206 dient zum Speichern von unterschiedlichen Arten von Daten in verschiedenen Registern, einschließlich Ganzzahlregistern, Gleitkommaregistern, Vektorregistern, Bank-Register, Schattenregister, Checkpoint-Register, Statusregister und Anweisungszeigerregister.
  • Ausführungseinheit 2208, einschließlich Logik zur Ausführung von Ganzzahl- und Gleitkommaoperationen, liegt ebenfalls im Prozessor 2202. Der Prozessor 2202 umfasst in einer Ausführungsform einen Mikrocode- (ucode-) ROM zum Speichern eines Mikrocodes, der bei Ausführung dazu dient, Algorithmen für bestimmte Makroanweisungen auszuführen oder komplexe Szenarien handzuhaben. Hier ist ein Mikrocode möglicherweise aktualisierbar, um Logikfehler/korrekturen für Prozessor 2202 handzuhaben. Bei einer Ausführungsform umfasst Ausführungseinheit 2208 Logik zur Abwicklung eines gepackten Anweisungssatzes 2209. Durch Aufnahme des gepackten Anweisungssatzes 2209 in den Anweisungssatz eines Allzweckprozessors 2202, gemeinsam mit einer zugeordneten Schaltung zur Ausführung der Anweisungen, können die von vielen Multimediaanwendungen verwendeten Operationen unter Verwendung von gepackten Daten in einem Allzweckprozessor 2202 ausgeführt werden. Somit werden viele Multimediaanwendungen beschleunigt und effizienter ausgeführt, indem die gesamte Breite eines Prozessordatenbusses zur Ausführung von Operationen an gepackten Daten verwendet wird. Dies hebt möglicherweise die Notwendigkeit auf, kleinere Dateneinheiten über den Prozessordatenbus zu übertragen, um eine oder mehrere Operationen, ein Element nach dem anderen auszuführen.
  • Alternative Ausführungsformen einer Ausführungseinheit 2208 können auch in Mikrosteuerungen, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen eingesetzt werden. System 2200 umfasst einen Speicher 2220. Speicher 2220 umfasst eine dynamische Direktzugriffsspeicher- (DRAM-) Vorrichtung, eine statische Direktzugriffsspeicher- (SRAM-) Vorrichtung, Eine Flashspeichervorrichtung oder eine andere Speichervorrichtung. Speicher 2220 speichert Anweisungen und/oder Daten, die von Datensignalen dargestellt werden, die vom Prozessor 2202 auszuführen sind.
  • Es gilt anzumerken, dass beliebige der oben genannten Merkmale oder Aspekte der Erfindung an einer oder mehreren der in 22 dargestellten Verbindungen verwendet werden können. Beispielsweise können an einer nacktchipgetragenen Verbindung (ODI), die nicht dargestellt ist, zum Koppeln von internen Einheiten von Prozessor 2202 einer oder mehrere Aspekte der oben beschriebenen Erfindung implementiert werden. Oder die Erfindung ist einem Prozessorbus 2210 (z.B. einer andere bekannten Hochleistungsrechenverbindung), einem Speicherpfad mit hoher Bandbreite 2218 zu Speicher 2220, einer Punkt-zu-Punkt-Verbindung zu Grafikbeschleuniger 2212 (z.B. mit Peripherkomponentenverbindung-Express- (PCIe-) konformer Struktur), einer Steuerungs-Hubverbindung 2222, einer I/O- oder anderen Verbindung (z.B. USB, PCI, PCIe) zum Koppeln der anderen veranschaulichten Komponenten zugeordnet. Einige Beispiele für solche Komponenten umfassen die Audiosteuerung 2236, Firmware-Hub (Flash-BIOS) 2228, Drahtlossendeempfänger 2226, Datenspeicher 2224, Legacy-I/O-Steuerung 2210 enthaltende Benutzereingabe- und Tastaturschnittstellen 2242, einen seriellen Erweiterungsanschluss 2238, wie z.B. universellen seriellen Bus (USB), und eine Netzwerk-Steuerung 2234. Die Datenspeichervorrichtung 2224 kann eine Festplatte, eine Diskette, eine CD-ROM-Vorrichtung, eine Flashspeichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Auf 23 Bezug nehmen wird ein Blockdiagramm eines zweiten Systems 2300 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 23 dargestellt ist Multiprozessorsystem 2300 ein Punkt-zu-Punkt-Verbindungssystem und umfasst einen ersten Prozessor 2370 und einen zweiten Prozessor 2380, der über eine Punkt-zu-Punkt-Verbindung 2350 gekoppelt ist. Jeder der Prozessoren 2370 und 2380 kann eine Version eines Prozessors sein. In einer Ausführungsform sind 2352 und 2354 Teil einer seriellen, kohärenten Punkt-zu-Punkt-Struktur, wie z.B. einer Hochleistungsarchitektur. Als Ergebnis kann die Erfindung innerhalb der QPI-Architektur implementiert werden.
  • Währen nur zwei Prozessoren 2370, 2380 dargestellt sind, versteht sich, dass der Schutzumfang der vorliegenden Erfindung nicht darauf eingeschränkt ist. In anderen Ausführungsformen können ein oder mehrere weitere Prozessoren in einem gegebenen Prozessor enthalten sein.
  • Prozessoren 2370 und 2380 sind mit integrierten Speichersteuerungseinheiten 2372 bzw. 2382 dargestellt. Prozessor 2370 umfass tauch als Teil seiner Bussteuerungseinheiten Punkt-zu-Punkt- (P-P-) Schnittstellen 2376 und 2378; auf ähnliche Weise umfasst der zweite Prozessor 2380 P-P-Schnittstellen 2386 und 2388. Prozessoren 2370, 2380 können Informationen über eine Punkt-zu-Punkt- (P-P-) Schnittstelle 2350 unter Verwendung von P-P-Schnittstellenschaltungen 2378, 2388 austauschen. Wie in 23 dargestellt koppeln IMCs 2372 und 2382 die Prozessoren mit entsprechenden Speichern, nämlich einem Speicher 2332 und einem Speicher 2334, die Teile eines Hauptspeichers sein können, der lokal an die entsprechenden Prozessoren angeschlossen ist.
  • Prozessoren 2370, 2380 tauschen jeweils Informationen mit einem Chipsatz 2390 über einzelne P-P-Schnittstellen 2352, 2354 aus, unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 2376, 2394, 2386, 2398. Chipsatz 2390 tauscht ebenfalls Informationen mit einer Hochleistungsgrafikschaltung 2338 über eine Schnittstellenschaltung 2392 über eine Hochleistungsgrafikverbindung 2339 aus.
  • Ein geteilter Cache (nicht dargestellt) kann in einem Prozessor oder außerhalb beider Prozessoren enthalten sein; ebenfalls mit den Prozessoren über eine P-P-Verbindung verbunden, sodass lokale Cacheinformationen von einem der oder von beiden Prozessoren im geteilten Cache gespeichert werden können, wenn ein Prozessor in einen Niedrigenergiemodus gesetzt wird.
  • Chipsatz 2390 kann mit einem ersten Bus 2316 über eine Schnittstelle 2396 gekoppelt sein. In einer Ausführungsform kann der erste Bus 2316 ein Peripherkomponentenverbindungs- (PCI) Bus oder ein Bus wie ein PCI-Express-Bus oder ein anderer I/O-Verbindungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Erfindung nicht darauf eingeschränkt ist.
  • Wie in 23 dargestellt werden verschiedene I/O-Vorrichtungen 2314 mit dem ersten Bus 2316 gekoppelt, gemeinsam mit einer Busbrücke 2318, die einen ersten Bus 2316 mit einem zweiten Bus 2320 koppelt. In einer Ausführungsform umfasst der zweite Bus 2320 einen Bus mit geringer Pinzahl (LPC). Verschiedene Vorrichtungen werden mit dem zweiten Bus 2320 gekoppelt, einschließlich beispielsweise eine Tastatur und/oder Maus 2322, Kommunikationsvorrichtungen 2327 und eine Speichereinheit 2328, wie z.B. ein Diskettenlaufwerk oder eine andere Massenspeichervorrichtung, die häufig Anweisungen/Code und Daten 2330 enthält, in einer Ausführungsform. Ferner ist eine Audio-I/O 2324 dargestellt, die mit dem zweiten Bus 2320 gekoppelt ist. Es gilt anzumerken, dass andre Architekturen möglich sind, wenn die eingeschlossenen Komponenten und Zwischenverbindungsarchitekturen variieren. Beispielsweise kann anstelle der Punkt-zu-Punkt-Architektur aus 23 ein System einen Mehrpunktbus oder eine andere solche Architektur implementieren.
  • Als nächstes wird auf 24 Bezug nehmend eine Ausführungsform eines Ein-Chip-System- (SOC-) Designs gemäß den Erfindungen dargestellt. Als spezifisches veranschaulichendes Beispiel ist SOC 2400 in einem Benutzergerät (UE) enthalten. In einer Ausführungsform bezieht sich UE auf eine beliebige Vorrichtung, die von einem Endbenutzer zur Kommunikation zu verwenden ist, wie z.B. ein Handtelefon, Smartphone, Tablet, ultradünnes Notebook, Notebook mit Breitbandadapter oder eine beliebige andere ähnliche Kommunikationsvorrichtung. Häufig verbindet sich ein UE mit einer Basisstation oder einem Hub, die möglicherweise in ihrer Natur einer Mobilstation (MS) in einem GSM-Netzwerk entsprechen.
  • Hier umfasst SOC 2400 2 Kerne - 2406 und 2407. Ähnlich wie oben erläutert können Kerne 2406 und 2407 mit einer Anweisungssatzarchitektur konform sein, wie z.B. einem Prozessor auf Basis eines Intel® Architektur Core™, einem Prozessor von Advanced Micro Devices, Inc. (AMD), einem Prozessor auf MIPS-Basis, einem Prozessor auf ARM-Basis oder einem Kunden sowie von Lizenznehmern oder Adoptern davon. Kerne 2406 und 2407 sind mit Cachesteuerung 2408 gekoppelt, die Bus-Schnittstelleneinheit 2409 und L2-Cache 2411 zugeordnet ist, um mit anderen teilen von System 2400 zu kommunizieren. Verbindung 2410 umfasst eine On-Chip-Verbindung, wie z.B. IOSF, AMBA, oder eine andere oben erläuterte Verbindung, die möglicherweise einen oder mehrere der hierin beschriebenen Aspekte implementiert.
  • Schnittstelle 2410 stellt Kommunikationskanäle für die anderen Komponenten bereit, wie z.B. ein Teilnehmeridentitätsmodul (SIM) 2430, um eine Schnittstelle mit einer SIM-Karte bereitzustellen, ein Boot-Rom 2435 zum Halten eines Boot-Codes zur Ausführung durch Kerne 2406 und 2407 zur Initialisierung und zum Booten von SOC 2400, eine SDRAM-Steuerung 2440 um eine Schnittstelle mit einem externen Speicher (e.g. DRAM 2460) bereitzustellen, eine Flashsteuerung 2445, um eine Schnittstelle mit einem nichtflüchtigen Speicher (z.B. Flash 2465) bereitzustellen, eine periphere Steuerung 2450 (z.B. serielle periphere Schnittstelle), um eine Schnittstelle mit Periphergeräten bereitzustellen. Videocodecs 2420 und Videoschnittstelle 2425, um Eingaben anzuzeigen und zu empfangen (e.g. Berührungseingabe), GPU 2415, um grafikbezogene Berechnungen auszuführen usw. Jede dieser Schnittstellen kann hierin beschriebene Aspekte der Erfindung inkorporieren.
  • Darüber hinaus zeigt das System Periphergeräte zur Kommunikation, wie z.B. ein Bluetooth-Modul 2470, 3G-Modem 2475, GPS 2485 und WiFi 2485. Wie oben angemerkt gilt, dass ein UE Funk zur Kommunikation umfasst. Daher sind nicht alle dies peripheren Kommunikationsmodule erforderlich. In einem UE muss jedoch irgendeine Form von Funk zur externen Kommunikation enthalten sein.
  • Die vorliegende Erfindung wurde zwar in Bezug auf eine begrenzte Zahl von Ausführungsformen beschrieben, Fachleute auf dem Gebiet der Erfindung werden jedoch zahlreiche Modifikationen und Variationen davon kennen. Es ist vorgesehen, dass die beiliegenden Ansprüche alle solche Modifikationen und Variationen einschließen, die innerhalb des wahren Geists und Schutzumfangs der vorliegenden Erfindung liegen.
  • Ein Design kann verschiedene Stufen durchlaufen, von der Schaffung über die Simulation bis hin zur Produktion. Daten, die ein Design darstellen, können das Design auf unterschiedliche Arten darstellen. Erstens kann, wie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionellen Beschreibungssprache dargelegt werden. Außerdem kann ein Schaltungsebenenmodell mit Logik- und/oder Transistor-Gates in manchen Stufen des Designvorgangs erzeugt werden. Darüber hinaus erreichen die meisten Designs in einer Stufe eine Datenebene, welche die physische Platzierung von verschiedenen Vorrichtungen im Hardware-Modell darstellen. Wenn herkömmliche Halbleiterherstellungsverfahren eingesetzt werden, können die Daten, die das Hardware-Modell darstellen, die Daten sein, welche die Gegenwart oder Abwesenheit verschiedener Merkmale auf unterschiedlichen Masken schichten für Masken spezifizieren, die zur Herstellung der integrierten Schaltung eingesetzt werden. In jeder Darstellung des Designs könne die Daten in jeder beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Internspeicher oder ein magnetischer oder optischer Speicher, wie z.B. eine Diskette, können das maschinenlesbare Medium zur Speicherung von Informationen sein, die ober optische oder elektrischen Wellen überragen werden, die moduliert oder auf anderen Weise zur Übertragung solcher Informationen erzeugt werden. Wenn eine elektrische Trägerwelle, die den Code oder das Design angibt oder trägt, übertragen wird, sodass Kopieren, Puffern oder eine Neuübertragung des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. Somit kann ein Kommunikationsprovider oder ein Netzwerkprovider auf einem flüchtigen, maschinenlesbaren Medium zumindest temporär einen Artikel, wie z.B. Informationen, die in einer Trägerwelle kodiert sind und die Techniken von Ausführungsformen der vorliegenden Erfindung darstellen, speichern.
  • Ein Modul, wie hierin verwendet, steht für jede beliebige Kombination aus Hardware, Software und/oder Firmware. Beispielsweise umfasst ein Modul Hardware, wie z.B. eine Mikrosteuerung, die einem nichtflüchtigen Medium zugeordnet ist, um einen Code zu speichern, der angepasst ist, um von der Mikrosteuerung ausgeführt zu werden. Daher bezieht sich ein Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, um den Code, der in einem nichtflüchtigen Medium gehalten wird, zu erkennen und/oder auszuführen. Ferner bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls darauf, dass das nichtflüchtige Medium den Code enthält, der spezifisch angepasst ist, um von der Mikrosteuerung ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und wie abgeleitet werden kann sich in einer weiteren Ausführungsform die Bezeichnung Modul (in diesem Beispiel) auf die Kombination der Mikrosteuerung und des nichtflüchtigen Mediums beziehen. Herkömmlicherweise variieren Modulgrenzen, die als separat dargestellt sind, und überlappen sich möglicherweise. Beispielsweise können sich ein erstes und zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während möglicherweise manche Hardware, Software oder Firmware einbehalten wird. In einer Ausführungsform umfasst die Verwendung der Bezeichnung Logik Hardware, wie z.B. Transistoren, Register oder andere Hardware, wie z.B. programmierbare Logikvorrichtungen.
  • Die Verwendung der Phrase „konfiguriert, um“ bezieht sich in einer Ausführungsform auf die Anordnung, den Zusammenbau, die Herstellung, das Anbieten zum Verkauf, das Importieren und/oder das Entwerfen eines Geräts, einer Hardware, einer Logik oder eines Elements zur Ausführung einer bezeichneten oder bestimmten Aufgabe. In diesem Beispiel ist ein Gerät oder Element davon, das nicht läuft, trotzdem „konfiguriert, um“ eine bezeichnete Aufgabe auszuführen, wenn es entworfen, gekoppelt und/oder verbunden ist, um die bezeichnete Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logik-Gate eine 0 oder eine 1 während eines Betriebs bereitstellen. Aber ein Logikgatter, das „konfiguriert“ ist, um ein Einschaltsignal an einen Taktgeber bereitzustellen, umfasst nicht jedes mögliche Logikgatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das so Weise gekoppelt ist, dass während des Betriebs die 1 oder 0 ausgegeben wird, um den Taktgeber einzuschalten. Es sei erneut darauf hingewiesen, dass die Verwendung der Bezeichnung „konfiguriert, um“ keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand eines Geräts, einer Hardware und/oder eines Elements konzentriert, wobei das Gerät, die Hardware und/oder das Element so entworfen ist, dass es im eine bestimmte Aufgabe ausführt, wenn das Gerät, die Hardware und/oder das Element in Betrieb ist.
  • Ferner bezieht sich die Verwendung der Phrasen „um zu“, „in der Lage zu“ oder „betreibbar, um“ in einer Ausführungsform auf ein Gerät, eine Logik, eine Hardware und/oder ein Element, das entworfen ist, um die Verwendung des Geräts, der Logik, der Hardware und/oder des Elements auf eine bestimmte Weise zu ermöglichen. Wie oben sei darauf hingewiesen, dass die Verwendung von um zu, in der Lage zu, betreibbar, um, sich in einer Ausführungsform auf den latenten Zustand eines Geräts, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei das Gerät, die Logik, die Hardware und/oder das Element nicht in Betrieb ist, aber so entworfen ist, dass es die Verwendung eines Geräts auf eine bestimmte Weise ermöglicht.
  • Ein Wert wie hierin beschrieben umfasst jede beliebige bekannte Darstellung einer Zahl, eines Zustands, einer Logik oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch als 1en und 0en bezeichnet, was einfach binäre logische Zustände darstellt. Beispielsweise steht eine 1 für einen hohen logischen Zustand und 0 für einen niedrigen logischen Zustand. In einer Ausführungsform kann eine Speicherzelle, wie z.B. eine Transistor- oder Flashzelle, in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Rechnersystemen wurden jedoch ebenfalls verwendet. Beispielsweise kann auch die Dezimalzahl zehn als binärer Wert von 1010 und als hexadezimaler Buchstabe A dargestellt sein. Daher umfasst ein Wert jede Darstellung von Informationen, die in einem Rechnersystem aufgenommen werden können.
  • Darüber hinaus können Zustände durch Werte oder Teile von Werten repräsentiert werden. Als ein Beispiel kann ein erster Wert wie zum Beispiel ein logischer Wert einen Standard- oder Anfangszustand repräsentieren, während ein zweiter Wert, wie zum Beispiel logisch null, einen Nicht-Standardzustand repräsentieren kann. Zusätzlich dazu betreffen die Begriffe Rückstellung und Festsetzen in einer Ausführungsform einen Standardbeziehungsweise einen aktualisierten Wert oder Zustand. Zum Beispiel umfasst ein Standardwert potentiell einen hohen logischen Wert, d. h. eine Rückstellung, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert umfasst, d.h. eine Festsetzung. Es ist zu beachten, dass eine beliebige Kombination von Werten genutzt werden kann, um eine beliebige Anzahl von Zuständen zu repräsentieren.
  • Die oben erläuterten Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über Anweisungen oder Code implementiert werden, die/der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind/ist, die/der von einem Verarbeitungselement ausgeführt werden können/kann. Ein nichtflüchtiges, maschinenzugängliches/-lesbares Medium umfasst jeglichen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die von einer Maschine wie z. B. einem Computer oder elektronischen System lesbar ist. Zum Beispiel umfasst ein nichtflüchtiges, maschinenzugängliches Medium Direktzugriffspeicher (RAM) wie zum Beispiel statische RAM (SRAM) oder dynamische RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; andere Formen von Speichervorrichtungen, um Informationen festzuhalten, die von vorübergehenden (sich ausbreitenden) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen wurden; etc., die von den nichtflüchtigen Medien zu unterscheiden sind, die Informationen von diesen empfangen können.
  • Anweisungen, die verwendet werden, um Logik zu programmieren, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers in dem System wie z. B. einem DRAM, Cache, Flash-Speicher oder anderen Speicher gespeichert sein. Darüber hinaus können die Anweisungen über ein Netzwerk oder mittels anderer computerlesbarer Medien gesendet werden. Daher kann ein maschinenlesbares Medium einen beliebigen Mechanismus umfassen, um Informationen in einer Form zu speichern oder zu übertragen, die von einer Maschine (z. B. einem Computer) lesbar ist, ist aber nicht beschränkt auf Disketten, optische Datenträger, Compact-Disc-Festwertspeicher (CD-ROMs), und magneto-optische Datenträger, Festwertspeicher (ROMs), Direktzugriffspeicher (RAM), löschbare programmierbare Festwertspeicher (EPROM), elektrisch löschbare programmierbare Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen physischen, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet mittels elektrischen, optischen, akustischen oder anderen Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) verwendet wird. Dementsprechend umfasst ein computerlesbares Medium jegliche Art maschinenlesbares Medium, das dazu geeignet ist, elektronische Anweisungen oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form zu speichern oder zu übertragen.
  • Die folgenden Beispiele betreffen Ausführungsformen, die mit dieser Beschreibung in Einklang sind. Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren umfassen, um Daten auf einer oder mehreren Datenbahnen einer physikalischen Verbindung zu empfangen, ein gültiges Signal auf einer weiteren der Bahnen der physikalischen Verbindung zu empfangen, welches identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der einen oder mehreren Datenbahnen nachfolgen sollen, und um ein Datenstromsignal auf einer weiteren der Bahnen der physikalischen Verbindung zu empfangen, welches eine Art der Daten auf der einen oder mehreren Datenbahnen identifiziert.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Verbindungszustandsmaschinen-Verwaltungssignal über eine weitere der Bahnen der physikalischen Verbindung senden.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Seitenbandsignal über eine Seitenbandverbindung senden.
  • In zumindest einem Beispiel umfasst die Art ein Protokoll, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die physikalische Verbindung nutzen.
  • In zumindest einem Beispiel umfasst die Art Verbindungsschichtpaketdaten.
  • In zumindest einem Beispiel sollen die Daten Verbindungszustandsübergänge für die physikalische Verbindung ermöglichen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner das Datenstromsignal dekodieren, um zu identifizieren, welches einer Vielzahl unterschiedlicher Protokolle auf die Daten zutrifft.
  • In zumindest einem Beispiel soll die physikalische Schicht die Daten ferner an Oberschichtprotokolllogik weiterleiten, die einem bestimmten einen der in dem Datenstromsignal identifizierten Vielzahl von Protokollen entspricht.
  • In zumindest einem Beispiel umfasst die Vorrichtung zusätzlich zu der physikalischen Schichtlogik Verbindungsschichtlogik und andere Oberschichtlogik jedes der Vielzahl von Protokollen.
  • In zumindest einem Beispiel umfasst die Vielzahl von Protokollen zumindest zwei aus einer Peripherkomponentenverbindung (PCI), PCI-Expressverbindung (PCIe), Intel-In-Die-Verbindung (IDI), und Quick-Path-Verbindung (QPI).
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Fehler in jedem der Vielzahl von Protokollen bestimmen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Fehler in einem oder mehreren aus dem gültigen Signal und dem Datenstromsignal bestimmen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Datenfenster für auf den Datenbahnen zu sendende Daten definieren, und das Datenfenster entspricht dem gültigen Signal.
  • In zumindest einem Beispiel entspricht das Datenfenster einem Datensymbol, und das gültige Datensignal soll in einem Fenster zugesichert werden, das dem Fenster, in dem die Daten gesendet werden sollen, direkt vorausgeht.
  • In zumindest einem Beispiel sollen Daten auf Datenbahnen in einem Fenster, das einem vorausgehenden Fenster direkt nachfolgt, in dem das gültige Signal nicht zugesichert ist, ignoriert werden.
  • In zumindest einem Beispiel entspricht das Fenster einer Byte-Zeitdauer.
  • In zumindest einem Beispiel wird jedes aus dem gültigen Datensignal, Daten und dem Datenstromsignal gemäß für die physikalische Verbindung definierten Datenfenstern abgeglichen.
  • In zumindest einem Beispiel soll das Datenstromsignal während desselben Fensters wie die Daten gesendet werden.
  • In zumindest einem Beispiel verbindet die physikalische Verbindung zwei Vorrichtungen in einem Mehrchipgehäuse.
  • In zumindest einem Beispiel soll die physikalische Schicht ferner Signale auf den Bahnen der physikalischen Verbindung neu zentrieren.
  • In zumindest einem Beispiel sollen die Bahnen basierend auf dem gültigen Signal neu zentriert werden.
  • In zumindest einem Beispiel wird ein Datenstromsignal auf einer dedizierten Datenstromsignalbahn der Datenverbindung während eines zweiten Fensters empfangen, das Datenstromsignal wird dekodiert und ein Protokoll, das den Daten zugeordnet ist, wird aus dem Dekodieren des Datenstromsignals bestimmt.
  • In zumindest einem Beispiel ist die Datenverbindung geeignet, um Daten einer Vielzahl unterschiedlicher Protokolle zu übertragen.
  • In zumindest einem Beispiel werden Daten identifiziert, die auf der Datenverbindung gesendet werden sollen, ein gültiges Signal wird während eines bestimmten Zeitfensters, welches den zu sendenden Daten entspricht, auf einer ausgehenden gültigen Signalbahn der Datenverbindung gesendet, und die Daten werden während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt, auf dedizierten ausgehenden Datenbahnen gesendet.
  • In zumindest einem Beispiel umfasst die Vielzahl von Datenbahnen ferner eine dedizierte Verbindungszustandsmaschinen-Seitenbandbahn.
  • In zumindest einem Beispiel umfasst die erste Vorrichtung einen ersten Nacktchip in einem Gehäuse, und die zweite Vorrichtung umfasst einen zweiten Nacktchip in dem Gehäuse.
  • In zumindest einem Beispiel umfasst die erste Vorrichtung eine Vorrichtung auf dem Gehäuse, und die zweite Vorrichtung umfasst eine Vorrichtung, die nicht auf dem Gehäuse ist.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um Daten zu identifizieren, die auf dedizierten Datenbahnen einer Datenverbindung gesendet werden sollen, um während eines bestimmten Fensters, welches auf der Datenverbindung zu sendenden Daten entspricht, ein gültiges Signal auf einer dedizierten gültigen Signalbahn der Datenverbindung zu senden, um die Daten während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt, auf dedizierten Datenbahnen der Datenverbindung zu senden, und um ein Datenstromsignal auf einer Datenstromsignalverbindung zu senden, die kodiert ist, um eine Art der Daten zu identifizieren.
  • In zumindest einem Beispiel soll das gültige Signal angeben, dass Daten auf den Datenbahnen während des anderen Fensters gültige Daten sind.
  • In zumindest einem Beispiel umfasst die Datenstromsignalverbindung eine dedizierte Datenstromsignalverbindung.
  • In zumindest einem Beispiel ist das Datenstromsignal geeignet, um zu identifizieren, ob den Daten ein bestimmtes Protokoll zugeordnet ist.
  • In zumindest einem Beispiel ist die Logik der physikalischen Schicht in einer gemeinsamen physikalischen Schicht umfasst, und eine Vielzahl von Protokollen nutzt die gemeinsame physikalische Schicht, und das bestimmte Protokoll ist in der Vielzahl von Protokollen umfasst.
  • In zumindest einem Beispiel umfasst die Vielzahl von Protokollen zwei oder mehr aus PCI, PCIe, IDI und QPI.
  • In zumindest einem Beispiel ist das Datenstromsignal ferner geeignet, um zu identifizieren, ob die Daten Verbindungsschichtpakete umfassen.
  • In zumindest einem Beispiel ist das Datenstromsignal ferner geeignet, um zu identifizieren, ob die Seitenbanddaten.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner den Datenart bestimmen und das Datenstromsignal kodieren, um die bestimmte Art zu identifizieren.
  • In zumindest einem Beispiel soll die physikalische Schicht ferner Verbindungszustandsmaschine-Seitenband- (LSM¬_SB-) Signale auf einer dedizierten LSM_SB-Bahn der Datenverbindung senden.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Seitenbandsignale auf einer von der Datenverbindung getrennten Seitenbandverbindung senden.
  • In zumindest einem Beispiel soll die physikalische Schicht ferner Verbindungsschichtdaten auf den Datenbahnen senden, wobei die Verbindungsschichtdaten verwendet werden, um die Datenverbindung von einem ersten Verbindungszustand in einen zweiten Verbindungszustand überzuführen.
  • In zumindest einem Beispiel umfasst der erste Verbindungszustand einen aktiven Verbindungszustand, und der zweite Verbindungszustand umfasst einen Niedrigenergieverbindungszustand.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein erstes Datenfenster identifizieren, das dem gültigen Signal entspricht, und die Daten auf den Datenbahnen innerhalb eines zweiten Datenfensters senden, das dem ersten Datenfenster direkt nachfolgt.
  • In zumindest einem Beispiel gibt das Nichtzusichern des gültigen Signals an, dass Daten auf den Datenbahnen in einem direkt nachfolgenden Fenster als ungültig ignoriert werden sollen.
  • In zumindest einem Beispiel ist jedes aus dem ersten und dem zweiten Datenfenster definiert, um einer Byte-Zeitdauer zu entsprechen.
  • In zumindest einem Beispiel werden jedes aus dem gültigen Signal, Daten und dem Datenstromsignal gemäß den für die physikalische Verbindung definierten Datenfenstern abgeglichen.
  • In zumindest einem Beispiel soll das Datenstromsignal während desselben Fensters wie die Daten gesendet werden.
  • In zumindest einem Beispiel soll die physikalische Schicht ferner jedes des gültigen und des Datenstromsignals erzeugen.
  • In zumindest einem Beispiel verbindet die Datenverbindung zwei Vorrichtungen in einem Mehrchipgehäuse.
  • In zumindest einem Beispiel soll die Datenverbindung Datengeschwindigkeiten über 8 Gb/s unterstützen.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um eine einseitige Signalübertragung auf einer Datenverbindung bereitzustellen, die eine Vielzahl von Bahnen umfasst, welche eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen umfassen, und um ein Taktsignal zur Verwendung durch die Vielzahl von Bahnen zu senden, wobei Signale, die auf jeder der Vielzahl von Bahnen gesendet werden, mit dem Taktsignal abgeglichen sein sollen.
  • In zumindest einem Beispiel wird jede der Datenbahnen in der Mitte der Bahn auf eine regulierte Spannung terminiert.
  • In zumindest einem Beispiel wird die regulierte Spannung für jede der Vielzahl von Datenbahnen von einem einzigen Spannungsregler bereitgestellt.
  • In zumindest einem Beispiel ist die regulierte Spannung im Wesentlichen gleich Vcc/2, wobei Vcc eine Versorgungsspannung umfasst.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht versuchen, eine Übersprechunterdrückung zwischen zwei oder mehr der Vielzahl von Datenbahnen bereitzustellen.
  • In zumindest einem Beispiel wird eine Übersprechunterdrückung bereitgestellt, indem ein gewichtetes hochpassgefiltertes Aggressorsignal auf einer ersten der zwei oder mehr Datenbahnen zu dem Signal einer zweiten der zwei oder mehr Datenbahnen hinzugefügt wird.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht das gewichtete hochpassgefilterte Aggressorsignal zumindest teilweise unter Verwendung eines Widerstand-Kondensator- (RC-) Tiefpassfilters erzeugen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht eine Pro-Bit-Arbeitszykluskorrektur bereitstellen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht Laufzeitverschiebungen auf zumindest einer bestimmten der Datenbahnen detektieren und die Laufzeitverschiebungen auf der bestimmten Datenbahn entfernen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner eine AC-Datenbusinversion (DBI) auf zumindest eine der Datenbahnen anwenden.
  • In zumindest einem Beispiel umfasst das Taktsignal ein Halbraten-Vorwärtstaktsignal.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner elektrostatischen Entladungsschutz bereitstellen.
  • In zumindest einem Beispiel ist die Logik der physikalischen Schicht zumindest teilweise durch Hardwareschaltungen implementiert.
  • In zumindest einem Beispiel sollen gültige Signale auf den gültigen Signalbahnen übertragen werden, und jedes gültige Signal identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der Vielzahl von Datenbahnen nachfolgen sollen, und Datenstromsignale sollen auf den Datenstromsignalbahnen übertragen werden, und jedes Datenstromsignal identifiziert eine Art der Daten auf den einen oder mehreren Datenbahnen.
  • In zumindest einem Beispiel, soll die Datenverbindung Datengeschwindigkeiten über 8 Gb/s unterstützen.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um eine einseitige Signalübertragung auf einer Datenverbindung bereitzustellen, die eine Vielzahl von Bahnen umfasst, welche eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen und ein oder mehrere Verbindungszustandsmaschinen-Seitenbandbahnen umfassen, um ein Taktsignal zur Verwendung durch die Vielzahl von Bahnen zu senden, wobei Signale, die auf jeder der Vielzahl von Bahnen gesendet werden, mit dem Taktsignal abgeglichen sein sollen, um eine Übersprechunterdrückung zwischen zwei oder mehr aus der Vielzahl von Datenbahnen bereitzustellen, und um eine Pro-Bit-Arbeitszykluskorrektur für die Datenverbindung bereitzustellen, wobei jede der Datenbahnen in der Mitte der Bahn auf eine regulierte Spannung terminiert wird.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Laufzeitverschiebungen auf zumindest einer bestimmten der Datenbahnen detektieren und die Laufzeitverschiebung der bestimmten Datenbahn entfernen.
  • Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um zu identifizieren, dass jeweilige obere Schichten jedes einer Vielzahl von geschichteten Protokollen einen Übergang einer Datenverbindung von einem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand anfordern, wobei jedes der Vielzahl von geschichteten Protokollen die Datenverbindung als physikalische Schicht nutzen soll, und um die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand basierend auf einer Identifikation überzuführen, dass die oberen Schichten jedes der Vielzahl von geschichteten Protokollen einen Übergang zu dem Niedrigenergieverbindungszustand anfordert.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner an einem Handshake mit anderen Vorrichtungen teilnehmen, um zu bewirken, dass die Datenverbindung in den Niedrigenergieverbindungszustand übergeht.
  • In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht Verbindungsschichtdaten in dem Verbindungsschicht-Handshake senden, während die Datenverbindung in dem aktiven Verbindungszustand ist.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ein Datenstromsignal im Wesentlichen gleichzeitig mit den Verbindungsschichtdaten senden, um zu identifizieren, dass Daten, die auf Datenschichten der Datenverbindung gesendet wurden, Verbindungsschichtpakete umfassen.
  • In zumindest einem Beispiel wird das Datenstromsignal auf einer dedizierten Datenstromsignalbahn der Datenverbindung während eines bestimmten Fensters gesendet, wobei die Verbindungsschichtdaten ebenfalls während des bestimmten Fensters gesendet werden.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ein gültiges Signal auf einer dedizierten gültigen Signalbahn der Datenverbindung senden, wobei das gültige Signal in einem anderen Fenster gesendet wird, das dem bestimmten Fenster direkt vorausgeht, um anzugeben, dass die in dem bestimmten Fenster gesendeten Daten gültig sind.
  • In zumindest einem Beispiel umfasst der Handshake eine Handshake-Kommunikation über eine Seitenbandverbindung.
  • In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake und die Handshake-Kommunikation über die Seitenbandverbindung.
  • In zumindest einem Beispiel bestätigt die Handshake-Kommunikation über die Seitenbandverbindung den Verbindungsschicht-Handshake.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner eine Anfrage von einer oberen Schicht eines ersten der Vielzahl von geschichteten Protokollen identifizieren, die Datenverbindung von dem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand überzuführen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner warten, um die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand überzuführen, bis Anfragen von jedem der anderen Protokolle der Vielzahl geschichteter Protokolle empfangen werden.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht für jedes der Vielzahl geschichteter Protokolle verfolgen, ob das Protokoll angefragt hat, die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand überzuführen.
  • In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner vor dem tatsächlichen Übergang der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand eine Antwort auf die Anfrage erzeugen, den Übergang der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand zu bestätigen.
  • In zumindest einem Beispiel wird die Antwort gesendet, während die Genehmigung des Überganges der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand von einem oder mehreren der anderen Protokolle in der Vielzahl geschichteter Protokolle ausstehend ist.
  • In zumindest einem Beispiel umfasst der Niedrigenergieverbindungszustand einen Ruheverbindungszustand.
  • In zumindest einem Beispiel umfasst die Vielzahl der geschichteten Protokolle eines oder mehrere aus PCI, PCIe, IDI und QPI.
  • Es kann ein System bereitgestellt werden, um eine Datenverbindung zu umfassen, welche eine Vielzahl von Bahnen, eine erste Vorrichtung und eine zweite Vorrichtung umfasst, die unter Verwendung der Datenverbindung mit der ersten Vorrichtung kommunikativ verbunden ist, wobei die zweite Vorrichtung Oberschichtlogik eines ersten Protokolls, Oberschichtlogik eines zweiten Protokolls, wobei jeder der Vielzahl von Protokollstapeln eine gemeinsame physikalische Schicht nutzt, und Logik der physikalischen Schicht für die gemeinsame physikalische Schicht umfasst, worin die Logik der physikalischen Schicht feststellen soll, dass jedes der Protokolle einschließlich des ersten und des zweiten Protokolls, welche die Datenverbindung nutzen, das Überführen der Datenverbindung von einem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand genehmigt, bevor die Datenverbindung in den Niedrigenergieverbindungszustand übergeführt wird.
  • In zumindest einem Beispiel umfasst die Vielzahl von Bahnen eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen.
  • In zumindest einem Beispiel sollen gültige Signale auf den gültigen Signalbahnen übertragen werden, und jedes gültige Signal identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der Vielzahl von Datenbahnen nachfolgen sollen, und Datenstromsignale sollen auf den Datenstromsignalbahnen übertragen werden, und jedes Datenstromsignal identifiziert eine Art der Daten auf den einen oder mehreren Datenbahnen.
  • In zumindest einem Beispiel umfasst das Überführen der Datenverbindung in den Niedrigenergieverbindungszustand einen Handshake zwischen der ersten und der zweiten Vorrichtung.
  • In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake und einen Seitenband-Handshake.
  • In zumindest einem Beispiel umfasst die erste Vorrichtung einen ersten Nacktchip in einem Gehäuse, und die zweite Vorrichtung umfasst einen zweiten Nacktchip in dem Gehäuse.
  • In zumindest einem Beispiel umfasst die erste Vorrichtung eine Vorrichtung auf dem Gehäuse, und die zweite Vorrichtung umfasste eine Vorrichtung, die nicht auf dem Gehäuse ist.

Claims (26)

  1. Gerät, umfassend: eine Logik einer physikalischen Schicht, um: Daten auf einer oder mehreren Datenbahnen einer physikalischen Verbindung zu empfangen; ein gültiges Signal auf einer anderen der Bahnen der physikalischen Verbindung zu empfangen, wobei das gültige Signal dazu dient, zu identifizieren, dass gültige Daten auf eine Zusicherung des gültigen Signals auf der einen oder den mehreren Datenbahnen folgen werden; und ein Datenstromsignal auf einer anderen der Bahnen der physikalischen Verbindung zu empfangen, wobei das Datenstromsignal dazu dient, eine Art der Daten auf der einen oder den mehreren Datenbahnen zu identifizieren, wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die physikalische Verbindung nutzen, und wobei die Logik der physikalischen Schicht ferner dazu dient, das Datenstromsignal zu dekodieren, um das Protokoll zu identifizieren, das den Daten zugeordnet ist.
  2. Gerät nach Anspruch 1, wobei die Logik der physikalischen Schicht ferner dazu dient, ein Verbindungszustandsmaschinen-Verwaltungssignal über eine weitere der Bahnen der physikalischen Verbindung zu senden.
  3. Gerät nach Anspruch 1, wobei die Logik der physikalischen Schicht ferner dazu dient, die Daten an eine Oberschichtprotokolllogik weiterzuleiten, die einem bestimmten der in dem Datenstromsignal identifizierten Vielzahl von Protokollen entspricht, und das Gerät ferner Oberschichtlogik jedes der Vielzahl von Protokollen umfasst.
  4. Gerät nach Anspruch 1, wobei die Logik der physikalischen Schicht ferner dazu dient, ein Datenfenster für auf den Datenbahnen zu sendende Daten zu definieren, und das Datenfenster dem gültigen Signal entspricht.
  5. Gerät nach Anspruch 4, wobei das Datenfenster einem Datensymbol entspricht und das gültige Signal in einem Fenster zugesichert werden soll, das dem Fenster, in dem die Daten gesendet werden sollen, direkt vorausgeht.
  6. Gerät nach Anspruch 5, wobei Daten auf Datenbahnen in einem Fenster, das einem vorausgehenden Fenster direkt nachfolgt, in dem das gültige Signal nicht zugesichert ist, ignoriert werden sollen.
  7. Gerät nach Anspruch 4, wobei jedes aus dem gültigen Datensignal, Daten und dem Datenstromsignal gemäß für die physikalische Verbindung definierten Datenfenstern abgeglichen wird.
  8. Verfahren, umfassend: Empfangen eines gültigen Signals auf einer dedizierten Bahn für ein gültiges Signal in einem ersten Fenster, wobei die Bahn für ein gültiges Signal eine aus einer Vielzahl von Bahnen in einer Datenverbindung ist; Empfangen von Daten auf dedizierten Datenbahnen in der Datenverbindung während eines nachfolgenden zweiten Fensters und Bestimmen, dass die Daten, die während des nachfolgenden zweiten Fensters empfangen werden, gültig sind, basierend auf dem gültigen Signal während des ersten Fensters, wobei das Verfahren ferner umfasst: Empfangen eines Datenstromsignals auf einer dedizierten Datenstromsignalbahn der Datenverbindung während des zweiten Fensters, wobei das Datenstromsignal eine Art der Daten auf den dedizierten Datenbahnen identifiziert und wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die Datenverbindung nutzen; Dekodieren des Datenstromsignals; und Bestimmen des Protokolls, das den Daten zugeordnet ist, aus dem Dekodieren des Datenstromsignals.
  9. Verfahren nach Anspruch 8, wobei die Bahn für ein gültiges Signal eine Bahn für ein ankommendes gültiges Signal umfasst und die Datenbahnen ankommende Datenbahnen umfassen, wobei das Verfahren ferner Folgendes umfasst: Identifizieren von Daten, die auf der Datenverbindung gesendet werden sollen; Senden eines gültigen Signals auf einer Bahn für ein ausgehendes gültiges Signal der Datenverbindung während eines bestimmten Fensters, wobei das gültige Signal den zu sendenden Daten entspricht; und Senden der Daten auf dedizierten ausgehenden Datenbahnen während eines anderen Fensters, das dem bestimmten Fenster direkt nachfolgt.
  10. Gerät, umfassend: eine Logik einer physikalischen Schicht, um: Daten zu identifizieren, die auf dedizierten Datenbahnen einer Datenverbindung gesendet werden sollen; Senden eines gültigen Signals auf einer dedizierten Datenbahn für ein gültiges Signal der Datenverbindung während eines bestimmten Fensters, wobei das gültige Signal Daten entspricht, die auf der Datenverbindung gesendet werden sollen; Senden der Daten auf dedizierten Datenbahnen der Datenverbindung während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt; und Senden eines Datenstromsignals auf einer Datenstromsignalverbindung, wobei das Datenstromsignal kodiert ist, um eine Art der Daten zu identifizieren, wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die Datenverbindung nutzen, und wobei die Logik der physikalischen Schicht ferner dazu dient, das Datenstromsignal zu kodieren, um das Protokoll zu identifizieren, das den Daten zugeordnet ist.
  11. Gerät nach Anspruch 10, wobei das gültige Signal dazu dient, anzugeben, dass die Daten auf den Datenbahnen während des anderen Fensters gültige Daten sind.
  12. Gerät nach Anspruch 10, wobei die Datenstromsignalverbindung eine dedizierte Datenstromsignalverbindung umfasst.
  13. Gerät nach Anspruch 10, wobei das Datenstromsignal angepasst ist, um zu identifizieren, ob ein bestimmtes Protokoll den Daten zugeordnet ist.
  14. Gerät nach Anspruch 13, wobei die Logik der physikalischen Schicht in einer gemeinsamen physikalischen Schicht enthalten ist und eine Vielzahl von Protokollen die gemeinsame physikalische Schicht nutzt, und das bestimmte Protokoll in der Vielzahl von Protokollen enthalten ist.
  15. Gerät nach Anspruch 10, wobei die Logik der physikalischen Schicht ferner dazu dient, Verbindungsschichtdaten auf den Datenbahnen zu senden, wobei die Verbindungsschichtdaten verwendet werden, um die Datenverbindung von einem ersten Verbindungszustand in einen zweiten Verbindungszustand überzuführen.
  16. Gerät nach Anspruch 15, wobei der erste Verbindungszustand einen aktiven Verbindungszustand umfasst und der zweite Verbindungszustand einen Niedrigenergieverbindungszustand umfasst.
  17. Gerät nach Anspruch 10, wobei die Logik der physikalischen Schicht ferner dazu dient, ein erstes Datenfenster zu identifizieren, das dem gültigen Signal entspricht, und die Daten auf den Datenbahnen innerhalb eines zweiten Datenfensters zu senden, das dem ersten Datenfenster direkt nachfolgt.
  18. Verfahren, umfassend: Identifizieren von Daten, die auf dedizierten Datenbahnen einer Datenverbindung gesendet werden sollen; Senden eines gültigen Signals auf einer dedizierten Bahn für ein gültiges Signal der Datenverbindung während eines bestimmten Fensters, wobei das gültige Signal den zu sendenden Daten entspricht; Senden der Daten auf dedizierten Datenbahnen der Datenverbindung während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt; und Senden eines Datenstromsignals auf einer Datenstromsignalverbindung, wobei das Datenstromsignal kodiert ist, um eine Art der Daten zu identifizieren, wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die Datenverbindung nutzen, und wobei das Datenstromsignal kodiert ist, um das Protokoll zu identifizieren, das den Daten zugeordnet ist.
  19. Verfahren nach Anspruch 18, wobei Datenbahnen ausgehende Datenbahnen umfassen, wobei die Bahn für ein gültiges Signal eine ausgehende Bahn für ein gültiges Signal umfasst, und die Datenstromsignalbahn eine ausgehende Datenstromsignalbahn umfasst, wobei das Verfahren ferner Folgendes umfasst: Empfangen eines gültigen Signals auf einer Bahn für ein gültiges Signal der Datenverbindung in einem ersten Fenster; Empfangen von Daten auf dedizierten ankommenden Datenbahnen der Datenverbindung während eines direkt nachfolgenden zweiten Fensters; und Bestimmen, dass die Daten, die während des nachfolgenden zweiten Fensters empfangen wurden, gültig sind, basierend auf dem gültigen Signal, das während des ersten Fensters empfangen wurde.
  20. System, umfassend: eine Zwischenverbindung, die eine Vielzahl von Bahnen umfasst, wobei die Vielzahl von Bahnen eine Vielzahl von dedizierten Datenbahnen, zumindest eine dedizierte Bahn für ein gültiges Signal und zumindest eine Datenstromsignalbahn umfasst; eine erste Vorrichtung; und eine zweite Vorrichtung, die unter Zwischenverwendung der Verbindung kommunikativ mit der ersten Vorrichtung verbunden ist, wobei die erste Vorrichtung eine Logik einer logischen physikalischen Schicht umfasst, um: Daten auf der Vielzahl von Datenbahnen zu empfangen; ein gültiges Signal auf der Bahn für ein gültiges Signal zu empfangen, wobei das gültige Signal identifiziert, dass gültige Daten auf eine Zusicherung des gültigen Signals auf der Vielzahl von Datenbahnen folgen werden; und ein Datenstromsignal auf der Datenstromsignalbahn zu empfangen, wobei das Datenstromsignal eine Art der Daten auf der Vielzahl von Datenbahnen identifiziert, wobei die Art ein Protokoll umfasst, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die Zwischenverbindung nutzen, und wobei die Logik der physikalischen Schicht ferner dazu dient, das Datenstromsignal zu dekodieren, um das Protokoll zu identifizieren, das den Daten zugeordnet ist.
  21. System nach Anspruch 20, wobei die Logik einer logischen physikalischen Schicht ferner dazu dient, Daten auf einer Seitenbandverbindung zu senden und zu empfangen, welche die Logik einer logischen physikalischen Schicht der ersten Vorrichtung mit einer Logik einer logischen physikalischen Schicht der zweiten Vorrichtung verbindet.
  22. System nach Anspruch 20, wobei die Logik einer logischen physikalischen Schicht ferner dazu dient, um: ein gültiges Signal auf der Bahn für ein gültiges Signal während eines bestimmten Fensters zu senden, wobei das gültige Signal Daten entspricht, die auf der Datenverbindung gesendet werden sollen; die Daten auf der Vielzahl von Datenbahnen während eines anderen Fensters zu senden, das dem bestimmten Fenster direkt nachfolgt; und ein Datenstromsignal auf der Datenstromsignalverbindung zu senden, wobei das Datenstromsignal kodiert ist, um eine Art der Daten zu identifizieren, die auf der Vielzahl von Datenbahnen gesendet wird.
  23. System nach Anspruch 22, wobei die Vielzahl von dedizierten Datenbahnen, die zumindest eine dedizierte Bahn für ein gültiges Signal und die zumindest eine Datenstromsignalbahn ausgehende Bahnen der Zwischenverbindung umfassen und die Vielzahl von Bahnen ferner eine ankommende Vielzahl von dedizierten Datenbahnen, zumindest eine ankommende dedizierte Bahn für ein gültiges Signal und zumindest eine ankommende Datenstromsignalbahn umfasst.
  24. System nach Anspruch 20, wobei die Vielzahl von Datenbahnen ferner eine dedizierte Verbindungszustandsmaschinen-Seitenbandbahn umfasst.
  25. System nach Anspruch 20, wobei die erste Vorrichtung einen ersten Nacktchip in einem Gehäuse umfasst und die zweite Vorrichtung einen zweiten Nacktchip im Gehäuse umfasst.
  26. System nach Anspruch 20, wobei die erste Vorrichtung eine gehäusegetragene Vorrichtung umfasst und die zweite Vorrichtung eine gehäuseunabhängige Vorrichtung umfasst.
DE112013007734.5T 2013-12-26 2013-12-26 Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt Active DE112013007734B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/077744 WO2015099719A1 (en) 2013-12-26 2013-12-26 Multichip package link

Publications (2)

Publication Number Publication Date
DE112013007734T5 DE112013007734T5 (de) 2016-12-22
DE112013007734B4 true DE112013007734B4 (de) 2023-03-30

Family

ID=53479385

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013007734.5T Active DE112013007734B4 (de) 2013-12-26 2013-12-26 Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt

Country Status (8)

Country Link
US (3) US10073808B2 (de)
EP (2) EP3361391B1 (de)
JP (1) JP6461959B2 (de)
KR (2) KR101985157B1 (de)
CN (2) CN105765544B (de)
DE (1) DE112013007734B4 (de)
RU (1) RU2656732C2 (de)
WO (1) WO2015099719A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012145652A1 (en) 2011-04-20 2012-10-26 Trustees Of Tufts College Dynamic silk coatings for implantable devices
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
CN105765544B (zh) 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
US9971733B1 (en) 2014-12-04 2018-05-15 Altera Corporation Scalable 2.5D interface circuitry
US9940287B2 (en) * 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation
WO2017052662A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Stream identifier lane protection
DE112015006953T5 (de) * 2015-09-26 2018-06-14 Intel Corporation Training einer gültigen lane
DE112015006961T5 (de) 2015-09-26 2018-06-14 Intel Corporation Verbindungsfehlerdetektion in mehrfachchipgehäusen
US9946674B2 (en) * 2016-04-28 2018-04-17 Infineon Technologies Ag Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller
JP6702605B2 (ja) * 2016-06-17 2020-06-03 ホアウェイ・テクノロジーズ・カンパニー・リミテッド チャネル補正方法及びチャネル補正装置並びに通信システム
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
US11416281B2 (en) 2016-12-31 2022-08-16 Intel Corporation Systems, methods, and apparatuses for heterogeneous computing
US10317459B2 (en) 2017-04-03 2019-06-11 Nvidia Corporation Multi-chip package with selection logic and debug ports for testing inter-chip communications
US11095556B2 (en) * 2017-06-30 2021-08-17 Intel Corporation Techniques to support multiple protocols between computer system interconnects
US20190004990A1 (en) 2017-07-01 2019-01-03 Stephen R. Van Doren Techniques to support mulitple interconnect protocols for an interconnect
US11249779B2 (en) * 2017-09-01 2022-02-15 Intel Corporation Accelerator interconnect assignments for virtual environments
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
US10402365B2 (en) * 2018-01-16 2019-09-03 Qualcomm Incorporated Data lane validation procedure for multilane protocols
US20190356412A1 (en) * 2018-05-16 2019-11-21 Qualcomm Incorporated Fast termination of multilane double data rate transactions
KR20210088653A (ko) 2018-11-09 2021-07-14 자일링크스 인코포레이티드 스트리밍 플랫폼 흐름 및 아키텍처
US10698856B1 (en) * 2018-12-18 2020-06-30 Ati Technologies Ulc Alternative protocol selection
WO2020145956A1 (en) * 2019-01-09 2020-07-16 Hewlett-Packard Development Company, L.P. Data link changes based on requests
US11442876B2 (en) * 2019-05-30 2022-09-13 Intel Corporation System, apparatus and method for synchronizing multiple virtual link states over a package interconnect
CN110536541A (zh) * 2019-08-23 2019-12-03 天津市滨海新区信息技术创新中心 一种减小stub影响的PCB结构及设计方法
US11762802B2 (en) 2019-12-05 2023-09-19 Intel Corporation Streaming fabric interface
US10771108B1 (en) * 2019-12-17 2020-09-08 Cadence Design Systems, Inc. Crosstalk cancellation in a receiver
US11487683B2 (en) 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip
JP7164267B2 (ja) * 2020-12-07 2022-11-01 インテル・コーポレーション ヘテロジニアスコンピューティングのためのシステム、方法及び装置
JP2022105928A (ja) * 2021-01-05 2022-07-15 住友電気工業株式会社 光トランシーバおよび光トランシーバの制御方法
CN112817908B (zh) * 2021-02-05 2023-06-20 中国电子科技集团公司第五十八研究所 裸芯间高速扩展***及其扩展方法
CN113051111B (zh) * 2021-03-05 2022-06-24 海光信息技术股份有限公司 多芯片模块故障识别处理方法及***
JP2022143741A (ja) 2021-03-18 2022-10-03 キオクシア株式会社 半導体集積回路及びその動作方法
US20220318111A1 (en) * 2021-12-30 2022-10-06 Intel Corporation Compliance and debug testing of a die-to-die interconnect
US11765849B2 (en) 2022-02-16 2023-09-19 International Business Machines Corporation Daughter card plug detection
US20240004815A1 (en) * 2022-06-29 2024-01-04 Advanced Micro Devices, Inc. Scheduling training of an inter-chiplet interface

Citations (1)

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

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62260262A (ja) 1986-05-06 1987-11-12 Mitsubishi Electric Corp デ−タ転送制御装置
JP3332432B2 (ja) * 1992-12-15 2002-10-07 キヤノン株式会社 データ通信方法及び印刷制御装置
EP0706138A1 (de) 1994-10-03 1996-04-10 International Business Machines Corporation Abwechselnde Datengültigkeitssteuerungssignale für Hochgeschwindigkeitsdatenübertragung
EP0863640A3 (de) 1997-03-04 2005-09-21 Texas Instruments Incorporated Verbesserte Bitübertragungsschicht- Schnittstellenvorrichtung
US6141691A (en) 1998-04-03 2000-10-31 Avid Technology, Inc. Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements
US6556589B2 (en) 1998-04-17 2003-04-29 Advanced Micro Devices, Inc. Network transceiver for steering network data to selected paths based on determined link speeds
CN1968053B (zh) 2000-04-17 2012-08-15 北方电讯网络有限公司 用于无线通信的物理和链路层的自动重发请求协议合作
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7844767B2 (en) 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US20060041696A1 (en) * 2004-05-21 2006-02-23 Naveen Cherukuri Methods and apparatuses for the physical layer initialization of a link-based system interconnect
US8028143B2 (en) * 2004-08-27 2011-09-27 Qualcomm Incorporated Method and apparatus for transmitting memory pre-fetch commands on a bus
US7337250B1 (en) * 2004-12-30 2008-02-26 Emc Corporation Low latency data transmission method and system
KR20060081522A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기
WO2007143010A2 (en) * 2006-05-31 2007-12-13 Qualcomm Incorporated Physical layer repeater with roaming support based on multiple identifiers
KR100776945B1 (ko) * 2006-09-27 2007-11-21 (재)대구경북과학기술연구원 직렬 데이터 전송 구현을 위한 메모리 유닛
KR100788299B1 (ko) * 2006-12-19 2007-12-27 (재)대구경북과학기술연구원 복수의 차동 레인을 공유하는 직렬전송 시스템
US9008244B2 (en) * 2008-11-10 2015-04-14 Broadcom Corporation Method and system for a combined signal detection for physical layer communication devices
CN101740937B (zh) * 2008-11-12 2012-08-29 富士康(昆山)电脑接插件有限公司 具有防尘盖的线缆连接器
CN102257569B (zh) * 2009-01-12 2014-10-22 拉姆伯斯公司 时钟转发的低功率信号传输***
US8321719B2 (en) * 2009-09-25 2012-11-27 Intel Corporation Efficient clocking scheme for a bidirectional data link
KR20110080524A (ko) 2010-01-06 2011-07-13 삼성전자주식회사 프로토콜 인터페이스 변환장치 및 방법
US8356155B2 (en) * 2010-09-13 2013-01-15 Advanced Micro Devices, Inc. Dynamic RAM Phy interface with configurable power states
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US8824489B1 (en) * 2011-04-26 2014-09-02 Marvell International Ltd. Physical layer (PHY) devices for use in automotive and industrial applications
WO2013006586A1 (en) 2011-07-01 2013-01-10 Qualcomm Atheros, Inc. System and method for standby power reduction in a serial communication system
CN103326808B (zh) * 2012-03-21 2017-04-12 浙江大华技术股份有限公司 一种数据传输方法、装置及***
US8446903B1 (en) 2012-05-22 2013-05-21 Intel Corporation Providing a load/store communication protocol with a low power physical unit
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
US9065722B2 (en) * 2012-12-23 2015-06-23 Advanced Micro Devices, Inc. Die-stacked device with partitioned multi-hop network
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
US20160188519A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Method, apparatus, system for embedded stream lanes in a high-performance interconnect

Patent Citations (1)

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

Also Published As

Publication number Publication date
CN108052463B (zh) 2021-08-17
JP2017506010A (ja) 2017-02-23
US11003610B2 (en) 2021-05-11
CN105765544B (zh) 2019-04-09
RU2656732C2 (ru) 2018-06-06
EP3361391B1 (de) 2021-01-27
KR20180030938A (ko) 2018-03-26
KR20160078417A (ko) 2016-07-04
EP3828717A2 (de) 2021-06-02
US20200320031A1 (en) 2020-10-08
CN105765544A (zh) 2016-07-13
EP3828717A3 (de) 2021-06-09
US10552357B2 (en) 2020-02-04
EP3087491A1 (de) 2016-11-02
US20170083475A1 (en) 2017-03-23
EP3087491A4 (de) 2017-08-30
KR101925694B1 (ko) 2018-12-05
CN108052463A (zh) 2018-05-18
KR101985157B1 (ko) 2019-05-31
EP3087491B1 (de) 2018-12-05
JP6461959B2 (ja) 2019-01-30
US10073808B2 (en) 2018-09-11
DE112013007734T5 (de) 2016-12-22
RU2016120702A (ru) 2017-11-30
EP3361391A1 (de) 2018-08-15
WO2015099719A1 (en) 2015-07-02
US20180300275A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
CN107430569B (zh) 多芯片封装链路
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE112013007724T5 (de) Gemeinsame Benutzung von Speicher und I/O-Diensten zwischen Knoten
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE102018005753A1 (de) Serdes link training
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
DE102020101958A1 (de) Dynamisches spurzugriffswechseln zwischen pcie-wurzelräumen
DE102021121490A1 (de) Annähernde datenbusinversionstechnik für latenzempfindliche anwendungen
DE112013007770B3 (de) Vorrichtungen, verfahren und system zum senden und empfangen über eine schnittstelle
DE102020134763A1 (de) Closed chassis debugging through tunneling
DE112013007842B3 (de) System, vorrichtung und verfahren zum erzeugen und senden von flits verschiedener protokolle in unterschiedlichen modi
DE112013007769B3 (de) System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen
DE112013007841B3 (de) System, vorrichtung und verfahren zum empfangen einer sync-kopfzeile und protokollidentifikationsdaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R130 Divisional application to

Ref document number: 112013007770

Country of ref document: DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final