DE102018128569A1 - Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens - Google Patents

Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens Download PDF

Info

Publication number
DE102018128569A1
DE102018128569A1 DE102018128569.8A DE102018128569A DE102018128569A1 DE 102018128569 A1 DE102018128569 A1 DE 102018128569A1 DE 102018128569 A DE102018128569 A DE 102018128569A DE 102018128569 A1 DE102018128569 A1 DE 102018128569A1
Authority
DE
Germany
Prior art keywords
receiver
test
transmitter
state
link
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
DE102018128569.8A
Other languages
English (en)
Inventor
Debendra Das Sharma
Daniel Froelich
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 DE102018128569A1 publication Critical patent/DE102018128569A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • 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
    • 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
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40091Bus bridging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

Ein Port einer Rechenvorrichtung schließt mehrere Empfänger-Sender-Paare ein, wobei jedes der Empfänger-Sender-Paare einen jeweiligen Empfänger und einen jeweiligen Sender einschließt. Die Vorrichtung schließt ferner Zustandsmaschinenlogik ein, die eine Trainingssequenz erfasst, die durch ein bestimmtes der Empfänger-Sender-Paare auf einer bestimmten Spur von einer Testervorrichtung empfangen wird. Die Trainingssequenz schließt einen Wert ein, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen. Das bestimmte Empfänger-Sender-Paar wechselt in einen ersten Link-Zustand in Verbindung mit dem Test und ein oder mehrere andere Empfänger-Sender-Paare des Ports wechseln in einen zweiten Link-Zustand, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist, um zu bewirken, dass während des Tests ein Nebensprechen auf der bestimmten Spur erzeugt wird.

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht den Vorteil der Priorität der am 8. Januar 2018 eingereichten vorläufigen US-Patentanmeldung Nr. 62/614,874 , deren Offenbarung durch Bezugnahme in ihrer Gesamtheit hierin eingeschlossen wird.
  • GEBIET
  • Diese Offenbarung betrifft ein Rechensystem und insbesondere (aber nicht ausschließlich) das Testen von Systemen für Punkt-zu-Punkt-Verschaltungen.
  • HINTERGRUND
  • Fortschritte bei der Halbleiterverarbeitung und beim Logikdesign haben eine Erhöhung der Menge an Logik erlaubt, die auf Vorrichtungen mit integrierter Schaltung vorhanden sein kann. Als Begleiterscheinung davon haben sich Computersystemkonfigurationen von einer einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren, die auf einer einzelnen integrierten Schaltung vorhanden sind, sowie anderen Schnittstellen, die in diesen Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst üblicherweise einen einzelnen physikalischen Prozessor-Die, wobei der Prozessor-Die eine beliebige Anzahl von Kernen, Hardware-Threads, logischen Prozessoren, Schnittstellen, Speichern, Controller-Hubs usw. einschließen kann.
  • Infolge der größeren Fähigkeit, mehr Verarbeitungsleistung in kleineren Gehäusen unterzubringen, werden kleinere Rechenvorrichtungen immer beliebter. Die Verbreitung von Smartphones, Tablets, ultraflachen Notebooks und anderer Benutzerausrüstung hat exponentiell zugenommen. Diese kleineren Vorrichtungen stützen sich jedoch sowohl für die Datenspeicherung als auch für eine komplexe Verarbeitung, die über den Formfaktor hinausgeht, auf Server. Folglich hat auch die Nachfrage auf dem Markt der Hochleistungsdatenverarbeitung (d. h. die Nachfrage nach Serverplatz) zugenommen. Zum Beispiel ist in modernen Servern üblicherweise nicht nur ein Einzelprozessor mit mehreren Kernen vorhanden, sondern es sind auch mehrere physikalische Prozessoren (auch als mehrere Sockel bezeichnet) vorhanden, um die Rechenleistung zu erhöhen. Server können auch unter Verwendung von verteiltem Rechnen, in Rack-Scale-Architekturen und anderen alternativen Implementierungen implementiert werden. Da die Verarbeitungsleistung zusammen mit der Anzahl von Vorrichtungen in einem Rechensystem wächst, wird die Kommunikation zwischen Sockeln und anderen Vorrichtungen wichtiger.
  • Dabei haben sich Verschaltungen von eher herkömmlichen Multi-Drop-Bussen, die hauptsächlich elektrische Kommunikationen verarbeiteten, zu kompletten Verschaltungsarchitekturen entwickelt, die eine schnelle Kommunikation ermöglichen. Während eine Nachfrage nach künftigen Prozessoren besteht, die bei noch höheren Geschwindigkeiten arbeiten, stützt sich diese Nachfrage leider auf die Fähigkeiten von vorhandenen Verschaltungsarchitekturen.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Rechensystems, das eine Verschaltungsarchitektur einschließt.
    • 2 veranschaulicht eine Ausführungsform einer Verschaltungsarchitektur, die einen geschichteten Stapel einschließt.
    • 3 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die/das innerhalb einer Verschaltungsarchitektur erzeugt oder empfangen werden soll.
    • 4 veranschaulicht eine Ausführungsform eines Sender-Empfänger-Paars für eine Verschaltungsarchitektur.
    • 5 ist ein Diagramm, das eine beispielhafte Link-Training-Zustandsmaschine veranschaulicht.
    • 6A-6B sind Diagramme, die eine beispielhafte Vorrichtung veranschaulichen, die mit einer Testervorrichtung verbunden ist, um ein Testen einer bestimmten Spur eines Links durchzuführen.
    • 7 ist ein Diagramm, das einen Abschnitt einer beispielhaften Link-Training-Zustandsmaschine, einschließlich spezieller Test-Link-Zustände, veranschaulicht.
    • 8 ist ein Blockdiagramm, das eine beispielhafte Vorrichtung veranschaulicht, die unter Verwendung einer beispielhaften Konformitätsvorrichtung mit einer Testervorrichtung verbunden ist.
    • 9A-9E sind Blockdiagramme, die eine Signalübertragung in beispielhaften Test-Link-Zuständen veranschaulichen.
    • 10 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Multicore-Prozessor einschließt.
    • 11 veranschaulicht eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessoren einschließt.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie Beispiele spezifischer Prozessorarten und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische architekturelle und mikroarchitekturelle Details, spezifische Registerkonfigurationen, spezifische Befehlsarten, spezifische Systemkomponenten, spezifische Messungen/Höhen, spezifische(r) Prozessor-Pipeline-Stufen und -betrieb usw., um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Es wird allerdings für den Fachmann ersichtlich sein, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Erfindung umzusetzen. In anderen Fällen wurden hinlänglich bekannte Komponenten oder Verfahren, wie spezifische und alternative Prozessorarchitekturen, spezifische(r) Logikschaltungen/-code für beschriebene Algorithmen, spezifischer Firmware-Code, spezifischer Verschaltungsbetrieb, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compiler-Implementierungen, spezifische Ausdrücke von Algorithmen in Code, spezifische Abschalt- und Gattertechniken/-Logik und andere spezifische Betriebsdetails von Computersystemen nicht detailliert beschrieben, um ein unnötiges Verunklaren der vorliegenden Erfindung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieerhaltung und Energieeffizienz in spezifischen integrierten Schaltungen, wie in Computerplattformen oder Mikroprozessoren, beschrieben sein können, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren hierin beschriebener Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewandt werden, die auch von besserer Energieeffizienz und Energieerhaltung profitieren können. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt. Und sie können auch in anderen Vorrichtungen, wie handgehaltenen Vorrichtungen, Tablets, anderen dünnen Notebooks, System-on-a-Chip(SOC)-Vorrichtungen und eingebetteten Anwendungen, verwendet werden. Manche Beispiele für handgehaltene Vorrichtungen schließen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und handgehaltene PCs ein. Eingebettete Anwendungen schließen üblicherweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System-on-a-Chip, Network-Computer (NetPC), Set-Top-Boxen, Network-Hubs, Wide-Area-Network(WAN)-Schalter oder jedes andere System, das die unten gelehrten Funktionen und Operationen durchführen kann, ein. Darüber hinaus sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können auch Softwareoptimierungen für Energieerhaltung und -effizienz betreffen. Wie in der nachfolgenden Beschreibung leicht ersichtlich ist, sind die hier beschriebenen Verfahren, Einrichtungen und Systeme (egal, ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) für eine mit Leistungsfähigkeitserwägungen austarierte Zukunft der „grünen Technologie“ unverzichtbar.
  • Mit der Weiterentwicklung von Rechensystemen werden die Komponenten darin komplexer. Als Ergebnis davon erfährt die Verschaltungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten ebenfalls zunehmende Komplexität, um sicherzustellen, dass Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Ferner verlangen unterschiedliche Marktsegmente unterschiedliche Aspekte von Verschaltungsarchitekturen, um die Marktbedürfnisse zu erfüllen. Beispielsweise erfordern Server eine höhere Leistungsfähigkeit, wenngleich das mobile Ökosystem manchmal in der Lage ist, eine Gesamtleistungsfähigkeit für Stromeinsparungen zu opfern. Dennoch ist es eine singuläre Aufgabe der meisten Strukturen, höchstmögliche Leistungsfähigkeit mit maximaler Stromeinsparung bereitzustellen. Im Folgenden wird eine Anzahl von Verschaltungen erörtert, die potenziell von Aspekten der hierin beschriebenen Erfindung profitieren würden.
  • Eine Verschaltungsstrukturarchitektur schließt die Peripheral-Component-Interconnect(PCI)-Express(PCIe)-Architektur ein. Ein Hauptziel von PCle ist, es Komponenten und Vorrichtungen verschiedener Hersteller zu ermöglichen, in einer offenen Architektur, die mehrere Marktsegmente; Clients (Desktops und Mobile), Server (Standard, Rack Scale, Cloud, Fog, Enterprise usw.) sowie eingebettete und Kommunikationsvorrichtungen umspannt, zu interagieren. PCI Express ist eine universelle Hochleistungs-E/A-Verschaltung, die für eine große Vielfalt von zukünftigen Rechen- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute, wie das Nutzungsmodell, die Ladespeicherarchitektur und Softwareschnittstellen, wurden durch ihre Überarbeitungen beibehalten, während frühere parallele Busimplementierungen durch eine hoch skalierbare, vollkommen serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express nutzen die Vorteile von Fortschritten bei Punkt-zu-Punkt-Verschaltungen, der schalterbasierten Technologie und des paketierten Protokolls, um neue Leistungs- und Merkmalniveaus zu liefern. Leistungsverwaltung, Quality of Service (QoS), Hot-Plug-/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung gehören zu den erweiterten Merkmalen, die von PCI Express unterstützt werden.
  • Bezug nehmend auf 1 ist eine Ausführungsform einer Struktur veranschaulicht, die aus Punkt-zu-Punkt-Links besteht, die einen Satz von Komponenten verschalten. Ein System 100 schließt einen Prozessor 105 und einen Systemspeicher 110 ein, die an einen Controller-Hub 115 gekoppelt sind. Der Prozessor 105 schließt ein beliebiges Verarbeitungselement, wie einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor, ein. Der Prozessor 105 ist durch einen Front-Side-Bus (FSB) 106 an den Controller-Hub 115 gekoppelt. In einer Ausführungsform ist der FSB 106 eine serielle Punkt-zu-Punkt-Verschaltung, wie unten beschrieben. In einer anderen Ausführungsform schließt die Verbindung 106 eine serielle, differentielle Verschaltungsarchitektur, die mit unterschiedlichen Verschaltungsstandards übereinstimmt, ein. In einigen Implementierungen kann das System neben anderen beispielhaften Merkmalen Logik zum Implementieren von mehreren Protokollstapeln und weitere Logik zur Aushandlung von alternativen Protokollen, die auf einer gemeinsamen physikalischen Schicht ausgeführt werden sollen, einschließen.
  • Der Systemspeicher 110 schließt eine beliebige Speichervorrichtung, wie Speicher mit wahlfreiem Zugriff (Random Access Memory, RAM), nichtflüchtigen Speicher (NV-Speicher) oder anderen Speicher, auf den Vorrichtungen in dem System 100 zugreifen können, ein. Der Systemspeicher 110 ist durch eine Speicherschnittstelle 116 an den Controller-Hub 115 gekoppelt. Beispiele einer Speicherschnittstelle schließen eine Double-Data-Rate(DDR)-Speicherschnittstelle, eine Dual-Channel-DDR-Speicherschnittstelle und eine Dynamic-RAM(DRAM)-Speicherschnittstelle ein.
  • In einer Ausführungsform ist der Controller-Hub 115 ein Root-Hub, Root-Complex oder Root-Controller in einer Peripheral-Component-Interconnect-Express(PCIe oder PCIE)-Verschaltungshierarchie. Beispiele des Controller-Hub 115 schließen einen Chipsatz, einen Memory-Controller-Hub (MCH), eine Northbridge, einen Interconnect-Controller-Hub (ICH), eine Southbridge und einen Root-Controller/-Hub ein. Oft bezieht sich der Begriff Chipsatz auf zwei physisch getrennte Controller-Hubs, das heißt einen Memory-Controller-Hub (MCH), der an einen Interconnect-Controller-Hub (ICH) gekoppelt ist. Es ist zu beachten, dass aktuelle Systeme oft den in dem Prozessor 105 integrierten MCH einschließen, während der Controller 115 auf ähnliche Weise wie unten beschrieben mit E/A-Vorrichtungen kommunizieren soll. In manchen Ausführungsformen wird Peer-to-Peer-Routing optional durch den Root-Complex 115 unterstützt.
  • Hier ist der Controller-Hub 115 durch einen seriellen Link 119 an einen Schalter/eine Brücke 120 gekoppelt. Eingabe-/Ausgabemodule 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, schließen einen geschichteten Protokollstapel ein bzw. implementieren diesen, um eine Kommunikation zwischen dem Controller-Hub 115 und dem Schalter 120 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Schalter 120 gekoppelt sein.
  • Der Schalter/die Brücke 120 leitet Pakete/Nachrichten von Vorrichtung 125 upstream, das heißt eine Hierarchie aufwärts in Richtung eines Root-Complex zum Controller-Hub 115, und downstream, das heißt eine Hierarchie nach unten weg von einem Root-Controller von dem Prozessor 105 oder dem Systemspeicher 110 zu der Vorrichtung 125. Der Schalter 120 wird in einer Ausführungsform als eine logische Anordnung mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 schließt eine beliebige interne oder externe Vorrichtung oder Komponente ein, die an ein elektronisches System, wie eine E/A-Vorrichtung, einen Network-Interface-Controller (NIC), eine Erweiterungskarte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal-Serial-Bus(USB)-Vorrichtung, einen Scanner und andere Eingabe-/Ausgabevorrichtungen, gekoppelt werden soll. Oft wird in der PCIe-Umgangssprache, wie zum Beispiel Vorrichtung, als ein Endpunkt bezeichnet. Obwohl nicht speziell gezeigt, kann die Vorrichtung 125 eine PCIe-zu-PCI/PCI-X-Brücke einschließen, um ältere PCI-Vorrichtungen oder PCI-Vorrichtungen anderer Versionen zu unterstützen. Endpunktvorrichtungen in PCle werden häufig als ältere, PCle- oder Root-Complex-integrierte Endpunkte klassifiziert.
  • Ein Grafikbeschleuniger 130 ist über einen seriellen Link 132 auch an den Controller-Hub 115 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 130 an einen MCH gekoppelt, der an einen ICH gekoppelt ist. Der Schalter 120 und entsprechend die E/A-Vorrichtung 125 wird dann an den ICH gekoppelt. E/A-Module 131 und 118 sollen auch einen geschichteten Protokollstapel implementieren, um zwischen dem Grafikbeschleuniger 130 und dem Controller-Hub 115 zu kommunizieren. Ähnlich wie bei der MCH-Erörterung oben kann ein Grafik-Controller oder der Grafikbeschleuniger 130 selbst in den Prozessor 105 integriert sein. Ferner können ein oder mehrere Links (z. B. 123) des Systems eine oder mehrere Erweiterungsvorrichtungen (z. B. 150), wie Retimer, Repeater usw., einschließen.
  • Bezug nehmend auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels veranschaulicht. Ein geschichteter Protokollstapel 200 schließt eine beliebige Form eines geschichteten Kommunikationsstapels, wie einen Quick-Path-Interconnect(QPI)-Stapel, einen PCIe-Stapel, einen Hochleistungsrechenverschaltungsstapel der nächsten Generation oder einen anderen geschichteten Stapel, ein. Obwohl die unmittelbar folgende Erörterung Bezug nehmend auf 1-4 einen PCIe-Stapel betrifft, können die gleichen Konzepte auf andere Verschaltungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 200 ein PCIe-Protokollstapel, der eine Transaktionsschicht 205, eine Link-Schicht 210 und eine physikalische Schicht 220 einschließt. Eine Schnittstelle, wie Schnittstellen 117, 118, 121, 122, 126 und 131 in 1, kann als Kommunikationsprotokollstapel 200 dargestellt sein. Die Darstellung als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert/einschließt.
  • PCI Express verwendet Pakete, um Informationen zwischen Komponenten zu kommunizieren. Pakete werden in der Transaktionsschicht 205 und der Daten-Link-Schicht 210 gebildet, um die Informationen von der übertragenden Komponente zu der empfangenden Komponente zu transportieren. Wenn die übertragenen Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die erforderlich sind, um Pakete in diesen Schichten handzuhaben. Auf der empfangenden Seite tritt der umgekehrte Prozess auf, und Pakete werden von ihrer Darstellung der physikalischen Schicht 220 in die Darstellung der Daten-Link-Schicht 210 und schließlich (für Transaktionsschichtpakete) in die Form, die von der Transaktionsschicht 205 der empfangenden Vorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 205 eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Verschaltungsarchitektur, wie zum Beispiel der Daten-Link-Schicht 210 und der physikalischen Schicht 220, bereitstellen. In diesem Zusammenhang ist eine Hauptverantwortung der Transaktionsschicht 205 das Assemblieren und Deassemblieren von Paketen (das heißt von Transaktionsschichtpaketen oder TLPs). Die Translationsschicht 205 verwaltet typischerweise eine Credit-basierte Flusssteuerung für TLPs. PCIe implementiert geteilte Transaktionen, das heißt Transaktionen mit Anforderung und Antwort getrennt durch Zeit, was es einem Link erlaubt, anderen Verkehr zu übertragen, während die Zielvorrichtung Daten für die Antwort erfasst.
  • Außerdem verwendet PCle eine Credit-basierte Flusssteuerung. In diesem Schema sagt eine Vorrichtung eine anfängliche Credit-Menge für jeden der Empfangspuffer in der Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie der Controller-Hub 115 in 1, zählt die Anzahl der von jedem TLP verbrauchten Credits. Eine Transaktion kann übertragen werden, wenn die Transaktion ein Credit-Limit nicht übersteigt. Nach Empfangen einer Antwort wird eine Credit-Menge wiederhergestellt. Ein Vorteil eines Credit-Systems ist es, dass die Latenz der Credit-Rückgabe die Leistung nicht beeinträchtigt, vorausgesetzt, dass das Credit-Limit nicht erreicht wird.
  • In einer Ausführungsform schließen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe-/Ausgabe-Adressraum und einen Nachrichtenadressraum ein. Speicherraumtransaktionen schließen eines oder mehrere von Leseanforderungen und Schreibanforderungen ein, um Daten zu/von einem Speicherabbildungsort zu übertragen. In einer Ausführungsform sind Speicherraumtransaktionen zum Verwenden von zwei unterschiedlichen Adressformaten, zum Beispiel eines kurzen Adressformats, wie einer 32-Bit-Adresse, oder eines langen Adressformats, wie einer 64-Bit-Adresse, in der Lage. Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen zu dem Konfigurationsraum schließen Leseanforderungen und Schreibanforderungen ein. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind dazu definiert, die In-Band-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Deshalb assembliert die Transaktionsschicht 205 in einer Ausführungsform eine Paketkopfzeile/Nutzlast 206. Das Format für aktuelle Paketkopfzeilen/Nutzlasten kann in der PCIe-Spezifikation auf der PCIe-Spezifikations-Website gefunden werden.
  • Unter kurzer Bezugnahme auf 3 ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors veranschaulicht. In einer Ausführungsform ist der Transaktionsdeskriptor 300 ein Mechanismus zum Übertragen von Transaktionsinformationen. In diesem Zusammenhang unterstützt der Transaktionsdeskriptor 300 die Identifikation von Transaktionen in einem System. Andere potenzielle Nutzungen schließen das Verfolgen von Modifikationen der Standardtransaktionsordnung und die Zuordnung von Transaktionen zu Kanälen ein.
  • Der Transaktionsdeskriptor 300 schließt ein globales Identifikatorfeld 302, ein Attributfeld 304 und ein Kanalidentifikatorfeld 306 ein. In dem veranschaulichten Beispiel ist das globale Identifikatorfeld 302 dargestellt, das ein lokales Transaktionsidentifikatorfeld 308 und ein Quellidentifikatorfeld 310 umfasst. In einer Ausführungsform ist der globale Transaktionsidentifikator 302 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das lokale Transaktionsidentifikatorfeld 308 ein Feld, das von einem anfordernden Agenten erzeugt wird, und es ist für alle ausstehenden Anforderungen eindeutig, die einen Abschluss für diesen anfordernden Agenten erfordern. Des Weiteren identifiziert in diesem Beispiel der Quellidentifikator 310 den anfordernden Agenten innerhalb einer PCIe-Hierarchie eindeutig. Gemeinsam mit der Quell-ID 310 stellt das lokale Transaktionsidentifikatorfeld 308 entsprechend eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Das Attributfeld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. In diesem Zusammenhang wird das Attributfeld 304 potenziell verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardverarbeitung von Transaktionen erlaubt. In einer Ausführungsform schließt das Attributfeld 304 ein Prioritätsfeld 312, ein reserviertes Feld 314, ein Ordnungsfeld 316 und ein No-Snoop-Feld 318 ein. Hier kann das Prioritätsunterfeld 312 durch einen Initiator geändert werden, um der Transaktion eine Priorität zuzuweisen. Ein reserviertes Attributfeld 314 bleibt für eine zukünftige oder anbieterdefinierte Nutzung reserviert. Mögliche Nutzungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, können unter Verwendung des reservierten Attributfelds implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 316 verwendet, um optionale Informationen zu liefern, die den Ordnungstyp vermitteln, der Standardordnungsregeln modifizieren kann. Gemäß einer beispielhaften Implementierung bedeutet ein Ordnungsattribut „0“, dass Standardordnungsregeln anzuwenden sind, wobei ein Ordnungsattribut „1“ gelockertes Ordnen bezeichnet, wobei Schreibvorgänge in dieselbe Richtung weitergeben können und Leseabschlüsse Schreibvorgänge in dieselbe Richtung weitergeben können. Das Snoop-Attributfeld 318 wird verwendet, um zu bestimmen, ob Transaktionen gesnoopt werden. Wie gezeigt, identifiziert das Kanal-ID-Feld 306 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Link-Schicht
  • Eine Link-Schicht 210, auch als Daten-Link-Schicht 210 bezeichnet, wirkt als eine Zwischenstufe zwischen der Transaktionsschicht 205 und der physikalischen Schicht 220. In einer Ausführungsform ist eine Verantwortung der Daten-Link-Schicht 210 das Bereitstellen eines zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten eines Links. Eine Seite der Daten-Link-Schicht 210 akzeptiert TLPs, die von der Transaktionsschicht 205 assembliert werden, wendet einen Paketsequenzidentifikator 211 an, das heißt eine Identifikationsnummer oder Paketnummer, berechnet einen Fehlererfassungscode und wendet ihn an, das heißt CRC 212, und sendet die modifizierten TLPs zu der physikalischen Schicht 220 zur Übertragung über eine physische zu einer externen Vorrichtung.
  • Physikalische Schicht
  • In einer Ausführungsform schließt die physikalische Schicht 220 einen logischen Unterblock 221 und einen elektrischen Unterblock 222 ein, um ein Paket physisch zu einer externen Vorrichtung zu übertragen. Hier ist der logische Unterblock 221 für die „digitalen“ Funktionen der physikalischen Schicht 221 zuständig. In diesem Zusammenhang schließt der logische Unterblock einen Übertragungsabschnitt, um ausgehende Informationen zur Übertragung durch den physischen Unterblock 222 vorzubereiten, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie zu der Link-Schicht 210 weitergegeben werden, ein.
  • Der physische Block 222 schließt einen Sender und einen Empfänger ein. Der Sender wird von dem logischen Unterblock 221 mit Symbolen versorgt, die der Sender serialisiert und auf eine externe Vorrichtung überträgt. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird de-serialisiert und zu dem logischen Unterblock 221 geliefert. In einer Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, bei dem Zehn-Bit-Symbole übertragen/empfangen werden. Hier werden spezielle Symbole für das Framing eines Pakets mit Rahmen 223 verwendet. Zusätzlich stellt der Empfänger in einem Beispiel auch einen Symboltakt bereit, der aus dem eingehenden seriellen Strom zurückgewonnen wird.
  • Wie oben angegeben, ist, obwohl die Transaktionsschicht 205, die Link-Schicht 210 und die physikalische Schicht 220 in Bezug auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, ein geschichteter Protokollstapel nicht hierauf beschränkt. Tatsächlich kann jedes geschichtete Protokoll eingeschlossen/implementiert werden. Als ein Beispiel schließt ein Port/eine Schnittstelle, der/die als ein geschichtetes Protokoll dargestellt wird, Folgendes ein: (1) eine erste Schicht, um Pakete zu assemblieren, das heißt eine Transaktionsschicht; eine zweite Schicht, um Pakete zu sequenzieren, das heißt eine Link-Schicht; und eine dritte Schicht, um Pakete zu übertragen, das heißt eine physikalische Schicht. Als ein spezifisches Beispiel wird ein Common-Standard-Interface(CSI)-Schichtprotokoll verwendet.
  • Als Nächstes Bezug nehmend auf 4 ist eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Struktur veranschaulicht. Obwohl eine Ausführungsform eines seriellen PCIe-Punkt-zu-Punkt-Links veranschaulicht ist, ist ein serieller Punkt-zu-Punkt-Link nicht hierauf beschränkt, da er jeden Übertragungspfad zum Übertragen serieller Daten einschließt. In der gezeigten Ausführungsform schließt ein Basis-PCIe-Link zwei differenziell betriebene Niedrigspannungssignalpaare ein: ein Übertragungspaar 406/411 und ein Empfangspaar 412/407. Entsprechend schließt eine Vorrichtung 405 eine Übertragungslogik 406, um Daten zu einer Vorrichtung 410 zu übertragen, und eine Empfangslogik 407, um Daten von der Vorrichtung 410 zu empfangen, ein. Mit anderen Worten sind zwei Übertragungspfade, das heißt Pfade 416 und 417, und zwei Empfangspfade, das heißt Pfade 418 und 419, in einem PCIe-Link enthalten.
  • Ein Übertragungspfad bezieht sich auf jeden Pfad zum Übertragen von Daten, wie zum Beispiel eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, einen Infrarotkommunikations-Link oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie der Vorrichtung 405 und der Vorrichtung 410, wird als ein Link bezeichnet, wie etwa Link 415. Ein Link kann eine Spur unterstützen - wobei jede Spur einen Satz von differenziellen Signalpaaren (ein Paar zur Übertragung, ein Paar zum Empfang) darstellt. Zum Skalieren der Bandbreite kann ein Link mehrere Spuren aggregieren, die mit xN benannt sind, wobei N eine beliebige unterstützte Link-Breite ist, wie 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differenzielles Paar bezieht sich auf zwei Übertragungspfade, wie Leitungen 416 und 417, um Differenzsignale zu übertragen. Als ein Beispiel, wenn die Leitung 416 von einem Niederspannungspegel zu einem Hochspannungspegel übergeht, das heißt einer steigenden Flanke, steuert die Leitung 417 von einem hohen Logikpegel zu einem niedrigen Logikpegel, das heißt einer sinkenden Flanke. Differenzsignale demonstrieren potenziell bessere elektrische Eigenschaften, wie zum Beispiel eine bessere Signalintegrität, das heißt Kreuzkopplung, Spannungsüberschwingen/-unterschwingen, Schwingen usw. Dies erlaubt ein besseres Zeitfenster, das schnellere Übertragungsfrequenzen ermöglicht.
  • In einigen Implementierungen können eine Hochleistungsverschaltung und ein entsprechendes Verschaltungsprotokoll (wie z. B. eine PCIe-basierte Verschaltung der nächsten Generation) bereitgestellt werden, die dazu in der Lage sind, bei hohen Geschwindigkeiten, wie 25 GT/s und/oder 32 GT/s, betrieben zu werden. In einem Beispiel können basierend auf den für den Kanal bestimmten Eigenschaften (z. B. während eines Link-Trainings) zwei Geschwindigkeiten für die Hochleistungsverschaltung definiert werden, eine bei 25 GT/s und eine bei 32 GT/s. Die Verschaltung kann in einer Implementierung mit vorhandenen PCIe-Generationen und für diese Generationen bereitgestellten Geschwindigkeiten (z. B. 8 GT/s, 16 GT/s usw.) abwärtskompatibel sein.
  • Bezug nehmend auf das Diagramm 500 von 5 ist eine beispielhafte Link-Training-Zustandsmaschine gezeigt, wie die PCIe-Link-Training- und Zustands-Zustandsmaschine (LTSSM). Wechsel zwischen den verschiedenen Link-Zuständen können definiert werden, einschließlich der Signalübertragung, die erfolgen soll, um das andere System auf dem Link zu benachrichtigen oder um einen Handshake zwischen den miteinander verbundenen Vorrichtungen abzuschließen, um den Wechsel von einem Zustand in den nächsten anzufordern, auszuhandeln und/oder zu bestätigen, um einen aktiven, übertragenden Link-Zustand (z. B. L0 (520)) zu erreichen. Zum Beispiel können einige Zustandswechsel definiert werden, um das Senden und Empfangen von geordneten Sätzen (OS) des Trainingssatzes (TS) zu beinhalten. In einer Implementierung können bei Verwendung von PCle als das PHY-Protokoll geordnete TS-Sätze einen geordneten Satz für TS1 und TS2 neben anderen beispielhaften geordneten Sätzen einschließen. Die geordneten Sätze und Trainingssequenzen, die während des Link-Trainings gesendet werden, können auf dem bestimmten Link-Training-Zustand basieren, wobei verschiedene Link-Training-Zustände verwendet werden, um entsprechende Link-Training-Aktivitäten und -Ziele zu erreichen.
  • In einem Beispiel, wie in 5 dargestellt, kann eine Link-Training-Zustandsmaschine 500 Zustände, wie einen Rücksetzzustand, einen Erfassungszustand 505 (um z. B. einen Fernabschluss (z. B. eine andere mit den Spuren verbundene Vorrichtung) zu erfassen), einen Abfragezustand 510 (um z. B. eine Symbolsperre herzustellen und die Spurpolarität zu konfigurieren), einen Konfigurationszustand (oder „Konfig.“-Zustand) 515 (um z. B. die physischen Spuren einer Verbindung in einen Link mit einer bestimmten Spurbreite, Spurnummerierung usw. zu konfigurieren, wodurch eine Spur-zu-Spur-Entzerrung und andere Link-Konfigurationsaktivitäten durchgeführt werden), einen Schleifenschaltungszustand 535 (um z. B. Testen, Fehlerisolierung, Entzerrung und andere Aufgaben durchzuführen), einen Wiederherstellungszustand 540 (z. B. zur Verwendung, um die Betriebsdatenrate zu ändern, eine Bitsperre, Symbolsperre oder Blockausrichtung wiederherzustellen, eine Spur-zu-Spur-Entzerrung durchzuführen usw.), neben anderen Zuständen (z. B. den Niedrigleistungszuständen L1 (525) und L2 (530)) einschließen, die verwendet werden können, um den Link in einen aktiven Link-Zustand (z. B. L0 (520)) zu versetzen. In einem Beispiel können Trainingssequenzen, die in einem bestimmten (oder mehreren) der Link-Training-Zustände (z. B. in dem Beispiel von 5 veranschaulicht) gesendet werden sollen, definiert werden, um die Aushandlung eines bestimmten der unterstützten Protokolle einer bestimmten Vorrichtung aufzunehmen. Zum Beispiel kann der bestimmte Training-Zustand neben anderen Beispielen ein Training-Zustand sein, der einem Wechsel in einen aktiven Link-Zustand (z. B. 520) vorausgeht, oder ein Training-Zustand, in dem die Datenrate hochskaliert werden kann (z. B. über diejenige hinaus, die durch zumindest eines der unterstützten Protokolle unterstützt wird), wie ein PCIe-Zustand, wobei eine Datenrate von einer Gen1-Geschwindigkeit zu einer Gen3- und höheren Geschwindigkeiten wechselt.
  • In einigen Implementierungen können zusätzliche Link-Zustände definiert werden (und eine entsprechende Hardwareschaltung und andere Logik auf Vorrichtungen implementiert werden, die mit dem Verschaltungsprotokoll kompatibel sind), um ein Testen von Ports an der Vorrichtung zu unterstützen. Zum Beispiel können zusätzliche Zustände definiert werden, in die gewechselt werden kann, um ein Testen von einzelnen Spuren (d. h. die Hardware und Logik, durch die die Vorrichtung Daten auf einer gegebenen bidirektionalen Spur senden und empfangen soll) zu testen. In diesen Fällen kann eine Link-Zustandsmaschine (wie die in 5 eingeführte beispielhafte Link-Zustandsmaschine) erweitert werden, um zu ermöglichen, dass Zustandswechsel von denjenigen, die beim Training eines Links erwartet werden, zu einem Standardbetriebszustand abweichen, um zu ermöglichen, dass die zu testende Spur in einen ersten Zustand wechselt, während andere Spuren des Links für mehrere Spuren in einen verschiedenen Zustand gewechselt werden, um das Testen der Testspur zu unterstützen.
  • In einigen Fällen können herkömmliche Testervorrichtungen, wie herkömmliche BERTs, nur eine einzelne Spur testen und können Vorrichtungen (aus verschiedenen Gründen) dazu programmiert oder ausgelegt sein, die Spuren, die getestet werden können, zu beschränken. Zum Beispiel können herkömmliche PCIe-BERTs nur dazu in der Lage sein, die Spur 0 von PCle-Vorrichtungen zu testen (z. B. aufgrund anderer, konkurrierender Senderentzerrungsüberlegungen), und können ferner auf die Fähigkeit beschränkt sein, nur vorhandene PCIe-LTSSM-Wechsel zu verwenden. Zum Beispiel kann ein herkömmlicher BERT die DUT auf L0 trainieren (was z. B. zu einer Abhängigkeit von Spur 0 führt), eine Entzerrung durch eine Wiederherstellung durchführen, von einer Wiederherstellung zu einer Schleifenschaltung wechseln (mit dem BERT als Master) und dann mit dem Test des Empfängers fortfahren.
  • Außerdem kann ein Tester in einigen herkömmlichen Implementierungen kein echtes Nebensprechen (Fern- oder Nahnebensprechen) verwenden oder dessen Erzeugen von den anderen (nicht getesteten) Spuren bewirken, sondern kann stattdessen ein hypothetisches (und in vielen Fällen Schlimmstfall-) Nebensprechen (z. B. ein kombiniertes Nah- und Fernnebensprechen) unter Verwendung einer Näherung in dem BERT modellieren, um zusätzliches Rauschen künstlich in die während des Tests auf der Testspur gesendeten Signale zu injizieren. Da Verschaltungen jedoch dazu ausgelegt sind, zunehmende Datenraten, wie 32,0 GT/s (z. B. PCle Gen4), zu verarbeiten, kann es wichtiger sein, auf ein genaues durch ein Paket und einen Kanal eingeführtes Nebensprechen zu testen, indem genau ein echtes Nebensprechen erfasst wird, das aus dem tatsächlichen Design des Pakets resultiert, anstatt sich auf Näherungen zu verlassen, weil höhere Datenraten zunehmend kleinere Fehlergrenzen erlauben. In einigen Fällen können BERTs für mehrere Spuren bereitgestellt werden, die Testimplementierungen vereinfachen, die mehr als eine Spur gleichzeitig beinhalten, aber ein solches System kann in einigen Anwendungen viel zu teuer sein. Eine Link-Training-Zustandsmaschine (wie die in dem Beispiel von 5 veranschaulichte) kann stattdessen erweitert werden und entsprechende Logik kann in einer Konformitätsvorrichtung bereitgestellt werden, um einen kosteneffektiveren und genaueren Ansatz unter Verwendung von herkömmlichen BERT-Designs für eine einzelne Spur zu ermöglichen. So kann in einigen Implementierungen nicht nur Fernnebensprechen (Far-End Cross Talk, FEXT) (z. B. das Nebensprechen, das aus den Übertragungen einer dezentralen Vorrichtung zu der Testvorrichtung resultiert), sondern auch Nahnebensprechen (Near-End Cross Talk, NEXT) (z. B. das Nebensprechen, das aus den Übertragungen von anderen Spuren als der Opferspur (z. B. der Testspur) auf der Testvorrichtung resultiert) erfasst werden. Zum Beispiel können es diese neuen testermöglichenden Link-Zustände neben anderen beispielhaften Nutzwirkungen und Implementierungen erlauben, NEXT von den anderen Sendern auf der DUT zu erfassen, und/oder erlauben, FEXT zu erfassen, indem ermöglicht wird, dass Signale zu den Empfängern auf anderen Spuren auf der Vorrichtung anderer Test gesendet werden, während die Testspur beim Testen durch den BERT in Schleifenschaltung und anderen Zuständen bleibt.
  • In einigen Implementierungen kann Link-Zustands-Logik erweitert werden, um nicht nur eine Standard-Link-Zustandsmaschine und Wechsel zwischen in der Standard-Link-Zustandsmaschine definierten Zuständen zu unterstützen, sondern um auch spezielle Testzustände zu unterstützen, die es erlauben können, einzelne Spuren eines Links für mehrere Spuren unter Verwendung einer Testvorrichtung (z. B. eines On-Die-Abstandstesters, einer eigenständigen Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung usw.) zu testen, während andere Spuren des Links Fernnebensprechen und/oder Nahnebensprechen erzeugen. Unter Verwendung dieser speziellen Zustands- und Zustandsmaschinenwechsel kann Fernnebensprechen (oder FEXT) und Nahnebensprechen (oder NEXT) auf den nicht getesteten Spuren erzeugt werden, um ein Genauigkeitstesten der Testspur (oder im Fall von Testern für mehrere Spuren der Testspuren) aufzunehmen. Während herkömmliches Spurtesten die Injektion von künstlichem oder simuliertem Rauschen in Daten der getesteten Spur beinhaltete, wird dieses simulierte Rauschen üblicherweise auf Modellschlimmstfallszenarios angewendet, die möglicherweise die tatsächlichen Merkmale des getesteten Ports ignorieren (der z. B. mit Schaltungen und Komponenten versehen sein kann, um ein Minimieren von Nebensprechen auf der Vorrichtung zu unterstützen (wodurch Tests unter Verwendung von simuliertem Schlimmstfallübersprechen zu pessimistisch und unrealistisch werden)). Entsprechend können spezielle Test-Link-Zustände in einigen Fällen realistischere Abstandsinformationen bei höheren Datenraten (wie PCle Gen 5 mit 32,0 GT/s) gegenüber den herkömmlichen Ansätzen ermöglichen, die sich auf ein emuliertes Nebensprechen stützen.
  • In einigen Implementierungen kann eine für eine Verschaltung definierte Standard-Link-Zustandsmaschine erweitert werden, um spezielle Test-Link-Zustände zu unterstützen, die es einem Port ermöglichen können, einen Link derart zu trainieren, dass verschiedene Spuren des Links in verschiedene Zustände wechseln, um zu erlauben, dass einige Spuren getestet werden (indem die Spur z. B. Link-Training- und Link-Zustands-Wechseln unterzogen wird, die im Standardbetrieb erwartet oder für diesen definiert sind), während andere Spuren in einen von potenziell mehreren verschiedenen Zuständen wechseln, um echtes (anstatt künstliches) Nebensprechen bereitzustellen und mehrere, authentische Testmodi zu ermöglichen. In einem Beispiel kann ein Link-Training-Algorithmus erweitert werden, um eine oder mehrere bestimmte Spuren eines Links zu identifizieren, die durch eine testende Vorrichtung, wie einen BERT, getestet werden sollen. Die ausgewählte Spur kann während des Tests durch die Testervorrichtung gesteuert werden. Die übrigen Spuren der Testvorrichtung (Device Under Test, DUT) können selbsttrainiert sein oder in einen inaktiven oder anderen Ruhezustand geschaltet sein, während der BERT Link-Training- und Zustands-Zustandsmaschinen(LTSSM)-Wechsel auf der Spur steuert, die er in Verbindung mit dem Test der Spur (oder der Testspur (Lane Under Test, LUT)) steuert. In einigen Implementierungen kann der Link in einen Schleifenschaltungszustand geschaltet werden, der durch die Testervorrichtung initiiert wird (z. B. durch einen speziellen geordneten Satz, der durch die Testervorrichtung unter Verwendung des Links zu der Testvorrichtung gesendet wird). Wenn der Link in einem solchen Beispiel in die Schleifenschaltung wechselt, kann die DUT basierend auf den durch die Testervorrichtung auf der mit der Testervorrichtung verbundenen Spur gesendeten Training-Informationen auf allen anderen Spuren ein (modifiziertes) Konformitätsmuster in Loopback.Entry steuern oder auf allen anderen Spuren (d. h. den anderen nicht getesteten Spuren) in einem elektrisch inaktiven Senderzustand bleiben. Auf diese Weise kann die DUT selbst verwendet werden, um ein Nebensprechen zu erzeugen, das gewünscht ist, um einen Test von einer mehreren Spuren (z. B. der entsprechenden Empfänger-Sender-Paare) der DUT abzuschließen, während die Testervorrichtung die spezifische Spur, die sie testen möchte, verwaltet. Des Weiteren kann die DUT neben anderen Beispielen, wie nachfolgend erörtert, durch das Training mit der Testervorrichtung auch in einen Zustand geschaltet werden, in dem alle anderen Empfänger an der DUT Verkehr Empfänger können, ohne die Schleifenschaltung auf der Testspur durch die Testervorrichtung zu beeinträchtigen.
  • Bezug nehmend auf die vereinfachten Blockdiagramme 600a-b von 6A-6B sind beispielhafte Systeme gezeigt, die eine beispielhafte Rechenvorrichtung (z. B. 605) und eine beispielhafte testende Vorrichtung (z. B. 610a,b) einschließen. In dem Beispiel von 6A ist eine Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung 610a für eine einzelne Spur gezeigt, die verwendet werden kann, um eine einzelne Spur (z. B. 630b) einer Testvorrichtung (z. B. 605) zu verbinden und verschiedene Abstands- und andere Tests der Spur durchzuführen. In diesem Beispiel kann die Rechenvorrichtung 605 einen oder mehrere Datenverarbeitungskerne (z. B. 615) und/oder andere Datenverarbeitungsschaltungen einschließen, die einen geschichteten Verschaltungsstapel 620 (z. B. einen PCle-, UPI-, Ethernet-, OpenCAPI-, Gen-Z- oder andere geschichtete Verschaltungsstapel) nutzen können, um mit anderen Vorrichtungen über eine oder mehrere Verschaltungs-Links zu kommunizieren. Der Verschaltungsstapel 620 kann durch eine Logikschaltung und andere Hardware (und oder alternativ dazu unter Verwendung von Software- und/oder Firmware-implementierter Logik) implementiert werden, um jede der Verschaltungsschichten (z. B. physikalische Schicht, logische PHY, Daten-Link-Schicht, Transaktionsschicht, Protokollschicht usw.), einschließlich der Erzeugung und des Sendens von Dateneinheiten (z. B. Pakete, Rahmen, Flits, Phits usw.), die für die Verschaltung definiert sind, zu unterstützen und zu implementieren. Der Verschaltungsstapel 620 kann es dem/den Port(s) der Vorrichtung ferner ermöglichen, in verschiedene Betriebs- und Link-Zustände, die für die Verschaltung definiert sind, zu wechseln und zwischen diesen zu wechseln, einschließlich Link-Training- und Testzustände mit definierten geordneten Sätzen, Trainingssequenzen, Handshakes und anderer Signalübertragungen, die definiert sind, um zu ermöglichen, dass zwei miteinander verbundene Vorrichtungen das Training und die Übertragung von Daten auf einem Link gemäß einem entsprechenden Verschaltungsprotokoll abstimmen. Diese Logik kann Zustandsmaschinenlogik einschließen, die zumindest teilweise in einer Logikschaltung oder anderen Hardware der Rechenvorrichtung 605 implementiert ist.
  • Fortfahrend mit dem Beispiel von 6A kann die Verschaltungsstapellogik 620 in einigen Implementierungen erweitert werden, um zusätzliche testspezifische Link-Zustände und Link-Zustands-Wechsel, wie die in der vorstehenden Erörterung eingeführten, zu unterstützen. Zum Beispiel kann die auf der Vorrichtung 605 implementierte Verschaltungsstapellogik 620 eine Testmodusunterstützungslogik 625 einschließen, die zumindest teilweise unter Verwendung einer Hardwarelogikschaltung implementiert ist. Die Testmoduslogik 625 kann zusätzliche Test-Link-Zustände ermöglichen und Wechsel zu diesen Testzuständen und die Koordination, wie die Test-Link-Zustände während des Tests auf welchen Spuren (z. B. 630a-d) angewendet werden, steuern. Im Rahmen der vorliegenden Offenbarung kann sich eine „Spur“ alternativ auf die physischen Spuren, die einen Link implementieren, der zwei Vorrichtungen verbindet, oder das jeweilige Empfänger/Sender-Paar und die Unterstützungslogik (z. B. 630a-d) auf einer Vorrichtung (z. B. 605), die die Vorrichtung an eine entsprechende physische Spur des Links koppelt, beziehen.
  • In dem Beispiel von 6A ist ein BERT 610a für eine einzelne Spur gezeigt, der an jede von einer Vielzahl von verschiedenen Spuren koppeln und diese einzeln testen kann. Die Testmoduslogik 625 kann es ermöglichen, dass die spezifische Testspur (z. B. 630b) identifiziert wird, und kann bewirken, dass diese zu testende Spur (d. h. das Empfänger/Sender-Paar des Ports der Vorrichtung 605, die mit der bidirektionalen Spur verbunden ist, die die Testvorrichtung 605 an die BERT-Vorrichtung 610a koppelt) in einen der Test-Link-Zustände (z. B. eine Schleifenschaltung, einen aktiven Übertragungs-Link-Zustand, einen Link-Training-Zustand usw.) in Verbindung mit einem Test der Spur wechselt. In einigen Fällen kann der BERT 610a steuern, in welchen Link-Zustand bzw. in welche Link-Zustände die Testspur während des Tests wechselt. Während des Tests kann die Testmoduslogik 625 eine oder mehrere andere Spuren (d. h. außer der Testspur) identifizieren, die in andere Test-Link-Zustände wechseln sollen, um das Testen der Testspur durch die BERT-Vorrichtung zu unterstützen. Zum Beispiel kann die Testmoduslogik 625 bewirken, dass eine oder mehrere (oder alle) der Spuren (z. B. 630a,c,d), außer der Testspur (z. B. 630b), in Link-Zustände wechseln, um es diesen Spuren zu ermöglichen, Nahneben- und/oder Fernnebensprechen auf der Testopferspur (z. B. 630b) zu erzeugen.
  • In einigen Implementierungen können andere Spuren als die Testspur unverbunden, mit einer Hilfsvorrichtung (z. B. von dem BERT getrennt, aber diesen unterstützend) verbunden oder mit dem BERT selbst verbunden bleiben. In einigen Implementierungen, wie in dem Beispiel von 6B gezeigt, kann eine Testervorrichtung (z. B. eine BERT-Vorrichtung (z. B. 605b) für mehrere Spuren) mit mehreren Spuren (z. B. Empfänger/Sender-Paare) versehen werden, um eine Verbindung zu mehreren Spuren einer Testvorrichtung herzustellen. Ein Tester (z. B. 610a-b) für mehrere Spuren kann eine Verbindung zu jeder der Spuren (z. B. 630a-d) der Testvorrichtung (605) herstellen. Ein Tester für mehrere Spuren kann jede Spur der Testvorrichtung in Reihe testen, ohne dass die Spuren neu verbunden werden müssen. Außerdem kann der Tester für mehrere Spuren neben anderen beispielhaften Implementierungen gemeinsam mit der Testmoduslogik 625 auf der Testvorrichtung 605 arbeiten, um die Erzeugung von FEXT und NEXT auf den Spuren, die aktuell nicht getestet werden, unter Verwendung von unterstützenden Test-Link-Zuständen zu unterstützen.
  • Bezug nehmend auf das Diagramm 700 von 7 ist ein vereinfachtes Blockdiagramm 700 gezeigt, das einen Abschnitt eines Diagramms einer erweiterten Link-Zustandsmaschine veranschaulicht, die spezielle Test-Link-Zustände (z. B. 705, 710, 715, 720) zeigt, die zu der Zustandsmaschine hinzugefügt werden können, um das Testen von einzelnen Spuren eines Links zu ermöglichen. Zum Beispiel kann in dem Beispiel von 7 die erweiterte Zustandsmaschine eine erweiterte Version einer PCIe-Link-Zustandsmaschine sein, wie sie in dem Diagramm 500 von 5 eingeführt wurde. Zum Beispiel können Standard-Link-Zustände, die für die Zustandsmaschine definiert sind (z. B. gemäß einem entsprechenden Verschaltungsprotokoll) neben anderen beispielhaften Zuständen einen Empfängererfassungszustand (z. B. 505), einen Abfragezustand (z. B. 510), einen Konfigurationszustand (z. B. 515) und potenziell andere Link-Training-Zustände einschließen, in die gewechselt werden kann und die verwendet werden können, bevor in aktive, übertragende oder Betriebs-Link-Zustände (z. B. einen LO-Zustand (nicht gezeigt)) gewechselt wird. Während des Trainings eines Links können verschiedene geordnete Sätze, wie Trainingssequenzen (z. B. Trainingssequenzen PCIe-TS1 oder -TS2), gesendet werden, die Felder einschließen können, die codiert sind, um spezifische Informationen zum Link-Training-Zustand bereitzustellen und verschiedene Aspekte des Links (z. B. Spurnummerierung, Entzerrung, Synchronisierung, Bitsperre, Konfiguration usw.) zu bestimmen. In einigen Implementierungen kann ein Link effektiv Spur um Spur trainiert werden, wobei jedes Empfänger-Sender-Paar seine eigenen Instanzen der Trainingssequenzen sendet und empfängt, um jede Spur auf die gewünschten Parameter zu konfigurieren und zu trainieren, um ein vollständiges und zuverlässiges Training des Gesamt-Links zu erlauben. Als Beispiel können eine Symbolsperre, eine Bitsperre und eine Blockausrichtung auf individueller Spurbasis erreicht werden, wobei die auf jeder Spur gesendeten Trainingssequenzen dafür konzipiert sind, eine richtige Konfiguration für die Spur zu erreichen. In einigen Fällen können geordnete Sätze eines selben Typs neben anderen Beispielen synchron auf jeder Spur in dem Link gesendet werden (wenngleich Werte in jedem geordneten Satz von Spur zu Spur variieren können).
  • In dem Beispiel von 7 können ein oder mehrere Felder von Trainingssequenzen, die während eines oder mehrerer der Link-Training-Zustände gesendet werden, die in Standardzuständen einer Link-Zustandsmaschine definiert sind, erweitert werden, um eine Angabe bereitzustellen, dass die an dem Training teilnehmende Vorrichtung in einen Testmodus wechseln soll. Zum Beispiel können Bits in einem oder mehreren Symbolen einer Trainingssequenz, die in einem bestimmten, definierten Zustand oder Unterzustand der Zustandsmaschine gesendet wird, definiert werden, um zu kommunizieren, dass die Vorrichtung getestet werden soll. Außerdem können ein oder mehrere Bits oder Felder in einer Trainingssequenz definiert werden, um anzugeben, dass eine Testervorrichtung (z. B. ein BERT) mit einer oder mehreren Spuren des Links verbunden ist und dass diese Spuren getestet werden sollen. Außerdem können ein oder mehrere Bits oder Felder derselben (oder einer anderen oder nachfolgenden Instanz der) Trainingssequenz mit Informationen codiert werden, um anzugeben, dass andere, nicht getestete Spuren in andere Test-Link-Zustände wechseln sollten, um das Ermöglichen des Testens einer bestimmten Spur zu unterstützen. Darüber hinaus kann in Verbindung mit der Identifikation einer bestimmten zu testenden Spur eine Trainingssequenz neben anderen Beispielen codiert werden, um anzugeben, dass die bestimmte zu testende Spur in einen anderen Link-Zustand wechseln soll, der mit dem Typ des durchzuführenden Tests im Einklang ist.
  • In einer beispielhaften Implementierung kann eine Testervorrichtung eine Trainingssequenz codieren, die während eines Abfragezustands (z. B. 510) (oder eines anderen bestimmten Link-Training-Zustands, wie in einem Verschaltungsprotokoll definiert) gesendet wird, um anzugeben, dass eine bestimmte Spur des Links getestet werden soll und dass andere übrige Spuren des Links in einen anderen Test-Link-Zustand wechseln sollen, um das Testen der bestimmten Spur zu unterstützen. Anstatt zu bewirken, dass alle Spuren zusammen von dem Abfragezustand 510 zu dem nächsten Standard-Link-Training-Zustand (z. B. einem Konfigurationszustand 515) wechseln, können die erweiterten Felder der Trainingssequenz entsprechend bewirken, dass die Testvorrichtung die Testspur zu einem bestimmten Link-Zustand für eine Testspur (z. B. 705) wechselt, während sie die übrigen Spuren zu einem anderen Test-Link-Zustand (z. B. 710, 715, 720) wechselt, der ein Testen der Testspur unterstützt und in einigen Fällen ein echtes Nebensprechen auf der Testspur zur Verwendung in verschiedenen Tests der Testspur (Lane Under Test, LUT), die durch die Testervorrichtung (z. B. einen BERT für eine einzelne Spur oder für mehrere Spuren) durchgeführt werden, erzeugt.
  • In einigen Fällen können Test-Link-Zustände (z. B. 705, 710, 715, 720) auf einem oder mehreren der Standard-Link-Zustände (neben anderen Beispielen z. B. einem aktiven Link-Zustand oder Schleifenschaltungs-Link-Zustand) basieren oder diese aufnehmen. So kann in einigen Fällen die Testervorrichtung mit der bestimmten Spur interagieren, um den Betrieb des mit der bestimmten Spur verbundenen Empfängers/Senders zu simulieren, wie dieser in der Standard-Link-Zustandsmaschine von Zustand zu Zustand wechseln würde. Zum Beispiel kann die Testervorrichtung als der Schleifenschaltungs-Master in einem Schleifenschaltungszustand fungieren oder kann während des Tests Signale senden, wie in der Standard-Link-Training-Maschine definiert, um zu bewirken, dass die Testspur zwischen Standard-Link-Training-Zuständen wechselt. Selbst in Fällen, in denen der LUT-Test-Zustand (z. B. 705) einen Standard-Link-Zustand nachahmen oder einschließen kann, kann sich der Wechsel von diesem Link-Zustand oder Unterzustand während des Testens von Wechseln unterscheiden, die in der Standard-Link-Training-Maschine definiert sind. Da zum Beispiel der LUT-Test-Zustand 705 nur einen Test einer einzelnen Spur umfasst, können Aktivitäten übersprungen werden, die am Training von allen Spuren beteiligt sind, die in den Zustand wechseln sollen (während typischer Link-Training- und Zustandsmaschinenwechsel). Zum Beispiel können Aktivitäten, wie Spurnummerierung, Spur-zu-Spur-Entzerrung und andere, übersprungen werden, was es sogar erlauben kann, dass gesamte Link-Training-Zwischenzustände übersprungen werden. In anderen Fällen können die Aktivitäten und die Signalübertragung in einem LUT-Test-Zustand 705 und in Test-Link-Zuständen (z. B. 710, 715, 720) für die übrigen (nicht getesteten) Spuren von Zuständen, die in der Standard-Link-Zustandsmaschine definiert sind, vollständig verschieden sein, wobei außerdem Unterschiede beim Wechseln in diese Test-Link-Zustände (z. B. von dem Abfragezustand 510) bestehen. Zum Beispiel kann der LUT-Test-Zustand 705 vollständig durch die Testervorrichtung (z. B. einen BERT) vorgegeben sein, wobei die Testervorrichtung eine beliebige Vielfalt von Signalen senden kann, um verschiedene Bedingungen, Zustandswechsel, Zustände usw. zu simulieren, wie es in Verbindung mit einem bestimmten Test wünschenswert ist, während die anderen Test-Link-Zustände (z. B. 710, 715, 720) bewirken, dass die übrigen Spuren des Links ein Nebensprechen auf der Testspur injizieren (oder nicht injizieren).
  • In dem Beispiel von 7 können einige der Test-Link-Zustände Zustände wie in dem beispielhaften Diagramm 700 gezeigt einschließen. Zum Beispiel kann ein Test-Link-Zustand 710 dazu konzipiert sein, zu bewirken, dass ein Nahnebensprechen (Near-End Cross Talk, NEXT) auf den Spuren unter als der Testspur erzeugt wird. In einem anderen Beispiel kann ein Test-Link-Zustand (z. B. 715) dazu konzipiert sein, nur ein Fernnebensprechen (FEXT) zu erzeugen (während die Sender der Empfänger/Sender-Paare der nicht getesteten Spuren im Ruhezustand bleiben). In noch einem anderen Beispiel kann ein Test-Link-Zustand (z. B. 720) neben anderen Beispielen sowohl NEXT als auch FEXT unter Verwendung der nicht getesteten Spuren erzeugen. Zum Beispiel können mehrere Versionen von NEXT- (z. B. 710), Nur-FEXT- (z. B. 715) und NEXT/FEXT-Test-Link-Zuständen (z. B. 720) bereitgestellt und durch die interne Hardware- und/oder Softwarelogik der zu testenden Vorrichtung unterstützt werden. Zum Beispiel können neben anderen Beispielen unterschiedliche Typen von Belastungssignalen in verschiedenen Test-Link-Zuständen gesendet werden, um entsprechende Typen des Nebensprechens, wie ein Nebensprechen mit variierendem Schweregrad (z. B. Amplitude und Frequenz), ein intermittierendes oder ein kontinuierliches Nebensprechen, zu erzeugen.
  • In einigen Fällen können zum Ermöglichen von einigen Test-Link-Zuständen neben anderen Beispielen zusätzliche Vorrichtungen in Verbindung mit einer Testervorrichtung (z. B. 610), wie Signalgeneratoren (um z. B. ein Fernnebensprechen zu erzeugen) oder, wie in dem beispielhaften Blockdiagramm 800 von 8 dargestellt, eine Konformitätsvorrichtung 805, bereitgestellt werden. In dem Beispiel von 8 ist eine Konformitätsvorrichtung 805 vorgesehen, die es erlauben kann, eine Verbindung für nicht getestete Spuren (d. h. die entsprechenden Empfänger/Sender-Paare) im Fall eines BERT 610 für eine einzelne Spur herzustellen. Eine beispielhafte passive Konformitätsvorrichtung 805 kann zusätzlich zu oder in Verbindung mit dem BERT 610 für eine einzelne Spur verwendet werden, um das Ermöglichen von einem oder mehreren Testmodi zu unterstützen. In einem Beispiel kann die Konformitätsvorrichtung 805 eine Verbindung zu jeder der Spuren eines Links (d. h. einschließlich der Spur, die durch den BERT 610 getestet werden soll) herstellen und Testmodi ermöglichen, die die Erfassung von Spuren beinhalten, und es der Testervorrichtung 610 ermöglichen, selektiv eine Verbindung zu einer der Spuren durch einen Mechanismus in der Konformitätsvorrichtung 805, wie durch Überbrückungskabel, einen DIP-Schalter oder eine andere Schaltung, herzustellen. Eine Konformitätsvorrichtung 805 kann es dadurch der Testervorrichtung 610 ermöglichen, eine Verbindung zu einer bestimmten Spur herzustellen (um z. B. einzelne Spurtests von jeder der Spuren der Testvorrichtung 605 in Reihe durchzuführen), während die Sender von jeder der übrigen Spuren der DUT 605 mit einem anderen Endpunkt (z. B. an der Konformitätsvorrichtung 805) verbunden werden. Außerdem kann die Konformitätsvorrichtung 805 in einigen Implementierungen dazu konfiguriert sein, in einem Schleifenschaltungsmodus für alle Spuren, außer der Testspur (z. B. 810), zu wirken. Auf diese Weise kann die Konformitätsvorrichtung 805 neben anderen beispielhaften Implementierungen effektiv bewirken, dass der Sender von jeder der nicht getesteten Spuren mit den entsprechenden Empfängern desselben Empfänger/Sender-Paars verbunden wird, um beliebige (oder alle) dieser anderen Spuren in eine Selbstschleifenschaltung (wie in 8 dargestellt) zu schalten. In anderen Implementierungen kann die Funktionalität der in 8 veranschaulichten beispielhaften Konformitätsvorrichtung 805 neben anderen alternativen Implementierungen in einer BERT-Vorrichtung für mehrere Spuren oder einer anderen Testervorrichtung integriert sein.
  • Bezug nehmend auf die durch die Blockdiagramme 900a-e von 9A-9E veranschaulichten Beispiele sind verschiedene Testmodi veranschaulicht, die entsprechende Test-Link-Zustände nutzen, die eine Standard-Link-Zustandsmaschine einer Verschaltung ergänzen. Zum Beispiel kann in dem Beispiel von 9A eine Rechenvorrichtung 605 mit Empfänger/Sender-Paaren (und Unterstützungslogik) (z. B. 630a-630) zum Implementieren von bidirektionalen Spuren eines Links für mehrere Spuren mit einer Testervorrichtung 610 verbunden werden. Die Testervorrichtung kann neben anderen Beispielen ein eigenständiger Tester, wie ein in Validierungstests verwendeter BERT, oder eine „On-Die“- oder auf andere Weise in demselben Rechensystem wie die Vorrichtung 605 implementierte Testervorrichtung sein. In dem Beispiel von 9A können Trainingssequenzen in einem vorhergehenden Link-Zustand (z. B. einem Abfrage-Link-Zustand) gesendet werden, um anzugeben, dass die Vorrichtung 605 mit einer Testervorrichtung verbunden ist und in einen bestimmten Testmodus wechseln soll. In diesem beispielhaften Testmodus soll eine der Spuren (z. B. 630c) durch die Testervorrichtung 610 getestet werden und in einen Zustand wechseln, in dem ein normaler Betrieb der Spur 630c in Verbindung mit dem Test simuliert werden soll. In diesem Beispiel sollen die nicht getesteten Spuren (z. B. 630a,b,d,e) im Ruhezustand bleiben (um z. B. kein Nebensprechen zu erzeugen). Da die Testspur 630c der einzige Empfänger ist, der mit einer anderen Vorrichtung (z. B. 610) verbunden ist und die Trainingssequenzen empfängt, empfängt nur der Empfänger des Empfänger/Sender-Paars 630c die Trainingssequenz. Die Testmodusunterstützungslogik kann die Trainingssequenz(en) identifizieren, die einen Wechsel in den bestimmten Testmodus anfordern, und kann sowohl bewirken, dass das Empfänger/Sender-Paar 630c in einen Zustand eines getesteten Links wechselt, als auch dass die übrigen Empfänger/Sender-Paare (z. B. 630a,b,d,e) in einen anderen verschiedenen Test-Link-Zustand in Übereinstimmung mit dem identifizierten Testmodus wechseln. In diesem Beispiel wird bewirkt, dass die übrigen Empfänger/Sender-Paare (z. B. 630a,b,d,e) in einen Test-Link-Zustand wechseln, in dem durch den jeweiligen Sender der Empfänger/Sender-Paare (z. B. 630a,b,d,e) keine Daten übertragen werden und alle Signale durch die Empfänger der Empfänger/Sender-Paare ignoriert werden sollen (z. B. derart, dass die Protokollstapellogik der Empfänger/Sender-Paare (z. B. 630a,b,d,e) nicht versehentlich ein Rauschen auf ihrer jeweiligen Spur als ein gemäß dem Protokollstapel definiertes gültiges Signal interpretieren).
  • In einigen Implementierungen können Trainingssequenzen, die von der Testervorrichtung 610 zu der zu Testvorrichtung 605 gesendet werden, nicht nur identifizieren, dass eine bestimmte Spur getestet werden soll (z. B. die Spur, die die spezielle Trainingssequenz empfängt), sondern können einen bestimmten von einem Satz von Testmodi explizit identifizieren. Zum Beispiel kann ein Binärcode in ein oder mehrere Felder der speziellen Trainingssequenz injiziert werden (z. B. in ein ansonsten reserviertes Feld in einem bestimmten Symbol, das in einer Trainingssequenz in einem bestimmten Link-Training-Zustand (z. B. einem Abfragezustand) gesendet wird), um einen spezifischen von mehreren unterstützten Testmodi zu identifizieren. Ausgehend von dieser Codierung kann die Testvorrichtung 605 den bestimmten identifizierten Testmodus identifizieren zu einem von einem Satz von Test-Link-Zuständen zuordnen, die in einer erweiterten Link-Zustandsmaschine definiert sind, und bewirken, dass die übrigen Spuren zur Unterstützung des identifizierten Testmodus in diesen Test-Link-Zustand wechseln. Anstatt einen definierten Testmodus explizit zu identifizieren (z. B. durch Codierungen in einer speziellen Trainingssequenz), kann die Testervorrichtung 610 in anderen Implementierungen stattdessen einen Testmodus implizit identifizieren, indem eine Codierung bereitgestellt wird, um den Test-Link-Zustand bzw. die Test-Link-Zustände zu identifizieren, in den/die die Spuren der Testvorrichtung 605 zur Unterstützung eines durch die Testervorrichtung 605 angeforderten Tests wechseln sollen. Zum Beispiel können die Trainingssequenzen in einer beispielhaften Implementierung einen LUT-Test-Link-Zustand identifizieren, in den die Testspur wechseln soll, und können getrennt einen der unterstützenden Test-Link-Zustände identifizieren, in den die übrigen (nicht getesteten) Spuren wechseln sollen. In anderen Implementierungen kann die Codierung in der Trainingssequenz neben anderen beispielhaften Implementierungen identifizieren, dass eine bestimmte Spur getestet werden soll, und kann nur den unterstützenden Test-Link-Zustand explizit identifizieren, in den die übrigen (nicht getesteten) Spuren wechseln sollen. So versteht es sich, dass eine Vielfalt von verschiedenen Signalen (z. B. geordnete Sätze, Trainingssequenzen usw.) genutzt werden können, um eine Anforderung zum Wechseln in einen bestimmten Testmodus an eine Testvorrichtung zu kommunizieren. Verschiedene Codierungen, die verschiedene Informationen einschließen und in verschiedenen Symbolen, Feldern, Slots usw. codiert sind, können in verschiedenen Implementierungen übernommen werden, ohne von den hierin dargestellten allgemeineren Konzepten abzuweichen.
  • Bezug nehmend auf das Beispiel von 9B ist ein anderer beispielhafter Testmodus veranschaulicht. Wie in anderen Beispielen, wie dem in 9A veranschaulichten, kann die Testervorrichtung 610 ein Signal zu dem Empfänger einer bestimmten Spur (z. B. 630c), die getestet werden soll, senden und (explizit oder implizit) identifizieren, dass in einen bestimmten (definierten oder undefinierten) Testmodus gewechselt werden soll. Der Empfänger des Empfänger/Sender-Paars der Spur 630c kann, ausgehend von dem Signal, identifizieren, dass die übrigen Spuren (z. B. 630a,b,d,e) in einen bestimmten von mehreren Test-Link-Zuständen wechseln sollen, um den durch die Testervorrichtung 610 angeforderten Test zu unterstützen. In ähnlicher Weise können in den Beispielen von 9C-9E entsprechende Signale durch die Vorrichtung 605 von der Testervorrichtung 610 (auf der Testspur) empfangen werden, um zu bewirken, dass die Vorrichtung 605 die übrigen (nicht getesteten) Spuren in einen entsprechenden Test-Link-Zustand wechselt (wie in den nachfolgenden Beispielen ausführlicher beschrieben wird). Im Fall des Beispiels von 9B werden die übrigen Spuren dazu gezwungen, in einen Test-Link-Zustand zu wechseln, der bewirkt, dass der Sender der Empfänger/Sender-Paare dieser übrigen Spuren ein Nahnebensprechen (Near-End Cross Talk, NEXT) auf der Testopferspur 630c erzeugt. Dies kann durch die Empfänger/Sender-Paare der übrigen Spuren erfolgen, die auf ihren Sendern Belastungsdaten übertragen. Ferner können in diesem Beispiel (wie in dem beispielhaften Testzustand von 9A) die Empfänger dieser Empfänger/Sender-Paare alle Signale ignorieren, die in diesem Test-Link-Zustand empfangen werden (um z. B. ein Fehlinterpretieren von Rauschen, das an diesen Empfänger/Sender-Paaren empfangen werden kann, zu vermeiden).
  • Bezug nehmend auf das Beispiel von 9C kann ein anderer beispielhafter Test-Link-Zustand vorgesehen sein, der es erlaubt, dass sowohl NEXT als auch FEXT unter Verwendung der nicht getesteten Spuren erzeugt werden. In einem Beispiel kann ein solcher Test-Link-Zustand implementiert werden, indem an den Sendern der Empfänger/Sender-Paare der nicht getesteten Spuren (z. B. 630a,b,d,e) erzeugte Belastungsdaten zurückgeschleift werden. In dem Beispiel von 9C kann eine Konformitätsvorrichtung 805 genutzt werden, um das Zurückschleifen der an den Sendern der Empfänger/Sender-Paare der nicht getesteten Spuren erzeugten Belastungsdaten zu ermöglichen, was bewirkt, dass sowohl NEXT als auch FEXT auf der Testspur gezeigt werden. Da die Test-Link-Zustände mit den in einer Link-Zustandsmaschine eines Protokolls definierten Standard-Link-Zuständen nebeneinander bestehen können (z. B. derart, dass diese Spuren den Test-Link-Zustand später verlassen und zwischen Standard-Link-Zuständen im normalen (d. h. Nicht-Test-) Betrieb wechseln können), besteht die Gefahr, dass zu den Empfängern der Empfänger/Sender-Paare der nicht getesteten Spuren übertragene Belastungsdaten versehentlich mit anderen Signalen übereinstimmen, die in dem Protokoll definiert sind und die zu einer anderen (z. B. Nicht-Test-) Aktion auf Seiten der Protokollstapellogik dieser Empfänger/Sender-Paare auffordern (z. B. einem Wechsel in einen anderen (z. B. Nicht-Test-) Link-Zustand, einer Durchführung einer bestimmten Link-Training-Funktion usw.). Entsprechend kann Protokollstapellogik dieser Empfänger/Sender-Paare in Test-Link-Zuständen, in denen Empfänger der Empfänger/Sender-Paare der nicht getesteten Spuren Belastungsdaten empfangen sollen, den Inhalt dieser Belastungssignale während des Bestehens dieser Test-Link-Zustände effektiv ignorieren, sodass der Test-Link-Zustand nicht versehentlich beendet oder auf andere Weise unterbrochen wird.
  • Während das Beispiel von 9C die Verwendung einer Konformitätsvorrichtung 805 zeigt, um einen NEXT/FEXT-Schleifenschaltungszustand zu ermöglichen, können andere Implementierungen andere Vorrichtungen (einschließlich der Testervorrichtung selbst, wie in einem BERT für mehrere Spuren) verwenden, um das Zurückschleifen der Belastungsdaten zu ermöglichen. In diesem Beispiel kann die Konformitätsvorrichtung ferner als ein Retimer, Redriver, Repeater oder eine andere Datenweiterleitungsvorrichtung fungieren, um Daten einfach zu und von der Testspur und dem Tester (z. B. 610) für eine einzelne Spur weiterzuleiten. Zum Beispiel kann die Konformitätsvorrichtung eine Umschalt- oder Multiplexschaltung nutzen, um zu identifizieren, dass der Tester eine bestimmte der Spuren (z. B. 630c) testet, sodass eine Datenweiterleitung für diese Spur ermöglicht wird, während Schleifenschaltungs- oder Übertragungsmodi für die übrigen Spuren der Konformitätsvorrichtung ermöglicht werden (d. h., um eine Verbindung zu den entsprechenden Empfängern der Empfänger/Sender-Paare (z. B. 630a,b,d,e) der Vorrichtung 605, die mit den nicht getesteten Spuren verbunden sind, herzustellen).
  • In noch einem anderen Beispiel, das in 9D veranschaulicht ist, können andere Test-Link-Zustände bewirken, dass nur ein Fernnebensprechen unter Verwendung der übrigen nicht getesteten Spuren erzeugt wird. Zum Beispiel können Belastungssignale an einer anderen Vorrichtung, wie einer Signalgeneratorvorrichtung (z. B. 905), erzeugt und zu den Empfängern der Empfänger/Sender-Paare der nicht getesteten Spuren (z. B. 630a,b,d,e) gesendet werden. In diesem beispielhaften Test-Link-Zustand kann der Sender der Empfänger/Sender-Paare der nicht getesteten Spuren in einen Ruhemodus geschaltet werden, sodass keine Daten bewusst übertragen werden, um NEXT auf der Testspur (z. B. 630c) zu erzeugen. Außerdem können die Empfänger der nicht zu testenden Empfänger/Sender-Paare (z. B. 630a,b,d,e), wie in dem Beispiel von 9C (und anderen Test-Link-Zuständen, in denen nicht getestete Spuren Belastungsdaten während eines Tests der Testspur empfangen sollen), die durch die Signalgeneratoren 905 erzeugten Belastungsdaten ignorieren. In einigen Implementierungen können Signalgeneratoren (z. B. 905), die in einem Test einer bestimmten Spur (z. B. 630c) verwendet werden, mit der Testervorrichtung 610 gekoppelt und durch diese gesteuert werden, sodass die Testervorrichtung 610 auswählt, welche Belastungssignale durch den/die Signalgenerator(en) (z. B. 905) auf welchen Spuren, zu welchen Zeiten und in welchen Intervallen gesendet werden (um z. B. spezifische Ziele des Tests zu erreichen, die durch die Testervorrichtung verwaltet werden (die unter Verwendung einer Softwareschnittstelle durch einen menschlichen Benutzer oder ein anderes System ausgewählt, programmiert und auf andere Weise definiert werden können)). In anderen Fällen können Signalgeneratoren oder andere ergänzende Vorrichtungen außerdem verwendet werden, um andere Test-Link-Zustände, wie NEXT/FEXT-Test-Link-Zustände, zu unterstützen, wobei Belastungsdaten durch die Vorrichtung 605 auf nicht getesteten Spuren sowohl übertragen als auch empfangen werden sollen. In diesen Fällen kann der/können die Signalgenerator(en) Empfänger einschließen, um neben anderen Beispielen von den Sendern der nicht getesteten Empfänger/Sender-Paare (z. B. 630a,b,d,e) gesendete Belastungssignale zu empfangen (z. B. und effektiv zu ignorieren und zu löschen).
  • In den Beispielen von 9A-9D ist eine Testervorrichtung für eine einzelne Spur gezeigt, In einigen Implementierungen kann jedoch eine Testervorrichtung für mehrere Spuren vorgesehen sein. Entsprechend können zusätzlich zu Test-Link-Zuständen, die für Tester für eine einzelne Spur spezifisch sind, zusätzliche Test-Link-Zustände hinzugefügt und durch Vorrichtungen (z. B. 605) unterstützt werden. In einigen Fällen, wie in dem Beispiel von 9E dargestellt, können dieselben Test-Link-Zustände, die mit Testern für eine einzelne Spur verwendet werden, verwendet werden, um ein Testen unter Verwendung von Testern für mehrere Spuren zu unterstützen. So kann ein Tester für mehrere Spuren die Implementierung von verschiedenen Testmodi (die ansonsten ergänzende Vorrichtungen, wie Konformitätsvorrichtungen (z. B. 805), Signalgeneratoren (z. B. 905) usw., verwenden könnten) vereinfachen. Zum Beispiel kann in dem Beispiel von 9E ein BERT (z. B. 610) für mehrere Spuren die durch solche ergänzenden Vorrichtungen bereitgestellte Funktionalität nativ bereitstellen. Zum Beispiel kann in dem Beispiel von 9E die Testervorrichtung für mehrere Spuren einen NEXT/FEXT-Test-Link-Modus ermöglichen, wobei die Testervorrichtung Belastungsdaten empfängt, die durch die Sender der nicht getesteten Spuren auf der Vorrichtung 605 erzeugt und von diesen übertragen werden. In anderen Implementierungen kann die Testervorrichtung 610 für mehrere Spuren an einem schleifenschaltungsbasierten NEXT/FEXT-Test-Link-Zustand teilnehmen (z. B. vergleichbar mit dem in dem Beispiel von 9C veranschaulichten Test-Link-Zustand). In einigen Fällen kann die Testervorrichtung für mehrere Spuren entweder als der Master oder der Slave in dem schleifenschaltungsbasierten NEXT/FEXT-Test-Link-Zustand fungieren, wobei einige Test-Link-Zustände derart definiert sind, dass die Sender der Testvorrichtung die Belastungssignale auf den nicht getesteten Spuren erzeugen, die durch die Testervorrichtung zurückgeschleift werden sollen, und alternative Test-Link-Zustände derart definiert sind, dass die Sender der Tester für mehrere Spuren die Belastungssignale auf den nicht getesteten Spuren erzeugen, die durch die entsprechenden Empfänger/Sender-Paare der Testvorrichtung 605 zurückgeschleift werden sollen. Eine Testervorrichtung für mehrere Spuren kann neben anderen beispielhaften Verwendungen auch in einem Nur-FEXT-Test-Link-Zustand verwendet werden, um die Belastungssignale zur Lieferung an die Empfänger der Empfänger/Sender-Paare der nicht getesteten Spuren zu erzeugen (z. B. anstelle von separaten, dedizierten Signalgeneratoren (z. B. 905), wie in dem Beispiel von 9D).
  • Während die Beispiele von 9A-9E jeweils dieselbe Spur (z. B. 630c) zeigen, die als die Testspur dient, versteht es sich, dass dies nur zur einfacheren Veranschaulichung von Variationen zwischen verschiedenen Test-Link-Zustands-Beispielen gezeigt wird. Infolgedessen kann jede der mehreren Spuren (d. h. Empfänger/Sender-Paare (z. B. 630a-e)) mit einer Testervorrichtung (z. B. einem BERT für eine einzelne Spur) verbunden werden und die jeweilige zu testende Spur sein. Außerdem kann jede der mehreren Spuren, je nach Test, entweder in einen LUT-Test-Link-Zustand wechseln (und die Testspur sein) oder in einen unterstützenden Test-Link-Zustand wechseln, um ein Nebensprechen auf der ausgewählten Testspur zu erzeugen. Entsprechend kann die an einem jeweiligen Empfänger/Sender-Paar (z. B. 630a-e) implementierte Protokollstapellogik nicht nur die für das Protokoll definierten Standard-Link-Zustände, sondern auch ergänzende oder hinzugefügte Test-Link-Zustände unterstützen, um die Testspur als die Testspur zu erlauben oder um das Testen einer anderen der Spuren durch die Erzeugung von Nebensprechen auf der Testspur zu unterstützen.
  • Wie vorstehend eingeführt, können Prinzipien und Aspekte einer Standard-Link-Zustandsmaschine und entsprechender Logik in einigen Beispielen genutzt werden, um Wechsel zu speziellen Test-Link-Zuständen, wie den vorstehend eingeführten, zu ermöglichen. Als ein veranschaulichendes Beispiel kann eine Testervorrichtung, wie ein BERT, der Protokollstapellogik einschließt, um es dem BERT zu erlauben, zumindest teilweise protokollbewusst zu sein, um Signale zu senden und zu interpretieren, die in einem bestimmten Protokoll definiert sind, das durch eine Testvorrichtung unterstützt wird, die Testvorrichtung durch verschiedene protokolldefinierte Abläufe während eines Tests führen. Zum Beispiel kann der BERT in einem LUT-Testzustand wie gemäß einem bestimmten Test programmiert die Testvorrichtung durch einen aktiven L0-Link-Zustand (z. B. unter Überspringen eines Konfigurations-Link-Zustands) zu einem Wiederherstellungs-Link-Zustand (einschließlich, in einigen Fällen, Entzerrung) bis zu einem Schleifenschaltungs-Link-Zustand und so weiter führen. In diesen Fällen kann der BERT eine protokolldefinierte Nachrichtenübermittlung nutzen, um diese Testwechsel zwischen den Standard-Link-Zuständen zu ermöglichen.
  • In einem detaillierteren Beispiel und zurückkehrend zu der Darstellung 700 von 7 kann eine Vorrichtung, von der eines oder mehrere ihrer Empfänger/Sender-Paare durch eine Testervorrichtung getestet werden, zunächst bewirken, dass alle ihre Empfänger/Sender-Paare, entsprechend einem Link für mehrere Spuren, in einen Empfängererfassungszustand 505 wechseln. Alle Spuren können eine andere Vorrichtung erfassen (z. B. aufgrund einer Selbstschleifenschaltung oder einer Verbindung mit dem BERT oder einer Verbindung mit 50-Ohm-Abschlüssen oder anderer Testausrüstung oder anderen Testquellen mit 50-Ohm-Abschlüssen), um über den Erfassungszustand hinaus fortzuschreiten. In anderen Implementierungen kann die Testvorrichtung einfach ein Beenden eines elektrischen Ruhezustands (in den die Vorrichtung z. B. zur Vorbereitung für den Test geschaltet wird) erfassen, was darauf beruht, dass die Testervorrichtung ein elektrisches Muster zu der Testspur führt. Protokolldefinierte Anforderungen für diesen Wechsel können in einigen Implementierungen weiter gelockert werden, um zu erzwingen, dass jede der Spuren, die nicht mit einer Testervorrichtung verbunden ist, mit einem Link-Training fortfährt, obwohl an dem anderen Ende der Spur während eines Erfassungszustands 505 (z. B. im Fall eines Nur-NEXT-Test-Link-Zustands, wie in dem Beispiel von 9C), kein verbundener Empfänger erfasst wird.
  • Fortfahrend mit diesem Beispiel kann der Port, der die Testspur einschließt, einen Erfassungszustand 505 beenden, um in einen Abfragezustand 510 zu wechseln. In diesem Zustand kann die Testervorrichtung eine modifizierte Trainingssequenz (z. B. geordnete Sätze für TS1/TS2 durch Polling.Active und Polling.Configuration) mit einem oder mehreren gesetzten Bits (z. B. in Symbol 5 der Trainingssequenz) senden, um einen Testmodus anzugeben, in den gewechselt werden soll und der die übrigen Spuren beinhaltet, die in einen bestimmten Test-Link-Zustand wechseln. In einem Beispiel können Spuren, die einen Empfänger (während des Erfassens 505) erfassen, trainieren (z. B. mit ihren eigenen (zurückgeschleiften) geordneten Sätzen für TS1/TS2), wenn sie nicht mit der Testervorrichtung verbunden sind. In anderen Fällen können die nicht getesteten Spuren neben anderen Beispielen dazu konfiguriert sein, den gesamten Verkehr entweder auf Anweisung der Link-weiten Protokollstapellogik (basierend auf einem Empfangen der Trainingssequenz auf der BERT-verbundenen Spur, um anzugeben, dass sich der Link in einem Testmodus befindet) oder standardmäßig nach einem bestimmten Zeitüberschreitungszeitraum (z. B. der Zeitüberschreitung basierend auf dem Nichtempfangen von weiteren Trainingsdaten auf den Spuren, die nicht mit der Testervorrichtung verbunden sind) zu ignorieren. In einigen Implementierungen kann das Abfragen selbst modifiziert werden, um Wechsel in die Test-Link-Zustände zu berücksichtigen.
  • In dem Beispiel, in dem eine Testervorrichtung für eine einzelne Spur verwendet wird, würden die modifizierten Trainingssequenzen, die einen Testmodus angeben, nur zu dem Empfänger des zu testenden Empfänger/Sender-Paars gesendet. Wenn das Empfänger/Sender-Paar, das der Testspur entspricht, die modifizierte(n) Trainingssequenz(en) (z. B. geordnete Sätze für TS1/TS2 in einem Abfragezustand) empfängt, kann die Empfänger/Sender-Paar-Logik die Vorrichtungs-Link-Zustandsmaschinen-Logik (z. B. LTSSM-Logik) dazu anweisen, die Testspur in einen LUT-Link-Testzustand und die übrigen Spuren in unterstützende Test-Link-Zustände zu wechseln. In einem Beispiel kann der LUT-Test-Link-Zustand einen L0-Zustand einschließen oder nachahmen. Entsprechend können in diesen Beispielen Zwischenzustände (z. B. ein Konfigurationszustand 515), in die normalerweise vor dem Wechsel in den LO-Zustand gewechselt würde, durch die Link-Zustandsmaschinen-Logik übersprungen werden. Zum Beispiel kann der Konfigurationszustand übersprungen werden, um in den LO-Zustand (z. B. 520) zu wechseln, um den Betrieb in dem LUT-Testzustand zu beginnen (z. B. nach Empfang der modifizierten geordneten Sätze für TS2 mit Bits, die gesetzt sind, um einen entsprechenden Testmodus anzugeben). Aspekte des Links, der während der übersprungenen Link-Training-Zustände trainiert würde, können auf Standardwerte gesetzt werden (z. B. kann die Spurnummernzuweisung neben anderen Beispielen die Standardspurnummer sein).
  • Fortfahrend mit diesem Beispiel kann der LUT-Testzustand (oder die Schrittsequenz) ein Steuern der Testspur in einen Schleifenschaltungszustand beinhalten. Bezug nehmend auf 5 kann der Wechsel in den Schleifenschaltungszustand 535 beinhalten, zunächst in einen Wiederherstellungszustand 540 zu wechseln. In einem Beispiel, in dem eine PCIe-basierte Verschaltung implementiert wird, wird der Wechsel von L0 520 zur Wiederherstellung 540 mit Entzerrung durch die Testvorrichtung (mit Bypass-Mechanismen wie definiert) bei allen relevanten Datenraten initiiert und folgt die Testervorrichtung nach, wenn die Testvorrichtung ein Down Stream Port (DSP) ist. In Fällen, in denen die Testvorrichtung ein Up Stream Port (USP) ist, kann die Testervorrichtung den Wechsel von L0 zur Wiederherstellung mit Entzerrung (mit Bypass-Mechanismen wie definiert) bei allen relevanten Datenraten initiieren, wobei die Testvorrichtung nachfolgt. Sobald der Wiederherstellungszustand 540 besteht, kann die Testervorrichtung (in einem LUT-Testzustand) den Wechsel zur Schleifenschaltung 535 als Schleifenschaltungs-Master initiieren. Die Testvorrichtung wechselt dann als Slave zur Schleifenschaltung 535, wobei das Schleifenschaltungs-Bit auf eine Spur gesetzt ist. Ausgehend von Loopback.Entry können alle Spuren im Slave-Modus, die die modifizierten geordneten Sätze für TS1/TS2 während des Abfragezustands 510 nicht empfangen haben, neben anderen beispielhaften Implementierungen ein Konformitätsmuster (oder modifiziertes Konformitätsmuster) senden. Mit der Testspur in Schleifenschaltung kann die Testervorrichtung dann Messungen auf der Testspur durchführen und Ergebnisse erzeugen, die die Leistung des Empfänger/Sender-Paars auf der Testvorrichtung entsprechend der Testspur beschreiben.
  • Die vorgenannte Offenbarung hat eine Anzahl von beispielhaften Test-Link-Zuständen dargestellt, die in einem Verschaltungsprotokoll definierte Standard-Link-Zustände ergänzen können. Es versteht sich, dass zusätzlich zu den vorstehend identifizierten andere Test-Link-Zustände vorgesehen werden können, ohne von den in dieser Offenbarung enthaltenen allgemeineren Prinzipien abzuweichen. Während zum Beispiel einige der hierin erörterten beispielhaften Zustandsmaschinen und geordneten Sequenzen Bezug nehmend auf PCIe oder PCIe-basierte Protokolle beschrieben wurden, versteht es sich, dass ähnliche, entsprechende Verbesserungen an anderen Verschaltungsprotokollen, wie unter anderem OpenCAPI™, Gen-Z™, UPI, Universal Serial Bus (USB), Cache Coherent Interconnect for Accelerators (CCIX™), Advanced Micro Device™ (AMD™) Infinity™, Common Communication Interface (CCI) oder der Qualcomm™ Centriq™-Verschaltung, vorgenommen werden können.
  • Es sei angemerkt, dass die oben beschriebenen Einrichtungen, Verfahren und Systeme in einer beliebigen elektronischen Vorrichtung oder einem beliebigen System, wie oben erwähnt, implementiert werden können. Als spezifische Darstellungen stellen die nachfolgenden Figuren beispielhafte Systeme für den Einsatz der Erfindung, wie sie hier beschrieben ist, bereit. Da die nachfolgenden Systeme detaillierter beschrieben werden, wird eine Anzahl unterschiedlicher Verschaltungen offenbart, beschrieben und aus der vorstehenden Erörterung wieder aufgegriffen. Und wie leicht ersichtlich ist, können die oben beschriebenen Fortschritte auf beliebige dieser Verschaltungen, Strukturen oder Architekturen angewendet werden.
  • Bezug nehmend auf 10 ist eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Multicore-Prozessor dargestellt. Ein Prozessor 1000 schließt einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung ein, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzwerkprozessor, einen handgehaltenen Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System-on-a-Chip (SOC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 1000 schließt in einer Ausführungsform zumindest zwei Kerne, nämlich Kern 1001 und 1002, ein, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichte Ausführungsform) einschließen können. Der Prozessor 1000 kann jedoch eine beliebige Anzahl von Verarbeitungselementen, die symmetrisch oder asymmetrisch sein können, aufweisen.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardwareverarbeitungselemente schließen Folgendes ein: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder jedes andere Element, das dazu in der Lage ist, einen Zustand für einen Prozessor, wie einen Ausführungszustand oder einen Architekturzustand, zu halten. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf jede Hardware, die dazu in der Lage ist, einem Code, wie einem Software-Thread, einem Betriebssystem, einer Anwendung oder anderem Code, unabhängig zugeordnet zu werden. Ein physikalischer Prozessor (oder Prozessorsockel) bezieht sich üblicherweise auf eine integrierte Schaltung, die potenziell eine beliebige Anzahl von anderen Verarbeitungselementen, wie Kerne oder Hardware-Threads, einschließt.
  • Ein Kern bezieht sich oft auf Logik, die auf einer integrierten Schaltung angeordnet ist, die dazu in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand zumindest einigen dedizierten Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread üblicherweise auf jede Logik, die auf einer integrierten Schaltung angeordnet ist, die dazu in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände den Zugriff auf Ausführungsressourcen teilen. Wie ersichtlich ist, überlappt die Grenze zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen geteilt werden und andere für einen Architekturzustand vorgesehen sind. Dennoch werden ein Kern und ein Hardware-Thread durch ein Betriebssystem häufig als einzelne logische Prozessoren angesehen, wobei das Betriebssystem dazu in der Lage ist, Operationen auf jedem logischen Prozessor einzeln zu planen.
  • Der physikalische Prozessor 1000, wie in 10 veranschaulicht, schließt zwei Kerne, nämlich Kern 1001 und 1002, ein. Hier werden der Kern 1001 und 1002 als symmetrische Kerne, das heißt Kerne mit denselben Konfigurationen und Funktionseinheiten und/oder derselben Logik, betrachtet. In einer anderen Ausführungsform schließt der Kern 1001 einen Out-of-Order-Prozessorkern ein, während der Kern 1002 einen In-Order-Prozessorkern einschließt. Die Kerne 1001 und 1002 können jedoch individuell aus einem beliebigen Kerntyp, wie einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der zum Ausführen einer nativen Befehlssatzarchitektur (Instruction Set Architecture, ISA) angepasst ist, einem Kern, der zum Ausführen einer übersetzten Befehlssatzarchitektur (Instruction Set Architecture, ISA) angepasst ist, einem mitentwickelten Kern oder einem anderen bekannten Kern, ausgewählt werden. In einer heterogenen Kernumgebung (das heißt asymmetrische Kerne) kann eine Form von Übersetzung, wie eine binäre Übersetzung, eingesetzt werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Zur weiteren Erörterung sind jedoch die Funktionseinheiten, die in dem Kern 1001 veranschaulicht sind, unten ausführlicher beschrieben, da die Einheiten in dem Kern 1002 in ähnlicher Weise wie in der dargestellten Ausführungsform arbeiten.
  • Wie dargestellt, schließt der Kern 1001 zwei Hardware-Threads 1001a und 1001b ein, die auch als Hardware-Thread-Slots 1001a und 1001b bezeichnet werden können. Software-Entitäten, wie ein Betriebssystem, sehen folglich den Prozessor 1000 in einer Ausführungsform potenziell als vier separate Prozessoren, das heißt vier logische Prozessoren oder Verarbeitungselemente, die dazu in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben erwähnt, ist ein erster Thread Architekturzustandsregistern 1001a zugeordnet, ist ein zweiter Thread Architekturzustandsregistern 1001b zugeordnet, kann ein dritter Thread Architekturzustandsregistern 1002a zugeordnet sein und kann ein vierter Thread Architekturzustandsregistern 1002b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (1301a, 1001b, 1002a und 1002b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten, wie oben beschrieben, bezeichnet werden. Wie veranschaulicht, werden die Architekturzustandsregister 1001a in Architekturzustandsregistern 1001b derart repliziert, dass individuelle Architekturzustände/Kontexte für den logischen Prozessor 1001a und den logischen Prozessor 1001b gespeichert werden können. In dem Kern 1001 können andere kleinere Ressourcen, wie Befehlszeiger und Umbenennungslogik in einem Zuweiser- und Umbenennerblock 1030, auch für die Threads 1001a und 1001b repliziert werden. Einige Ressourcen, wie Neuordnungspuffer in einer Neuordnungs-/Rückstellungseinheit 1035, ILTB 1020, Lade-/Speicherpuffer und Warteschlangen, können durch Partitionieren geteilt werden. Andere Ressourcen, wie interne Universalregister, (ein) Seitentabellenbasisregister, Low-Level-Daten-Cache und Daten-TLB 1015, Ausführungseinheit(en) 1040 und Abschnitte der Out-of-Order-Einheit 1035 werden potenziell vollständig geteilt.
  • Der Prozessor 1000 schließt oft andere Ressourcen ein, die vollständig geteilt, durch Partitionieren geteilt oder durch/für Verarbeitungselemente vorgesehen werden können. In 10 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors veranschaulicht. Es ist zu beachten, dass ein Prozessor jede dieser Funktionseinheiten einschließen oder weglassen kann und andere nicht dargestellte bekannte Funktionseinheiten, Logik oder Firmware einschließen kann. Wie veranschaulicht, schließt der Kern 1001 einen vereinfachten, repräsentativen Out-of-Order(OOO)-Prozessorkern ein. Ein In-Order-Prozessor kann jedoch in verschiedenen Ausführungsformen verwendet werden. Der OOO-Kern schließt einen Sprungzielpuffer 1020, um auszuführende/zu nehmende Sprünge vorherzusagen, und einen Befehlsübersetzungspuffer (Instruction-Translation Buffer, I-TLB) 1020, um Adressübersetzungseinträge für Befehle zu speichern, ein.
  • Der Kern 1001 schließt ferner ein Decodiermodul 1025 ein, das mit der Abrufeinheit 1020 gekoppelt ist, um abgerufene Elemente zu decodieren. Abruflogik schließt in einer Ausführungsform individuelle Sequenzierer ein, die jeweils den Thread-Slots 1001a, 1001b zugeordnet sind. Üblicherweise ist der Kern 1001 einer ersten ISA zugeordnet, die Befehle, die auf dem Prozessor 1000 ausführbar sind, definiert/spezifiziert. Oft schließen Maschinencodebefehle, die zu der ersten ISA gehören, einen Abschnitt des Befehls (als ein Opcode bezeichnet) ein, der einen durchzuführenden Befehl oder eine durchzuführende Operation referenziert/spezifiziert. Die Decodierlogik 1025 schließt eine Schaltung ein, die diese Befehle ausgehend von ihren Opcodes erkennt und die decodierten Befehle in der Pipeline zum Verarbeiten, wie durch die erste ISA definiert, weiterleitet. Wie unten ausführlicher erörtert, schließen die Decoder 1025 in einer Ausführungsform zum Beispiel Logik ein, die ausgelegt oder konzipiert ist, um spezifische Befehle, wie einen Transaktionsbefehl, zu erkennen. Als ein Ergebnis des Erkennens durch die Decoder 1025 führt die Architektur oder der Kern 1001 spezifische, vordefinierte Aktionen durch, um Aufgaben, die dem geeigneten Befehl zugeordnet sind, durchzuführen. Es ist wichtig, zu beachten, dass beliebige der hierin beschriebenen Aufgaben, Blöcke, Operationen und Verfahren als Reaktion auf einen einzelnen oder mehrere Befehle durchgeführt werden können, wobei einige davon neue oder alte Befehle sein können. Es sei darauf hingewiesen, dass die Decoder 1026 in einer Ausführungsform dieselbe ISA (oder einen Untersatz davon) erkennen. Alternativ erkennen die Decoder 1026 in einer heterogenen Kernumgebung eine zweite ISA (entweder einen Untersatz der ersten ISA oder eine unterschiedliche ISA).
  • In einem Beispiel schließt der Zuweiser- und Umbenennerblock 1030 einen Zuweiser zum Reservieren von Ressourcen, wie Registerdateien, um Befehlsverarbeitungsergebnisse zu speichern, ein. Die Threads 1001a und 1001b sind jedoch potenziell zu einer Out-of-Order-Ausführung in der Lage, wobei der Zuweiser- und Umbenennerblock 1030 auch andere Ressourcen, wie Neuordnungspuffer, reserviert, um Befehlsergebnisse zu verfolgen. Die Einheit 1030 kann auch einen Registerumbenenner einschließen, um Programm-/Befehlsreferenzregister in andere Register in dem Prozessor 1000 umzubenennen. Die Neuordnungs-/Rückstellungseinheit 1035 schließt Komponenten, wie die oben erwähnten Neuordnungspuffer, Ladepuffer und Speicherpuffer ein, um eine Out-of-Order-Ausführung und eine spätere In-Order-Rückstellung von Befehlen, die in anderer Reihenfolge („out-of-order“) ausgeführt wurden, zu unterstützen.
  • Ein Planer- und Ausführungseinheit(en)-Block 1040 schließt in einer Ausführungsform eine Planereinheit ein, um Befehle/eine Operation bei Ausführungseinheiten zu planen. Zum Beispiel wird ein Gleitkommabefehl an einem Port einer Ausführungseinheit, die eine verfügbare Gleitkommaausführungseinheit aufweist, geplant. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Informationsbefehlsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten schließen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten ein.
  • Lower-Level-Daten-Cache und Datenübersetzungspuffer (Data Translation Buffer, D-TLB) 1050 sind an die Ausführungseinheit(en) 1040 gekoppelt. Der Daten-Cache soll kürzlich verwendete/betriebene Elemente, wie zum Beispiel Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden, speichern. Der D-TLB soll kürzliche virtuelle/lineare in physikalische Adressübersetzungen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur einschließen, um physikalischen Speicher in eine Vielzahl von virtuellen Seiten zu teilen.
  • Hier teilen die Kerne 1001 und 1002 den Zugriff auf einen Higher-Level- oder Further-Out-Cache, wie einen Cache der zweiten Ebene, der einer On-Chip-Schnittstelle 1010 zugeordnet ist. Es ist zu beachten, dass sich Higher-Level oder Further-Out auf Cache-Ebenen bezieht, die ausgehend von der/den Ausführungseinheit(en) zunehmen oder sich weiter von diesen entfernen. In einer Ausführungsform ist der Higher-Level-Cache ein Last-Level-Daten-Cache - letzter Cache in der Speicherhierarchie auf dem Prozessor 1000 - wie ein Daten-Cache der zweiten oder dritten Ebene. Der Higher-Level-Cache ist jedoch nicht hierauf beschränkt, da er einem Befehls-Cache zugeordnet sein oder einen solchen einschließen kann. Ein Trace-Cache - ein Typ von Befehls-Cache - kann stattdessen nach dem Decoder 1025 gekoppelt werden, um kürzlich decodierte Traces zu speichern. Hier bezieht sich ein Befehl potenziell auf einen Makrobefehl (das heißt einen von den Decodern erkannten allgemeinen Befehl), der in eine Anzahl von Mikrobefehlen (Mikrooperationen) decodieren kann.
  • In der dargestellten Konfiguration schließt der Prozessor 1000 auch das On-Chip-Schnittstellenmodul 1010 ein. Historisch wurde ein Speicher-Controller, der unten detaillierter beschrieben wird, in ein Rechensystem außerhalb des Prozessors 1000 eingeschlossen. In diesem Szenario soll die On-Chip-Schnittstelle 1010 mit Vorrichtungen außerhalb des Prozessors 1000, wie einem Systemspeicher 1075, einem Chipsatz (oft einschließlich eines Speicher-Controller-Hub zum Verbinden mit dem Speicher 1075 und eines E/A-Controller-Hub zum Verbinden von Peripherievorrichtungen), einem Speicher-Controller-Hub, einer Northbridge oder einer anderen integrierten Schaltung, kommunizieren. Und in diesem Szenario kann der Bus 1005 eine beliebige bekannte Verschaltung einschließen, wie einen Multi-Drop-Bus, eine Punkt-zu-Punkt-Verschaltung, eine serielle Verschaltung, einen parallelen Bus, einen kohärenten (zum Beispiel Cachekohärenten) Bus, eine geschichtete Protokollarchitektur, einen differenziellen Bus und einen GTL-Bus.
  • Der Speicher 1075 kann für den Prozessor 1000 vorgesehen sein oder mit anderen Vorrichtungen in einem System geteilt werden. Gebräuchliche Beispiele der Typen von Speicher 1075 schließen DRAM, SRAM, nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen ein. Es sei darauf hingewiesen, dass die Vorrichtung 1080 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, der/die an einen Speicher-Controller-Hub gekoppelt ist, Datenspeicher, der an einen E/A-Controller-Hub gekoppelt ist, einen drahtlosen Transceiver, eine Flash-Vorrichtung, einen Audio-Controller, einen Netzwerk-Controller oder eine andere bekannte Vorrichtung einschließen kann.
  • Da mehr Logik und Vorrichtungen auf einem einzigen Die, wie einem SOC, integriert werden, kann jedoch jede dieser Vorrichtungen neuerdings auf dem Prozessor 1000 integriert werden. In einer Ausführungsform befindet sich zum Beispiel ein Speicher-Controller-Hub auf demselben Package und/oder Die mit dem Prozessor 1000. Hier schließt ein Abschnitt des Kerns (ein „On-Core“-Abschnitt) 1010 einen oder mehrere Controller zur Schnittstellenbildung mit anderen Vorrichtungen, wie dem Speicher 1075 oder einer Grafikvorrichtung 1080, ein. Die Konfiguration, die eine Verschaltung und Controller zur Schnittstellenbildung mit solchen Vorrichtungen einschließt, wird oft als ein „On-Core“ (oder eine „Un-Core“-Konfiguration) bezeichnet. Als ein Beispiel schließt eine On-Chip-Schnittstelle 1010 eine Ringverschaltung zur On-Chip-Kommunikation und einen seriellen Hochgeschwindigkeits-Punkt-zu-Punkt-Link 1005 zur Off-Chip-Kommunikation ein. In der SOC-Umgebung können jedoch sogar noch mehr Vorrichtungen, wie die Netzwerkschnittstelle, Co-Prozessoren, Speicher 1075, Grafikprozessor 1080 und beliebige andere bekannte Computervorrichtungen/-schnittstellen auf einem einzigen Die oder einer einzigen integrierten Schaltung integriert werden, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Stromverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 1000 dazu in der Lage, einen Compiler-, Optimierungs- und/oder Übersetzercode 1077 auszuführen, um Anwendungscode 1076 zu kompilieren, übersetzen und/oder optimieren, um die Einrichtung und die Verfahren, die hierin beschrieben sind, zu unterstützen oder eine Schnittstelle damit zu bilden. Ein Compiler schließt oft ein Programm oder einen Satz von Programmen zum Übersetzen von Quelltext/Code in Zieltext/Code ein. Üblicherweise erfolgt eine Kompilation von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und Durchgängen, um Hi-Level-Programmiersprachencode in Low-Level-Maschinen- oder Assemblersprachencode umzuwandeln. Compiler mit einem einzigen Durchgang können jedoch weiterhin für eine einfache Kompilation genutzt werden. Ein Compiler kann beliebige bekannte Kompilationstechniken nutzen und beliebige bekannte Compiler-Operationen durchführen, wie lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Code-Erzeugung, Code-Umwandlung und Code-Optimierung.
  • Größere Compiler schließen oft mehrere Phasen ein, aber meistens sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) einem Frontend, das heißt im Allgemeinen, wo syntaktische Verarbeitung, semantische Verarbeitung und ein Teil der Umwandlung/Optimierung stattfinden können, und (2) einem Backend, das heißt im Allgemeinen, wo Analyse, Umwandlungen, Optimierungen und Code-Erzeugung stattfinden. Einige Compiler verweisen auf ein „Middle“, das das Verwischen einer klaren Trennung zwischen einem Frontend und einem Backend eines Compilers veranschaulicht. Dadurch kann ein Verweis auf Einfügen, Zuordnung, Erzeugung oder eine andere Operation eines Compilers in einer/einem beliebigen der oben erwähnten Phasen oder Durchgänge sowie in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers stattfinden. Als ein veranschaulichendes Beispiel fügt ein Compiler potenziell Operationen, Abrufe, Funktionen usw. in eine oder mehrere Kompilationsphasen ein, wie ein Einfügen von Abrufen/Operationen in einer Frontend-Phase der Kompilation, und dann ein Umwandeln der Abrufe/Operationen in Lower-Level-Code während einer Umwandlungsphase. Es sei darauf hingewiesen, dass während einer dynamischen Kompilation Compiler-Code oder dynamischer Optimierungscode solche Operationen/Abrufe einfügen sowie den Code zur Ausführung während der Laufzeit optimieren kann. Als ein spezifisches veranschaulichendes Beispiel kann Binärcode (bereits kompilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon einschließen.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie ein binärer Übersetzer, Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Der Verweis auf eine Ausführung von Code, Anwendungscode, Programmcode oder eine andere Softwareumgebung kann sich daher auf Folgendes beziehen: (1) Ausführung von Compilerprogramm(en), einem Optimierungscodeoptimierer oder einem Übersetzer, dynamisch oder statisch, um Programmcode zu kompilieren, um Softwarestrukturen beizubehalten, um andere Operationen durchzuführen, um Code zu optimieren oder um Code zu übersetzen; (2) Ausführung eines Hauptprogrammcodes, der Operationen/Abrufe einschließt, wie Anwendungscode, der optimiert/kompiliert wurde; (3) Ausführung eines anderen Programmcodes, wie von Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Softwarestrukturen beizubehalten, um andere softwarebezogene Operationen durchzuführen oder um Code zu optimieren; oder (4) eine Kombination davon.
  • Nun Bezug nehmend auf 11 ist ein Blockdiagramm eines anderen Systems 1100 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 11 gezeigt, ist das Multiprozessorsystem 1100 ein Punkt-zu-Punkt-Verschaltungssystem und schließt einen ersten Prozessor 1170 und einen zweiten Prozessor 1180 ein, die über eine Punkt-zu-Punkt-Verschaltung 1150 gekoppelt sind. Jeder der Prozessoren 1170 und 1180 kann eine Version eines Prozessors sein. In einer Ausführungsform sind 1152 und 1154 Teil einer kohärenten seriellen Punkt-zu-Punkt-Verschaltungsstruktur, wie einer Hochleistungsarchitektur. Dadurch kann die Erfindung innerhalb der QPI-Architektur implementiert werden.
  • Obwohl sie nur mit zwei Prozessoren 1170, 1180 gezeigt ist, sei klargestellt, dass der Umfang der vorliegenden Erfindung nicht darauf beschränkt ist. In anderen Ausführungsformen können in einem gegebenen Prozessor ein oder mehrere zusätzliche Prozessoren vorhanden sein.
  • Die Prozessoren 1170 und 1180 sind jeweils integrierte Speicher-Controller-Einheiten 1172 und 1182 aufweisend gezeigt. Der Prozessor 1170 schließt als Teil seiner Bus-Controller-Einheiten die Punkt-zu-Punkt(P-P)-Schnittstellen 1176 und 1178 ein; der zweite Prozessor 1180 schließt in ähnlicher Weise die P-P-Schnittstellen 1186 und 1188 ein. Die Prozessoren 1170 und 1180 können Informationen über eine Punkt-zu-Punkt(P-P)-Schnittstelle 1150 unter Verwendung der P-P-Schnittstellenschaltungen 1178, 1188 austauschen. Wie in 11 gezeigt, koppeln die IMCs 1172 und 1182 die Prozessoren an jeweilige Speicher, nämlich einen Speicher 1132 und einen Speicher 1134, die Abschnitte eines Hauptspeichers sein können, der lokal an die jeweiligen Prozessoren gebunden ist.
  • Die Prozessoren 1170, 1180 tauschen jeweils Informationen über individuelle P-P-Schnittstellen 1152, 1154 mit einem Chipsatz 1190 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 1176, 1194, 1186, 1198 aus. Der Chipsatz 1190 tauscht auch Informationen mit einer Hochleistungsgrafikschaltung 1138 über eine Schnittstellenschaltung 1192 entlang einer Hochleistungsgrafikverschaltung 1139 aus.
  • Ein gemeinsamer Cache (nicht gezeigt) kann in beiden Prozessoren oder außerhalb von beiden Prozessoren enthalten sein, aber mit den Prozessoren derart über eine P-P-Verschaltung verbunden sein, dass die lokalen Cache-Informationen von einem oder beiden Prozessoren in dem gemeinsamen Cache gespeichert werden können, wenn ein Prozessor in einen Modus mit niedrigem Stromverbrauch gebracht wird.
  • Der Chipsatz 1190 kann über eine Schnittstelle 1196 an einen ersten Bus 1116 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1116 ein Peripheral-Component-Interconnect(PCI)-Bus oder ein Bus, wie ein PCI-Express-Bus oder ein anderer E/A-Verschaltungs-Bus der dritten Generation, sein, obwohl der Umfang der vorliegenden Erfindung nicht hierauf beschränkt ist.
  • Wie in 11 gezeigt, sind verschiedene E/A-Vorrichtungen 1114 zusammen mit einer Busbrücke 1118, die den ersten Bus 1116 an einen zweiten Bus 1120 koppelt, an den ersten Bus 1116 gekoppelt. In einer Ausführungsform schließt der zweite Bus 1120 einen Low-Pin-Count(LPC)-Bus ein. Verschiedene Vorrichtungen sind in einer Ausführungsform an einen zweiten Bus 1120 gekoppelt, der zum Beispiel eine Tastatur und/oder Maus 1122, Kommunikationsvorrichtungen 1127 und eine Speichereinheit 1128, wie ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die oft Befehle/Code und Daten 1130 einschließt, einschließt. Ferner ist eine Audio-E/A 1124 an den zweiten Bus 1120 gekoppelt gezeigt. Es sei darauf hingewiesen, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Verschaltungsarchitekturen variieren. Zum Beispiel kann ein System statt der Punkt-zu-Punkt-Architektur von 11 einen Multi-Drop-Bus oder eine andere solche Architektur implementieren.
  • Wenngleich die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, wird der Fachmann zahlreiche Modifikationen und Variationen davon erkennen. Es wird beabsichtigt, dass die beigefügten Ansprüche alle diese Modifikationen und Variationen, die innerhalb des wahren Wesens und Umfangs dieser vorliegenden Erfindung liegen, abdecken.
  • Ein Design kann verschiedene Stufen durchlaufen, von der Erstellung über die Simulation bis hin zur Herstellung. Daten, die ein Design darstellen, können das Design in einer Anzahl von Weisen darstellen. Zunächst kann die Hardware, was bei Simulationen sinnvoll ist, unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt werden. Außerdem kann auf einigen Stufen des Designprozesses ein Schaltungsebenenmodell mit Logik und/oder Transistor-Gates erstellt werden. Des Weiteren erreichen die meisten Designs auf einer gewissen Stufe eine Datenebene, die die physische Anordnung von verschiedenen Vorrichtungen in dem Hardwaremodell darstellt. In dem Fall, in dem herkömmliche Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die das Vorhandensein oder das Nichtvorhandensein verschiedener Merkmale auf unterschiedlichen Maskenschichten für Masken, die zum Herstellen der integrierten Schaltung verwendet werden, spezifizieren. In jeder Darstellung des Designs können die Daten in einer beliebigen Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder eine magnetische oder optische Speicherung, wie eine Platte, kann das maschinenlesbare Medium zum Speichern von Informationen sein, die über optische oder elektrische Wellen übertragen werden, die moduliert oder anderweitig erzeugt werden, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder das Design anzeigt oder trägt, insoweit als ein Kopieren, Puffern oder Neuübertragen des elektrischen Signals durchgeführt wird, übertragen wird, wird eine neue Kopie erstellt. Somit kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem greifbaren, maschinenlesbaren Medium, zumindest vorübergehend, ein Element, wie in eine Trägerwelle codierte Informationen, unter Ausführung von Techniken von Ausführungsformen der vorliegenden Erfindung speichern.
  • Ein Modul, wie es hier verwendet wird, bezieht sich auf eine beliebige Kombination von Hardware, Software und/oder Firmware. Ein Modul schließt zum Beispiel Hardware, wie einen Mikrocontroller, ein, der einem nichtflüchtigen Medium zugeordnet ist, um Code zu speichern, der dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden. Eine Bezugnahme auf ein Modul betrifft folglich in einer Ausführungsform die Hardware, die insbesondere dazu konfiguriert ist, den Code, der auf einem nichtflüchtigen Medium zu halten ist, zu erkennen und/oder auszuführen. Des Weiteren betrifft die Verwendung eines Moduls in einer anderen Ausführungsform das nichtflüchtige Medium, das den Code einschließt, der insbesondere dazu ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Und wie zu erkennen ist, kann sich der Begriff Modul (in diesem Beispiel) in noch einer weiteren Ausführungsform auf die Kombination des Mikrocontrollers und des nichtflüchtigen Mediums beziehen. Modulgrenzen, die als separat dargestellt sind, variieren üblicherweise oft und überlappen sich potenziell. Zum Beispiel können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während potenziell eine gewisse unabhängige Hardware, Software oder Firmware beibehalten wird. In einer Ausführungsform schließt die Verwendung des Begriffs Logik Hardware, wie Transistoren, Register oder andere Hardware, wie programmierbare Logikvorrichtungen, ein.
  • Die Verwendung des Ausdrucks „konfiguriert zu“ betrifft in einer Ausführungsform das Anordnen, Zusammenstellen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Konzipieren einer Einrichtung, Hardware oder Logik oder eines Elements, um eine designierte oder bestimmte Aufgabe durchzuführen. In diesem Beispiel ist eine Einrichtung oder ein Element davon, die/das nicht arbeitet, immer noch „konfiguriert zum“ Durchführen einer designierten Aufgabe, wenn sie/es konzipiert, gekoppelt und/oder verschaltet ist, um die designierte Aufgabe durchzuführen. Als rein veranschaulichendes Beispiel kann ein Logik-Gate während des Betriebs eine 0 oder eine 1 bereitstellen. Aber ein Logik-Gate, das „dazu konfiguriert“ ist, ein Freigabesignal für einen Taktgeber bereitzustellen, schließt nicht jedes potenzielle Logik-Gate ein, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logik-Gate eines, das auf eine Weise gekoppelt ist, bei der während des Betriebs die ausgegebene 1 oder 0 den Taktgeber freigeben soll. Es sei noch einmal angemerkt, dass die Verwendung des Begriffs „konfiguriert zu“ keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand einer Einrichtung, von Hardware und/oder eines Elements konzentriert, wobei der latente Zustand der Einrichtung, der Hardware und/oder des Elements dazu ausgelegt ist, eine bestimmte Aufgabe durchzuführen, wenn die Einrichtung, die Hardware und/oder das Element in Betrieb ist.
  • Des Weiteren betrifft die Verwendung der Ausdrücke „zum“, „dazu in der Lage, zu“ und/oder „operabel, zu“ in einer Ausführungsform eine Einrichtung, Logik, Hardware und/oder ein Element, die/das derart ausgelegt ist, dass die Verwendung der Einrichtung, der Logik, der Hardware und/oder des Elements in einer vorgegebenen Weise ermöglicht wird. Wie oben sei darauf hingewiesen, dass die Verwendung von „zum“, „in der Lage, zu“ oder „operabel, zu“ in einer Ausführungsform den latenten Zustand einer Einrichtung, Logik, Hardware und/oder eines Elements betrifft, wobei die Einrichtung, Logik, Hardware und/oder das Element nicht in Betrieb ist, aber derart ausgelegt ist, dass die Verwendung einer Einrichtung in einer vorgegebenen Weise ermöglicht wird.
  • Ein Wert, wie hierin verwendet, schließt jede bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands ein. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als Einsen und Nullen bezeichnet, was einfach binäre Logikzustände darstellt. Zum Beispiel bezieht sich 1 auf einen hohen Logikpegel und bezieht sich 0 auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie eine Transistor- oder Flash-Zelle, dazu in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Es wurden jedoch andere Darstellungen von Werten in Computersystemen verwendet. Zum Beispiel kann die Dezimalzahl zehn auch als ein Binärwert von 1010 und ein hexadezimaler Buchstabe A dargestellt werden. Deshalb schließt ein Wert eine beliebige Darstellung von Informationen, die in einem Computersystem gehalten werden können, ein.
  • Darüber hinaus können Zustände durch Werte oder Abschnitte von Werten dargestellt werden. Zum Beispiel kann ein erster Wert, wie eine logische Eins, einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie eine logische Null, einen Nichtstandardzustand darstellen kann. Darüber hinaus beziehen sich die Begriffe „Zurücksetzen“ und „Setzen“ in einer Ausführungsform jeweils auf einen Standard- und einen aktualisierten Wert oder Zustand. Zum Beispiel schließt ein Standardwert potenziell einen hohen logischen Wert, das heißt ein Zurücksetzen, ein, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert, das heißt ein Setzen, einschließt. Es sei darauf hingewiesen, dass jede Kombination von Werten genutzt werden kann, um eine beliebige Anzahl von Zuständen darzustellen.
  • Die oben dargelegten Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über auf einem maschinenzugreifbaren, maschinenlesbaren, computerzugreifbaren oder computerlesbaren Medium gespeicherte Befehle oder gespeicherten Code implementiert sein, die durch ein Verarbeitungselement ausführbar sind. Ein nichtflüchtiges maschinenzugreifbares/-lesbares Medium schließt jeden Mechanismus ein, der Informationen in einer durch eine Maschine, wie einen Computer oder ein elektronisches System, lesbaren Form bereitstellt (das heißt speichert und/oder überträgt). Zum Beispiel schließt ein nichtflüchtiges, maschinenzugreifbares Medium Speicher mit wahlfreiem Zugriff (Random Access Memory, RAM), wie statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speicherungsmedium; Flash-Speicher-Vorrichtungen; elektrische Speicherungsvorrichtungen; optische Speicherungsvorrichtungen; akustische Speicherungsvorrichtungen; andere Formen von Speicherungsvorrichtungen zum Halten von Informationen, die von transitorischen (propagierten) Signalen (zum Beispiel Trägerwellen, Infrarotsignale, Digitalsignale) empfangen werden; usw. ein, die von den nichtflüchtigen Medien unterschieden werden müssen, die Informationen davon empfangen können.
  • Befehle, die zum Programmieren von Logik verwendet werden, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers in dem System, wie einem DRAM, Cache, Flash-Speicher oder einer anderen Speicherung, gespeichert werden. Des Weiteren können die Befehle über ein Netzwerk oder mittels anderer computerlesbarer Medien verteilt werden. Somit kann ein maschinenlesbares Medium unter anderem jeden Mechanismus zum Speichern oder Übertragen von Informationen in einer Form, die durch eine Maschine (zum Beispiel einen Computer) gelesen werden kann, einschließen, wie Disketten, optische Platten, Compact Disc-Festwertspeicher (CD-ROMs) und magneto-optische Platten, Festwertspeicher (ROMs), Speicher mit wahlfreiem Zugriff (RAM), löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder eine greifbare, maschinenlesbare Speicherung, die bei der Informationsübertragung über das Internet über elektrische, optische, akustische oder andere Formen von propagierten Signalen (zum Beispiel Trägerwellen, Infrarotsignale, Digitalsignale usw.) verwendet werden. Das computerlesbare Medium schließt entsprechend jede Art von greifbarem, maschinenlesbarem Medium ein, das geeignet ist, um elektronische Befehle oder Informationen in einer Form, die durch eine Maschine (zum Beispiel einen Computer) lesbar ist, zu speichern oder zu übertragen.
  • In einigen Ausführungsformen kann eine elektronische Vorrichtung dazu konfiguriert sein, eine/n oder mehrere Prozesse, Techniken und/oder Verfahren, wie hierin beschrieben, oder Abschnitte davon durchzuführen. Ein solcher Prozess ist in X-2 dargestellt. Zum Beispiel kann der Prozess ein Durchführen, durch einen ersten und zweiten Retimer, einer SKP-Einstellung während eines ersten SKP-geordneten Satzes (Ordered Set, OS); und ein Durchführen, durch einen dritten und vierten Retimer, einer SKP-Einstellung während eines zweiten SKP-OS einschließen.
  • In einigen Ausführungsformen kann eine elektronische Vorrichtung dazu konfiguriert sein, eine/n oder mehrere Prozesse, Techniken und/oder Verfahren, wie hierin beschrieben, oder Abschnitte davon durchzuführen. Zum Beispiel kann der Prozess ein Verbessern eines geordneten Satzes (Ordered Set, OS) für ein Training, um fünf Generationen von Geschwindigkeiten zu ermöglichen; und ein Festlegen eines Konfigurationsregisters, um eine Gen-5-PCIe-Geschwindigkeit anzuzeigen, einschließen.
  • In einigen Ausführungsformen kann eine elektronische Vorrichtung dazu konfiguriert sein, eine/n oder mehrere Prozesse, Techniken und/oder Verfahren, wie hierin beschrieben, oder Abschnitte davon durchzuführen. Zum Beispiel kann der Prozess ein Identifizieren eines durch eine Plattform bereitgestellten Kanaltyps; ein Identifizieren des Vorhandenseins von einem oder mehreren Retimern; und ein Auswählen, basierend auf dem Kanaltyp und darauf, ob ein oder mehrere Retimer vorhanden sind, zwischen 25 Gigatransfers pro Sekunde (GT/s) und 32 GT/s einschließen.
  • In einigen Ausführungsformen kann eine elektronische Vorrichtung dazu konfiguriert sein, eine/n oder mehrere Prozesse, Techniken und/oder Verfahren, wie hierin beschrieben, oder Abschnitte davon durchzuführen. Zum Beispiel kann der Prozess ein Identifizieren einer Kanal-Link-Breite aus einem Satz, der Breiten von x20, x24, x28 und x28 einschließt; und ein Kommunizieren über einen Kanal-Link basierend auf der identifizierten Kanal-Link-Breite einschließen.
  • In einigen Ausführungsformen kann eine elektronische Vorrichtung dazu konfiguriert sein, eine/n oder mehrere Prozesse, Techniken und/oder Verfahren, wie hierin beschrieben, oder Abschnitte davon durchzuführen. Zum Beispiel kann der Prozess ein Identifizieren von wiederhergestellten Taktdaten aus der Taktdatenwiederherstellung (Clock Data Recovery, CDR) und ein Übertragen, basierend auf den wiederhergestellten Taktdaten, von Sende(TX)-Daten nach einem anfänglichen Training einschließen.
  • In einigen Ausführungsformen kann ein Verfahren zum Kommunizieren gemäß einem PCIe-Standard bereitgestellt werden, das ein Durchführen, durch einen ersten und zweiten Retimer, einer SKP-Einstellung während eines ersten SKP-geordneten Satzes (Ordered Set, OS) und ein Durchführen, durch einen dritten und vierten Retimer, einer SKP-Einstellung während eines zweiten SKP-OS einschließt. Das Verfahren kann ferner ein Reduzieren einer SKP-OS-Frequenz um die Hälfte einschließen. In einigen Fällen kann der erste SKP-OS unmittelbar aufeinanderfolgend mit dem zweiten SKP-OS gesendet werden. Das Verfahren kann ferner ein Verbessern eines geordneten Satzes (Ordered Set, OS) für ein Training, um fünf Generationen von Geschwindigkeiten zu ermöglichen, und ein Festlegen eines Konfigurationsregisters, um eine Gen-5-PCIe-Geschwindigkeit anzuzeigen, einschließen. Ferner kann ein durch eine Plattform bereitgestellter Kanaltyp identifiziert werden, kann das Vorhandensein von einem oder mehreren Retimern identifiziert werden und kann die Kanalgeschwindigkeit (z. B. aus entweder 25 Gigatransfers pro Sekunde (GT/s) oder 32 GT/s) basierend auf dem Kanaltyp und darauf, ob ein oder mehrere Retimer vorhanden sind, ausgewählt werden. Diese Auswahl kann auch basierend darauf bestimmt werden, ob eine Vorwärtsfehlerkorrektur (Forward Error Correction, FEC) aktiviert ist oder unterstützt wird. Diese Geschwindigkeitsauswahl kann während eines Link-Trainings erfolgen. Diese beispielhaften Verfahren können außerdem ein Identifizieren einer Kanal-Link-Breite aus einem Satz, der Breiten von x20, x24, x28 und x28 einschließt; und ein Kommunizieren über einen Kanal-Link basierend auf der identifizierten Kanal-Link-Breite einschließen. Außerdem können wiederhergestellte Taktdaten aus einer Taktdatenwiederherstellungskomponente identifiziert werden und können Sendedaten basierend auf den wiederhergestellten Taktdaten nach einem Training des Links gesendet werden.
  • In einigen Ausführungsformen kann neben anderen beispielhaften Merkmalen und Komponenten eine Einrichtung zum Kommunizieren gemäß einem PCIebasierten Standard bereitgestellt werden, wobei die Einrichtung einen erweiterten linearen Entzerrer für kontinuierliche Zeit (Continuous Time Linear Equalizer, CTLE) und/oder einen Entscheidungsrückkopplungsentzerrer (Decision Feedback Equalizer, DFE) mit mindestens 8 Koeffizienten und/oder einen T-Spulen- oder Pi-Spulen-Abschluss und/oder einen Datenmusterfilter im Zusammenhang mit der Taktdatenwiederherstellung (Clock Data Recovery, CDR) und/oder eine überlappte 4-Wege-Taktarchitektur einschließt.
  • In einigen Ausführungsformen kann eine Einrichtung zum Kommunizieren gemäß einem Peripheral-Component-Interconnect-express (PCIe)-Standard mit Kanalverlusteigenschaften, wie weiter oben erörtert, bereitgestellt werden. Der PCIe-Standard kann ein PCIe-Standard nach Gen 5 (oder höher) sein.
  • Die folgenden Beispiele gehören zu Ausführungsformen gemäß dieser Beschreibung. Beispiel 1 ist eine Einrichtung, die Folgendes einschließt: eine Schnittstelle mit einem Port, wobei der Port eine Vielzahl von Empfänger-Sender-Paaren einschließt und jedes der Empfänger-Sender-Paare Folgendes einschließt: einen jeweiligen Empfänger zum Empfangen von Daten auf einer jeweiligen von einer Vielzahl von bidirektionalen Spuren; und einen jeweiligen Sender zum Senden von Daten auf der jeweiligen Spur; und Zustandsmaschinenlogik mit einer Hardwareschaltung. Die Zustandsmaschinenlogik ist für Folgendes vorgesehen: Erfassen einer Trainingssequenz, die durch einen bestimmten Empfänger eines bestimmten der Vielzahl von Empfänger-Sender-Paaren auf einer bestimmten der Vielzahl von bidirektionalen Spuren von einer Testervorrichtung empfangen wird, wobei die Trainingssequenz einen Wert einschließt, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Bewirken, dass das bestimmte Empfänger-Sender-Paar in einen ersten Link-Zustand in Verbindung mit dem Test wechselt; und Bewirken, dass ein anderes der Vielzahl von Empfänger-Sender-Paaren in einen zweiten Link-Zustand wechselt, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 einschließen, wobei der Wert einen bestimmten der Vielzahl von Testmodi anzeigt, der in dem Test des bestimmten Empfänger-Sender-Paars angewendet werden soll, der zweite Link-Zustand dem bestimmten Testmodus entspricht und das andere Empfänger-Sender-Paar basierend auf dem bestimmten Testmodus in den zweiten Link-Zustand wechselt.
  • Beispiel 3 kann den Gegenstand von Beispiel 2 einschließen, wobei die Vielzahl von Testmodi zumindest einen ersten Testmodus zum Testen von Spuren bei Vorhandensein von Fernnebensprechen und zumindest einen zweiten Testmodus zum Testen von Spuren bei Vorhandensein von Nahnebensprechen einschließt.
  • Beispiel 4 kann den Gegenstand von Beispiel 3 einschließen, wobei der bestimmte Testmodus den ersten Testmodus einschließt, der Sender des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand inaktiv bleiben soll, der Empfänger des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand ein Belastungssignal empfangen soll, das Belastungssignal ein Nebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen Belastungssignals ignorieren soll.
  • Beispiel 5 kann den Gegenstand von Beispiel 3 einschließen, wobei der bestimmte Testmodus den zweiten Testmodus einschließt und der Sender des anderen Empfänger-Sender-Paars ein Signal in dem zweiten Link-Zustand übertragen soll, um ein Nebensprechen auf der bestimmten Spur zu bewirken.
  • Beispiel 6 kann den Gegenstand von Beispiel 5 einschließen, wobei das Signal ein erstes Belastungssignal einschließt, der zweite Testmodus Spuren bei Vorhandensein von sowohl Nah- als auch Fernnebensprechen testen soll, der Empfänger des anderen Empfänger-Sender-Paars in dem zweiten Link-Zustand ein zweites Belastungssignal empfangen soll, das erste Belastungssignal das Nahnebensprechen auf der bestimmten Spur bewirken soll, das zweite Belastungssignal das Fernnebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen zweiten Belastungssignals ignorieren soll.
  • Beispiel 7 kann den Gegenstand von Beispiel 3 einschließen, wobei das zweite Belastungssignal eine zurückgeschleifte Version des ersten Belastungssignals einschließt.
  • Beispiel 8 kann den Gegenstand von einem der Beispiele 1-7 einschließen, wobei der erste Link-Zustand einen Schleifenschaltungszustand einschließt und die Testervorrichtung der Master in dem Schleifenschaltungszustand sein soll.
  • Beispiel 9 kann den Gegenstand von einem der Beispiele 1-8 einschließen, wobei die Trainingssequenz während eines Abfrage-Link-Zustands empfangen wird.
  • Beispiel 10 kann den Gegenstand von Beispiel 9 einschließen, wobei der Abfrage-Link-Zustand einen Link-Training-Zustand in einer Zustandsmaschine einschließt, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-basierten Protokoll kompatibel ist.
  • Beispiel 11 kann den Gegenstand von Beispiel 9 einschließen, wobei jeweils von dem Abfrage-Link-Zustand das bestimmte Empfänger-Sender-Paar in den ersten Link-Zustand wechselt und das andere Empfänger-Sender-Paar in den zweiten Link-Zustand wechselt.
  • Beispiel 12 kann den Gegenstand von einem der Beispiele 1-11 einschließen, wobei die Testervorrichtung eine Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung einschließt.
  • Beispiel 13 kann den Gegenstand von Beispiel 12 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für eine einzelne Spur einschließt, um eine Verbindung zu nur einem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 14 kann den Gegenstand von Beispiel 12 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für mehrere Spuren einschließt, um eine Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 15 kann den Gegenstand von einem der Beispiele 1-14 einschließen, wobei der zweite Link-Zustand einen von einer Vielzahl von Testzuständen einschließt, die durch die Zustandsmaschinenlogik unterstützt werden.
  • Beispiel 16 kann den Gegenstand von Beispiel 15 einschließen, wobei die Vielzahl von Testzuständen von Zuständen in einer Link-Zustandsmaschine getrennt sind, die dazu konzipiert ist, einen Link in einen aktiven Standardzustand zu schalten.
  • Beispiel 17 kann den Gegenstand von Beispiel 16 einschließen, wobei der aktive Standardzustand einen LO-Zustand einschließt.
  • Beispiel 18 kann den Gegenstand von einem der Beispiele 1-17 einschließen, wobei alle der Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren, außer dem bestimmten Empfänger-Sender-Paar, für den Test in den zweiten Zustand wechseln sollen.
  • Beispiel 19 kann den Gegenstand von Beispiel 1 einschließen, wobei Daten von der testenden Vorrichtung auf der bestimmten Spur in dem ersten Link-Zustand übertragen werden sollen und der zweite Zustand eines von Folgendem einschließt: einen Ruhezustand, in dem keine Daten durch das andere Empfänger-Sender-Paar auf einer anderen der Vielzahl von Spuren übertragen werden, einen Schleifenschaltungszustand, in dem Daten während des bestimmten Testmodus fortlaufend von dem Sender des anderen Empfänger-Sender-Paars auf der anderen Spur zu einer anderen Vorrichtung übertragen und zu dem Empfänger des anderen Empfänger-Sender-Paars zurückgeschleift werden; und einen Nur-Übertragen-Zustand, in dem Daten während des bestimmten Testmodus fortlaufend durch den Sender des anderen Empfänger-Sender-Paars auf der anderen Spur übertragen und Signale durch den Empfänger des anderen Empfänger-Sender-Paars auf der anderen Spur ignoriert werden.
  • Beispiel 20 kann den Gegenstand von Beispiel 19 einschließen, wobei durch den Sender des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen, und von einer anderen Vorrichtung zu dem Empfänger des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen.
  • Beispiel 21 ist ein Verfahren, das Folgendes einschließt: Empfangen einer Trainingssequenz an einem Empfänger eines bestimmten von einer Vielzahl von Empfänger-Sender-Paaren, wobei alle der Vielzahl von Empfänger-Sender-Paaren eine jeweilige von einer Vielzahl von Spuren in einem Link implementieren sollen, wobei die Trainingssequenz von einer Testervorrichtung auf einer bestimmten der Vielzahl von Spuren empfangen wird und die Trainingssequenz einen Wert einschließt, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Wechseln des bestimmten Empfänger-Sender-Paars in einen ersten Link-Zustand in Verbindung mit dem Test; und Wechseln von einem oder mehreren anderen Empfänger-Sender-Paaren in der Vielzahl von Empfänger-Sender-Paaren, um in einen zweiten Link-Zustand zu wechseln, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist, wobei der zweite Link-Zustand ermöglicht, dass während des Tests ein Nebensprechen auf der bestimmten Spur erzeugt wird.
  • Beispiel 22 kann den Gegenstand von Beispiel 21 einschließen, wobei der Wert einen bestimmten der Vielzahl von Testmodi anzeigt, der in dem Test des bestimmten Empfänger-Sender-Paars angewendet werden soll, der zweite Link-Zustand dem bestimmten Testmodus entspricht und das andere Empfänger-Sender-Paar basierend auf dem bestimmten Testmodus in den zweiten Link-Zustand wechselt.
  • Beispiel 23 kann den Gegenstand von Beispiel 22 einschließen, wobei die Vielzahl von Testmodi zumindest einen ersten Testmodus zum Testen von Spuren bei Vorhandensein von Fernnebensprechen und zumindest einen zweiten Testmodus zum Testen von Spuren bei Vorhandensein von Nahnebensprechen einschließt.
  • Beispiel 24 kann den Gegenstand von Beispiel 23 einschließen, wobei der bestimmte Testmodus den ersten Testmodus einschließt, der Sender des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand inaktiv bleiben soll, der Empfänger des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand ein Belastungssignal empfangen soll, das Belastungssignal ein Nebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen Belastungssignals ignorieren soll.
  • Beispiel 25 kann den Gegenstand von Beispiel 23 einschließen, wobei der bestimmte Testmodus den zweiten Testmodus einschließt und der Sender des anderen Empfänger-Sender-Paars ein Signal in dem zweiten Link-Zustand übertragen soll, um ein Nebensprechen auf der bestimmten Spur zu bewirken.
  • Beispiel 26 kann den Gegenstand von Beispiel 25 einschließen, wobei das Signal ein erstes Belastungssignal einschließt, der zweite Testmodus Spuren bei Vorhandensein von sowohl Nah- als auch Fernnebensprechen testen soll, der Empfänger des anderen Empfänger-Sender-Paars in dem zweiten Link-Zustand ein zweites Belastungssignal empfangen soll, das erste Belastungssignal das Nahnebensprechen auf der bestimmten Spur bewirken soll, das zweite Belastungssignal das Fernnebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen zweiten Belastungssignals ignorieren soll.
  • Beispiel 27 kann den Gegenstand von Beispiel 23 einschließen, wobei das zweite Belastungssignal eine zurückgeschleifte Version des ersten Belastungssignals einschließt.
  • Beispiel 28 kann den Gegenstand von einem der Beispiele 21-27 einschließen, wobei der erste Link-Zustand einen Schleifenschaltungszustand einschließt und die Testervorrichtung der Master in dem Schleifenschaltungszustand sein soll.
  • Beispiel 29 kann den Gegenstand von einem der Beispiele 21-28 einschließen, wobei die Trainingssequenz während eines Abfrage-Link-Zustands empfangen wird.
  • Beispiel 30 kann den Gegenstand von Beispiel 29 einschließen, wobei der Abfrage-Link-Zustand einen Link-Training-Zustand in einer Zustandsmaschine einschließt, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-basierten Protokoll kompatibel ist.
  • Beispiel 31 kann den Gegenstand von Beispiel 29 einschließen, wobei jeweils von dem Abfrage-Link-Zustand das bestimmte Empfänger-Sender-Paar in den ersten Link-Zustand wechselt und das andere Empfänger-Sender-Paar in den zweiten Link-Zustand wechselt.
  • Beispiel 32 kann den Gegenstand von einem der Beispiele 21-31 einschließen, wobei die Testervorrichtung eine Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung einschließt.
  • Beispiel 33 kann den Gegenstand von Beispiel 32 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für eine einzelne Spur einschließt, um eine Verbindung zu nur einem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 34 kann den Gegenstand von Beispiel 32 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für mehrere Spuren einschließt, um eine Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 35 kann den Gegenstand von einem der Beispiele 21-34 einschließen, wobei der zweite Link-Zustand einen von einer Vielzahl von Testzuständen einschließt, die durch die Zustandsmaschinenlogik unterstützt werden.
  • Beispiel 36 kann den Gegenstand von Beispiel 35 einschließen, wobei die Vielzahl von Testzuständen von Zuständen in einer Link-Zustandsmaschine getrennt sind, die dazu konzipiert ist, einen Link in einen aktiven Standardzustand zu schalten.
  • Beispiel 37 kann den Gegenstand von Beispiel 36 einschließen, wobei der aktive Standardzustand einen L0-Zustand einschließt.
  • Beispiel 38 kann den Gegenstand von einem der Beispiele 21-37 einschließen, wobei alle der Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren, außer dem bestimmten Empfänger-Sender-Paar, für den Test in den zweiten Zustand wechseln sollen.
  • Beispiel 39 kann den Gegenstand von Beispiel 21 einschließen, wobei Daten von der testenden Vorrichtung auf der bestimmten Spur in dem ersten Link-Zustand übertragen werden sollen und der zweite Zustand eines von Folgendem einschließt: einen Ruhezustand, in dem keine Daten durch das andere Empfänger-Sender-Paar auf einer anderen der Vielzahl von Spuren übertragen werden; einen Schleifenschaltungszustand, in dem Daten während des bestimmten Testmodus fortlaufend von dem Sender des anderen Empfänger-Sender-Paars auf der anderen Spur zu einer anderen Vorrichtung übertragen und zu dem Empfänger des anderen Empfänger-Sender-Paars zurückgeschleift werden; und einen Nur-Übertragen-Zustand, in dem Daten während des bestimmten Testmodus fortlaufend durch den Sender des anderen Empfänger-Sender-Paars auf der anderen Spur übertragen und Signale durch den Empfänger des anderen Empfänger-Sender-Paars auf der anderen Spur ignoriert werden.
  • Beispiel 40 kann den Gegenstand von Beispiel 39 einschließen, wobei durch den Sender des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen, und von einer anderen Vorrichtung zu dem Empfänger des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen.
  • Beispiel 41 ist ein System, das ein Mittel zum Durchführen des Verfahrens von einem beliebigen der Beispiele 21-40 einschließt.
  • Beispiel 42 kann den Gegenstand von Beispiel 41 einschließen, wobei das Mittel ein computerlesbares Medium einschließt, auf dem ein Befehl gespeichert ist, der ausführbar ist, um zumindest einen Abschnitt des Verfahrens nach einem der Beispiele 21-40 durchzuführen.
  • Beispiel 43 ist ein System, das Folgendes einschließt: eine Vorrichtung, die Folgendes einschließt: einen oder mehrere Prozessorkerne; einen Port, der eine Vielzahl von Empfänger-Sender-Paaren einschließt, und wobei jedes der Empfänger-Sender-Paare einen jeweiligen Empfänger und Sender einschließt und eine Verbindung zu einer jeweiligen einer Vielzahl von bidirektionalen Spuren herstellen soll; und Zustandsmaschinenlogik mit einer Hardwareschaltung. Die Zustandsmaschinenlogik ist für Folgendes vorgesehen: Erfassen einer Trainingssequenz, die durch einen bestimmten Empfänger eines bestimmten der Vielzahl von Empfänger-Sender-Paaren auf einer bestimmten der Vielzahl von bidirektionalen Spuren von einer Testervorrichtung empfangen wird, wobei die Trainingssequenz einen Wert einschließt, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Bewirken, dass das bestimmte Empfänger-Sender-Paar in einen ersten Link-Zustand in Verbindung mit dem Test wechselt; und Bewirken, dass ein anderes oder mehrere andere Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren in einen zweiten Link-Zustand wechselt, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist.
  • Beispiel 44 kann den Gegenstand von Beispiel 43 einschließen, ferner umfassend die Testervorrichtung, wobei der Tester Testergebnisse ausgehend von dem Test erzeugt.
  • Beispiel 45 kann den Gegenstand von Beispiel 44 einschließen, wobei die Testervorrichtung eine Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung einschließt.
  • Beispiel 46 kann den Gegenstand von Beispiel 45 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für eine einzelne Spur einschließt, um eine Verbindung zu nur einem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 47 kann den Gegenstand von Beispiel 45 einschließen, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für mehrere Spuren einschließt, um eine Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  • Beispiel 48 kann den Gegenstand von Beispiel 44 einschließen, wobei die Vorrichtung die Testervorrichtung einschließt.
  • Beispiel 49 kann den Gegenstand von Beispiel 43 einschließen, ferner umfassend eine Konformitätsvorrichtung, die für Folgendes vorgesehen ist: Herstellen einer Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren unter Verwendung der Vielzahl von Spuren; Weiterleiten von Daten zwischen dem bestimmten Empfänger-Sender-Paar und der Testervorrichtung; und Zurückschleifen von Daten, die von Sendern des einen oder der mehreren anderen Empfänger/Sender-Zustände in dem zweiten Link-Zustand empfangen werden, um zu bewirken, dass während des Tests sowohl Nahnebensprechen als auch Fernnebensprechen auf der bestimmten Spur erzeugt werden.
  • Beispiel 50 kann den Gegenstand von Beispiel 43 einschließen, wobei der Wert einen bestimmten der Vielzahl von Testmodi anzeigt, der in dem Test des bestimmten Empfänger-Sender-Paars angewendet werden soll, der zweite Link-Zustand dem bestimmten Testmodus entspricht und das andere Empfänger-Sender-Paar basierend auf dem bestimmten Testmodus in den zweiten Link-Zustand wechselt.
  • Beispiel 51 kann den Gegenstand von Beispiel 50 einschließen, wobei die Vielzahl von Testmodi zumindest einen ersten Testmodus zum Testen von Spuren bei Vorhandensein von Fernnebensprechen und zumindest einen zweiten Testmodus zum Testen von Spuren bei Vorhandensein von Nahnebensprechen einschließt.
  • Beispiel 52 kann den Gegenstand von Beispiel 51 einschließen, wobei der bestimmte Testmodus den ersten Testmodus einschließt, der Sender des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand inaktiv bleiben soll, der Empfänger des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand ein Belastungssignal empfangen soll, das Belastungssignal ein Nebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen Belastungssignals ignorieren soll.
  • Beispiel 53 kann den Gegenstand von Beispiel 51 einschließen, wobei der bestimmte Testmodus den zweiten Testmodus einschließt und der Sender des anderen Empfänger-Sender-Paars ein Signal in dem zweiten Link-Zustand übertragen soll, um ein Nebensprechen auf der bestimmten Spur zu bewirken.
  • Beispiel 54 kann den Gegenstand von Beispiel 53 einschließen, wobei das Signal ein erstes Belastungssignal einschließt, der zweite Testmodus Spuren bei Vorhandensein von sowohl Nah- als auch Fernnebensprechen testen soll, der Empfänger des anderen Empfänger-Sender-Paars in dem zweiten Link-Zustand ein zweites Belastungssignal empfangen soll, das erste Belastungssignal das Nahnebensprechen auf der bestimmten Spur bewirken soll, das zweite Belastungssignal das Fernnebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen zweiten Belastungssignals ignorieren soll.
  • Beispiel 55 kann den Gegenstand von Beispiel 51 einschließen, wobei das zweite Belastungssignal eine zurückgeschleifte Version des ersten Belastungssignals einschließt.
  • Beispiel 56 kann den Gegenstand von einem der Beispiele 43-55 einschließen, wobei der erste Link-Zustand einen Schleifenschaltungszustand einschließt und die Testervorrichtung der Master in dem Schleifenschaltungszustand sein soll.
  • Beispiel 57 kann den Gegenstand von einem der Beispiele 43-56 einschließen, wobei die Trainingssequenz während eines Abfrage-Link-Zustands empfangen wird.
  • Beispiel 58 kann den Gegenstand von Beispiel 57 einschließen, wobei der Abfrage-Link-Zustand einen Link-Training-Zustand in einer Zustandsmaschine einschließt, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-basierten Protokoll kompatibel ist.
  • Beispiel 59 kann den Gegenstand von Beispiel 57 einschließen, wobei jeweils von dem Abfrage-Link-Zustand das bestimmte Empfänger-Sender-Paar in den ersten Link-Zustand wechselt und das andere Empfänger-Sender-Paar in den zweiten Link-Zustand wechselt.
  • Beispiel 60 kann den Gegenstand von einem der Beispiele 43-59 einschließen, wobei der zweite Link-Zustand einen von einer Vielzahl von Testzuständen einschließt, die durch die Zustandsmaschinenlogik unterstützt werden.
  • Beispiel 61 kann den Gegenstand von Beispiel 60 einschließen, wobei die Vielzahl von Testzuständen von Zuständen in einer Link-Zustandsmaschine getrennt sind, die dazu konzipiert ist, einen Link in einen aktiven Standardzustand zu schalten.
  • Beispiel 62 kann den Gegenstand von Beispiel 61 einschließen, wobei der aktive Standardzustand einen LO-Zustand einschließt.
  • Beispiel 63 kann den Gegenstand von einem der Beispiele 43-62 einschließen, wobei alle der Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren, außer dem bestimmten Empfänger-Sender-Paar, für den Test in den zweiten Zustand wechseln sollen.
  • Beispiel 64 kann den Gegenstand von Beispiel 63 einschließen, wobei Daten von der testenden Vorrichtung auf der bestimmten Spur in dem ersten Link-Zustand übertragen werden sollen und der zweite Zustand eines von Folgendem einschließt: einen Ruhezustand, in dem keine Daten durch das andere Empfänger-Sender-Paar auf einer anderen der Vielzahl von Spuren übertragen werden; einen Schleifenschaltungszustand, in dem Daten während des bestimmten Testmodus fortlaufend von dem Sender des anderen Empfänger-Sender-Paars auf der anderen Spur zu einer anderen Vorrichtung übertragen und zu dem Empfänger des anderen Empfänger-Sender-Paars zurückgeschleift werden; und einen Nur-Übertragen-Zustand, in dem Daten während des bestimmten Testmodus fortlaufend durch den Sender des anderen Empfänger-Sender-Paars auf der anderen Spur übertragen und Signale durch den Empfänger des anderen Empfänger-Sender-Paars auf der anderen Spur ignoriert werden.
  • Beispiel 65 kann den Gegenstand von Beispiel 64 einschließen, wobei durch den Sender des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen, und von einer anderen Vorrichtung zu dem Empfänger des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen.
  • Bezugnahmen auf „eine Ausführungsform“ über die vorliegende Beschreibung hinweg bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer Ausführungsform der vorliegenden Erfindung enthalten ist. Die Vorkommen des Ausdrucks „in einer Ausführungsform“ an verschiedenen Stellen über die vorliegende Beschreibung hinweg beziehen sich also nicht notwendigerweise alle auf dieselbe Ausführungsform. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften auf jede geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Beschreibung wurde eine detaillierte Beschreibung Bezug nehmend auf spezifische beispielhafte Ausführungsformen bereitgestellt. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Wesen und Umfang der Erfindung, wie sie in den beigefügten Ansprüchen dargelegt ist, abzuweichen. Die Beschreibung und die Zeichnungen sind entsprechend in einem veranschaulichenden Sinne und nicht in einem einschränkenden Sinne zu betrachten. Des Weiteren betrifft die vorhergehende Verwendung von „Ausführungsform“ und anderen beispielhaften Formulierungen nicht notwendigerweise dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann andere und unterschiedliche Ausführungsformen sowie potenziell dieselbe Ausführungsform betreffen.
  • 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 62614874 [0001]

Claims (25)

  1. Einrichtung, umfassend: eine Schnittstelle mit einem Port, wobei der Port eine Vielzahl von Empfänger-Sender-Paaren umfasst und jedes der Empfänger-Sender-Paare Folgendes umfasst: einen jeweiligen Empfänger zum Empfangen von Daten auf einer jeweiligen von einer Vielzahl von bidirektionalen Spuren und einen jeweiligen Sender zum Senden von Daten auf der jeweiligen Spur und Zustandsmaschinenlogik mit einer Hardwareschaltung, wobei die Zustandsmaschinenlogik für Folgendes vorgesehen ist: Erfassen einer Trainingssequenz, die durch einen bestimmten Empfänger eines bestimmten der Vielzahl von Empfänger-Sender-Paaren auf einer bestimmten der Vielzahl von bidirektionalen Spuren von einer Testervorrichtung empfangen wird, wobei die Trainingssequenz einen Wert umfasst, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Bewirken, dass das bestimmte Empfänger-Sender-Paar in einen ersten Link-Zustand in Verbindung mit dem Test wechselt; und Bewirken, dass ein anderes der Vielzahl von Empfänger-Sender-Paaren in einen zweiten Link-Zustand wechselt, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist.
  2. Einrichtung nach Anspruch 1, wobei der Wert einen bestimmten einer Vielzahl von Testmodi anzeigt, der in dem Test des bestimmten Empfänger-Sender-Paars angewendet werden soll, der zweite Link-Zustand dem bestimmten Testmodus entspricht und das andere Empfänger-Sender-Paar basierend auf dem bestimmten Testmodus in den zweiten Link-Zustand wechselt.
  3. Einrichtung nach Anspruch 2, wobei die Vielzahl von Testmodi zumindest einen ersten Testmodus zum Testen von Spuren bei Vorhandensein von Fernnebensprechen und zumindest einen zweiten Testmodus zum Testen von Spuren bei Vorhandensein von Nahnebensprechen umfasst.
  4. Einrichtung nach Anspruch 3, wobei der bestimmte Testmodus den ersten Testmodus umfasst, der Sender des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand inaktiv bleiben soll, der Empfänger des anderen Empfänger-Sender-Paars in dem ersten Link-Zustand ein Belastungssignal empfangen soll, das Belastungssignal ein Nebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen Belastungssignals ignorieren soll.
  5. Einrichtung nach Anspruch 3, wobei der bestimmte Testmodus den zweiten Testmodus umfasst und der Sender des anderen Empfänger-Sender-Paars ein Signal in dem zweiten Link-Zustand übertragen soll, um ein Nebensprechen auf der bestimmten Spur zu bewirken.
  6. Einrichtung nach Anspruch 5, wobei das Signal ein erstes Belastungssignal umfasst, der zweite Testmodus Spuren bei Vorhandensein von sowohl Nah- als auch Fernnebensprechen testen soll, der Empfänger des anderen Empfänger-Sender-Paars in dem zweiten Link-Zustand ein zweites Belastungssignal empfangen soll, das erste Belastungssignal das Nahnebensprechen auf der bestimmten Spur bewirken soll, das zweite Belastungssignal das Fernnebensprechen auf der bestimmten Spur bewirken soll und das andere Empfänger-Sender-Paar Inhalte des empfangenen zweiten Belastungssignals ignorieren soll.
  7. Einrichtung nach Anspruch 3, wobei das zweite Belastungssignal eine zurückgeschleifte Version des ersten Belastungssignals umfasst.
  8. Einrichtung nach einem der Ansprüche 1-7, wobei der erste Link-Zustand einen Schleifenschaltungszustand umfasst und die Testervorrichtung der Master in dem Schleifenschaltungszustand sein soll.
  9. Einrichtung nach einem der Ansprüche 1-8, wobei die Trainingssequenz während eines Abfrage-Link-Zustands empfangen wird.
  10. Einrichtung nach Anspruch 9, wobei der Abfrage-Link-Zustand einen Link-Training-Zustand in einer Zustandsmaschine umfasst, die mit einem Peripheral Component Interconnect express(PCIe)-basierten Protokoll kompatibel ist.
  11. Einrichtung nach Anspruch 9, wobei jeweils von dem Abfrage-Link-Zustand das bestimmte Empfänger-Sender-Paar in den ersten Link-Zustand wechselt und das andere Empfänger-Sender-Paar in den zweiten Link-Zustand wechselt.
  12. Einrichtung nach einem der Ansprüche 1-11, wobei die Testervorrichtung eine Bitfehlerratentester(Bit Error Rate Tester, BERT)-Vorrichtung umfasst.
  13. Einrichtung nach Anspruch 12, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für eine einzelne Spur umfasst, um eine Verbindung zu nur einem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  14. Einrichtung nach Anspruch 12, wobei die BERT-Vorrichtung eine BERT-Vorrichtung für mehrere Spuren umfasst, um eine Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren während Tests der Vorrichtung herzustellen.
  15. Einrichtung nach einem der Ansprüche 1-14, wobei der zweite Link-Zustand einen von einer Vielzahl von Testzuständen umfasst, die durch die Zustandsmaschinenlogik unterstützt werden.
  16. Einrichtung nach Anspruch 15, wobei die Vielzahl von Testzuständen von Zuständen in einer Link-Zustandsmaschine getrennt sind, die dazu konzipiert sind, einen Link in einen aktiven Standardzustand zu schalten.
  17. Einrichtung nach Anspruch 16, wobei der aktive Standardzustand einen L0-Zustand umfasst.
  18. Einrichtung nach einem der Ansprüche 1-17, wobei alle der Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren, außer dem bestimmten Empfänger-Sender-Paar, für den Test in den zweiten Zustand wechseln sollen.
  19. Einrichtung nach Anspruch 1, wobei Daten von der testenden Vorrichtung auf der bestimmten Spur in dem ersten Link-Zustand übertragen werden sollen und der zweite Zustand eines von Folgendem umfasst: einen Ruhezustand, in dem keine Daten durch das andere Empfänger-Sender-Paar auf einer anderen der Vielzahl von Spuren übertragen werden, einen Schleifenschaltungszustand, in dem Daten während des bestimmten Testmodus fortlaufend von dem Sender des anderen Empfänger-Sender-Paars auf der anderen Spur zu einer anderen Vorrichtung übertragen und zu dem Empfänger des anderen Empfänger-Sender-Paars zurückgeschleift werden; und einen Nur-Übertragen-Zustand, in dem Daten während des bestimmten Testmodus fortlaufend durch den Sender des anderen Empfänger-Sender-Paars auf der anderen Spur übertragen und Signale durch den Empfänger des anderen Empfänger-Sender-Paars auf der anderen Spur ignoriert werden.
  20. Einrichtung nach Anspruch 19, wobei durch den Sender des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen, und von einer anderen Vorrichtung zu dem Empfänger des anderen Empfänger-Sender-Paars übertragene Daten verwendet werden sollen, um auf ein Nahnebensprechen auf der bestimmten Spur zu testen.
  21. Verfahren, umfassend: Empfangen einer Trainingssequenz an einem Empfänger eines bestimmten von einer Vielzahl von Empfänger-Sender-Paaren, wobei jedes der Vielzahl von Empfänger-Sender-Paaren eine jeweilige von einer Vielzahl von Spuren in einem Link implementieren soll, wobei die Trainingssequenz von einer Testervorrichtung auf einer bestimmten der Vielzahl von Spuren empfangen wird und die Trainingssequenz einen Wert umfasst, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Wechseln des bestimmten Empfänger-Sender-Paars in einen ersten Link-Zustand in Verbindung mit dem Test und Wechseln von einem oder mehreren anderen Empfänger-Sender-Paaren in der Vielzahl von Empfänger-Sender-Paaren, um in einen zweiten Link-Zustand zu wechseln, der von dem ersten Link-Zustand in Verbindung mit dem Test verschieden ist, wobei der zweite Link-Zustand ermöglicht, dass während des Tests ein Nebensprechen auf der bestimmten Spur erzeugt wird.
  22. System, das ein Mittel zum Durchführen des Verfahrens nach Anspruch 21 umfasst.
  23. System, das Folgendes umfasst: eine Vorrichtung, die Folgendes umfasst: einen oder mehrere Prozessorkerne; einen Port, der eine Vielzahl von Empfänger-Sender-Paaren umfasst, wobei jedes der Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren einen jeweiligen Empfänger und Sender umfasst und eine Verbindung zu einer jeweiligen einer Vielzahl von bidirektionalen Spuren herstellen soll; und Zustandsmaschinenlogik mit einer Hardwareschaltung, wobei die Zustandsmaschinenlogik für Folgendes vorgesehen ist: Erfassen einer Trainingssequenz, die durch einen bestimmten Empfänger eines bestimmten der Vielzahl von Empfänger-Sender-Paaren auf einer bestimmten der Vielzahl von bidirektionalen Spuren von einer Testervorrichtung empfangen wird, wobei die Trainingssequenz einen Wert umfasst, um einen Test des bestimmten Empfänger-Sender-Paars durch die Testervorrichtung anzuzeigen; Bewirken, dass das bestimmte Empfänger-Sender-Paar in einen ersten Link-Zustand in Verbindung mit dem Test wechselt; und Bewirken, dass ein anderes oder mehrere andere Empfänger-Sender-Paare in der Vielzahl von Empfänger-Sender-Paaren in einen zweiten Link-Zustand wechseln, der von dem ersten Link-Zustand verschieden ist, um in Verbindung mit dem Test ein Nebensprechen zu erzeugen.
  24. System nach Anspruch 23, ferner umfassend die Testervorrichtung, wobei der Tester Testergebnisse ausgehend von dem Test erzeugt.
  25. System nach einem der Ansprüche 23-24, ferner umfassend eine Konformitätsvorrichtung, die für Folgendes vorgesehen ist: Herstellen einer Verbindung zu jedem der Vielzahl von Empfänger-Sender-Paaren unter Verwendung der Vielzahl von Spuren; Weiterleiten von Daten zwischen dem bestimmten Empfänger-Sender-Paar und der Testervorrichtung; Zurückschleifen von Daten, die von Sendern des einen oder der mehreren anderen Empfänger/Sender-Zustände in dem zweiten Link-Zustand empfangen werden, um zu bewirken, dass während des Tests sowohl Nahnebensprechen als auch Fernnebensprechen auf der bestimmten Spur erzeugt werden.
DE102018128569.8A 2018-01-08 2018-11-14 Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens Pending DE102018128569A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862614874P 2018-01-08 2018-01-08
US62/614,874 2018-01-08
US15/990,372 2018-05-25
US15/990,372 US10853212B2 (en) 2018-01-08 2018-05-25 Cross-talk generation in a multi-lane link during lane testing

Publications (1)

Publication Number Publication Date
DE102018128569A1 true DE102018128569A1 (de) 2019-07-11

Family

ID=65229591

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018128569.8A Pending DE102018128569A1 (de) 2018-01-08 2018-11-14 Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens

Country Status (3)

Country Link
US (2) US10853212B2 (de)
CN (2) CN110034870A (de)
DE (1) DE102018128569A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606785B2 (en) 2018-05-04 2020-03-31 Intel Corporation Flex bus protocol negotiation and enabling sequence
US10715357B2 (en) 2018-08-24 2020-07-14 Intel Corporation Adaptation of a transmit equalizer using management registers
JP7273670B2 (ja) * 2019-09-18 2023-05-15 キオクシア株式会社 半導体集積回路、受信装置、及び半導体集積回路の制御方法
US10727895B1 (en) * 2019-09-27 2020-07-28 Apple Inc. Transceiver circuit having T-coil, inductive termination, and equalization
US20210303427A1 (en) * 2020-03-26 2021-09-30 Rohde & Schwarz Gmbh & Co. Kg System for testing a blockchain enabled device-under-test
US11886312B2 (en) * 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
US11734105B2 (en) * 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface
US20210089418A1 (en) * 2020-07-27 2021-03-25 Intel Corporation In-system validation of interconnects by error injection and measurement
CN111917515B (zh) * 2020-07-30 2023-08-01 牛芯半导体(深圳)有限公司 重定时器芯片的码流切换方法及装置
US11954360B2 (en) * 2020-09-01 2024-04-09 Intel Corporation Technology to provide accurate training and per-bit deskew capability for high bandwidth memory input/output links
JP7231589B2 (ja) * 2020-09-04 2023-03-01 アンリツ株式会社 誤り率測定装置および誤り率測定方法
CN113055247B (zh) * 2021-03-11 2022-05-13 中国人民解放军国防科技大学 一种fpga的多通道高速收发器环回测试方法和装置
TWI748899B (zh) * 2021-03-23 2021-12-01 瑞昱半導體股份有限公司 用來量測待測裝置的雜訊的方法以及量測設備
CN113868171A (zh) * 2021-09-28 2021-12-31 上海兆芯集成电路有限公司 互连系统
JP7399146B2 (ja) * 2021-10-05 2023-12-15 アンリツ株式会社 誤り検出装置および誤り検出方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020074691A1 (en) * 1999-09-14 2002-06-20 Robert M Mortellite High speed method of making plastic film and nonwoven laminates
EP1246398B1 (de) * 2001-03-02 2011-01-05 Broadcom Corporation Verfahren und Vorrichtung zur Durchführung eines diagnostischen Tests unter Zuhilfenahme eines Transceivers
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
US8826092B2 (en) * 2011-10-25 2014-09-02 International Business Machines Corporation Characterization and validation of processor links
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
US9536626B2 (en) * 2013-02-08 2017-01-03 Intel Corporation Memory subsystem I/O performance based on in-system empirical testing
US9722663B2 (en) * 2014-03-28 2017-08-01 Intel Corporation Interference testing
US10705157B2 (en) * 2017-08-09 2020-07-07 Microsoft Technology Licensing, Llc Testing system for an electrical cable

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management

Also Published As

Publication number Publication date
US10853212B2 (en) 2020-12-01
CN112583540A (zh) 2021-03-30
US11327861B2 (en) 2022-05-10
US20210081288A1 (en) 2021-03-18
CN110034870A (zh) 2019-07-19
US20190042380A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102018128569A1 (de) Nebensprecherzeugung in einem link für mehrere spuren während des spurtestens
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE112017006687T5 (de) Hochgeschwindigkeitsverbindungen mit kanalerweiterung
DE112018002469T5 (de) Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112015006961T5 (de) Verbindungsfehlerdetektion in mehrfachchipgehäusen
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE102018005753A1 (de) Serdes link training
DE112013001661T5 (de) Bereitstellung eines konsolidierten Seitenband Kommunikationskanal zwischen Geräten
DE112017004963T5 (de) Spannunsgmodulierte steuer-lane
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112015006953T5 (de) Training einer gültigen lane
DE102018006852A1 (de) Verfahren, Vorrichtung und System für eine ThunderBolt-basierte Anzeigetopologie für duale Grafiksysteme

Legal Events

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

Ref document number: 102018010423

Country of ref document: DE