DE102018005753A1 - Serdes link training - Google Patents

Serdes link training Download PDF

Info

Publication number
DE102018005753A1
DE102018005753A1 DE102018005753.5A DE102018005753A DE102018005753A1 DE 102018005753 A1 DE102018005753 A1 DE 102018005753A1 DE 102018005753 A DE102018005753 A DE 102018005753A DE 102018005753 A1 DE102018005753 A1 DE 102018005753A1
Authority
DE
Germany
Prior art keywords
retimer
parameter values
port
upstream port
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018005753.5A
Other languages
English (en)
Inventor
Debendra Das Sharma
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 DE102018005753A1 publication Critical patent/DE102018005753A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling
    • G06F2213/4002Universal serial bus hub with a single upstream port
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Aspekte der Ausführungen behandeln Systeme und Verfahren zum Durchführen von Verbindungstraining unter Verwendung von gespeicherten und abgerufenen Abgleichparametern, erhalten von einer vorangegangenen Abgleichprozedur. Als Teil einer Verbindungstrainingssequenz können Verbindungen, die einen Upstream-Port mit einem Downstream-Port und mit eventuellen beteiligten Retimern verbinden, eine Abgleichprozedur durchlaufen. Die Abgleichparameterwerte für jede Systemkomponente, umfassend den Upstream-Port und den Downstream-Port und Retimer können in einem nichtflüchtigen Speicher gespeichert werden. Während eines anschließenden Verbindungstrainingsprozesses können die im nichtflüchtigen Speicher gespeicherten Abgleichparameterwerte in Register geschrieben werden, die mit dem Upstream-Port, dem Downstream-Port und zum Betreiben der Verbindungsverknüpfungen verwendeten Retimern assoziiert sind. Die Abgleichparameterwerte können statt der Durchführung einer neuen Abgleichprozedur verwendet werden, oder sie können als Startpunkt zum Reduzieren von mit Abgleichprozeduren assoziierter Latenz eingesetzt werden.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht den Nutzen der vorläufigen US- Anmeldung Nr. 62/548857 , eingereicht am 22. August 2017, deren gesamter Inhalt hier durch Verweis übernommen wird.
  • STAND DER TECHNIK
  • Serialisierer/Deserialisierer-(SerDes)-Verbindungen werden für die Kommunikation in Rechensystemen verwendet. Eine SerDes-Verbindung weist einen Serialisierer auf, um ausgehende parallele Daten, wie Daten von einer Verbindung, in serielle Daten zu serialisieren. Die SerDes-Verbindung weist auch einen Deserialisierer auf, um eingehende serielle Daten in parallele Daten zu deserialisieren. Eine SerDes-Verbindung ist in Rechnersystemen verbreitet, die energieeffiziente Hochgeschwindigkeitskommunikation verwenden.
  • Verbindungen können verwendet werden, um Kommunikation zwischen verschiedenen Einrichtungen in einem System bereitzustellen, wobei eine Art von Verbindungsmechanismus eingesetzt wird. Ein typisches Kommunikationsprotokoll für Kommunikationsverbindungen zwischen Einrichtungen in einem Rechnersystem ist ein „Peripheral Component Interconnect Express“-Kommunikationsprotokoll (PCI Express™ (PCIe™)). Dieses Kommunikationsprotokoll ist ein Beispiel für ein Lade-/Speicher-Eingabe-/Ausgabe-(I/O)-Verbindungssystem. Die Kommunikation zwischen den Einrichtungen erfolgt typischerweise seriell mit sehr hohen Geschwindigkeiten gemäß diesem Protokoll.
  • Einrichtungen können über verschiedene Anzahlen von Datenverbindungen verbunden sein, wobei jede Datenverbindung eine Mehrzahl von Datenspuren aufweist. Upstream-Einrichtungen und Downstream-Einrichtungen durchlaufen bei der Initialisierung Verbindungstraining, um Datenübertragungen über die verschiedenen Links und Spuren zu optimieren.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem, aufweisend einen Mehrkernprozessor.
    • 2 ist ein Prozessablaufdiagramm für Verbindungstrainingsverknüpfungen zwischen zwei Einrichtungen.
    • 3A ist ein schematisches Diagramm eines Systems, das einen Downstream-Port (DSP) aufweist, der mit einem Upstream-Port (USP) und zwei Retimern gemäß Ausführungsformen der vorliegenden Offenbarung verbunden ist.
    • 3B ist ein schematisches Diagramm, das Register-Lese-/Schreibzugriffspfade zwischen dem Downstream-Port (DSP) und dem Upstream-Port (USP) und den zwei Retimern von 3A gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 4A-C sind schematische Diagramme einer geplanten Potenzialstruktur und Registerstruktur für den Abgleich und andere Sende- und Empfangsschaltungseinstellungen gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5A ist ein Prozessablaufdiagramm zum Durchführen eines Verbindungstrainings, aufweisend den Abgleich, bei Ausführungsformen der vorliegenden Offenbarung.
    • 5A ist ein Prozessablaufdiagramm zum Laden des Abgleichs und anderer Parameter zum Verbindungstraining bei Ausführungsformen der vorliegenden Offenbarung.
    • 6A ist ein Prozessablaufdiagramm für einen Retimer zum Speichern von Abgleichparameterwerten gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 6B ist ein Prozessablaufdiagramm zum Schreiben von Abgleichparameterwerten in ein Retimer-Register gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 7 veranschaulicht eine Ausführungsform eines Rechensystems, aufweisend eine Verbindungsarchitektur.
    • 8 veranschaulicht eine Ausführungsform einer Verbindungsarchitektur, aufweisend einen geschichteten Stapel.
    • 9 veranschaulicht eine Ausführungsform einer Anfrage oder eines Pakets, das innerhalb einer Verbindungsarchitektur erzeugt oder empfangen werden soll.
    • 10 veranschaulicht eine Ausführungsform eines Sender- und Empfängerpaars für eine Verbindungsarchitektur.
    • 11 veranschaulicht einen beispielhaften Mehrkernprozessor gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 12 veranschaulicht eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem.
    • 13 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem, aufweisend mehrere Prozessorsockel.
    • 14 veranschaulicht eine beispielhafte Recheneinrichtung, die verschiedene hier beschriebene Komponenten aufweisen und/oder zur Verwendung damit geeignet sein kann.
    • 15 ist ein Prozessablaufdiagramm zum Einsatz gespeicherter Abgleichparameter zum Verbindungstraining gemäß Ausführungsformen der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie beispielsweise spezifische Typen von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische Architektur- und Mikroarchitekturdetails, spezifische Registerkonfigurationen, spezifische Anweisungstypen, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessor-Pipeline-Stufen und Betriebsweise usw., um ein gründliches Verständnis der vorliegenden Offenbarung bereitzustellen. Für Fachleute auf diesem Gebiet ist es jedoch ersichtlich, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Offenbarung umzusetzen. In anderen Fällen wurden bereits bekannte Komponenten oder Verfahren, wie z. B. spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Code für beschriebene Algorithmen, spezifischer Firmwarecode, spezifische Verbindungsbetriebsweise, spezifische Logik-Auslegungen, spezifische Herstellungstechniken und -materialien, spezielle Compiler-Implementierungen, spezifische Expression von Algorithmen im Code, spezifische Abschalt- und Gating-Techniken/Logik und andere spezifische betriebliche Details des Rechnersystems nicht im Einzelnen beschrieben, um die vorliegende Offenbarung nicht unnötig zu verschleiern.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf Energieeinsparung und Energieeffizienz in spezifischen integrierten Schaltkreisen wie in Rechenplattformen oder Mikroprozessoren beschrieben sein können, sind weitere Ausführungsformen auf andere Arten von integrierten Schaltkreisen und Logikeinrichtungen anwendbar. Ähnliche Techniken und Lehren aus hier beschriebenen Ausführungsformen können bei anderen Arten von Schaltungen oder Halbleitereinrichtungen angewandt werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung profitieren können. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ einschränkt. Sie können auch in anderen Einrichtungen Verwendung finden, wie Handhelds, Tablets, anderen flachen Notebooks, System-auf-einem-Chip-(SOC)-Einrichtungen und eingebetteten Anwendungen. Einige Beispiele für Handheld-Geräte umfassen Mobiltelefone, Internetprotokoll-Einrichtungen, Digitalkameras, PDAs (Personal Digital Assistants) und Handheld-PCs. Eingebettete Anwendungen umfassen üblicherweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein System-auf-einem-Chip, Netzwerk-Computer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, Weitverkehrsnetzwerk-(WAN)-Switches oder beliebige andere Systeme, die die im Folgenden gelehrten Funktionen und Vorgänge durchführen können. Zudem sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Recheneinrichtungen beschränkt, sondern sie können sich auch auf Softwareoptimierungen zur Energieeinsparung und Effizienz beziehen.
  • Die folgende Beschreibung bezieht sich auf die beigefügten Zeichnungen. Die gleichen Kennziffern können in unterschiedlichen Zeichnungen verwendet werden, um die gleichen oder ähnliche Elemente zu kennzeichnen. In der folgenden Beschreibung sind zum Zweck der Erläuterung und ohne beabsichtigte Einschränkung spezifische Details dargelegt, wie z. B. besondere Strukturen, Architekturen, Schnittstellen, Techniken usw., um ein gründliches Verständnis der verschiedenen Aspekte verschiedener Ausführungsformen bereitzustellen. Für Fachleute auf diesem Gebiet ist es jedoch bei Kenntnis der vorliegenden Offenbarung offensichtlich, dass die verschiedenen Aspekte der verschiedenen Ausführungsformen in anderen Beispielen umgesetzt werden können, die von diesen spezifischen Details abweichen. In bestimmten Fällen sind Beschreibungen bereits bekannter Einrichtungen, Schaltungen und Verfahren ausgelassen, um die Beschreibung der verschiedenen Ausführungsformen nicht durch unnötige Einzelheiten zu verschleiern. Zum Zweck des vorliegenden Dokuments bedeutet der Wortlaut „A oder B“ (A), (B) oder (A und B).
  • Mit Bezug auf 1 ist eine Ausführungsform eines Blockdiagrams für ein Rechensystem, aufweisend einen Mehrkernprozessor, dargestellt. Der Prozessor 100 umfasst einen beliebigen Prozessor oder eine Verarbeitungseinrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen Handheld-Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System-auf-einem-Chip (SOC) oder eine andere Einrichtung zum Ausführen von Code. Bei einer Ausführungsform weist der Prozessor 100 mindestens zwei Kerne auf - Kern 101 und Kern 102, die asymmetrische Kerne oder symmetrische Kerne aufweisen können (die dargestellte Ausführungsform). Der Prozessor 100 kann jedoch eine beliebige Anzahl von Verarbeitungselementen aufweisen, die symmetrisch oder asymmetrisch sein können.
  • Bei einigen Ausführungsformen bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente umfassen: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder ein beliebiges anderes Element, der einen Zustand für einen Prozessor aufnehmen kann, wie zum Beispiel einen Ausführungszustand oder einen Architekturzustand. Anders ausgedrückt, bezieht sich ein Verarbeitungselement bei einer Ausführungsform auf beliebige Hardware, die unabhängig mit Code, wie z. B. einem Software-Thread, einem Betriebssystem, einer Anwendung oder anderem Code assoziiert sein kann. Ein physischer Prozessor (oder Prozessor Sockel) bezieht sich üblicherweise auf einen integrierten Schaltkreis, der potenziell eine beliebige Anzahl anderer Verarbeitungselemente aufweist, wie Kerne oder Hardware-Threads.
  • Ein Kern bezieht sich häufig auf Logik, die an einem integrierten Schaltkreis positioniert ist, der einen unabhängigen Architekturzustand beibehalten kann, wobei jeder unabhängig beibehaltene Architekturzustand mit mindestens einigen detektierten Ausführungsressourcen assoziiert ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread üblicherweise auf beliebige Logik, die an einem integrierten Schaltkreis positioniert ist, der einen unabhängigen Architekturzustand beibehalten kann, wobei der unabhängig beibehaltene Architekturzustand den Zugriff auf Ausführungsressourcen teilen kann. Wie ersichtlich ist, kommt es, wenn bestimmte Ressourcen geteilt werden und andere für einen Architekturzustand dediziert sind, zu Überschneidungen zwischen der Nomenklatur eines Hardware-Threads und Kerns. Dennoch werden ein Kern und ein Hardware-Thread durch ein Betriebssystem häufig als individuelle logische Prozessoren betrachtet, wobei das Betriebssystem Vorgänge an jedem logischen Prozessor individuell planen kann.
  • Der physische Prozessor 100 entsprechend der Darstellung in 1 weist zwei Kerne auf - Kern 101 und 102. Hierbei werden die Kerne 101 und 102 als symmetrische Kerne betrachtet, d. h. als Kernel mit den gleichen Konfigurationen, Funktionseinheiten und/oder Logik. Bei einer weiteren Ausführungsform weist der Kern 101 einen reihenfolgeveränderlichen Prozessorkern auf, während der Kern 102 einen reihenfolgetreuen Prozessorkern aufweist. Die Kerne 101 und 102 können jedoch individuell aus beliebigen Typen von Kernen ausgewählt werden, wie z. B. einem nativen Kern, einem softwareverwalteten Kern, einem zum Ausführen einer nativen Instruction Set Architecture (ISA)-Architektur eingerichteten Kern, einem zum Ausführen einer übersetzten Instruction Set Architecture (ISA)-Architektur eingerichteten Kern, einem mitkonzipierten Kern oder einem anderen bekannten Kern. In einer heterogenen Kern-Umgebung (d. h. asymmetrische Kerne) kann eine Form der Übersetzung, zum Beispiel eine binäre Translation, verwendet werden, um Code an einem Kern oder an beiden Kernen zu planen oder auszuführen. Um die Erörterung weiter zu unterstützen sind die in Kern 101 dargestellten Funktionseinheiten im Folgenden detaillierter beschrieben, da die Einheiten in Kern 102 bei der dargestellten Ausführungsform in ähnlicher Weise arbeiten.
  • Entsprechend der Darstellung weist der Kern 101 zwei Hardware-Threads 101a und 101b auf, die auch als Hardware-Thread-Slots 101a und 101b bezeichnet werden können. Daher betrachteten Softwareeinheiten wie ein Betriebssystem bei einer Ausführungsform potentiell den Prozessor 100 als vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die vier Software-Threads gleichzeitig ausführen können. Wie weiter oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 101a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 101b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 102a assoziiert sein, und ein vierter Thread kann mit Architekturzustandsregistern 102b assoziiert sein. Hierbei kann jedes der Architekturzustandsregister (101a, 101b, 102a und 102b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten entsprechend der vorstehenden Beschreibung bezeichnet werden. Entsprechend der Darstellung werden die Architekturzustandsregister 101a in Architekturzustandsregistern 101b repliziert, sodass individuelle Architekturzustandsregister/Kontexte für den logischen Prozessor 101 a und den logischen Prozessor 101b gespeichert werden können. Im Kern 101 können auch andere kleinere Ressourcen, wie z. B. Anweisungszeiger und Umbenennungslogik im Allokator- und Umbenennerblock 130, für die Threads 101a und 101b repliziert werden. Einige Ressourcen wie Umordnungspuffer in der Reorder/Retirement-Einheit 135, ILTB 120, Lade-/Speicherpuffer und Warteschlangen können durch Partitionieren geteilt werden. Andere Ressourcen wie universelle interne Register, Seiten-Tabellen-Basisregister, der Low-Level-Daten-Cache und Daten-TLB 115, die Ausführungseinheiten 140 und Teile der reihenfolgeveränderlichen Einheit 135 werden potenziell vollständig geteilt.
  • Der Prozessor 100 weist häufig weitere Ressourcen auf, die vollständig geteilt, durch Partitionieren geteilt oder durch/für Verarbeitungselemente dediziert werden können. In 1 ist eine Ausführungsform eines lediglich beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors dargestellt. Man beachte, dass ein Prozessor beliebige dieser Funktionseinheiten aufweisen oder auslassen kann sowie auch beliebige andere nicht dargestellte bekannte Funktionseinheiten, Logik oder Firmware aufweisen kann. Entsprechend der Darstellung weist der Kern 101 einen vereinfachten, repräsentativen reihenfolgeveränderlichen (OOO) Prozessorkern auf. Bei unterschiedlichen Ausführungsformen kann jedoch ein reihenfolgetreuer Prozessor verwendet werden. Der OOO-Kern umfasst einen Zweig-Zielpuffer 120 zur Vorhersage von auszuführenden/heranzuziehenden Zweigen und einen Anweisungsübersetzungspuffer (I-TLB) 120 zum Speichern von Adressübersetzungseinträgen für Anweisungen.
  • Der Kern 101 weist ferner das mit der Abrufeinheit 120 gekoppelte Decodiermodul 125 zum Decodieren abgerufener Elemente auf. Bei einer Ausführungsform weiß die Abruflogik individuelle Ablaufsteuerungen auf, die mit Thread-Slots 101a bzw. 101b assoziiert sind. Normalerweise ist der Kern 101 mit einer ersten ISA assoziiert, die auf einem Prozessor 100 ausführbare Anweisungen definiert/vorgibt. Häufig weisen Maschinen oder Anweisungen, die Teil der ersten ISA sind, einen Teil der Anweisung auf, bezeichnet als Opcode, der eine auszuführende Anweisung oder einen Vorgang bezeichnet/vorgibt. Die Decodierlogik 125 weist Schaltung auf, die diese Anweisungen aus ihren Opcodes erkennt und die decodierten Anweisungen in die Pipeline zur Verarbeitung entsprechend der Definition durch die erste ISA weiterleitet. Beispielsweise weisen entsprechend der detaillierten Erörterung weiter unten die Decoder 125 bei einer Ausführungsform Logik auf, die zum Erkennen spezifischer Anweisungen wie z. B. Transaktionsanweisungen konzipiert oder eingerichtet ist. Infolge der Erkennung durch die Decoder 125 ergreifen die Architektur oder der Kern 101 spezifische vordefinierte Maßnahmen zum Ausführen der mit der jeweiligen Anweisung assoziierten Aufgaben. Es ist wichtig, darauf hinzuweisen, dass alle Aufgaben, Blöcke, Vorgänge und Verfahren, die hier beschrieben sind, in Reaktion auf eine einzelne oder mehrere Anweisungen ausgeführt werden können; von denen einige neue oder alte Anweisungen sein können. Man beachte, dass die Decoder 126 bei einer Ausführungsform die gleiche ISA (oder eine Untermenge davon) erkennen. Alternativ dazu erkennen die Decoder 126 eine zweite ISA in einer heterogenen Kern-Umgebung (entweder eine Untermenge der ersten ISA oder eine gesonderte ISA).
  • Bei einem Beispiel weist der Allokator- und Umbenennerblock 130 einen Allokator auf, um Ressourcen wie Registerdateien zum Speichern von Anweisungsverarbeitungsergebnissen zu reservieren. Die Threads 101a und 101b sind potenziell in der Lage, reihenfolgeveränderliche Ausführung durchzuführen, wobei der Allokator- und Umbenennerblock 130 ebenfalls weitere Ressourcen reserviert, wie Umordnungspuffer zum Nachverfolgen von Anweisungsergebnissen. Die Einheit 130 kann auch einen Register-Umbenenner aufweisen, um Programm/Anweisung-Bezugsregister zu anderen internen Registern des Prozessors 100 umzubenennen. Die Reorder/Retirement-Einheit 135 weißt Komponenten auf wie die vorstehend erwähnten Umstellungspuffer, Ladepuffer und Speicherpuffer, um eine reihenfolgeveränderliche Ausführung und einen späteren reihenfolgetreuen Rückzug von reihenfolgeveränderlich ausgeführten Anweisungen zu unterstützen.
  • Bei einer Ausführungsform weist der Planungs- und Ausführungseinheitenblock 140 eine Planungseinheit zum Planen von Anweisungen/Vorgängen an Ausführungseinheiten auf. Beispielsweise ist eine Gleitkommaanweisung an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Mit den Ausführungseinheiten assoziierte Registerdateien sind ebenfalls umfasst, um Informations-Anweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten weisen eine Gleitkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und weitere bekannte Ausführungseinheiten auf.
  • Lower-Level-Daten-Cache und Datenübersetzungspuffer (D-TLB) 150 sind mit Ausführungseinheiten 140 gekoppelt. Der Daten-Cache dient zum Speichern kürzlich verwendeter/eingesetzter Elemente wie Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zum Speichern kürzlicher Übersetzungen von virtuellen/linearen zu physischen Adressen. Als spezifisches Beispiel kann ein Prozessor eine Seiten-Tabellen-Struktur aufweisen, um physikalischen Speicher in eine Mehrzahl virtueller Seiten aufzuteilen.
  • Hierbei teilen die Kerne 101 und 102 den Zugriff auf Cache-Speicher höherer Ebene oder weiter ausgelagerter Position, assoziiert mit der On-Chip-Schnittstelle 110. Man beachte, dass „höherer Ebene“ oder „weiter ausgelagert“ sich auf Cache-Ebenen beziehen, die zunehmend oder weiter von den Ausführungseinheiten entfernt sind. Bei einer Ausführungsform ist Cache höherer Ebene ein Daten-Cache der letzten Ebene - der letzte Cache in der Speicherhierarchie am Prozessor 100 - wie ein Datencache zweiter oder dritter Ebene. Cache höherer Ebene ist jedoch nicht derart eingeschränkt, da er mit einem Anweisungs-Cache assoziiert sein oder diesen aufweisen kann. Ein Trace-Cache - ein Typ eines Anweisungs-Caches - kann dagegen nach dem Decoder 125 gekoppelt sein, um kürzlich decodierte Spuren zu speichern. Hierbei bezieht sich eine Anweisung potenziell auf eine Makroanweisung (d. h. eine von den Decodern anerkannte allgemeine Anweisung), die in eine Anzahl von Mikroanweisungen (Mikrovorgängen) decodieren kann.
  • Bei der dargestellten Konfiguration weist der Prozessor 100 auch ein On-Chip-Schnittstellenmodul 110 auf. Historisch wurde eine Speichersteuerung, die im Folgenden detaillierter beschrieben ist, in ein zum Prozessor 100 externes Rechensystem übernommen. In diesem Szenario soll die On-Chip-Schnittstelle 11 mit zum Prozessor 100 externen Einrichtungen kommunizieren, wie dem Systemspeicher 175, einem Chipset (häufig aufweisend einen Speichersteuerungs-Hub zum Verbinden mit dem Speicher 175 und einem I/O-Steuerungs-Hub zum Verbinden mit Peripherieeinrichtungen), einem Speichersteuerungs-Hub, einet Northbridge oder einer anderen integrierten Schaltung. In diesem Szenario kann der Bus 105 beliebige bekannte Verbindungen aufweisen, wie z. B. einen Multidrop-Bus, eine Punkt-zu-Punkt-Verbindung, eine serielle Verbindung, einen parallelen Bus, einen kohärenten (z. B. Cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differenziellen Bus und einen GTL-Bus.
  • Der Speicher 175 kann für den Prozessor 100 vorgesehen oder mit anderen Einrichtungen in einem System geteilt werden. Übliche Beispiele für Typen des Speichers 175 umfassen DRAM, SRAM, nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichereinrichtungen. Die Einrichtung 180 kann einen Grafikbeschleuniger, einen Prozessor oder eine mit einem Speichersteuerungs-Hub gekoppelte Karte umfassen sowie mit einem I/O-Steuerungs-Hub gekoppelten Datenspeicher, einen drahtlosen Sendeempfänger, eine Flash-Einrichtung, eine Audio-Steuerung, eine Netzwerk-Steuerung oder eine andere bekannte Einrichtung.
  • Da in neuerer Zeit mehr Logik und Einrichtungen auf einem einzelnen Die integriert sind, wie bei einem SOC, kann jede dieser Einrichtungen jedoch auf dem Prozessor 100 integriert sein. Beispielsweise ist bei einer Ausführungsform ein Speichersteuerungs-Hub auf dem gleichen Paket und/oder Die mit dem Prozessor 100. Hierbei weist ein Teil des Kerns (ein On-Core-Abschnitt) 110 eine oder mehrere Steuerungen zur Verbindung mit anderen Einrichtungen wie Speicher 175 oder einer Grafikeinrichtung 180 auf. Die eine Verbindung und Steuerungen zur Verbindung mit derartigen Einrichtungen aufweisende Konfiguration wird häufig als On-Core- (oder Un-Core-)Konfiguration bezeichnet. Als Beispiel weist eine On-Chip-Schnittstelle 110 eine Ringverbindung zur On-Chip-Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 zur Off-Chip-Kommunikation auf. Dennoch können in der SOC-Umgebung sogar weitere Einrichtungen wie die Netzwerkschnittstelle, Koprozessoren, Speicher 175, ein Grafikprozessor 180 und beliebige andere bekannte Rechnereinrichtungen/Schnittstellen auf einem einzelnen Die oder integrierten Schaltkreis integriert werden, um einen kleineren Formfaktor mit großer Funktionalität und geringem Stromverbrauch bereitzustellen.
  • Bei einer Ausführungsform ist der Prozessor 100 fähig zum Ausführen eines Compilers, Optimieren und/oder Übersetzen von Code 177 zum Kompilieren, Übersetzen und/oder Optimieren von Anwendungscode 176 zum Unterstützen der hier beschriebenen Vorrichtungen und Verfahren oder zu ihrer Verbindung. Ein Compiler weist häufig ein Programm oder eine Programmgruppe zum Übersetzen von Quelltext/Code in Zieltext/Code auf. Normalerweise erfolgt das Kompilieren von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und geht über zur Umwandlung von Programmiersprachencode höherer Ebene in Maschinen- oder Assemblersprachcode niedrigerer Ebene. Dennoch können zur einfachen Kompilierung weiterhin Einzelschritt-Compiler eingesetzt werden. Ein Compiler kann beliebige bekannte Kompiliertechniken verwenden und beliebige bekannte Compiler-Vorgänge durchführen, wie zum Beispiel lexikalische Analyse, Vorverarbeitung, Parsing, semantische Analyse, Codeerzeugung, Codeumwandlung und Codeoptimierung.
  • Größere Compiler weisen oft mehrere Phasen auf, aber häufig sind diese Phasen in zwei allgemeinen Phasen umfasst: (1) einem Frontend, d. h. generell, wo syntaktische Verarbeitung, semantische Verarbeitung und einige Umwandlungen/Optimierungen erfolgen können, und (2) einem Backend, d. h. generell, wo Analyse, Umwandlungen, Optimierungen und Codeerzeugung erfolgen. Einige Compiler beziehen sich auf ein Mittelding, was die unklare Grenzziehung zwischen einem Frontend und einem Backend eines Compilers veranschaulicht. Dementsprechend kann ein Verweis auf Einfügung, Zuordnung, Erzeugung oder sonstige Vorgänge eines Compilers in beliebigen der vorstehend erwähnten Phasen oder Schritten wie auch in beliebigen anderen bekannten Phasen oder Schritten eines Compilers erfolgen. Als veranschaulichendes Beispiel fügt ein Compiler potenziell Vorgänge, Aufrufe, Funktionen usw. in einer oder mehreren Phasen der Kompilierung ein, wie zum Beispiel das Einfügen von Aufrufen/Vorgängen in einer Frontend-Phase der Kompilierung mit anschließender Umwandlung der Aufrufe/Vorgänge in Code niedriger Ebene während einer Umwandlungsphase. Man beachte, dass während der dynamischen Kompilierung Compiler-Code oder dynamischer Optimierungscode derartige Vorgänge/Aufrufe einsetzen kann wie auch den Code zur Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann binärer Code (bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hierbei kann der Programmcode den dynamischen Optimierungscode, den binären Code oder eine Kombination daraus aufweisen.
  • Ähnlich einem Compiler übersetzt ein Übersetzer wie ein binärer Translator Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Ein Verweis auf die Ausführung von Code, Anwendungscode, Programmcode oder eine sonstige Softwareumgebung kann sich daher beziehen auf: (1) Ausführung eines Compilerprogramms, Optimierungscode-Optimierers oder dynamischen oder statischen Übersetzers zum Kompilieren von Programmcode, zur Pflege von Softwarestrukturen, zum Durchführen anderer Vorgänge, zum Optimieren von Code oder zum Übersetzen von Code; (2) Ausführung von Hauptprogrammcode, umfassend Vorgänge/Aufrufe, wie z. B. Anwendungscodes, der optimiert/kompiliert worden ist; (3) Ausführung von sonstigem Programmcode, wie Bibliotheken, der mit dem Hauptprogrammcode assoziiert ist, zur Pflege von Softwarestrukturen zum Durchführen anderer softwarebezogener Vorgänge oder zum Optimieren von Code; oder (4) eine Kombination daraus.
  • Hier erwähnte Ausführungsformen beziehen sich auf Systeme und Verfahren zur Verringerung eines Zeitaufwands zum Verbindungstraining von Verbindungen, z. B. gemäß Peripheral Component Interconnect Express (PCIe). Während des Verbindungstrainings können Sender und Empfänger einen Equalizer-Abgleich durchlaufen. Der Abgleichprozess verläuft ununterbrochen über etwa 100 ms für jede Datenrate oberhalb von Gen 2. Der Abgleich wird somit typischerweise vor dem Herstellen der Verbindung durchgeführt, um zu vermeiden, dass Transaktionen aufgrund der während des Abgleichs nicht verfügbaren Verbindung den Zeitrahmen überschreiten. Da der Abgleich für jede Datenrate einzigartig ist, wird der Abgleich für jede der Datenraten oberhalb von Gen 2 entsprechend der Darstellung in 2.
  • 2 ist ein Prozessablaufdiagramm 200 für Verbindungstrainingsverknüpfungen zwischen zwei Einrichtungen. Zu Beginn erfolgt ein Verbindungstraining auf L0 bei Gen-1-Datenraten (2,5 GT/s) (202). Die Datenraten Gen 3 und darüber werden durch alle (Pseudo)-Ports angezeigt. Die Verknüpfung tritt in Gen 1 in Wiederherstellung und ändert die Geschwindigkeit auf Gen 3 (8 GT/s) zum Verbindungstraining (204). Die Verbindung kann einen Abgleich und ein Training auf L0 bei Gen 3 durchführen. Gen-4- und Gen-5-Datenraten werden nicht angezeigt. Der Abgleich Teil des Gen-3-Verbindungstrainings kann etwa 100 ms erfordern. Die Verknüpfung tritt in Gen 3 in Wiederherstellung und ändert die Geschwindigkeit auf Gen 4 (16 GT/s) zum Verbindungstraining (206). Die Verknüpfung kann einen Abgleich durchführen, der weitere 100 ms erfordern kann. Das Verbindungstraining erfolgt auf L0 bei Gen 4, während die Gen-5-Datenrate nicht angezeigt wird. Die Verknüpfung tritt in Gen 4 in Wiederherstellung und ändert die Geschwindigkeit auf Gen 5 (32 GT/s) zum Verbindungstraining (208). Die Verknüpfung führt einen Abgleich bei Gen-5-Geschwindigkeit durch, der weitere 100 ms erfordern kann. Danach erfolgt das Verbindungstraining auf L0 bei Gen 5. Die Initialisierung der Ablaufsteuerung kann bei Gen 5 (210) abgeschlossen sein, was dazu führt, dass die Verknüpfung vollständig bei Gen 5 (212) betriebsbereit ist. Der Prozessablauf 200 kann bei jedem Initialisieren der Einrichtungen erfolgen (z. B. im Werk und auch bei Einschaltsequenzen).
  • Die Latenz, die sich aus dem sequenziellen Abgleichprozess für jede Datenrate ergibt, wird zur Verbindungstrainingszeit hinzugefügt, während der in der Verknüpfung keine Transaktionen anstehen. Der Latenzeffekt kann bei Anwendungen stärker ausgeprägt sein, die Ressourcen aufweisen, die um mehrere Serverknoten bewegt werden können, indem Hot-Plug-Abläufe zwischen den geteilten Ressourcen und den Rechenknoten aufgerufen werden.
  • Dieser Offenbarung behandelt die Latenz beim Verbindungstraining durch einmaliges Durchführen eines Abgleichs und Speichern der sich ergebenden Abgleichparameterwerte in einem nichtflüchtigen Speicher. Die gespeicherten Abgleichparameterwerte können über mehrere Boot-/Einschaltzyklen abgerufen werden. Der Abgleich und andere TX/RX-Einstellungen können gespeichert und im anschließenden Verbindungsrücksetz-, Plattformrücksetz-/Einschalt-Zyklus zum Übergehen des Abgleichs oder zur Verringerung der Latenz im Zusammenhang mit Abgleich während des Verbindungstrainings verwendet werden. Vorteile der vorliegenden Offenbarung sind für Fachleute auf diesem Gebiet leicht ersichtlich. Zu den Vorteilen zählen eine Verringerung der Zeit des Verbindungstrainings in der Größenordnung von 300-400 ms durch mit einer Werkseinstellung äquivalente Ladeeinstellungen.
  • Aspekte dieser Offenbarung umfassend das Durchführen eines Abgleichs bei jeder der Datenraten oberhalb von Gen 2 entsprechend der Beschreibung in 2 weiter oben und das Speichern der sich ergebenden Abgleicheinstellungen zum Vermeiden langwierigen Latenzabgleichs ab diesem Punkt. Falls sich die Einrichtungen in der Verknüpfung nicht geändert haben, können die gespeicherten Abgleichparameterwerte zum Verbindungstraining der Verknüpfungen zwischen verbundenen Einrichtungen in anschließenden Initialisierungsprozeduren verwendet werden.
  • Wenn die Verknüpfung(en) initialisiert wird/werden, durchläuft die Verknüpfung eine Abgleichprozedur. Systemsoftware, Firmware und/oder Hardware können bestimmen, ob die Komponenten der Verknüpfung lokale Speicher-/Wiederherstell-Abgleichparameter unterstützen können (oder diese Fähigkeit kann vorgeschrieben werden). Die Systemsoftware kann die Komponenten anweisen, die Einstellungen lokal zu speichern. Anderenfalls kann die Systemsoftware die Register auslesen und im Systemspeicher speichern. Falls bei einer anschließenden Verknüpfungsinitialisierung die gleichen Komponenten in der Verknüpfung vorliegen, kann die Systemsoftware den DSP einrichten, um den anderen Komponenten das Überspringen des Abgleichs anzugeben und entweder die Einstellungen aus ihrem lokalen Speicher wiederherzustellen oder die Register durch Zugriffe auf den Konfigurationszyklus für den DSP/USP zu laden. Für Retimer kann das System auf den Konfigurationsraum indirekt durch die DSP-Register zugreifen.
  • Dieser Offenbarung führt eine strukturierte geordnete Menge zum Zugriff auf die Retimer-Register (sowohl für Lese- als auch für Schreibvorgänge) unter Verwendung von 8b/10b-Codierung bei den niedrigeren Datenraten ein. Man beachte, dass die Timer-Konfigurationsregister auch durch die Steuer-SKP-OS gelesen werden können, die bereits in der Spezifikation bei Gen-4- oder Gen-5-Datenraten definiert wurde. Nachdem alle Komponenten ihre Abgleichs- und anderen TX/RX-Einstellungen geladen haben, kann die Systemsoftware den DSP zum Ändern der Datenrate auf Gen 3 und darüber angeben.
  • 3A ist ein schematisches Diagramm eines Systems 300, das einen Upstream-Port (USP) 302 aufweist, der mit einem Downstream-Port (DSP) 332 und zwei Retimern gemäß Ausführungsformen der vorliegenden Offenbarung verbunden ist. Der USP 302 kann Teil eines Prozessors einer Recheneinrichtung wie einer zentralen Verarbeitungseinheit (CPU) oder eines PCIe-konformen Switches sein. Der USP 302 kann mit einem nichtflüchtigen Speicher 322 verbunden sein. Der nichtflüchtige Speicher 322 kann ein Scratch-Pad-Speicher, Flash-Speicher oder sonstiger nichtflüchtiger Speicher sein. Der USP 302 kann ein TX/RX-Schaltungseinstellungs-Steuerungs-/Statusregister (CSR) 308 aufweisen. Das Steuer/Statusregister 308 kann Abgleichparameterwerte als Registereinstellungen für den USP 302 sowie weitere Parameterwerte aufweisen, die sich aus dem Verbindungstraining ergeben.
  • Der USP 302 kann auch Logik zur Kommunikation mit den Retimern 342 und 362 aufweisen. Beispielsweise kann der USP 302 eine Retimer-Konfigurationsregisteradresse und Datenlogik 304 und eine Retimer-Konfigurationsdaten-Rückmeldelogik 306 aufweisen. Die Logik kann in Software, Hardware oder einer Kombination aus Software und Hardware implementiert sein.
  • Der USP 302 kann auch einen Sender TX1 310 und einen Empfänger RX6 312 aufweisen. Der Sender TX1 310 kann mit einem Empfänger an einer nachgeschaltet verbundenen Einrichtung gekoppelt sein. In 3A-C ist TX1 310 durch eine Verknüpfung 382a mit einem Empfänger RX1 348 verbunden, der Teil eines Retimers 342. Es versteht sich jedoch, dass der USP-Sender TX1 308 direkt mit einem Empfänger an einem nachgeschalteten Port wie RX3 338 am DSP 332 gekoppelt sein kann.
  • Entsprechend kann der USP 302 einen Empfänger RX6 312 aufweisen, der mit einer nachgeschaltet verbundenen Einrichtung verbunden ist. In 3A-C ist RX6 310 durch eine Verknüpfung 384a mit einem Empfänger TX6 350 verbunden, der Teil eines Retimers 342 ist. Es versteht sich jedoch, dass der USP-Empfänger RX6 310 direkt mit einem Empfänger an einem nachgeschalteten Port wie TX4 340 am DSP 332 gekoppelt sein kann.
  • Der DSP 332 kann ein TX/RX-Schaltungseinstellungs-CSR 334 aufweisen, das Abgleichparameterwerte sowie weitere Parameterwerte aufweisen kann, die sich aus dem Verbindungstraining ergeben. Der DSP 332 kann auch einen durch eine Verknüpfung 382c zu einem Retimer-Sender TX3 372 am Retimer 362 verbundenen Empfänger RX3 338 aufweisen. Entsprechend kann der DSP 332 auch einen durch eine Verknüpfung 384c zu einem Retimer-Empfänger RX4 372 am Retimer 362 verbundenen Sender TX4 340 aufweisen.
  • Das System 300 ist so gezeigt, dass es zwei zwischen dem vorgeschalteten Port 302 und dem nachgeschalteten Port 332 verbundene Retimer aufweist. Obwohl zwei Retimer gezeigt sind, versteht sich, dass eine beliebige Anzahl von Retimern im Rahmen des Umfangs der Offenbarung verwendet werden kann, und zwar auch null Retimer, wobei der USP 302 direkt mit dem DSP 332 verbunden ist.
  • Ein erster Retimer 342 kann ein TX/RX-Schaltungseinstellungs-CSR 344 aufweisen, das Abgleichparameterwerte sowie weitere Parameterwerte aufweisen kann, die sich aus dem Verbindungstraining ergeben. Der erste Retimer 342 kann auch einen durch eine Verknüpfung 382a zu einem USP-Sender TX1 310 am USP 302 verbundenen Empfänger RX1 348 aufweisen. RX1 348 kann Downstream-Übertragungen vom USP 302 empfangen. Entsprechend kann der erste Retimer 342 auch einen durch eine Verknüpfung 382b zu einem Retimer-Empfänger RX2 368 an einem zweiten Retimer 362 verbundenen Sender TX2 352 aufweisen. TX2 352 kann in Downstream-Richtung zu einem DSP 332 über den Retimer 362 senden.
  • Der erste Retimer 342 kann auch einen Empfänger RX5 354 zum Empfangen von Upstream-Übertragungen z. B. vom zweiten Retimer 362 über eine Verknüpfung 384b aufweisen. Der erste Retimer 342 kann auch einen Sender TX6 350 für Upstream-Übertragungen über eine Verknüpfung 384a zum USP 302 aufweisen.
  • Ein zweiter Retimer 362 kann ein TX/RX-Schaltungseinstellungs-CSR 364 aufweisen, das Abgleichparameterwerte sowie weitere Parameterwerte aufweisen kann, die sich aus dem Verbindungstraining ergeben. Der zweite Retimer 362 kann auch einen durch eine Verknüpfung 382b zu einem ersten Retimer-Sender TX2 352 am ersten Retimer 342 verbundenen Empfänger RX2 368 aufweisen. RX2 368 kann Downstream-Übertragungen vom ersten Retimer 342 empfangen. Entsprechend kann ein zweiter Retimer 362 auch einen durch eine Verknüpfung 382c zu einem DSP-Empfänger RX3 338 am DSP 332 verbundenen Sender TX3 372 aufweisen. TX3 372 kann in Downstream-Richtung zum DSP 332 senden.
  • Der zweite Retimer 362 kann auch einen Empfänger RX4 374 zum Empfangen von Upstream-Übertragungen z. B. vom DSP 332 über eine Verknüpfung 384c aufweisen. Der zweite Retimer 362 kann auch einen Sender TX5 370 für Upstream-Übertragungen über eine Verknüpfung 384b zum ersten Retimer 342 aufweisen (z. B. zu RX5 354).
  • Die Verknüpfungen 382a-c und die Verknüpfungen 384a-c können Mehrspur-Verknüpfungen sein, die mit dem PCIe-Protokoll konform sind.
  • Bei einigen Ausführungsformen kann der erste Retimer 342 einen lokalen nichtflüchtigen Speicher 346 zum lokalen Speichern von Abgleichparametern aufweisen; der zweite Retimer 362 kann einen lokalen nichtflüchtigen Speicher 366 aufweisen. Der lokale nichtflüchtige Speicher kann ein Speicher des Scratch-Pad-Typs sein, der Abgleichparameterwerte und weitere Verbindungstrainingswerte zum Laden während einer anschließenden Initialisierung der verbundenen Einrichtungen speichern kann.
  • 3B ist ein schematisches Diagramm, das Register-Lese-/Schreibzugriffspfade zwischen dem Upstream-Port (USP) und dem Downstream-Port (DSP) und den zwei Retimern von 3A gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. Bei einigen Ausführungsformen kann der USP 302 direkt mit dem DSP 332 ohne Verwendung von Retimern verbunden werden. Bei derartigen Ausführungsformen kann der USP 302 direkt mit dem DSP 332 kommunizieren. Beispielsweise kann nach Durchführung der in 2 beschriebenen Abgleichsequenz der USP 302 die Abgleichparameter aus dem TX/RX-Schaltungseinstellungs-CSR 334 auslesen und die Abgleichparameter direkt in nichtflüchtigem Speicher 322 speichern. Bei der Reinitialisierung der Systemkomponenten kann der USP 302 die Abgleichparameterwerte für den DSP 332 aus dem nichtflüchtigen Speicher 322 abrufen und die Abgleichparameterwerte für den DSP 332 direkt in das TX/RX-Schaltungseinstellungs-CSR 334 schreiben.
  • Bei Ausführungen, die die Verwendung von Retimern zwischen den USP 302 und dem DSP 332 aufweisen, kann der USB nicht direkt in die CSR in den Retimern auslesen oder schreiben, da die CSR physikalische Schichteinheiten sind. Daher beschreibt dieser Offenbarung einen Mechanismus, durch den der USP 302 indirekt unter Verwendung von Befehlen physikalischer Schichten mit jedem Retimer kommunizieren kann, um die Abgleichparameterwerte in die Retimer-CSR (CSR 344 bzw. CSR 364) auszulesen und zu schreiben.
  • Jede Komponente des Systems 300 (z. B., USP 302, DSP 332, Retimer 342 und 362 usw.) kann eine Gruppe strukturierter Register aufweisen (z. B., CSR 308, 344, 364 und 334), die die Abgleicheinstellungen sowie andere Sender-(TX)- und Empfänger-(RX)-Einstellungen auf Spurbasis erfassen. 4A-C geben die Aufnahmestruktur zur Unterbringung dieser Register wieder.
  • 4A-C sind schematische Diagramme einer geplanten Potenzialstruktur und Registerstruktur 400 für den Abgleich und andere Sende- und Empfangsschaltungseinstellungen gemäß Ausführungsformen der vorliegenden Offenbarung. Die geplante Aufnahmestruktur 400 kann eine Mehrzahl von Bitfeldern umfassen, aufweisend eine Mehrzahl von Einstell-Bitfeldern, die spurspezifische Einstellregister aufweisen (z. B. Bitfelder 402a-p). Die Mehrzahl von Einstell-Bitfeldern weist ein Bildfeld für jede Spur der Verknüpfung auf; bei diesem Beispiel weist die Verknüpfung 16 Spuren auf, darunter Spur 0.
  • Jede Komponente kann einen lokalen zugehörigen Speicher aufweisen (z. B. Flash-Speicher oder anderen nichtflüchtigen Speicher 346 oder 366 in 3A-B), wobei die Retimer diese Register lokal speichern/wiederherstellen können. Die geplante Aufnahmestruktur kann ein gesetztes Bit 404 aufweisen, das das Vorliegen oder Fehlen eines lokalen nichtflüchtigen Speichers im Retimer und/oder in der Downstream-Einrichtung angibt. Wenn ein derartiger lokaler Speicher nicht verfügbar ist, kann Systemsoftware den Inhalt dieser Register auslesen und ihn nach dem ersten Abgleich in ihrem zugehörigen Speicher speichern (z. B. Flash-Speicher, Platte, anderer nichtflüchtiger Speicher 322) und die gespeicherten Werte bei anschließenden Abgleichen verwenden. Auf die Register in den Retimern 342 und 362 kann durch eine Gruppe geplanter Register entsprechend der Darstellung in 3A-B wie CSR 344 bzw. 364 zugegriffen werden.
  • 4B gibt ein Beispiel eines Einstell-Feldes 402p für Spur 15 der Verknüpfung wieder. Das Einstell-Bitfeld 402p weist Abgleichparameterwerte auf, die eine Abgleichprozedur wiedergeben, durchgeführt an der Verknüpfung und für die spezifische Spur (hier: Spur 15). Die vom Einstell-Bitfeld umfassten Abgleichparameterwerte weisen TX-EQ-Prä-Cursor- und Cursor-Bits (414), TX-EQ-Post-Cursor-Bits (416) und proprietäre RX/TX/PLL-Einstellregister (418) auf. Das Einstell-Bitfeld kann auch FS-, LF- und TX-Voreinstellungsbits (412) aufweisen. Diese Bitfelder (d. h. die FS-, LF- und TX- Voreinstellungsbits) charakterisieren die Einstellung des Senderdesigns, aufweisend seine detailgetreue Steuerung entsprechend der Planung in der PCIe-Spezifikation. Die FS- und LF-Bits geben den Bereich detaillierterer Koeffizienten an, mit denen der Empfänger den Sender betreiben kann. Das TX-Voreinstellfeld gibt an, welche der geplanten 11 Voreinstellfelder der TX zum Start benötigt, falls der RX einen Abgleich unter Verwendung von Koeffizienten durchführen muss. Einige reservierte Bits sind ebenfalls umfasst, die zu einem späteren Zeitpunkt für zusätzliche Funktionen verwendet werden können.
  • Zusätzlich zu den im Abgleichprozess verwendeten TX-Voreinstell-, FS-, LF-, Prä-Cursor-, Post-Cursor- und Cursor-Werten ermöglicht das hier beschriebene System auch jedes Design mit implementierungsspezifischen Registern (wie Parametern für verschiedene Kontrollschleifen, CTLE/DFE-Einstellungen usw.) die auf den Konfigurationsraum abgebildet sind. Somit kann eine Variable „Anzahl von DW pro Spur pro Datenrate“ definiert werden, die der Software die Anzahl von Doppelwörtern (DW) angibt, die für die betreffende Komponente gespeichert/wiederhergestellt werden müssen. Auf die Retimer-Register wird durch einen Fenstermechanismus unter Verwendung von Bits[9:0] bei Offset 06h durch die DSP CSR zugegriffen. Für lokales Speichern/Wiederherstellen sowie weitere Befehle gibt es Befehls-(Bits 11:10)/Antwort-(Bits 15:12)-Handshake-Registerbits mit Offset 06h. Tabelle 1 zeigt ein Beispiel einer geordneten Menge für Retimer-Register Lese-/Schreibvorgänge. Die geordnete Menge kann unter Verwendung von 8b/10b-Kodierung bei den niedrigeren Datenraten auf Retimer-Register zugreifen. Die Retimer-Konfigurationsregister können auch durch die Steuer-SKP-OS gelesen werden, die bereits in der Spezifikation bei Gen-4 oder Gen-5-Datenraten definiert wurde. Nachdem alle Komponenten ihre Abgleichs- und anderen TX/RX-Einstellungen geladen haben, kann die Systemsoftware den DSP zum Ändern der Datenrate auf Gen 3 und darüber angeben.
  • Jede Komponente in der Verknüpfung zeigt ihre Fähigkeit an, den Abgleich zu umgehen durch Einstellen eines zuvor reservierten Bits (z. B. Bit 6 von Symbol 5, ein Trainingssteuersymbol - hier umbenannt zu „Abgleich nur bei höchster Datenrate“) in den Trainingsgruppen (TS1 und TS2). Falls ein Retimer in einer Topologie (wie der in 3A-B gezeigten) die Fähigkeit zur EQ-Umgehung nicht unterstützt, setzt der Retimer das Bit „Abgleich nur bei höchster Datenrate“ auf 0b. Wenn somit die Verknüpfung erstmals auf L0 trainiert wird, wissen alle Komponenten, ob die Komponenten des verknüpften Systems die Fähigkeit aufweisen, am Mechanismus zum Speichern und Wiederherstellen der Abgleicheinstellungen zum Umgehen des Abgleichs teilzunehmen.
  • Die geplante Aufnahmestruktur 400 weist auch ein Befehlssteuer-/Statusregister-Bitfeld 404 auf. 4C gibt das Befehlssteuer-/Statusregister-Bitfeld 404 wieder. Tabelle 1. Geordnete Menge für Retimer-Register Lesen/Schreiben
    Symbol Nr. Beschreibung
    0 K28.4: Start von Steuerung/Status geordnete Menge
    1 Cmd / Resp[3:0]: Cmd / Resp[3:0]:
    0000b: NOP 0000b: NOP
    0001b: Load EQ 0001b: Load EQ
    0010b: Load EQ Response 0010b: Load EQ Response
    0011b: herstellerdefiniert (Hersteller-ID in Symbolen 2, 3) 0011b: herstellerdefiniert (Hersteller-ID in Symbolen 2, 3)
    0100b-1111b: Reserviert 0100b-1111b: Reserviert
    Rcvr No[3:0] Rcvr No[3:0]: Übertragung verwendet für
    Nur Retimer-Empfänger-Ziel an Lade-EQ-Antwort
    Lade-EQ
    2 Falls Cmd / Resp = Load EQ: 8B Addr Offset (32 bit) RX (B) 8B Addr Offset [7:0]: 00h Standard
    3 RX (C) 8B Addr Offset [7:0]: 00h Standard
    4 RX (D) 8B Addr Offset [7:0]: 00h Standard
    5 RX (E) 8B Addr Offset [7:0]: 00h Standard
    6-13 Falls Cmd / Resp = Load EQ: 64-Bit-Wert Reserviert
    14-15 {2'b00, Pro-Symbol-Parität für Symbole 13:1, 1'b0} {2'b00, Pro-Symbol-Parität für Symbole
  • Wiederum mit Bezug auf 3B kann der Upstream-Port 302 Software und/oder Hardware aufweisen, die Befehle in Downstream-Richtung zum Downstream-Port 322 und zu den Retimern 342 und 362 senden kann. Nach dem Verbindungstraining und Abgleich kann der Retimer Konfig Reg Adr/Daten-Logik 304 die geordnete Menge oder eine Variante der geordneten Menge von Tabelle 1 verwenden, um anzufordern, dass der Retimer 342 Abgleichparameterwerte aus dem TX/RX-Schaltungseinstellungs-CSR 344 einliest. Der Retimer 342 kann Abgleichparameterwerte zum Upstream-Port 302 zu einem Retimer Konfig Daten-Rücklogik 306 senden. Der Upstream-Port 302 kann die Abgleichparameterwerte in nichtflüchtigem Speicher 322 speichern. In ähnlicher Weise kann der Retimer Konfig Reg Adr/Daten-Logik 304 die geordnete Menge oder eine Variante der geordneten Menge aus Tabelle 1 verwenden, um anzufordern, dass der Retimer 362 Abgleichparameterwerte von TX/RX-Schaltungseinstellungs-CSR 364 einliest. Der Retimer 362 kann Abgleichparameterwerte zum Upstream-Port 302 zu einem Retimer Konfig Daten-Rücklogik 306 senden. Der Upstream-Port 302 kann die Abgleichparameterwerte in nichtflüchtigem Speicher 322 speichern. Man beachte, dass die in Tabelle 1 definierte geordnete Menge auch dann gesendet werden kann, wenn die Verknüpfung mit Transaktionen im L0-Zustand arbeitet, um sicherzustellen, dass Senden/Wiederherstellen von Abgleicheinstellungen an einer operativen Verbindung erfolgen kann.
  • Für ein anschließendes Verbindungstraining (z. B. für eine Reinitialisierung des Systems) kann der Retimer Konfig Reg Adr/Daten-Logik 304 die geordnete Menge oder eine Variante der geordneten Menge aus Tabelle 1 verwenden, um in nichtflüchtigem Speicher 322 gespeicherte Abgleichparameterwerte in das TX/RX-Schaltungseinstellungs-CSR 344 des Retimers 342 zu schreiben. In ähnlicher Weise kann der Retimer Konfig Reg Adr/Daten-Logik 304 die geordnete Menge oder eine Variante der geordneten Menge aus Tabelle 1 verwenden, um in nichtflüchtigem Speicher 322 gespeicherte Abgleichparameterwerte in das TX/RX-Schaltungseinstellungs-CSR 364 des Retimers 362 zu schreiben.
  • Bei Ausführungsformen kann der Retimer 342 einen nichtflüchtigen Speicher 346 aufweisen. Der Retimer 342 kann angewiesen werden, die Abgleichparameterwerte in dem nichtflüchtigen Speicher 346 statt in dem nichtflüchtigen Speicher 322 oder zusätzlich dazu zu speichern. Der Retimer Konfig Reg Adr/Daten-Logik 304 kann den Retimer 342 anweisen, die im lokalen nichtflüchtigen Speicher 346 gespeicherten Abgleichparameterwerte in das TX/RX-Schaltungseinstellungs-CSR 344 zu schreiben. In ähnlicher Weise kann der Retimer 362 einen nichtflüchtigen Speicher 366 aufweisen. Der Retimer 362 kann angewiesen werden, die Abgleichparameterwerte in dem nichtflüchtigen Speicher 366 statt in dem nichtflüchtigen Speicher 322 oder zusätzlich dazu zu speichern. Der Retimer Konfig Reg Adr/Daten-Logik 304 kann den Retimer 362 anweisen, die im lokalen nichtflüchtigen Speicher 366 gespeicherten Abgleichparameterwerte in das TX/RX-Schaltungseinstellungs-CSR 364 zu schreiben.
  • Zur Durchführung der Retimer-Registerzugriffe sendet der USP 302 einen Befehl der physikalischen Schicht durch die Retimer Konfig Reg Logik 304, der zum Retimer geht. Der Registerzugriffsbefehl kann eine Lese- (oder Schreib-)-Anforderung zu spezifischen Registern der TX/RX-Schaltungseinstellungs-CSR innerhalb eines Retimers aufweisen. Der USP 302 verwendet geordnete Mengen (wie die weiter oben für 8b/10b beginnend mit K28.4 definierte oder eine geordnete Steuer-SKP-Menge, eingerichtet in 128b/130b-Codierung), um diesen Befehl zu Retimern zu übermitteln. Die Antwort von den Retimern 342 und/oder 362 wird in einer geordneten Menge zurückgeführt, die in der Upstream-Richtung strömt, und in der Retimer Konfig Daten-Rücklogik 306 aufgezeichnet. Systemsoftware kann bei einem Lesevorgang anschließend die Werte aus den Registern in den nichtflüchtigen Speicher 322 einlesen und speichern oder sie als Angabe des Abschlusses eines Schreibvorgangs verwenden.
  • Wie zuvor erwähnt, kann der Upstream-Port 302 Logik aufweisen zum Lesen der Abgleichparameterwerte aus dem TX/RX-Schaltungseinstellungs-CSR 334 in den DSP 332, und er kann die Abgleichparameterwerte aus dem DSP 332 in den nichtflüchtigen Speicher 322 schreiben. Der USP 302 kann die Abgleichparameterwerte aus dem nichtflüchtigen Speicher 322 während eines Verbindungstrainings-Abgleichprozesses bei einer Reinitialisierung in die DSP TX/RX-Schaltungseinstellungs-CSR 334 schreiben. Der USP 302 kann auch die Abgleichparameterwerte zur Eigennutzung in den nichtflüchtigen Speicher 322 speichern, und er kann die im nichtflüchtigen Speicher 322 gespeicherten Abgleichparameterwerte während eines Verbindungstrainings-Abgleichprozesses bei einer Reinitialisierung verwenden.
  • Die Verwendung gespeicherter Abgleichparameterwerte ermöglicht dem System das Überspringen von Abgleichprozessen während anschließender Verbindungstrainings. Das System kann auch die Abgleichparameterwerte von einem vorangegangenen Verbindungstraining als Startpunkt für einen anschließenden Abgleichprozess verwenden, um die mit einem vollständigen Abgleichprozess zum Verbindungstraining assoziierte Latenzzeit zu reduzieren.
  • 5 ist ein Prozessablaufdiagramm 500 zum Durchführen eines Verbindungstrainings, aufweisend einen Abgleich gemäß Ausführungsformen der vorliegenden Offenbarung. Das Prozessablaufdiagramm 500 kann beispielsweise in einem Herstellerwerk oder bei der Ersteinrichtung der verknüpften Komponenten durchgeführt werden. Anfangs können ein Upstream-Port (USP) und ein Downstream-Port (DSP), die miteinander durch eine oder mehrere PCIe-konforme Verbindungen gekoppelt sind, ein Verbindungstraining durchlaufen, das eine Abgleichprozedur zum Bestimmen von einem oder mehreren Abgleichparameterwerten (502) aufweisen kann. Ein oder mehrere Retimer können mit dem Sender und Empfänger gekoppelt sein (z. B. zwischen dem Sender und Empfänger verbunden), und die Verbindungen, die die Retimer koppeln, können Verbindungstraining und Abgleichprozeduren durchlaufen. Der Upstream-Port kann Logik aufweisen, um Abgleichparameterwerte von mit dem Upstream-Port über die PCIe-konforme Verknüpfung, wie den Downstream-Port (510), abzurufen und zu speichern. Der Upstream-Port kann die Abgleichparameterwerte in einem nichtflüchtigen Speicher speichern, der mit dem Upstream-Port gekoppelt oder assoziiert ist.
  • Bei einigen Ausführungsformen kann der USP Logik aufweisen, um zu bestimmen, ob jeder Retimer einen lokalen nichtflüchtigen Speicher (504) aufweist. Beispielsweise kann die USP-Logik eine Datenstruktur empfangen, die ein gesetztes Bit aufweist, das das Vorliegen oder Fehlen eines in Bezug auf die Retimer lokalen nichtflüchtigen Speichers angibt. Die Upstream-Port kann in Software, Hardware oder einer Kombination aus Software und Hardware implementierte Logik aufweisen.
  • Falls der Retimer nicht einen lokalen nichtflüchtigen Speicher aufweist, kann der Upstream-Port Abgleichparameterwerte aus dem Retimer-Einstellungsregister (506) auslesen. Beispielsweise kann die Upstream-Port-Logik das Retimer-Einstellungsregister veranlassen, den Inhalt von einem oder mehreren angegebenen Registern, die Abgleichparameterwerte enthalten, bereitzustellen. Die Upstream-Port-Logik kann die Abgleichparameterwerte in einem nichtflüchtigen Speicher speichern, der mit dem Upstream-Port (508) gekoppelt (oder mit dem Upstream-Port assoziiert) ist.
  • Falls der Retimer nicht einen lokalen nichtflüchtigen Speicher aufweist, kann die Upstream-Port-Logik den Retimer anweisen, Abgleichparameterwerte in lokalem nichtflüchtigen Speicher zu speichern (512). Bei Ausführungsformen kann der Retimer Abgleichparameterwerte automatisch im lokalen nichtflüchtigen Speicher für den Retimer speichern. Die Abgleichparameterwerte für den Upstream-Port und den Downstream-Port können im nichtflüchtigen Speicher gespeichert werden, der mit dem Upstream-Port assoziiert ist (510).
  • 5B ist ein Prozessablaufdiagramm 520 zum Laden des Abgleichs und anderer Parameter zum Verbindungstraining gemäß Ausführungsformen der vorliegenden Offenbarung. Das Prozessablaufdiagramm 520 kann durchgeführt werden, nachdem die verknüpften Komponenten (z. B. Upstream-Port, Downstream-Port und eventuelle Retimer) reinitialisiert worden sind. Als Teil eines Reinitialisierungsprozesses kann das System ein Verbindungstraining durchlaufen. Zur Reinitialisierung kann das Verbindungstraining jedoch auf den Abgleichprozess verzichten, und es kann gespeicherte Werte von Abgleichparameterwerten verwenden.
  • Die Upstream-Port kann in Software, Hardware oder einer Kombination aus Software und Hardware implementierte Logik aufweisen. Die Upstream-Port-Logik kann Abgleichparameterwerte in ein Register des Upstream-Ports und ein Register des Downstream-Ports schreiben (528). Das System kann die Abgleichparameterwerte verwenden, um das Verbindungstraining abzuschließen (530).
  • Bei Ausführungsformen kann die Upstream-Port-Logik bestimmen, ob ein oder mehrere mit dem Upstream-Port und/oder dem Downstream-Port über eine oder mehrere PCIe-Verbindungen gekoppelte Retimer einen lokalen nichtflüchtigen Speicher aufweisen (524). Falls der Retimer einen lokalen nichtflüchtigen Speicher aufweist, kann die Upstream-Port-Logik den Retimer anweisen, in lokalem nichtflüchtigen Speicher gespeicherte Abgleichparameterwerte in das Retimer-Register zu schreiben.
  • Bei Ausführungsformen kann die Upstream-Port-Logik bestimmen, dass der/die Retimer nicht einen lokalen nichtflüchtigen Speicher aufweisen. Die Upstream-Port-Logik kann Abgleichparameter in die Retimer-Register schreiben (526).
  • 6A ist ein Prozessablaufdiagramm 600 für einen Retimer zum Speichern von Abgleichparameterwerten gemäß Ausführungsformen der vorliegenden Offenbarung. Der Retimer kann ein anfängliches Verbindungstraining durchlaufen, das einen Abgleichprozess aufweist, um einen oder mehrere Abgleichparameterwerte zu bestimmen (602). Falls der Retimer einen lokalen nichtflüchtigen Speicher aufweist (604), kann der Retimer die Abgleichparameterwerte im lokalen nichtflüchtigen Speicher zu speichern (612).
  • Falls der Retimer nicht einen lokalen nichtflüchtigen Speicher aufweist, kann der Retimer die Abgleichparameterwerte vorübergehend in einem Einstellungsregister des Retimers speichern (606). Der Retimer kann eine Leseanforderung von einem Upstream-Port zum Auslesen der im Einstellungsregister gespeicherten Abgleichparameterwerte empfangen (608). Der Retimer kann die Abgleichparameterwerte lesen und die Abgleichparameterwerte zum Upstream-Port zur Speicherung bereitstellen (610).
  • 6B ist ein Prozessablaufdiagramm 620 zum Schreiben von Abgleichparameterwerten in ein Retimer-Register gemäß Ausführungsformen der vorliegenden Offenbarung. Der Retimer kann als Teil einer Reinitialisierung des verbundenen Systems ein Verbindungstraining durchlaufen. Falls der Retimer einen lokalen nichtflüchtigen Speicher aufweist (624), kann der Retimer die Abgleichparameterwerte aus dem lokalen nichtflüchtigen Speicher auslesen und die Abgleichparameterwerte in das Retimer-Einstellungsregister schreiben (628). Falls der Retimer nicht einen lokalen nichtflüchtigen Speicher aufweist, kann der Retimer von einem Upstream-Port einen oder mehrere in einem nichtflüchtigen, mit dem Upstream-Port assoziierten Speicher gespeicherte Abgleichparameterwerte empfangen (626). Der Retimer kann die Abgleichparameterwerte in das Einstellungsregister schreiben (628). Das System kann die Abgleichparameterwerte zum Verbindungstraining verwenden, statt eine sequenzielle Abgleichprozedur für jede Datenrate durchzuführen (630).
  • Eine Verbindungsstruktur-Architektur umfasst die „Peripheral Component Interconnect (PCI) Express“-(PCIe)-Architektur. Ein primäres Ziel von PCIe ist es, Komponenten und Einrichtungen von unterschiedlichen Herstellern zur Zusammenarbeit in einer offenen Architektur zu befähigen, die mehrere Marktsegmente umspannt; Clients (Desktops und mobile Geräte), Server (Standard und Unternehmen) und eingebettete und Kommunikationseinrichtungen. PCIe ist ein I/O-Hochleistungs-Verbindungsprotokoll für universelle Zwecke, definiert für eine breite Vielfalt künftiger Rechen- und Kommunikationsplattformen. Einige PCI-Attribute wie Nutzungsmodell, Lade-Speicher-Architektur und Softwareschnittstellen wurde über die Revisionen beibehalten, während ältere Parallelbus-Implementierungen durch hochgradig skalierbare, vollständig serielle Schnittstellen ersetzt wurden. Neuere Versionen von PCI Express nutzen die Vorteile von Punkt-zu-Punkt-Verbindungen, Switch-basierter Technologie und Paketprotokollen, um neue Ebenen von Leistung und Merkmalen bereitzustellen. Leistungsmanagement, Dienstgüte (QoS), Hot-Plug/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung zählen zu einigen der erweiterten, durch PCI Express unterstützten Merkmalen.
  • Mit Bezug auf 7 ist eine Ausführungsform einer Struktur dargestellt, die aus Punkt-zu-Punkt-Verknüpfungen zusammengesetzt ist, die eine Gruppe von Komponenten verbinden. Das System 700 weist den Prozessor 705 und Systemspeicher 710 auf, gekoppelt mit dem Steuerungs-Hub 715. Der Prozessor 705 weist beliebige Verarbeitungselemente auf, wie einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Koprozessor oder sonstigen Prozessor. Der Prozessor 705 ist mit dem Steuerungs-Hub 715 durch den Front-Side-Bus (FSB) 706 gekoppelt. Bei einer Ausführungsform ist der FSB 706 eine serielle Punkt-zu-Punkt-Verbindung entsprechend der Beschreibung weiter unten. Bei einer anderen Ausführungsform weist die Verbindung 706 eine serielle, differenzielle Zwischenverbindungsarchitektur auf, die einem unterschiedlichen Zwischenverbindungsstandard entspricht.
  • Der Systemspeicher 710 weist beliebige Speichereinrichtungen auf, wie z. B. Direktzugriffsspeicher (RAM), nichtflüchtigen (NV) Speicher oder sonstigen, für Einrichtungen im System 700 zugänglichen Speicher. Der Systemspeicher 710 ist durch die Speicherschnittstelle 716 mit dem Steuerungs-Hub 715 gekoppelt. Beispiele einer Speicherschnittstelle umfassen eine Speicherschnittstelle mit doppelter Datenrate (DDR), eine Zweikanal-DDR-Speicherschnittstelle und eine dynamische RAM-(DRAM)-Speicherschnittstelle.
  • Bei einer Ausführungsform ist der Steuerungs-Hub 715 ein Root-Hub, ein Root-Komplex oder eine Root-Steuerung in einer „Peripheral Component Interconnect Express“ (PCIe oder PCIE) Zwischenverbindungshierarchie. Beispiele des Steuerungs-Hubs 715 umfassen einen Chipset, einen Speichersteuerungs-Hub (MCH), eine Northbridge, einen Zwischenverbindungssteuerungs-Hub (ICH), eine Southbridge und eine Root-Steuerung/Hub. Häufig bezieht sich der Begriff Chipset auf zwei physikalisch getrennte Steuerungs-Hubs, d. h. einen Speichersteuerungs-Hub (MCH), gekoppelt mit einem Verbindungssteuerungs-Hub (ICH). Man beachte, dass aktuelle Systeme häufig den MCH integriert mit dem Prozessor 705 aufweisen, während die Steuerung 715 mit I/O-Einrichtungen auf ähnliche Weise wie im Folgenden beschrieben kommunizieren soll. Bei einigen Ausführungsformen wird durch den Root-Komplex 715 optional Peer-zu-Peer-Streckenführung unterstützt.
  • Hierbei ist der Steuerungs-Hub 715 durch die serielle Verbindung 719 mit dem/der Switch/Bridge 720 gekoppelt. Die Eingangs-/Ausgangsmodule 717 und 721, die auch als Schnittstellen/Ports 717 und 721 bezeichnet werden können, umfassen/implementieren einen geschichteten Protokollstapel, um Kommunikation zwischen dem Steuerungs-Hub 715 und dem Switch 720 bereitzustellen. Bei einer Ausführungsform können mehrere Einrichtungen mit dem Switch 720 gekoppelt werden.
  • Der/die Switch/Bridge 720 leitet Pakete/Meldungen von der Einrichtung 725 in Upstream-Richtung, d. h. aufwärts in einer Hierarchie zu einem Root-Komplex, zum Steuerungs-Hub 715 und in Downstream-Richtung, d. h. abwärts in einer Hierarchie weg von einer Root-Steuerung, vom Prozessor 705 oder vom Systemspeicher 710 zur Einrichtung 725. Bei einer Einrichtung wird der Switch 720 als logische Baugruppe mehrerer virtueller PCI-zu-PCI-Bridge-Einrichtungen bezeichnet. Die Einrichtung 725 umfasst beliebige interne oder externe Einrichtungen oder Komponenten zur Kopplung mit einem elektronischen System wie einer I/O-Einrichtung, einer Netzwerkkarte (NIC), einer Zusatzkarte, einem Audioprozessor, einem Netzwerkprozessor, einer Festplatte, einer Speichereinrichtung, einer CD/DVD-ROM, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Roboter, einer tragbaren Speichereinrichtung, einer Firewire-Einrichtung, einer „Universal Serial Bus“-(USB)-Einrichtung, einem Scanner und anderen Eingabe-/Ausgabeeinrichtungen. In der PCIe-Terminologie wird eine derartige Einrichtung häufig als Endpunkt bezeichnet. Obwohl dies nicht spezifisch dargestellt ist, kann die Einrichtung 725 eine PCIe-zu-PCI/PCI-X-Bridge zur Unterstützung von PCI-Altgeräten oder PCI-Einrichtungen anderer Versionen aufweisen. Endpunkteinrichtungen in PCIe werden häufig als integrierte Alt-, PCIe- oder Root-Komplex-Endpunkte klassifiziert.
  • Der Grafikbeschleuniger 730 ist ebenfalls durch die serielle Verbindung 732 mit dem Steuerungs-Hub 715 gekoppelt. Bei einer Ausführungsform ist der Grafikbeschleuniger 730 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 720 und entsprechend die I/O-Einrichtung 725 sind dann mit dem ICH gekoppelt. Die I/O-Module 731 und 718 sollen ebenfalls einen geschichteten Protokollstapel zur Kommunikation zwischen dem Grafikbeschleuniger 730 und dem Steuerungs-Hub 715 implementieren. Ähnlich wie bei der MCH-Erörterung weiter oben kann eine Grafiksteuerung oder der Grafikbeschleuniger 730 selbst im Prozessor 705 integriert sein.
  • Mit Bezug auf 8 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Der geschichtete Protokollstapel 800 weist eine beliebige Form eines geschichteten Kommunikationsstapels auf, wie z. B. einen „Quick Path Interconnect“-(QPI)-Stapel, einen PCIe-Stapel, einen Hochleistungs-Rechenverbindungstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl sich die unmittelbar anschließende Erörterung mit Bezug auf 7-9 auf einen PCIe-Stapel bezieht, sind die gleichen Konzepte auf andere Verbindungsstapel anwendbar. Bei einer Ausführungsform ist der Protokollstapel 800 ein PCIe-Stapel, aufweisend eine Transaktionsschicht 805, eine Verbindungsschicht 810 und eine physikalische Schicht 820. Eine Schnittstelle wie die Schnittstellen 717, 718, 721, 722, 726 und 731 in 7 kann als Kommunikationsprotokollstapel 800 wiedergegeben werden. Die Wiedergabe als Kommunikationsprotokollstapel kann sich auch auf ein Modul oder eine Schnittstelle beziehen, die einen Protokollstapel implementieren/aufweisen.
  • PCI Express verwendet Pakete zur Kommunikation von Informationen zwischen Komponenten. Pakete werden in der Transaktionsschicht 805 und Datenverbindungsschicht 810 gebildet, um die Information von der Sendekomponente zur Empfangskomponente zu führen. Beim Strömen der gesendeten Pakete durch die anderen Schichten werden sie mit zusätzlicher Information erweitert, die zum Umgang mit diesen Paketen an den betreffenden Schichten erforderlich ist. Auf der Empfängerseite erfolgt der umgekehrte Prozess, und Pakete werden aus der Darstellung ihrer physikalischen Schicht 820 zur Darstellung der Datenverbindungsschicht 810 und schließlich (bei Transaktionsschichtpaketen) zu der Form umgewandelt, die durch die Transaktionsschicht 1005 der Empfangseinrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • Bei einer Ausführungsform soll die Transaktionsschicht 805 eine Schnittstelle zwischen einem Verarbeitungskern einer Einrichtung und der Verbindungsarchitektur bereitstellen, wie z. B. der Datenverbindungsschicht 810 und der physikalischen Schicht 820. Diesbezüglich ist eine primäre Aufgabe der Transaktionsschicht 805 das Zusammensetzen und Zerlegen von Paketen (d. h. Transaktionsschichtpaketen oder TLPs). Üblicherweise verwaltet die Transaktionsschicht 805 Credit-basierte Flusssteuerung für TLPs. PCIe implementiert geteilte Transaktionen, d. h. Transaktionen, wobei Anforderung und Antwort zeitlich getrennt sind, sodass eine Verknüpfung anderen Verkehr führen kann, während die Zieleinrichtung Daten für die Antwort zusammenträgt.
  • Zusätzlich verwendet PCIe Credit-basierte Flusssteuerung. Bei diesem Schema zeigt eine Einrichtung einen anfänglichen Credit-Betrag für jeden der Empfangspuffer in der Transaktionsschicht 805 an. Eine externe Einrichtung am entgegengesetzten Ende der Verknüpfung wie der Steuerungs-Hub 715 in 7 zählt die Anzahl der von jedem TLP verbrauchten Credits. Eine Transaktion kann übertragen werden, falls die Transaktion eine Credit-Grenze nicht überschreitet. Nach dem Empfang einer Antwort wird eine Credit-Menge wiederhergestellt. Ein Vorteil eines Credit-Schemas ist, dass die Latenz des Credit-Rückflusses die Performanz nicht beeinträchtigt, sofern die Credit-Grenze nicht erreicht worden ist.
  • Bei einer Ausführungsform umfassen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingangs-/Ausgangsadressraum und einen Nachrichtenadressraum. Speicherraum-Transaktionen weisen eine oder mehrere Leseanforderungen und Schreibanforderungen zum Übertragen von Daten zu/von einer im Speicher abgelegten Position auf. Bei einer Ausführungsform können Speicherraumtransaktionen zwei unterschiedliche Adressformate verwenden, z. B. ein kurzes Adressformat wie eine 32-Bit-Adresse oder ein langes Adressformat wie eine 64-Bit-Adresse. Konfigurationsraum-Transaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Einrichtungen zuzugreifen. Transaktionen zum Konfigurationsraum weisen Leseanforderungen und Schreibanforderungen auf. Nachrichtenraum-Transaktionen (oder einfach Nachrichten) sind definiert zur Unterstützung von bandgleicher Kommunikation zwischen PCIe-Einrichtungen.
  • Bei einer Ausführungsform setzt die Transaktionsschicht 805 daher das Paket-Kopfteil/die Nutzinformation 806 zusammen. Das Format für aktuelle Paket-Kopfteile/Nutzinformationen findet sich in der PCIe-Spezifikation der PCIe-Spezifikations-Website.
  • Unter kurzem Verweis auf 9 wird eine Ausführungsform eines PCIe-Transaktionsdeskriptors dargestellt. Bei einer Ausführungsform ist der Transaktionsdeskriptor 900 ein Mechanismus zum Führen von Transaktionsinformation. Diesbezüglich unterstützt der Transaktionsdeskriptor 900 die Identifizierung von Transaktionen in einem System. Zu weiteren potenziellen Verwendungen zählen nach Nachverfolgungsänderungen der standardmäßigen Transaktionsreihenfolge und der Zuordnung von Transaktionen zu Kanälen.
  • Der Transaktionsdeskriptor 900 weist ein globales Kennungsfeld 902, ein Attributfeld 1004 und ein Kanalkennungsfeld 906 auf. Bei dem gezeigten Beispiel ist das globale Kennungsfeld 902 so dargestellt, dass es ein lokales Transaktionskennungsfeld 908 und ein Quellkennungsfeld 910 umfasst. Bei einer Ausführungsform ist die globale Transaktionskennung 902 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das lokale Transaktionskennungsfeld 908 ein durch eine anfordernde Einrichtung erzeugtes Feld, und es ist für alle ausstehenden Anforderungen, die einen Abschluss erfordern, für die anfordernde Einrichtung eindeutig. Ferner identifiziert bei diesem Beispiel die Quellkennung 910 eindeutig die anfordernde Einrichtung innerhalb einer PCIe-Hierarchie. Dementsprechend stellt die lokale Transaktionskennung 908 zusammen mit der Quell-ID 910 eine globale Kennung einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Das Attributfeld 904 gibt Eigenschaften und Beziehungen der Transaktion an. Diesbezüglich wird das Attributfeld 904 potenziell verwendet, um zusätzliche Information bereitzustellen, die eine Abänderung des standardmäßigen Umgangs mit Transaktionen ermöglicht. Bei einer Ausführungsform umfasst das Attributfeld 904 ein Prioritätsfeld 912, ein reserviertes Feld 914, ein Ordnungsfeld 916 und ein No-Snoop-Feld 918. Hier kann das Prioritätsteilfeld 912 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 914 wird für zukünftige oder herstellerdefinierte Benutzung reserviert gelassen. Mögliche Nutzungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, können unter Verwendung des reservierten Attributfelds implementiert werden.
  • Bei diesem Beispiel wird das Ordnungsattributfeld 916 verwendet, um optionale Information zu liefern, die die Art der Reihenfolge vermitteln, die standardmäßige Ordnungsregeln modifizieren kann. Gemäß einer beispielhaften Implementierung bedeutet ein Ordnungsattribut „0“, dass vorgegebene Ordnungsregeln gelten sollen, wobei ein Ordnungsattribut „1“ gelockerte Ordnung bedeutet, wobei Schreibvorgänge Schreibvorgänge in derselben Richtung umgehen können und Lese-Abschlussvorgänge Schreibvorgänge in derselben Richtung übergehen können. Mit dem Snoop-Attributfeld 1118 wird bestimmt, ob Transaktionen „ausspioniert“ werden. Entsprechend der Darstellung identifiziert das Kanal-ID-Feld 906 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 810, die auch als Datenverbindungsschicht 810 bezeichnet wird, kann als Zwischenstufe zwischen der Transaktionsschicht 905 und der physikalischen Schicht 820 wirken. Bei einer Ausführungsform ist eine Aufgabe der Datenverbindungsschicht 810 die Bereitstellung eines zuverlässigen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung. Eine Seite der Datenverbindungsschicht 810 nimmt durch die Transaktionsschicht 805 zusammengestellte TLPs an, wendet die Paketsequenzkennung 811 an, d. h. eine Identifikationsnummer oder Paketnummer, berechnet einen Fehlerdetektionscode, d. h. CRC 812, und wendet diesen an und leitet die modifizierten TLPs zu der physikalischen Schicht 820 zur Übertragung über eine physische zu einer externen Einrichtung.
  • Physikalische Schicht
  • Bei einer Ausführungsform umfasst die physikalische Schicht 820 einen logischen Teilblock 821 und einen elektrischen Teilblock 822 zum physischen Senden eines Pakets zu einer externen Einrichtung. Der logische Teilblock 821 ist hier für die „digitalen“ Funktionen der physikalischen Schicht 821 zuständig. In dieser Hinsicht weist der logische Teilblock einen Sendeteil zum Erstellen von ausgehender Information zur Übertragung durch den physischen Teilblock 822 auf sowie einen Empfängerteil zum Identifizieren und Aufbereiten von empfangener Information vor dem Weiterleiten zur Verbindungsschicht 810.
  • Der physische Block 822 umfasst einen Sender und einen Empfänger. Der Sender erhält von dem logischen Teilblock 821 Symbole, die der Sender serialisiert und weiter zu einer externen Einrichtung sendet. Der Empfänger erhält serialisierte Symbole von einer externen Einrichtung und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und dem logischen Teilblock 821 zugeführt. Bei einer Ausführungsform wird ein 8b/10b-Übertragungscode verwendet, wobei 10-Bit-Symbole gesendet/empfangen werden. Hierbei werden spezielle Symbole verwendet, um ein Paket mit Frames 823 zu unterteilen. Zudem stellt bei einem Beispiel der Empfänger auch einen aus dem eingehenden seriellen Strom wiederhergestellten Symboltakt bereit.
  • Obwohl wie vorstehend ausgeführt die Transaktionsschicht 805, die Verbindungsschicht 810 und die physikalische Schicht 820 in Bezug auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, ist ein geschichteter Protokollstapel nicht darauf beschränkt. Tatsächlich kann jedes geschichtete Protokoll vorgesehen/implementiert werden. Beispielsweise weisen ein Port/eine Schnittstelle, die als geschichtetes Protokoll wiedergegeben sind, auf: (1) eine erste Schicht zum Zusammenstellen von Paketen, d. h., eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Senden der Pakete, d. h., eine physikalische Schicht. Als spezifisches Beispiel wird ein geschichtetes „Common Standard Interface“ (CSI)-Protokoll benutzt.
  • Mit Bezug auf 10 wird jetzt eine Ausführungsform einer seriellen Punkt-zu-Punkt-PCIe-Struktur dargestellt. Obwohl eine Ausführungsform einer seriellen Punkt-zu-Punkt-PCIe-Verbindung dargestellt wird, ist eine serielle Punkt-zu-Punkt-Verbindung nicht darauf beschränkt, da sie zur Übertragung serieller Daten einen beliebigen Sendepfad verwenden kann. Bei der gezeigten Ausführungsform kann eine PCIe-Basisverbindung zwei differenziell angesteuerte Niederspannungs-Signalpaare umfassen: ein Sendepaar 1006/1011 und ein Empfangspaar 1012/1007. Dementsprechend umfasst die Einrichtung 1005 Übertragungslogik 1006 zum Senden von Daten zur Einrichtung 1010 und Empfangslogik 1007 zum Empfangen von Daten von der Einrichtung 1010. Anders ausgedrückt sind zwei Übertragungspfade, d. h. die Pfade 1016 und 1017, und zwei Empfangspfade, d. h. die Pfade 1018 und 1019 von einer PCIe-Verbindung umfasst.
  • Ein Übertragungspfad bezieht sich auf einen beliebigen Pfad zum Übertragen von Daten, wie etwa eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Einrichtungen, wie etwa der Einrichtung 1005 und der Einrichtung 1010, wird als Verbindung wie z. B. als Verbindung 1015 bezeichnet. Eine Verbindung kann eine Spur unterstützen - wobei jede Spur eine Gruppe von differenziellen Signalpaaren wiedergibt (ein Paar zum Senden, ein Paar zum Empfang). Zur Skalierung von Bandbreite kann eine Verbindung mehrere Spuren zusammenfassen, die durch xN bezeichnet werden, wobei N eine beliebige unterstützte Verbindungsbreite ist, wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differenzielles Paar kann sich auf zwei Übertragungspfade zum Senden differenzieller Signale beziehen, wie etwa die Leitungen 1016 und 1017. Wenn beispielsweise die Leitung 1016 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel wechselt, d. h. eine ansteigende Flanke, wird die Leitung 1017 von einem hohen Logikpegel auf einen niedrigen Logikpegel gesteuert, d. h. eine abfallende Flanke. Differenzielle Signale zeigen potenziell bessere elektrische Eigenschaften, wie etwa bessere Signalintegrität, d. h. Kreuzkopplung, Spannungsüberschwingen/-unterschwingen, Klingelmuster usw. Dies erlaubt ein besseres Zeitfenster, wodurch schnellere Übertragungsfrequenzen ermöglicht werden.
  • Mit Bezug auf 11 ist ein Blockdiagramm einer Ausführungsform eines Mehrkernprozessors gezeigt. Entsprechend der Darstellung in der Ausführungsform von 11 weist der Prozessor 1300 mehrere Domänen auf. Im Einzelnen umfasst eine Kerndomäne 1130 eine Mehrzahl von Kernen 1130A-1130N, eine Grafikdomäne 1160 umfasst eine oder mehrere Grafik-Engines, die eine Medien-Engine 1165 aufweisen, und eine Systemagent-Domäne 1110.
  • Bei verschiedenen Ausführungsformen verwaltet die Systemagent-Domäne 1110 Stromsteuerereignisse und Energiemanagement, so dass individuelle Einheiten der Domänen 1130 und 1160 (z. B. Kerne und/oder Grafik-Engines) unabhängig steuerbar sind, um dynamisch mit einem geeigneten Strommodus/-pegel zu arbeiten (z. B. aktiv, Turbo, Schlaf, Hibernation, Tiefschlaf oder ein anderer Zustand ähnlich der „Advanced Configuration Power Interface“) angesichts der Aktivität (oder Inaktivität), die in der gegebenen Einheit auftritt. Jede der Domänen 1130 und 1160 kann mit einer unterschiedlichen Spannung und/oder Stromleistung arbeiten, und ferner arbeiten die individuellen Einheiten in den Domänen jeweils potenziell mit unabhängiger Frequenz und Spannung. Man beachte, dass der Schutzumfang der vorliegenden Offenbarung, obwohl sie nur mit drei Domänen gezeigt ist, in dieser Hinsicht nicht eingeschränkt ist, und bei anderen Ausführungsformen können zusätzliche Domänen vorliegen.
  • Entsprechend der Darstellung umfasst jeder Kern 1130 ferner Caches auf niedriger Ebene zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen. Die verschiedenen Kerne sind hier miteinander und mit einem geteilten Cache-Speicher gekoppelt, der aus eine Mehrzahl von Einheiten oder Slices eines LLC (Last Level Cache) 1140A-1140N gebildet ist; diese LLCs umfassen oft Speicher- und Cache-Steuerungsfunktionen und werden unter den Kernen geteilt, sowie potenziell auch unter der Grafik-Engine.
  • Wie ersichtlich ist, koppelt eine Ringverbindung 1150 die Kerne miteinander und stellt über eine Mehrzahl von Ringstopps 1152A-1152N jeweils an einer Kopplung zwischen einem Kern und einer LLC-Slice eine Verbindung bereit zwischen der Kerndomäne 1130, der Grafikdomäne 1160 und der Systemagent-Schaltung 1110. Entsprechend der Darstellung in 11 wird das Verbindungselement 1150 zum Führen verschiedener Information verwendet, darunter Adressinformation, Dateninformation, Quittierungsinformation und Snoop-/Ungültig-Information. Obwohl eine Ringverbindung dargestellt ist, können beliebige bekannte, Auf-dem-Die-Verbindungen oder Fabric-Strukturen verwendet werden. Als Anschauungsbeispiel können einige der weiter oben erörterten Fabric-Strukturen (z. B. eine weitere Auf-dem-Die-Verbindung, „Intel On-chip System Fabric“ (IOSF), eine „Advanced Microcontroller Bus Architecture“ (AMBA)-Verbindung, eine mehrdimensionale Netzstruktur oder sonstige bekannte Verbindungsarchitektur) in ähnlicher Weise eingesetzt werden.
  • Wie ferner dargestellt, umfasst die Systemagent-Domäne 1110 eine Anzeige-Engine 1112, die Steuerung einer zugeordneten Anzeige und eine Schnittstelle dazu bereitstellen soll. Die Systemagent-Domäne 1110 kann andere Einheiten umfassen, wie etwa eine integrierte Speichersteuerung 1120, die eine Schnittstelle zu einem Systemspeicher (z. B. einem mit mehreren DIMMs implementierten DRAM) bereitstellt; Kohärenzlogik 1122 zum Ausführen von Speicherkohärenzoperationen. Es können mehrere Schnittstellen vorliegen, um eine Verbindung zwischen dem Prozessor und anderen Schaltkreisen zu ermöglichen. Zum Beispiel werden bei einer Ausführungsform mindestens eine Direktmedienschnittstelle (DMI) 1116 sowie eine oder mehrere PCIe™-Schnittstellen 1114 bereitgestellt. Die Anzeige-Engine und diese Schnittstellen sind typischerweise über eine PCIe™-Bridge 1118 mit einem Speicher gekoppelt. Weiterhin können zur Bereitstellung von Kommunikation zwischen anderen Agenten, wie etwa zusätzlichen Prozessoren oder anderen Schaltkreisen, eine oder mehrere andere Schnittstellen vorgesehen werden (z. B. eine Intel® Quick Path Interconnect (QPI) Fabric-Struktur).
  • In 12 ist jetzt eine Ausführungsform eines System-auf-einem-Chip-(SOC)-Designs gemäß den Offenbarungen dargestellt. Als spezifisches veranschaulichendes Beispiel ist das SOC 1200 vom Benutzer-Equipment (UE) umfasst. Bei einer Ausführungsform bezieht sich UE auf eine beliebige von einem Endbenutzer zu verwendende Einrichtung zum Kommunizieren, wie z. B. ein Handheld-Telefon, ein Smartphone, ein Tablet, ein ultraflaches Notebook, ein Notebook mit Breitbandadapter oder eine beliebige andere ähnliche Kommunikationseinrichtung. Häufig verbindet sich ein UE mit einer Basisstation oder einem Knoten, die in der Praxis potenziell einer mobilen Station (MS) in einem GSM-Netzwerk entsprechen.
  • Hier umfasst SOC 1200 2 Kerne - 1206 und 1207. Ähnlich wie bei der Erörterung weiter oben können die Kerne 1206 und 1207 einer „Instruction Set Architecture“ entsprechend, wie einem „Intel® Architecture Core™“-basierten Prozessor, einem Advanced Micro Devices, Inc. (AMD)-Prozessor, einem MIPS-basierten Prozessor, einem ARM-basierten Prozessordesign, oder einem ihrer Kunden sowie ihren Lizenznehmern oder Anwendern. Die Kerne 1206 und 1207 sind mit der Cache-Steuerung 1208 gekoppelt, die mit der Bus-Schnittstelleneinheit 1209 und L2-Cache 1210 assoziiert ist, um mit anderen Teilen des Systems 1200 zu kommunizieren. Die Verbindung 1210 umfasst eine Auf-dem-Chip-Verbindung wie eine IOSF-, AMBA- oder andere vorstehend erörterte Verbindung, die potenziell einen oder mehrere Aspekte der beschriebenen Offenbarung implementiert.
  • Die Schnittstelle 1210 stellt Kommunikationskanäle zu den anderen Komponenten bereit, wie z. B. ein Teilnehmer-Identitätsmodul (SIM) 1230 zur Verbindung mit einer SIM-Karte, einen Boot-ROM 1235 zur Aufnahme von Boot-Code zur Ausführung durch Kerne 1206 und 1207 zum Initialisieren und Starten des SOC 1200, eine SDRAM-Steuerung 1240 zur Verbindung mit externem Speicher (z. B. DRAM 1260), eine Flash-Steuerung 1245 zur Verbindung mit nichtflüchtigem Speicher (z. B. Flash 1265), eine Peripheriesteuerung 1250 (z. B. „Serial Peripheral Interface“) zur Verbindung mit Peripherie, Video-Codecs 1220 und Video-Schnittstelle 1225 zum Anzeigen und Empfangen von Eingaben (z. B. berührungssensible Eingabe), GPU 1215 zum Durchführen von grafikbezogenen Berechnungen usw. Beliebige dieser Schnittstellen können Aspekte der hier beschriebenen Offenbarung integrieren.
  • Zusätzlich veranschaulicht das System Peripherie zur Kommunikation, wie z. B. ein Bluetooth-Modul 1270, ein 3G-Modem 1275, GPS 1285 und Wi-Fi 1285. Man beachte das, wie weiter oben angegeben, ein UE eine Funkeinrichtung zur Kommunikation aufweist. Demzufolge sind nicht alle dieser peripheren Kommunikationsmodule erforderlich. In einem UE sollte jedoch eine Form einer Funkeinrichtung zur externen Kommunikation umfasst sein.
  • Mit Bezug auf 13 ist ein Blockdiagramm eines zweiten Systems 1300 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Entsprechend der Darstellung in 13 ist das Mehrprozessorsystem 1300 ein Punkt-zu-Punkt-Verbindungssystem, und es weist einen ersten Prozessor 1370 und einen zweiten Prozessor 1380 auf, gekoppelt über eine Punkt-zu-Punkt-Verbindung 1350. Jeder der Prozessoren 1370 und 1380 kann eine Version eines Prozessors sein. Bei einer Ausführungsform sind 1352 und 1354 Teil einer seriellen kohärenten Punkt-zu-Punkt-Verbindungs-Fabric-Struktur wie der „Quick Path Interconnect (QPI)“-Architektur von Intel. Demzufolge kann die Offenbarung innerhalb der QPI-Architektur implementiert werden.
  • Obwohl die Darstellung mit nur zwei Prozessoren 1370, 1380 erfolgt, versteht es sich, dass der Umfang der vorliegenden Offenbarung nicht diesbezüglich eingeschränkt ist. Bei anderen Ausführungsformen können in einen gegebenen Prozessor ein oder mehrere zusätzliche Prozessoren vorliegen.
  • Die Prozessoren 1370 und 1380 sind so dargestellt, dass sie integrierte Speichersteuerungseinheiten 1372 bzw. 1382 aufweisen. Der Prozessor 1370 weist als Teil seiner Bussteuerungseinheiten auch Punkt-zu-Punkt-(P-P)-Schnittstellen 1376 und 1378 auf; entsprechend weist ein zweiter Prozessor 1380 P-P-Schnittstellen 1386 und 1388 auf. Die Prozessoren 1370, 1380 können Information über eine Punkt-zu-Punkt-(P-P)-Schnittstelle 1350 unter Verwendung von P-P-Schnittstellenschaltungen 1378, 1388 austauschen. Entsprechend der Darstellung in 13 koppeln die IMCs 1372 und 1382 die Prozessoren mit dazugehörigen Speichern, insbesondere einem Speicher 1332 und einem Speicher 1334, die Teile von lokal an die jeweiligen Prozessoren angeschlossenen Hauptspeicher sein können.
  • Die Prozessoren 1370, 1380 tauschen jeweils Information mit einem Chipset 1390 über individuelle P-P-Schnittstellen 1352, 1354 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1376, 1394, 1386, 1398. Der Chipset 1390 tauscht auch Information mit einem Hochleistungs-Grafikschaltkreis 1338 über eine Schnittstellenschaltung 1392 entlang einer Hochleistungs-Grafikverbindung 1339.
  • Ein geteilter Cache (nicht gezeigt) kann in jedem der Prozessoren oder außerhalb beider Prozessoren umfasst sein; jedoch verbunden mit den Prozessoren über eine P-P-Verbindung, sodass die lokale Cache-Information von einem der Prozessoren oder von beiden im geteilten Cache gespeichert werden kann, falls ein Prozessor in einen Stromsparmodus gesetzt wird.
  • Der Chipset 1390 kann über eine Schnittstelle 1396 mit einem ersten Bus 1316 gekoppelt sein. Bei einer Ausführungsform kann der erste Bus 1316 ein „Peripheral Component Interconnect“ (PCI)-Bus sein oder ein Bus wie ein „PCI Express“-Bus oder ein anderer I/O-Verbindungsbus dritter Generation, wenngleich der Umfang der vorliegenden Offenbarung nicht diesbezüglich eingeschränkt ist.
  • Entsprechend der Darstellung in 13 sind verschiedene I/O-Einrichtungen 1314 mit dem ersten Bus 1316 zusammen mit einer Bus-Bridge 1318 gekoppelt, die den ersten Bus 1316 mit einem zweiten Bus 1320 koppelt. Bei einer Ausführungsform weist ein zweiter Bus 1320 einen „Low Pin Count“ (LPC)-Bus auf. Verschiedene Einrichtungen sind mit dem zweiten Bus 1320 gekoppelt, umfassend beispielsweise eine Tastatur und/oder eine Maus 1322, Kommunikationseinrichtungen 1327 und eine Speichereinheit 1328 wie ein Plattenlaufwerk oder eine andere Massenspeichereinrichtung, die bei einer Ausführungsform häufig Anweisungen/Code und Daten 1330 aufweist. Ferner ist ein Audio-I/O 1324 gekoppelt mit einem zweiten Bus 1320 gezeigt. Man beachte, dass andere Architekturen möglich sind, wobei die umfassten Komponenten und Verbindungsarchitekturen variieren. Beispielsweise kann ein System statt der Punkt-zu-Punkt-Architektur von 13 einen Multi-Drop-Bus oder eine andere derartige Architektur implementieren.
  • 14 veranschaulicht eine beispielhafte Recheneinrichtung 1400, die verschiedene hier beschriebene Komponenten aufweisen und/oder zur Verwendung damit geeignet sein kann. Entsprechend der Darstellung kann die Recheneinrichtung 1400 einen oder mehrere Prozessoren oder Prozessorkerne 1402 und Systemspeicher 1404 aufweisen. Zum Zweck dieser Anwendung einschließlich der Ansprüche können die Begriffe „Prozessor“ und „Prozessorkerne“ als Synonyme betrachtet werden, sofern der Kontext nicht eindeutig etwas anderes erfordert. Der Prozessor 1402 kann Prozessoren beliebigen Typs aufweisen, wie z. B. eine zentrale Verarbeitungseinheit (CPU), einen Mikroprozessor und dergleichen. Der Prozessor 1402 kann als integrierter Schaltkreis implementiert sein, der mehrere Kerne aufweist, z. B. als Mehrkern-Mikroprozessor. Die Recheneinrichtung 1400 kann Massenspeichereinrichtungen 1406 aufweisen (wie Diskette, Festplatte, flüchtigen Speicher (z. B. dynamischen Direktzugriffsspeicher (DRAM), Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc (DVD) usw.)). Generell können Systemspeicher 1404 und/oder Massenspeichereinrichtungen 1406 vorübergehende oder andauernde Speicherung beliebigen Typs aufweisen, ohne diesbezügliche Einschränkung umfassend flüchtigen und nichtflüchtigen Speicher, optischen, magnetischen und/oder Festkörper-Massenspeicher usw. Flüchtiger Speicher kann ohne diesbezügliche Einschränkung statischen und/oder dynamischen Direktzugriffsspeicher aufweisen. Nichtflüchtiger Speicher kann ohne diesbezügliche Einschränkung elektrisch löschbaren programmierbaren Nur-Lese-Speicher, Phasenwechselspeicher, resistiven Speicher usw. aufweisen. Der/die Prozessor(en) 1402, Massenspeicher 1406 und/oder Systemspeicher 1404 können zusammen oder getrennt insgesamt oder teilweise als BIOS und/oder EC betrachtet werden oder diese implementieren.
  • Die Recheneinrichtung 1400 kann ferner I/O-Einrichtungen 1408 aufweisen (wie eine Anzeige (z. B. eine Touchscreen-Anzeige), Tastatur, Cursor-Steuerung, Fernbedienung, Spielesteuerung, Bilderfassungseinrichtung usw.) sowie Kommunikationsschnittstellen 1410 (wie Netzwerkkarten, Modems, Infrarotempfänger, Funkempfänger (z. B. Bluetooth) usw.). Bei einigen Ausführungsformen können die I/O-Einrichtungen 1408 mit den anderen Komponenten der Recheneinrichtung 1400 über eine PCIe-4-Verbindung wie hier beschrieben gekoppelt sein.
  • Die Kommunikationsschnittstellen 1410 können Kommunikations-Chips (nicht dargestellt) aufweisen, die dafür ausgelegt sein können, die Einrichtung 1400 gemäß einem Netzwerk mit „Global System for Mobile Communication“ (GSM), „General Packet Radio Service“ (GPRS), „Universal Mobile Telecommunications System“ (UMTS), „High Speed Packet Access“ (HSPA), „Evolved HSPA“ (EHSPA) oder „Long-Term Evolution“ (LTE) zu betreiben. Die Kommunikations-Chips können auch dafür ausgelegt sein, gemäß „Enhanced Data for GSM Evolution“ (EDGE), „GSM EDGE Radio Access Network“ (GERAN), „Universal Terrestrial Radio Access Network“ (UTRAN) oder „Evolved UTRAN“ (E-UTRAN) zu arbeiten. Die Kommunikations-Chips können ausgelegt sein zum Betrieb mit Codemultiplexverfahren (CDMA), Zeitmultiplexverfahren (TDMA), „Digital Enhanced Cordless Telecommunications“ (DECT), „Evolution-Data Optimized“ (EV-DO), Derivaten davon sowie beliebigen anderen drahtlosen Protokollen, die als 3G, 4G, 5G und höher bezeichnet werden. Die Kommunikationsschnittstellen 1410 können bei anderen Ausführungsformen gemäß anderen drahtlosen Protokollen arbeiten. Bi einigen Ausführungsformen können die Kommunikationsschnittstellen 1410 der EC und/oder TCPM wie hier beschrieben sein, diese aufweisen und/oder damit gekoppelt sein.
  • Die vorstehend beschriebenen Elemente der Recheneinrichtung 1400 können über einen Systembus 1412, der einen oder mehrere Busse darstellen kann, miteinander gekoppelt sein. Im Fall mehrerer Busse können diese durch eine oder mehrere Busbrücken überbrückt werden (nicht dargestellt). Jedes dieser Elemente kann seine nach dem Stand der Technik bekannten konventionellen Funktionen durchführen. Insbesondere können der Systemspeicher 1404 und die Massenspeichereinrichtungen 1406 eingesetzt werden, um eine Arbeitskopie und eine permanente Kopie der Programmieranweisungen für den Betrieb verschiedener Komponenten der Recheneinrichtung 1400 zu speichern, ohne diesbezügliche Einschränkung umfassend ein Betriebssystem der Recheneinrichtung 1400 und/oder eine oder mehrere Anwendungen. Die verschiedenen Elemente können durch Assembler-Anweisungen implementiert werden, die von dem/den Prozessor(en) 1402 unterstützt werden, oder durch Sprachen höherer Ebene, die in derartige Anweisungen kompiliert werden können.
  • Die permanente Kopie der Programmieranweisungen kann in Massenspeichereinrichtungen 1406 im Werk platziert werden oder vor Ort, beispielsweise über ein Verteilungsmedium (nicht dargestellt) wie eine Compact Disc (CD) oder durch eine Kommunikationsschnittstelle 1410 (von einem Verteilungsserver (nicht dargestellt)). Das heißt, dass ein oder mehrere Verteilungsmedien, die eine Implementierung des Agentenprogramms aufweisen, eingesetzt werden können, um den Agenten zu verteilen und verschiedene Recheneinrichtungen zu programmieren.
  • Anzahl, Möglichkeiten und/oder Kapazität der Elemente 1408, 1410, 1412 können in Abhängigkeit davon variieren, ob die Recheneinrichtung 1400 als stationäre Recheneinrichtung verwendet wird, wie z. B. als Set-Top-Box oder Desktop-Computer, oder als mobile Recheneinrichtung, wie z. B. als Tablet-Recheneinrichtung, Laptop-Computer, Spielekonsole oder Smartphone. Deren Beschaffenheit ist bereits bekannt und wird dementsprechend nicht weiter beschrieben.
  • Bei Ausführungsformen kann der Speicher 1404 Rechenlogik 1422 aufweisen, die ausgelegt ist zum Implementieren verschiedener Firmware- und/oder Softwaredienste, die mit Vorgängen der Recheneinrichtung 1400 assoziiert sind. Bei einigen Ausführungsformen kann mindestens einer der Prozessoren 1402 zusammen mit Rechenlogik 1422 ein Paket bilden, ausgelegt zum Umsetzen von Aspekten von hier beschriebenen Ausführungsformen, um ein System-in-einem-Paket (SIP) oder ein System-auf-einem-Chip (SoC) zu bilden.
  • Bei verschiedenen Implementierungen kann die Recheneinrichtung 1400 eine oder mehrere Komponenten eines Datenzentrums, eines Laptops, eines Netbooks, eines Notebooks, eines Ultrabooks, eines Smartphones, eines Tablets, eines Personal Digital Assistant (PDA), eines ultramobilen PCs, eines Mobiltelefons oder einer Digitalkamera umfassen. Bei weiteren Implementierungen kann die Recheneinrichtung 1400 eine beliebige sonstige elektronische Einrichtung sein, die Daten verarbeitet.
  • 15 ist ein Prozessablaufdiagramm zum Einsatz gespeicherter Abgleichparameter zum Verbindungstraining gemäß Ausführungsformen der vorliegenden Offenbarung. Bei einigen Ausführungsformen können die elektronischen Einrichtungen, Netzwerke, Systeme, Chips oder Komponenten oder Teile oder Implementierungen davon aus hier wiedergegebenen Figuren ausgelegt werden, um ein oder mehrere hier beschriebene Prozesse, Techniken oder Verfahren oder Teile davon durchzuführen.
  • Ein derartiger Prozess ist dargestellt in 15. Beispielsweise kann der Prozess das Speichern oder die Veranlassung des Speicherns von einem oder mehreren Parametern mit Bezug auf ein Verbindungstraining (1502) aufweisen; das Identifizieren oder die Veranlassung des Identifizieren des einen oder der mehreren Parameter in einem anschließenden Verbindungsvorgang (1504); und das Verwenden oder die Veranlassung der Verwendung des einen oder der mehreren Parameter im anschließenden Verbindungsvorgang anstelle des Durchführens eines anschließenden vollständigen Abgleichs zum Verbindungstraining (1506).
  • Man beachte, dass die vorstehend beschriebenen Vorrichtungen, Verfahren und Systeme in beliebigen, zuvor aufgeführten elektronischen Einrichtungen oder Systemen implementiert werden können. Als spezifische Veranschaulichungen stellen die folgenden Figuren beispielhafte Systeme zur Verwendung der hier beschriebenen Offenbarung bereit. Bei der folgenden detaillierteren Beschreibung der Systeme wird eine Anzahl unterschiedlicher Zwischenverbindungen offenbart, beschrieben und anhand der vorstehenden Erörterung untersucht. Wie leicht verständlich ist, können die weiter oben beschriebenen Merkmale auf beliebige dieser Verbindungen, Strukturen oder Architekturen angewandt werden.
  • Während die vorliegende Offenbarung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, erkennen Fachleute auf diesem Gebiet zahlreiche Abänderungen und Variationen davon. Die beigefügten Ansprüche sollen alle derartigen Modifikationen und Variationen abdecken, die unter den Grundgedanken und Schutzumfang der vorliegenden Offenbarung fallen.
  • Ein Entwurf kann von der Erstellung bis zur Simulation und Herstellung verschiedene Phasen durchlaufen. Daten, die einen Entwurf darstellen, können den Entwurf in einer Reihe von Arten wiedergeben. Zunächst kann die Hardware, wie bei Simulationen sinnvoll, unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionellen Beschreibungssprache dargestellt werden. Zusätzlich kann ein Schaltungsebenenmodell mit Logik und/oder Transistor-Gates in einigen Phasen des Entwicklungsprozesses erzeugt werden. Zudem erreichen die meisten Entwürfe in einer bestimmten Phase eine Ebene, in der Daten die physische Platzierung verschiedener Einrichtungen im Hardwaremodell wiedergeben. Falls konventionelle Halbleiter-Herstellungstechniken verwendet werden, können die das Hardwaremodell darstellenden Daten die Daten sein, die das Vorliegen oder Fehlen verschiedener Merkmale an verschiedenen Maskenschichten für Masken angeben, die zur Herstellung des integrierten Schaltkreises verwendet werden. Bei beliebigen Darstellungen des Entwurfs können die Daten auf einem maschinenlesbaren Medium beliebiger Form gespeichert sein. Ein Speicher oder eine magnetische oder optische Speichereinrichtung wie eine Platte kann das maschinenlesbare Medium zum Speichern von Information sein, übertragen über optische oder elektrische Wellen, die zur Übertragung derartiger Information moduliert oder sonst wie erzeugt werden. Wenn ein elektrischer Träger, der den Code oder Entwurf angibt oder trägt, gesendet wird sodass ein Kopieren, Puffern oder erneutes Übertragen des elektrischen Signals erfolgt, wird eine neue Kopie angefertigt. Somit können ein Kommunikations-Provider oder ein Netzwerkbetreiber einen Artikel, wie z. B. codierte Information in einer Trägerwelle, die Techniken von Ausführungsformen der vorliegenden Offenbarung umsetzt, zumindest vorübergehend auf einem materiellen maschinenlesbaren Medium speichern.
  • Ein Modul bezieht sich wie hier verwendet auf eine beliebige Kombination aus Hardware, Software und/oder Firmware. Als Beispiel weist ein Modul Hardware auf, wie eine Mikrosteuerung, assoziiert mit einem nicht vorübergehenden Medium zum Speichern von für die Ausführung durch die Mikrosteuerung eingerichteten Code. Ein Verweis auf ein Modul in einer Ausführungsform bezieht sich daher auf die Hardware, die spezifisch ausgelegt ist zum Erkennen und/oder Ausführen des auf einem nicht vorübergehenden Medium zu speichernden Codes. Ferner bezieht sich bei einer weiteren Ausführungsform die Verwendung eines Moduls auf das nicht vorübergehende Medium, das den Code aufweist, der spezifisch eingerichtet ist zur Ausführung durch die Mikrosteuerung, um vorbestimmte Vorgänge durchzuführen. Wie bei noch einer weiteren Ausführungsform zu erkennen, kann sich der Begriff Modul (bei diesem Beispiel) auf die Kombination der Mikrosteuerung und des nicht vorübergehenden Mediums beziehen. Als getrennt dargestellte Modulgrenzen variieren üblicherweise oft, und sie können sich potenziell überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination daraus teilen, wären potenziell einige unabhängige Hardware, Software oder Firmware beibehalten wird. Bei einer Ausführungsform umfasst die Verwendung des Begriffs Logik Hardware, wie Transistoren, Register oder sonstige Hardware, wie z. B. programmierbare Logikeinrichtungen.
  • Die Verwendung des Wortlauts ‚zum‘ oder ‚ausgelegt zum‘ bei einer Ausführungsform bezieht sich auf die Anordnung, Zusammenstellung, Herstellung, das Verkaufsangebot, die Einfuhr und/oder Entwicklung einer Vorrichtung, Hardware, Logik oder eines Elements zum Durchführen einer vorgesehenen oder bestimmten Aufgabe. Bei diesem Beispiel sind eine nicht operative Vorrichtung oder ein Element davon weiterhin ‚ausgelegt zum‘ Durchführen einer vorgesehenen Aufgabe, wenn sie zum Durchführen der vorgesehenen Aufgabe konzipiert, gekoppelt und/oder verbunden sind. Als rein veranschaulichenden Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Doch ein Logikgatter, ‚ausgelegt zum‘ Bereitstellen eines Freigabesignals für einen Taktgeber weist nicht jedes potenzielle Logikgatter auf, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter auf eine Weise gekoppelt, dass die Ausgabe von 1 oder 0 während des Betriebs den Taktgeber aktivieren soll. Man beachte wiederum, dass die Verwendung des Begriffs ‚ausgelegt zum‘ keinen Vorgang erfordert, sondern vielmehr auf den latenten Zustand einer Vorrichtung, einer Hardware und/oder eines Elements abzielt, wobei die Vorrichtung, die Hardware und/oder das Element im latenten Zustand konzipiert sind zum Durchführen einer bestimmten Aufgabe, wenn die Vorrichtung, die Hardware und/oder das Element operativ sind.
  • Ferner bezieht sich die Verwendung der Wortlaute ‚fähig zum‘ und/oder ‚betreibbar zum‘ bei einer Ausführungsform auf bestimmte Vorrichtungen, Logiken, Hardware und/oder Elemente, die derart konzipiert sind, dass sie die Verwendung der Vorrichtung, der Logik, der Hardware und/oder des Elements in einer angegebenen Weise ermöglichen. Wie zuvor erwähnt beachte man, dass sich die Verwendung der Wortlaute ‚fähig zum‘ oder ‚betreibbar zum‘ bei einer Ausführungsform auf den latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, die Logik, die Hardware und/oder das Element nicht in Betrieb sind, jedoch auf eine Weise konzipiert sind, um die Verwendung einer Vorrichtung, in einer angegebenen Weise zu ermöglichen.
  • Wie ihr verwendet umfasst ein Wert eine beliebige bekannte Wiedergabe einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch bezeichnet als Einsen und Nullen, die schlicht binäre logische Zustände wiedergeben. Beispielsweise bezieht sich eine 1 auf eine hohe logische Stufe, und 0 bezieht sich auf eine niedrigere logische Stufe. Bei einer Ausführungsform kann eine Speicherzelle wie eine Transistor- oder Flash-Zelle in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte aufzunehmen. Andere Darstellungen von Werten wurden jedoch in Computersystemen verwendet. Beispielsweise kann die Dezimalzahl zehn auch als binärer Wert von 1010 und als hexadezimaler Buchstabe A dargestellt werden. Daher weist ein Wert eine beliebige Wiedergabe von Informationen auf, die in einem Rechnersystem aufgenommen werden kann.
  • Zudem können Zustände durch Werte oder Teile von Werten wiedergegeben werden. Beispielsweise kann ein erster Wert wie eine logische Eins einen vorgegebenen oder anfänglichen Zustand wiedergeben, während ein zweiter Wert wie eine logische Null einen nicht standardmäßigen Zustand wiedergeben kann. Zusätzlich beziehen sich die Begriffe „zurücksetzen“ und „setzen“ bei einer Ausführungsform auf einen standardmäßigen und einen aktualisierten Wert bzw. Zustand. Beispielsweise weist ein Standardwert potenziell einen hohen logischen Wert auf, d. h. „zurückgesetzt“, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert aufweist, d. h. „gesetzt“. Man beachte, dass eine beliebige Kombination von Werten zur Wiedergabe einer beliebigen Anzahl von Zuständen verwendet werden kann.
  • Die Ausführungsformen von weiter oben angeführten Verfahren, Hardware, Software, Firmware oder Code können über Anweisungen oder Code implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, rechnerzugänglichen oder rechnerlesbaren Medium gespeichert und durch ein Verarbeitungselement ausführbar sind. Ein nicht vorübergehendes für Maschinen zugängliches/lesbares Medium weist beliebige Mechanismen auf, die Information in einer durch eine Maschine wie einen Rechner oder ein elektronisches System lesbaren Form bereitstellen (d. h. speichern und/oder übertragen). Beispielsweise weist ein nicht vorübergehendes maschinenzugängliches Medium Direktzugriffsspeicher (RAM) auf, wie z. B. statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; magnetische oder optische Speichermedien; Flash-Speichereinrichtungen; optische Speichereinrichtungen; akustische Speichereinrichtungen; andere Formen von Speichereinrichtungen zur Aufnahme von empfangener Information durch vorübergehende (verbreitete) Signale (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.), die von den nicht vorübergehenden Medien, die davon Information empfangen können, unterschieden werden müssen.
  • Zum Programmieren von Logik zur Durchführung von Ausführungsformen der Offenbarung verwendete Anweisungen können in einem Speicher im System gespeichert werden, wie z. B. DRAM, Cache, Flash-Speicher oder sonstigem Speicher. Ferner können die Anweisungen über ein Netzwerk oder mittels anderer rechnerlesbarer Medien verbreitet werden. Somit kann ein maschinenlesbares Medium beliebige Mechanismen zum Speichern oder Übertragen von Information in einer durch eine Maschine (z. B. einen Rechner) lesbaren Form aufweisen, ist aber nicht eingeschränkt auf Disketten, optische Platten, Compact Disc Read-Only Memory (CD-ROM) und magnetooptische Platten, Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen materiellen maschinenlesbaren Speicher, verwendet in der Übertragung von Information über das Internet über elektrische, optische, akustische oder sonstige Formen verbreiteter Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.). Dementsprechend umfasst das rechnerlesbare Medium beliebige Typen von materiellen maschinenlesbaren Medien, die zum Speichern oder Übertragen von elektronischen Anweisungen oder Information in einer durch eine Maschine (z. B. einen Rechner) lesbaren Form geeignet sind.
  • Im Verlauf dieser Spezifikation bedeutet ein Verweis auf „eine Ausführungsform“, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die im Zusammenhang mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform der vorliegenden Offenbarung umfasst ist. Somit beziehen sich die Vorkommnisse des Wortlauts „bei einer Ausführungsform“ an verschiedenen Stellen im Verlauf dieser Spezifikation nicht notwendigerweise alle auf die gleiche Ausführungsform. Ferner können die besonderen Merkmale, Strukturen oder Eigenschaften in beliebiger geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Spezifikation wurde eine detaillierte Beschreibung mit Verweis auf spezifische beispielhafte Ausführungsformen wiedergegeben. Es ist jedoch ersichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Grundgedanken und Schutzumfang der Offenbarung abzuweichen, der in den beigefügten Ansprüchen ausgeführt ist. Die Spezifikation und die Zeichnungen sind daher veranschaulichend und nicht restriktiv anzusehen. Ferner beziehen sich die vorstehende Verwendung des Begriffs Ausführungsform und weiterer beispielhafter Sprachgebrauch nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern sie können sich auf unterschiedliche und getrennte Ausführungsformen sowie auch potenziell auf die gleiche Ausführungsform beziehen.
  • Die folgenden Absätze stellen Beispiele verschiedener hier offenbarter Ausführungsformen bereit.
  • Beispiel 1 ist ein Verfahren zur Durchführung von Verbindungstraining für eine oder mehrere Eingangs-/Ausgangsverbindungen, die einen Upstream-Port mit einem Downstream-Port verbinden, wobei das Verfahren das Speichern von einem oder mehreren Abgleichparameterwerten für den Downstream-Port in einem nichtflüchtigen Speicher aufweist, der mit dem Upstream-Port assoziiert ist; sowie das Durchführen einer Initialisierungssequenz der einen oder mehreren Eingangs-/Ausgangsverbindungen zwischen dem Upstream-Port und dem Downstream-Port, wobei die Initialisierungssequenz Verbindungstraining für die eine oder mehreren Eingangs-/Ausgangsverbindungen umfasst; Abrufen der gespeicherten Abgleichparameterwerte für den Downstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Downstream-Port in ein mit dem Downstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betrieb der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 aufweisen, und es kann ebenfalls das Speichern von einem oder mehreren Abgleichparameterwerten für den Upstream-Port in den nichtflüchtigen Speicher aufweist; das Abrufen der gespeicherten Abgleichparameterwerte für den Upstream-Port aus dem nichtflüchtigen Speicher; das Schreiben der gespeicherten Abgleichparameterwerte für den Upstream-Port in ein mit dem Upstream-Port assoziiertes Register; und das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Upstream-Port zum Betrieb der einen oder der mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  • Beispiel 3 kann den Gegenstand von Beispiel 1 aufweisen, und es kann ebenfalls das Bereitstellen einer Leseanforderung aufweisen für ein mit einem Retimer, der mit dem Upstream-Port und/oder mit dem Downstream-Port verbunden ist, assoziiertes Register; das Empfangen von einem oder mehreren Abgleichparameterwerten für den Retimer von mit dem Retimer assoziierten Register; und das Speichern des einen Abgleichparameterwertes oder der mehreren Abgleichparameterwerte für den Retimer im nichtflüchtigen Speicher.
  • Beispiel 4 kann den Gegenstand von Beispiel 3 aufweisen, und es kann ebenfalls das Abrufen der gespeicherten Abgleichparameterwerte für den Retimer aus dem nichtflüchtigen Speicher aufweisen; das Schreiben der gespeicherten Abgleichparameterwerte für den Retimer in das mit dem Retimer assoziierte Register; und das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die in den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die in den Retimer mit dem Downstream-Port verbinden.
  • Beispiel 5 kann den Gegenstand von Beispiel 3 aufweisen, wobei das Bereitstellen einer Leseanforderung für das mit dem Retimer assoziierte Register das Bereitstellen einer geordneten Menge zum Register umfasst, die ein oder mehrere Register angibt, aus denen der Retimer Werte zum Upstream-Port bereitstellen soll.
  • Beispiel 6 kann den Gegenstand von Beispiel 1-3 aufweisen, und es kann ebenfalls das Bestimmen aufweisen, dass ein mit dem Upstream-Port und/oder mit dem Downstream-Port durch eine oder mehrere Verbindungen verbundener Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; und das Bereitstellen einer Anweisung zum Retimer zum Speichern des einen Abgleichparameterwertes oder der mehreren Abgleichparameterwerte, die mit dem Retimer assoziiert sind, im in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  • Beispiel 7 kann den Gegenstand von Beispiel 6 aufweisen, und es kann ebenfalls das Anweisen des Retimers zum Schreiben der Abgleichparameterwerte aus dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher in ein mit dem Retimer assoziierte Register aufweisen; und das Verwenden der Abgleichparameterwerte in dem mit dem Retimer assoziierten Register als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die in den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die in den Retimer mit dem Downstream verbinden.
  • Beispiel 8 kann den Gegenstand von einem der Beispiele 1-7 aufweisen, wobei die Eingangs-/Ausgangsverbindungen mit einem „Peripheral Component Interconnect Express“ (PCIe)-Protokoll konform sind.
  • Beispiel 9 kann den Gegenstand von einem der Beispiele 1-8 aufweisen, wobei das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, das Übergehen einer Abgleichprozedur eines Verbindungstrainings der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, umfasst.
  • Beispiel 10 kann den Gegenstand von einem der Beispiele 1-9 aufweisen, wobei das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, das Verwenden der Abgleichparameter in dem mit dem Downstream-Port assoziierten Register als Anfangswert zur Durchführung einer Abgleichprozedur eines Verbindungstrainings der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, umfasst.
  • Beispiel 11 ist ein System, aufweisend einen Upstream-Port; einen Downstream-Port, der durch eine oder mehrere mit einem „Peripheral Component Interconnect Express“ (PCIe)-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelt ist, wobei der Downstream-Port ein Sende-/Empfangseinstellungsregister umfasst; einen mit dem Upstream-Port assoziierten nichtflüchtigen Speicher, wobei der Upstream-Port Upstream-Port-Logik zum Lesen von Abgleichparameterwerten aus dem Downstream-Port umfasst; Speichern der Abgleichparameterwerte in dem mit dem Upstream-Port assoziierten nichtflüchtigen Speicher; Schreiben der Abgleichparameterwerte vom nichtflüchtigen Speicher in das Sende-/Empfangseinstellungsregister des Downstream-Ports; und Verwenden der Abgleichparameterwerte zum Betreiben der einen oder mehreren Verbindungen.
  • Beispiel 12 kann den Gegenstand von Beispiel 11 aufweisen, und es kann ebenfalls einen durch eine oder mehrere mit dem PCIe-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelten Retimer aufweisen, wobei der Retimer ein Retimer-Einstellungsregister umfasst; wobei der Upstream-Port Logik umfasst zum Bereitstellen einer Lesezugriffsanforderung zu dem Retimer-Einstellungsregister; Empfangen von Abgleichparameterwerten vom Retimer-Einstellungsregister; und Speichern der Abgleichparameterwerte im nichtflüchtigen Speicher.
  • Beispiel 13 kann den Gegenstand von Beispiel 12 aufweisen, wobei der Upstream-Port Logik umfasst zum Bereitstellen einer Schreibzugriffsanforderung an das Retimer-Einstellungsregister zum Schreiben der Abgleichparameterwerte an eine angegebene Registeradresse.
  • Beispiel 14 kann den Gegenstand von einem der Beispiele 11-13 aufweisen, und es kann ebenfalls einen durch eine oder mehrere mit dem PCIe-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelten Retimer aufweisen, wobei der Retimer ein Einstellungsregister umfasst; wobei der Upstream-Port Logik umfasst zum Bestimmen, dass der Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; und Bereitstellen einer Anweisung an den Retimer zum Speichern der Abgleichparameterwerte in dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  • Beispiel 15 kann den Gegenstand von Beispiel 14 aufweisen, wobei der Upstream-Port ferner Logik umfasst zum Bereitstellen einer Schreibanweisung an den Retimer zum Schreiben der Abgleichparameterwerte aus dem in Bezug auf das Retimer-Einstellungsregister lokalen nichtflüchtigen Speicher; und Verwenden der in das Retimer-Register geschriebenen Abgleichparameterwerte zum Betreiben der einen oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden.
  • Beispiel 16 kann den Gegenstand von einem der Beispiele 11-15 aufweisen, wobei die Upstream-Port-Logik eine Retimer-Konfigurationsregisterlogik umfasst, die zumindest teilweise in Hardware implementiert ist, und eine Retimer-Konfigurationsdaten-Rückmeldelogik, die zumindest teilweise in Hardware implementiert ist.
  • Beispiel 17 kann den Gegenstand von einem der Beispiele 11-16 aufweisen, wobei das Sende-/Empfangseinstellungsregister des Downstream-Ports ein Befehls-/Zustandsregister umfasst.
  • Beispiel 18 kann den Gegenstand von einem der Beispiele 11-17 aufweisen, wobei der nichtflüchtige Speicher einen mit dem Upstream-Port gekoppelten Flash-Speicher umfasst.
  • Beispiel 19 kann den Gegenstand von einem der Beispiele 11-18 aufweisen, wobei die Upstream-Port-Logik eine geordnete Menge zum Register bereitstellen soll mit der Angabe von einem oder mehreren Registern, aus denen Werte zum Upstream-Port bereitgestellt werden sollen.
  • Beispiel 20 ist ein Rechnerprogrammprodukt, das materiell auf nicht vorübergehenden rechnerlesbaren Medien umgesetzt ist, wobei das Rechnerprogrammprodukt Code umfasst, der bei der Ausführung einen Upstream-Port veranlasst, einen oder mehrere Abgleichparameterwerte für einen Downstream-Port in einem mit dem Upstream-Port assoziierten nichtflüchtigen Speicher zu speichern, wobei der Downstream-Port durch eine oder mehrere mit einem „Peripheral Component Interconnect Express“ (PCIe)-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelt ist; sowie das Durchführen einer Initialisierungssequenz von einer oder mehreren Eingangs-/Ausgangsverbindungen zwischen dem Upstream-Port und dem Downstream-Port, wobei die Initialisierungssequenz Verbindungstraining für die eine oder mehreren Eingangs-/Ausgangsverbindungen umfasst; Abrufen der gespeicherten Abgleichparameterwerte für den Downstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Downstream-Port in ein mit dem Downstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betrieb der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  • Beispiel 21 kann den Gegenstand von Beispiel 20 aufweisen, wobei der Code bei der Ausführung den Upstream-Port veranlasst, einen oder mehrere Abgleichparameterwerte für den Upstream-Port im nichtflüchtigen Speicher zu speichern; sowie das Abrufen der gespeicherten Abgleichparameterwerte für den Upstream-Port aus dem nichtflüchtigen Speicher; das Schreiben der gespeicherten Abgleichparameterwerte für den Upstream-Port in ein mit dem Upstream-Port assoziiertes Register; und die Verwendung der Abgleichparameterwerte als Abgleichparameter für den Upstream-Port zum Betreiben der ein oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  • Beispiel 22 kann den Gegenstand von Beispiel 20 aufweisen, wobei der Code bei der Ausführung den Upstream-Port veranlasst, eine Leseanforderung zu einem mit einem Retimer, der mit dem Upstream-Port und/oder dem Downstream-Port durch eine oder mehrere Verbindungen verbunden ist, bereitzustellen; sowie das Empfangen von einem oder mehreren Abgleichparameterwerten für den Retimer von dem mit dem Retimer assoziierten Register; und das Speichern des einen oder den mehreren Abgleichparameterwerte im nichtflüchtigen Speicher.
  • Beispiel 23 kann den Gegenstand von Beispiel 22 aufweisen, wobei der Code bei der Ausführung den Upstream-Port veranlasst, die gespeicherten Abgleichparameterwerte für den Retimer aus dem nichtflüchtigen Speicher abzurufen; sowie das Schreiben der gespeicherten Abgleichparameterwerte für den Retimer in das mit dem Retimer assoziierte Register; und die Verwendung der Abgleichparameterwerte als Abgleichparameter für den Upstream-Port zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, und von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream-Port verbinden.
  • Beispiel 24 kann den Gegenstand von Beispiel 20 aufweisen, wobei der Code bei der Ausführung den Upstream-Port veranlasst, zu bestimmen, dass ein mit dem Upstream-Port und/oder dem Downstream-Port durch eine oder mehrere Verbindungen verbundener Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; sowie das Bereitstellen einer Anweisung an den Retimer zum Speichern von einem oder mehreren Abgleichparameterwerten in dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  • Beispiel 25 kann den Gegenstand von Beispiel 24 aufweisen, wobei der Code bei der Ausführung den Upstream-Port veranlasst, den Retimer anzuweisen, die Abgleichparameterwerte aus dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher in ein mit dem Retimer assoziiertes Register zu schreiben; sowie die Verwendung der Abgleichparameterwerte in dem mit dem Retimer assoziierten Register als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, und von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream verbinden.
  • Beispiel 26 ist eine Vorrichtung, die einen Hardware-Prozessor aufweisen kann, gekoppelt mit einem nichtflüchtigen Speicher; eine „Peripheral Component Interconnect Express“ (PCIe)-konforme Schnittstelle, gekoppelt mit einer Downstream-Einrichtung; einen Sender und Empfänger und Logik, die zumindest teilweise in Hardware implementiert ist, um von der Downstream-Einrichtung einen oder mehrere Abgleichparameterwerte anzufordern; den einen oder die mehreren Abgleichparameter in dem nichtflüchtigen Speicher zu speichern oder das Speichern zu veranlassen; und die Downstream-Einrichtung anzuweisen, die Abgleichparameterwerte zu Zwecken des Verbindungstrainings zu verwenden.
  • Beispiel 27 kann den Gegenstand von Beispiel 26 aufweisen, wobei die Downstream-Einrichtung ein Retimer ist.
  • Beispiel 28 kann den Gegenstand von Beispiel 27 aufweisen, wobei die Anforderung eine Identifizierung von einem oder mehreren Einstellungsregisterinhalten umfasst.
  • Beispiel 29 an den Gegenstand von Beispiel 27 aufweisen, wobei die Anforderung eine Anweisung zum lokalen Speichern der Abgleichparameterwerte in einem in Bezug auf die Downstream-Einrichtung lokalen nichtflüchtigen Speicher umfasst.
  • Beispiel 30 kann den Gegenstand von Beispiel 26 aufweisen, wobei die Downstream-Einrichtung eine Peripheriekomponente ist.
  • Beispiel 31 ist eine Retimer-Vorrichtung, die einen Empfänger aufweist, der über eine mit einem „Peripheral Component Interconnect Express“ (PCIe)-Protokoll konforme Verbindung mit einem Sender eines Upstream-Ports gekoppelt ist; einen Sender, der über eine weitere PCIe-konforme Verbindung mit einem Empfänger eines Upstream-Ports gekoppelt ist; ein Einstellungsregister zum vorübergehenden Speichern von Verbindungstraining- und Abgleichparameterwerte in; und Mittel zum Verarbeiten einer Anforderung vom Upstream-Port zum Speichern der Abgleichparameterwerte; und Mittel zum Speichern der Abgleichparameterwerte.
  • Beispiel 32 an den Gegenstand von Beispiel 31 aufweisen, wobei die Mittel zum Verarbeiten der Anforderung Mittel aufweisen zum Lesen der Einstellungsregisterwerte.
  • Beispiel 33 kann den Gegenstand von einem der Beispiele 31 oder 32 aufweisen, wobei Mittel zum Speichern der Abgleichparameterwerte Mittel zum Bereitstellen der Abgleichparameterwerte zum Upstream-Port aufweisen.
  • Beispiel 34 kann den Gegenstand von einem der Beispiele 31 oder 32 aufweisen, wobei Mittel zum Speichern der Abgleichparameterwerte Mittel zum Speichern der Abgleichparameterwerte in einem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher aufweisen.
  • Beispiel 35 kann den Gegenstand von Beispiel 31 aufweisen und auch Mittel aufweisen zum Empfangen einer Anweisung vom Upstream-Port zum Schreiben von Abgleichparameterwerten in das Einstellungsregister.
  • Beispiel 36 kann den Gegenstand von Beispiel 35 aufweisen, wobei die Mittel zum Empfangen einer Anweisung Mittel aufweisen können zum Empfangen der Abgleichparameterwerte vom Upstream-Port.
  • Beispiel 37 kann den Gegenstand von Beispiel 35 aufweisen, wobei die Mittel zum Empfangen einer Anweisung Mittel aufweisen können zum Empfangen einer Anweisung zum Schreiben von Abgleichparameterwerten aus einem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher in das Einstellungsregister.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62548857 [0001]

Claims (25)

  1. Verfahren zum Durchführen von Verbindungstraining für eine oder mehrere Eingangs-/Ausgangsverbindungen, die einen Upstream-Port mit einem Downstream-Port verbinden, wobei das Verfahren umfasst: Speichern von einem oder mehreren Abgleichparameterwerten für den Downstream-Port in einem mit dem Upstream-Port assoziierten nichtflüchtigen Speicher; Durchführen einer Initialisierungssequenz der einen oder mehreren Eingangs-/Ausgangsverbindungen zwischen dem Upstream-Port und dem Downstream-Port, wobei die Initialisierungssequenz Verbindungstraining der einen oder mehreren Eingangs-/Ausgangsverbindungen umfasst; Abrufen der gespeicherten Abgleichparameterwerte für den Downstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Downstream-Port in ein mit dem Downstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  2. Verfahren nach Anspruch 1, ferner umfassend: Speichern von einem oder mehreren Abgleichparameterwerten für den Upstream-Port im nichtflüchtigen Speicher; Abrufen der gespeicherten Abgleichparameterwerte für den Upstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Upstream-Port in ein mit dem Upstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Upstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  3. Verfahren nach einem der Ansprüche 1 oder 2, ferner umfassend: Bereitstellen einer Leseanforderung an ein Register, das mit einem Retimer assoziiert ist, der mit dem Upstream-Port und/oder dem Downstream-Port durch einen oder mehrere Verbindungen verbunden ist; Empfangen von einem oder mehreren Abgleichparameterwerten für den Retimer von dem mit dem Retimer assoziierten Register; und Speichern des einen Abgleichparameterwertes oder der mehreren Abgleichparameterwerte für den Retimer im nichtflüchtigen Speicher.
  4. Verfahren nach Anspruch 3, ferner umfassend: Abrufen der gespeicherten Abgleichparameterwerte für den Retimer aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Retimer in das mit dem Retimer assoziierte Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream-Port verbinden.
  5. Verfahren nach Anspruch 3, wobei das Bereitstellen einer Leseanforderung für das mit dem Retimer assoziierte Register das Bereitstellen einer geordneten Menge zum Register umfasst, die ein oder mehrere Register angibt, aus denen der Retimer Werte zum Upstream-Port bereitstellen soll.
  6. Verfahren nach einem der Ansprüche 1 oder 2 oder 3, ferner umfassend: Bestimmen, dass ein durch eine oder mehrere Verbindungen mit dem Upstream-Port und/oder dem Downstream-Port verbundener Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; und Bereitstellen einer Anweisung an den Retimer zum Speichern von einem oder mehreren mit dem Retimer assoziierten Abgleichparameterwerten in dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  7. Verfahren nach Anspruch 6, ferner umfassend: Anweisen des Retimers zum Schreiben der Abgleichparameterwerte aus dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher in ein mit dem Retimer assoziiertes Register; und Verwenden der Abgleichparameterwerte in dem mit dem Retimer assoziierten Register als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream verbinden.
  8. Verfahren nach einem der Ansprüche 1 oder 2 oder 3, wobei die Eingangs-/Ausgangsverbindungen mit einem Peripheral Component Interconnect Express (PCIe)-Protokoll konform sind.
  9. Verfahren nach einem der Ansprüche 1 oder 2 oder 3, wobei das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, das Übergehen einer Abgleichprozedur eines Verbindungstrainings der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, umfasst.
  10. Verfahren nach einem der Ansprüche 1 oder 2 oder 3, wobei das Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, das Verwenden der Abgleichparameter in dem mit dem Downstream-Port assoziierten Register als Anfangswert zur Durchführung einer Abgleichprozedur eines Verbindungstrainings der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden, umfasst.
  11. System, umfassend: einen Upstream-Port; einen Downstream-Port, mit dem Upstream-Port gekoppelt durch eine oder mehrere mit einem Peripheral Component Interconnect Express (PCIe)-Protokoll konforme Verbindungen, wobei der Downstream-Port ein Sende-/Empfangseinstellungsregister umfasst; einen mit dem Upstream-Port assoziierten nichtflüchtigen Speicher; wobei der Upstream-Port Upstream-Port-Logik umfasst zum Lesen von Abgleichparameterwerten vom Downstream-Port; Speichern der Abgleichparameterwerte in dem mit dem Upstream-Port assoziierten nichtflüchtigen Speicher; Schreiben der Abgleichparameterwerte aus dem nichtflüchtigen Speicher in das Sende-/Empfangseinstellungsregister des Downstream-Ports; und Verwenden der Abgleichparameterwerte zum Betreiben der einen oder mehreren Verbindungen.
  12. System nach Anspruch 11, ferner umfassend: einen Retimer, durch eine oder mehrere mit dem PCle-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelt, wobei der Retimer dem Downstream-Port vorgeschaltet positioniert ist, wobei der Retimer ein Retimer-Einstellungsregister umfasst; wobei der Upstream-Port Logik umfasst zum Bereitstellen einer Lesezugriffsanforderung an das Retimer-Einstellungsregister; Empfangen der Abgleichparameterwerte vom Retimer-Einstellungsregister; und Speichern der Abgleichparameterwerte in dem nichtflüchtigen Speicher.
  13. System nach Anspruch 12, wobei der Upstream-Port Logik umfasst zum Bereitstellen einer Schreibzugriffsanforderung an das Retimer-Einstellungsregister zum Schreiben der Abgleichparameterwerte an eine angegebene Registeradresse.
  14. System nach einem der Ansprüche 11 oder 12 oder 13, ferner umfassend: einen Retimer, durch eine oder mehrere mit dem PCIe-Protokoll konforme Verbindungen mit dem Upstream-Port gekoppelt, wobei der Retimer dem Downstream-Port vorgeschaltet positioniert ist, wobei der Retimer ein Einstellungsregister umfasst; wobei der Upstream-Port Logik umfasst zum Bestimmen, dass der Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; und Bereitstellen einer Anweisung an den Retimer zum Speichern von Abgleichparameterwerte in den in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  15. System nach Anspruch 14, wobei der Upstream-Port ferner Logik umfasst zum Bereitstellen einer Schreibanweisung an den Retimer zum Schreiben der Abgleichparameterwerte aus dem in Bezug auf das Retimer-Einstellungsregister lokalen nichtflüchtigen Speicher; und Verwenden der in das Retimer-Register geschriebenen Abgleichparameterwerte zum Betreiben der einen oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden.
  16. System nach einem der Ansprüche 11 oder 12 oder 13, wobei die Upstream-Port-Logik eine Retimer-Konfigurationsregisterlogik umfasst, die zumindest teilweise in Hardware implementiert ist, und eine Retimer-Konfigurationsdaten-Rückmeldelogik, die zumindest teilweise in Hardware implementiert ist.
  17. System nach einem der Ansprüche 11 oder 12 oder 13, wobei das Sende-/Empfangseinstellungsregister des Downstream-Ports ein Befehls-/Zustandsregister umfasst.
  18. System nach einem der Ansprüche 11 oder 12 oder 13, wobei der nichtflüchtige Speicher einen mit dem Upstream-Port gekoppelten Flash-Speicher umfasst.
  19. System nach einem der Ansprüche 11 oder 12 oder 13, wobei die Upstream-Port-Logik eine geordnete Menge zum Register bereitstellen soll mit der Angabe von einem oder mehreren Registern, aus denen Werte zum Upstream-Port bereitgestellt werden sollen.
  20. Rechnerprogrammprodukt, materiell ausgeführt auf nicht vorübergehenden rechnerlesbaren Medien, wobei das Rechnerprogrammprodukt Code umfasst, der bei der Ausführung einen Upstream-Port veranlasst zum Speichern von einem oder mehreren Abgleichparameterwerten für einen Downstream-Port in einem mit dem Upstream-Port assoziierten nichtflüchtigen Speicher, wobei der Downstream-Port durch eine oder mehrere mit einem Peripheral Component Interconnect Express (PCIe)-Protokoll konformen Verbindungen mit dem Upstream-Port gekoppelt ist; Durchführen einer Initialisierungssequenz von einer oder mehreren Eingangs-/Ausgangsverbindungen zwischen dem Upstream-Port und dem Downstream-Port, wobei die Initialisierungssequenz Verbindungstraining der einen oder mehreren Eingangs-/Ausgangsverbindungen umfasst; Abrufen der gespeicherten Abgleichparameterwerte für den Downstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Downstream-Port in ein mit dem Downstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Downstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  21. Rechnerprogrammprodukt nach Anspruch 20, wobei der Code bei der Ausführung den Upstream-Port veranlasst zum Speichern von einem oder mehreren Abgleichparameterwerten für den Upstream-Port im nichtflüchtigen Speicher; Abrufen der gespeicherten Abgleichparameterwerte für den Upstream-Port aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Upstream-Port in ein mit dem Upstream-Port assoziiertes Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Upstream-Port zum Betreiben der einen oder mehreren Verbindungen, die den Upstream-Port mit dem Downstream-Port verbinden.
  22. Rechnerprogrammprodukt nach einem der Ansprüche 20 oder 21, wobei der Code bei der Ausführung den Upstream-Port veranlasst zum Bereitstellen einer Leseanforderung an ein Register, das mit einem Retimer assoziiert ist, der durch eine oder mehrere Verbindungen mit dem Upstream-Port und/oder dem Downstream-Port verbunden ist; Empfangen von einem oder mehreren Abgleichparameterwerten für den Retimer von dem mit dem Retimer assoziierten Register; und Speichern des einen Abgleichparameterwertes oder der mehreren Abgleichparameterwerte für den Retimer im nichtflüchtigen Speicher.
  23. Rechnerprogrammprodukt nach Anspruch 22, wobei der Code bei der Ausführung den Upstream-Port veranlasst zum Abrufen der gespeicherten Abgleichparameterwerte für den Retimer aus dem nichtflüchtigen Speicher; Schreiben der gespeicherten Abgleichparameterwerte für den Retimer in das mit dem Retimer assoziierte Register; und Verwenden der Abgleichparameterwerte als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream-Port verbinden.
  24. Rechnerprogrammprodukt nach einem der Ansprüche 20 oder 21, wobei der Code bei der Ausführung den Upstream-Port veranlasst zum Bestimmen, dass ein durch eine oder mehrere Verbindungen mit dem Upstream-Port und/oder dem Downstream-Port verbundener Retimer einen in Bezug auf den Retimer lokalen nichtflüchtigen Speicher umfasst; und Bereitstellen einer Anweisung an den Retimer zum Speichern von einem oder mehreren mit dem Retimer assoziierten Abgleichparameterwerten in dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher.
  25. Rechnerprogrammprodukt nach Anspruch 24, wobei der Code bei der Ausführung den Upstream-Port veranlasst zum Anweisen des Retimers zum Schreiben der Abgleichparameterwerte aus dem in Bezug auf den Retimer lokalen nichtflüchtigen Speicher in ein mit dem Retimer assoziiertes Register; und Verwenden der Abgleichparameterwerte in dem mit dem Retimer assoziierten Register als Abgleichparameter für den Retimer zum Betreiben von einer oder mehreren Verbindungen, die den Retimer mit dem Upstream-Port verbinden, oder von einer oder mehreren Verbindungen, die den Retimer mit dem Downstream verbinden.
DE102018005753.5A 2017-08-22 2018-07-20 Serdes link training Pending DE102018005753A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762548857P 2017-08-22 2017-08-22
US62/548,857 2017-08-22
US15/811,951 2017-11-14
US15/811,951 US11860812B2 (en) 2017-08-22 2017-11-14 Serdes link training

Publications (1)

Publication Number Publication Date
DE102018005753A1 true DE102018005753A1 (de) 2019-02-28

Family

ID=65037938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018005753.5A Pending DE102018005753A1 (de) 2017-08-22 2018-07-20 Serdes link training

Country Status (2)

Country Link
US (2) US11860812B2 (de)
DE (1) DE102018005753A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376103B (zh) 2018-06-19 2021-10-19 华为技术有限公司 快速均衡的方法、芯片和通信系统
CN109857690B (zh) * 2019-01-03 2023-04-28 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
JP7204594B2 (ja) * 2019-06-26 2023-01-16 ルネサスエレクトロニクス株式会社 通信システム、制御回路およびイコライザの受信信号調整方法
CN112214158B (zh) * 2019-07-10 2024-03-22 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及计算机可读取存储介质
US11061849B2 (en) 2019-10-17 2021-07-13 Dell Products L.P. Adaptive transmitter preset mechanism in PCIe link equalization procedure
JP2021197583A (ja) * 2020-06-10 2021-12-27 キオクシア株式会社 電子機器および方法
CN114048160A (zh) * 2021-11-08 2022-02-15 上海兆芯集成电路有限公司 链路均衡调节系统及链路均衡调节方法
CN114024893A (zh) * 2021-11-18 2022-02-08 群联电子股份有限公司 时钟重整电路模块、信号传输系统及信号传输方法
CN114416636A (zh) * 2021-12-17 2022-04-29 飞腾信息技术有限公司 一种pcie设备链路速率匹配方法、片上系统和计算机设备
US11907004B2 (en) * 2022-06-27 2024-02-20 eTopus Technology Inc. Configurable transmitter device based on data rate

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4621366A (en) * 1984-02-22 1986-11-04 Universal Data Systems, Inc. Modem equalizer training using previously stored parameters
US20050270988A1 (en) 2004-06-04 2005-12-08 Dehaemer Eric Mechanism of dynamic upstream port selection in a PCI express switch
US7353443B2 (en) 2005-06-24 2008-04-01 Intel Corporation Providing high availability in a PCI-Express link in the presence of lane faults
US8599913B1 (en) * 2011-08-01 2013-12-03 Pmc-Sierra Us, Inc. Data regeneration apparatus and method for PCI express
US9847891B2 (en) * 2011-08-24 2017-12-19 Nvidia Corporation System and method for detecting reuse of an existing known high-speed serial interconnect link
US8437343B1 (en) 2012-05-22 2013-05-07 Intel Corporation Optimized link training and management mechanism
US8856573B2 (en) 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US20140281067A1 (en) 2013-03-15 2014-09-18 Debendra Das Sharma Apparatus, system, and method for performing link training and equalization
US9645965B2 (en) 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
US9146848B2 (en) 2013-04-30 2015-09-29 Hewlett-Packard Development Company, L.P. Link training for a serdes link

Also Published As

Publication number Publication date
US20190034376A1 (en) 2019-01-31
US11573920B2 (en) 2023-02-07
US11860812B2 (en) 2024-01-02
US20210342288A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
DE102018005753A1 (de) Serdes link training
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112013007752B3 (de) Hochleistungsverdrahtungs-Bitübertragungsschicht
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112018001138T5 (de) Hochleistungsverbindung
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE102018006852A1 (de) Verfahren, Vorrichtung und System für eine ThunderBolt-basierte Anzeigetopologie für duale Grafiksysteme
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle

Legal Events

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

Ref document number: 102018010446

Country of ref document: DE

R016 Response to examination communication