DE112016003222T5 - Hochleistungsfähiger repeater - Google Patents

Hochleistungsfähiger repeater Download PDF

Info

Publication number
DE112016003222T5
DE112016003222T5 DE112016003222.6T DE112016003222T DE112016003222T5 DE 112016003222 T5 DE112016003222 T5 DE 112016003222T5 DE 112016003222 T DE112016003222 T DE 112016003222T DE 112016003222 T5 DE112016003222 T5 DE 112016003222T5
Authority
DE
Germany
Prior art keywords
pull
connection
redriver
state
detection
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
DE112016003222.6T
Other languages
English (en)
Inventor
Kai Xiao
Zuoguo Wu
Venkatraman Iyer
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 DE112016003222T5 publication Critical patent/DE112016003222T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017509Interface arrangements
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses
    • H03K5/08Shaping pulses by limiting; by thresholding; by slicing, i.e. combined limiting and thresholding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Nonlinear Science (AREA)
  • Information Transfer Systems (AREA)

Abstract

Es wird eine Redriver-Vorrichtung zum Empfangen von Signalen von einer ersten Vorrichtung und Weiterleiten der Signale zu einer zweiten Vorrichtung auf einer Differenz-Verbindung bereitgestellt. Es werden Detektionsschaltkreise zum Detektieren von Anwesenheit der zweiten Vorrichtung auf der Verbindung durch Detektieren einer aus Abschluss der zweiten Vorrichtung auf der Verbindung erzeugten Pulldown-Spannung und Pulldown-Weiterleitungsschaltkreise bereitgestellt, um eine emulierte Version der Pulldown-Spannung der zweiten Vorrichtung auf Anschlüssen zur Verbindung mit der ersten Vorrichtung als Reaktion auf Detektieren von Anwesenheit der zweiten Vorrichtung auf der Verbindung zu erzeugen.

Description

  • Die vorliegende Anmeldung beansprucht den Nutzen der Priorität der vorläufigen US-Patentanmeldung Nr. 62/194,081 , eingereicht am 17.07.2015 mit dem Titel „HIGH PERFORMANCE REPEATER“, und der nichtvorläufigen (Gebrauchs-) Patentanmeldung Nr. 14/865,682 , eingereicht am 25.09.2015 mit dem Titel „HIGH PERFORMANCE REPEATER“, die jeweils hiermit durch Bezugnahme vollständig aufgenommen werden.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet der Computerentwicklung und speziell Repeater.
  • STAND DER TECHNIK
  • Fortschritte bei der Halbleiterverarbeitung und dem Logikentwurf haben eine Vergrößerung der Menge an Logik gestattet, die auf integrierten Schaltungsvorrichtungen anwesend sein kann. Als Korollar haben sich Computersystemkonfigurationen von einfachen oder mehrfachen integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren entwickelt, die auf einzelnen integrierten Schaltungen anwesend sind, sowie anderen mit solchen Prozessoren integrierten Schnittstellen. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen Prozessorchip, wobei der Prozessorchip eine beliebige Anzahl von Kernen, Hardware-Threads, logischen Prozessoren, Schnittstellen, Speicher, Controller-Hubs usw. umfassen kann.
  • Als Folge der größeren Möglichkeit, mehr Verarbeitungsleistung in kleineren Kapselungen unterzubringen, hat die Popularität kleinerer Datenverarbeitungsvorrichtungen zugenommen. Smartphones, Tablets, ultradünne Notebooks und andere Benutzergeräte sind exponentiell gewachsen. Die kleineren Vorrichtungen verlassen sich jedoch sowohl für die Datenspeicherung als auch komplexe Verarbeitung, die den Formfaktor überschreitet, auf Server. Folglich hat auch der Bedarf im Markt der Hochleistungsdatenverarbeitung (d.h. Serverraum) zugenommen. Zum Beispiel befinden sich in modernen Servern typischerweise nicht nur ein einziger Prozessor mit mehreren Kernen, sondern auch mehrere physische Prozessoren (was auch als mehrere Sockets bezeichnet wird), um die Datenverarbeitungsleistung zu vergrößern. Mit zunehmender Verarbeitungsleistung zusammen mit der Anzahl der Vorrichtungen in einem Datenverarbeitungssystem wird aber die Kommunikation zwischen Sockets und anderen Vorrichtungen kritischer.
  • In einigen Systemen können Signalrepeater und Redriver-Schaltungen implementiert werden, um Begrenzungen bezüglich der physischen Kanallänge zu kompensieren. Zum Beispiel können Vorrichtungen eine begrenzte Ansteuerfähigkeit aufweisen, wodurch die Distanz begrenzt wird, über die Signale sicher angesteuert werden können. Ferner können einige Verbindungsstandards eine Grenze einer physikalischen Länge einer Signalleitung spezifizieren. Eine Großdistanzleitung kann in zwei oder mehr Segmente aufgeteilt werden, mit einem Puffer oder Repeater zwischen Segmenten. Repeater können Retimer und Redriver umfassen.
  • Figurenliste
    • 1 zeigt eine vereinfachte Blockdarstellung eines System mit einem seriellen Punkt-zu-Punkt-Verbindungselement zum Verbinden von E/A-Vorrichtungen in einem Computersystem gemäß einer Ausführungsform;
    • 2 zeigt eine vereinfachte Blockdarstellung eines geschichteten Protokollstapels gemäß einer Ausführungsform;
    • 3 zeigt eine Ausführungsform eines Transaktionsdeskriptors.
    • 4 zeigt eine Ausführungsform einer seriellen Punkt-zu-Punkt-Verbindung.
    • 5 zeigt Ausführungsformen potentieller Systemkonfigurationen mit hochleistungsfähigem Verbindungselement (UPI).
    • 6 zeigt eine Ausführungsform eines UPI zugeordneten geschichteten Protokollstapels.
    • 7 zeigt eine Darstellung eines beispielhaften Automaten.
    • 8 zeigt eine Darstellung einer beispielhaften elektrischen geordneten Menge.
    • 9 zeigt beispielhafte Steuersupersequenzen.
    • 10 zeigt einen Sicherungsschicht-Datenstrom mit eingebetteten Steuerfenstern.
    • 11 zeigt eine vereinfachte Blockdarstellung von Pulldowns auf einer elektrischen Verbindung.
    • 12 zeigt eine vereinfachte Blockdarstellung einer Verbindung, die einen Redriver benutzt.
    • 13 zeigt eine vereinfachte Blockdarstellung, die die Verwendung eines beispielhaften Redriver in einer Verbindung darstellt.
    • 14 zeigt ein vereinfachtes Schaltbild einer ersten Implementierung einer Eingangsstufe eines mit einem Endpunkt verbundenen Redriver.
    • 15 zeigt ein vereinfachtes Schaltbild einer zweiten Implementierung einer Eingangsstufe eines mit einem Endpunkt verbundenen Redriver.
    • 16 zeigt ein vereinfachtes Schaltbild einer beispielhaften Implementierung einer Ausgangsstufe eines mit einem anderen Endpunkt verbundenen Redriver.
    • 17 zeigt ein vereinfachtes Schaltbild einer ersten Implementierung von Detektionsrelaisschaltkreisen eines beispielhaften Redriver.
    • 18 zeigt ein vereinfachtes Schaltbild einer zweiten Implementierung von Detektionsrelaisschaltkreisen eines beispielhaften Redriver.
    • 19 zeigt eine Ausführungsform einer Blockdarstellung für ein Datenverarbeitungssystem, das einen Mehrkernprozessor umfasst.
    • 20 zeigt eine andere Ausführungsform einer Blockdarstellung für ein Datenverarbeitungssystem, das einen Mehrkernprozessor umfasst.
    • 21 zeigt eine Ausführungsform eines Blocks für ein Datenverarbeitungssystem, das mehrere Prozessor-Sockets umfasst.
    • Gleiche Bezugszahlungen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, wie etwa Beispiele für spezifische Arten von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische Architektur- und Mikroarchitekturdetails, spezifische Registerkonfigurationen, spezifische Anweisungstypen, spezifische Systemkomponenten, spezifische Prozessor-Pipelinestufen, spezifische Verbindungsschichten, spezifische Paket-/Transaktionskonfigurationen, spezifische Transaktionsnamen, spezifische Protokollaustauschvorgänge, spezifische Verbindungsbreiten, spezifische Implementierungen und Funktionsweisen usw., um ein umfassendes Verständnis der vorliegenden Offenbarung zu gewährleisten. Für Fachleute ist jedoch ersichtlich, dass diese spezifischen Einzelheiten nicht unbedingt eingesetzt werden müssen, um den Gegenstand der vorliegenden Offenbarung zu praktizieren. In anderen Fällen wurde ausführliche Beschreibung bekannter Komponenten oder Verfahren vermieden, wie etwa spezifischer und alternativer Prozessorarchitekturen, spezifischer Logikschaltungen/Code für beschriebene Algorithmen, spezifischer Firmwarecode, Verbindungsfunktionsweise auf niedriger Ebene, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compiler-Implementierungen, spezifischer Ausdruck von Algorithmen in Code, spezifische Herunterfahr- und Torschaltungstechniken/-logik und andere spezifische Betriebsdetails von Computersystemen, um die vorliegende Offenbarung nicht unnötigerweise zu verschleiern.
  • Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieeinsparung, Energieeffizienz, Verarbeitungseffizienz usw. in spezifischen integrierten Schaltungen, wie etwa in Datenverarbeitungsplattformen oder Mikroprozessoren, beschrieben werden können, sind andere Ausführungsformen auf andere Arten von integrierten Schaltungen und logischen Vorrichtungen anwendbar. Ähnliche Techniken und Lehren von Ausführungsformen, die hier beschrieben werden, können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewandt werden, die auch aus solchen Merkmalen Nutzen ziehen können. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf Servercomputersystem, Desktop-Computersysteme, Laptops, Ultrabooks™ beschränkt, sondern können auch in anderen Vorrichtungen verwendet werden, wie etwa in Handheld-Vorrichtungen, Smartphones, Tablets, anderen Thin-Notebooks, SOC-Vorrichtungen (Systeme auf einem Chip) und eingebettete Anwendungen. Einige Beispiele für Handheld-Vorrichtungen wären Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, PDAs (Personal Digital Assistants) und Handheld-PCs. Hier können ähnliche Techniken für eine Hochleistungsverbindung angewandt werden, um in einer energiesparenden Verbindung die Leistungsfähigkeit zu steigern (oder auch nur Strom zu sparen). Eingebettete Anwendungen umfassen typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein System auf einem Chip, Netzwerkcomputer (NetPC), Set-Top-Boxes, Netzwerk-Hubs, WAN-Switches (großflächiges Netzwerk) oder ein beliebiges anderes System, das die nachfolgend gelehrten Funktionen und Operationen ausführen kann. Außerdem sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Datenverarbeitungsvorrichtungen beschränkt, sondern können auch Softwareoptimierungen zur Energieeinsparung und -effizienz betreffen. Wie aus der nachfolgenden Beschreibung ohne weiteres hervorgeht, können die hier beschriebenen Ausführungsformen von Verfahren, Vorrichtungen und Systemen (gleichgültig, ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) als für eine Zukunft der „grünen Technologie“, die mit Leistungsfähigkeitsbetrachtungen ausgeglichen ist, entscheidend betrachtet werden.
  • Mit fortschreitenden Datenverarbeitungssystemen werden die Komponenten darin komplexer. Die Komplexität der Verbindungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten hat auch zugenommen, um sicherzustellen, dass der Bandbreitenbedarf für optimalen Komponentenbetrieb erfüllt wird. Ferner verlangen verschiedene Marktsegmente verschiedene Aspekte von Verbindungsarchitekturen, um dem jeweiligen Markt gerecht zu werden. Zum Beispiel erfordern Server höhere Leistungsfähigkeit, während das Mobil-Ökosystem manchmal in der Lage ist, Gesamtleistungsfähigkeit zugunsten von Stromerspamissen aufzuopfern. Ein singulärer Zweck der meisten Koppelfelder besteht jedoch darin, die höchstmögliche Leistungsfähigkeit mit maximaler Stromersparnis bereitzustellen. Ferner können vielfältige verschiedene Verbindungselemente potentiell aus dem hier beschriebenen Gegenstand Nutzen ziehen.
  • Die Koppelfeldarchitektur der PCIe-Verbindung (Peripheral Component Interconnect (PCI) Express) und die QPI-Koppelfeldarchitektur (QuickPath Interconnect) können unter anderen Beispielen potentiell unter anderen Beispielen gemäß einem oder mehreren hier beschriebenen Prinzipien verbessert werden. Ein primäres Ziel von PCIe ist zum Beispiel, Komponenten und Vorrichtungen von verschiedenen Herstellern zu ermöglichen, in einer offenen Architektur zusammenzuarbeiten, wodurch mehrere Marktsegmente überspannt werden; Clients (Desktops und Mobil), Server (Standard und Unternehmen) und eingebettete und Kommunikationsvorrichtungen. PCI Express ist eine hochleistungsfähige Vielzweck-E/A-Verbindung, die für vielfältige zukünftige Datenverarbeitungs- und Kommunikationsplattformen definiert wird. Einige PCI-Attribute, wie etwa sein Benutzungsmodell, Lade-Speicher-Architektur und Softwareschnittstellen, wurden mittels seiner Revisionen unterhalten, während vorherige Parallelbusimplementierungen durch eine hochskalierbare vollserielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express nutzen Vorteile in Punkt-zu-Punkt-Verbindungen, Technologie auf Switch-Basis und paketiertem Protokoll aus, um neue Grade der Leistungsfähigkeit und Merkmale abzuliefern. Powermanagement, QoS (Quality of Service), Hot-Plug-/Hot-Swap-Unterstützung, Datenintegrität und Fehlerumgang zählen zu einigen der fortschrittlichen Merkmalen, die durch PCI Express unterstützt werden. Obwohl die primäre Besprechung hier in Bezug auf eine neue hochleistungsfähige Verbindungs- bzw. UPI-Architektur erfolgt, können Aspekte der hier beschriebenen Offenbarung auf andere Verbindungsarchitekturen angewandt werden, wie etwa eine PCIe-kompatible Architektur, eine QPI-kompatible Architektur, eine MIPI-kompatible Architektur, eine hochleistungsfähige Architektur oder eine andere bekannte Verbindungsarchitektur.
  • Unter Bezugnahme auf 1 ist eine Ausführungsform eines Koppelfelds dargestellt, das aus Punkt-zu-Punkt-Verbindungen besteht, die eine Menge von Komponenten verbinden. Das System 100 umfasst einen Prozessor 105 und Systemspeicher 110, der mit dem Controller-Hub 115 gekoppelt ist. Der Prozessor 105 kann ein beliebiges Verarbeitungselement umfassen, wie etwa einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 105 ist mittels des FSB (Front-Side Bus) 106 mit dem Controller-Hub 115 gekoppelt. Bei einer Ausführungsform ist der FSB 106 eine serielle Punkt-zu-Punkt-Verbindung, wie nachfolgend beschrieben. Bei einer anderen Ausführungsform umfasst die Verbindung 106 eine serielle Differenz-Verbindungsarchitektur, die mit verschiedenen Verbindungsstandards kompatibel ist. Eine oder mehrere Komponenten des Systems 100 können mit Logik versehen werden, um die hier beschriebenen Merkmale zu implementieren.
  • Der Systemspeicher 110 umfasst eine beliebige Speichervorrichtung, wie etwa Direktzugriffsspeicher (RAM), nichtflüchtigen bzw. NV-Speicher oder einen anderen Speicher, der Vorrichtungen in dem System 100 zugänglich ist. Der Systemspeicher 110 ist mittels der Speicherschnittstelle 116 mit dem Controller-Hub 115 gekoppelt. Beispiele für eine Speicherschnittstelle wären eine Doppeldatenraten- bzw. DDR-Speicherschnittstelle, eine Zweikanal-DDR-Speicherschnittstelle und eine dynamische RAM- bzw. DRAM-Speicherschnittstelle.
  • Bei einer Ausführungsform kann der Controller-Hub 115 einen Wurzel-Hub, Wurzelkomplex oder Wurzel-Controller umfassen, wie etwa in einer PCIe-Verbindungshierarchie. Beispiele für den Controller-Hub 115 wären ein Chipsatz, ein MCH (Memory Controller Hub), eine Northbridge, ein ICH (Interconnect Controller Hub), eine Southbridge und ein Wurzelcontroller/-Hub. Der Ausdruck Chipsatz bezieht sich oft auf zwei physisch getrennte Controller-Hubs, z.B. einen MCH (Memory Controller Hub), der mit einem ICH (Interconnect Controller Hub) gekoppelt ist. Man beachte, dass derzeitige Systeme oft den mit dem Prozessor 105 integrierten MCH umfassen, während der Controller 115 mit E/A-Vorrichtungen auf ähnlich Weise wie nachfolgend beschrieben kommunizieren soll. Bei einigen Ausführungsformen wird gegebenenfalls Peer-to-Peer-Routing mittels des Wurzelkomplexes 115 unterstützt.
  • Der Controller-Hub 115 ist hier mittels der seriellen Verbindung 119 mit dem Switch/der Brücke 120 gekoppelt. Eingabe-/Ausgabemodule 117 und 121, die auch als Schnittstellen/Ports 117 und 121 bezeichnet werden können, können einen geschichteten Protokollstapel umfassen/implementieren, um Kommunikation zwischen dem Controller-Hub 115 und dem Switch 120 bereitzustellen. Bei einer Ausführungsform können mehrere Vorrichtungen mit dem Switch 120 gekoppelt werden.
  • Der Switch/die Brücke 120 routet Pakete/Nachrichten von der Vorrichtung 125 stromaufwärts, d.h. eine Hierarchie hinauf in Richtung eines Wurzelkomplexes zum Controller-Hub 115 und stromabwärts, d.h. eine Hierarchie hinunter von einem Wurzelcontroller weg von dem Prozessor 105 oder Systemspeicher 110 zu der Vorrichtung 125. Der Switch 120 wird bei einer Ausführungsform als logische Baugruppe mehrerer virtueller Brückenvorrichtungen von PCI zu PCI bezeichnet. Die Vorrichtung 125 umfasst eine beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System zu koppeln ist, wie etwa eine E/A-Vorrichtung, ein NIC (Network Interface Controller), eine Zusatzkarte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speicherungsvorrichtung, eine CD-/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speicherungsvorrichtung, eine Firewire-Vorrichtung, eine USB-Vorrichtung (Universal Serial Bus), einen Scanner und andere Eingabe-/Ausgabevorrichtungen. Im PCIe-Sprachgebrauch wird eine solche Vorrichtung oft als Endpunkt bezeichnet. Obwohl es nicht spezifisch gezeigt ist, kann die Vorrichtung 125 eine Brücke (z.B. eine Brücke von PCIe zu PCI/PCI-X) unterstützen, um veraltete oder andere Versionen von Vorrichtungen oder Verbindungskoppelfeldern, die durch solche Vorrichtungen unterstützt werden, zu unterstützen.
  • Der Grafikbeschleuniger 130 kann auch mittels der seriellen Verbindung 132 mit dem Controller-Hub 115 gekoppelt sein. Bei einer Ausführungsform ist der Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 120 und dementsprechend die E/A-Vorrichtung 125 wird dann mit dem ICH gekoppelt. Außerdem sollen E/A-Module 131 und 118 einen geschichteten Protokollstapel implementieren, um zwischen dem Grafikbeschleuniger 130 und dem Controller-Hub 115 zu kommunizieren. Ähnlich wie bei der obigen MCH-Besprechung können ein Grafikcontroller oder der Grafikbeschleuniger 130 selbst in dem Prozessor 105 integriert sein.
  • Nunmehr mit Bezug auf 2 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Der geschichtete Protokollstapel 200 kann eine beliebige Form von geschichtetem Kommunikationsstapel umfassen, wie etwa einen QPI-Stapel, einen PCIe-Stapel, einen Stapel der hochleistungsfähigen Datenverarbeitungsverbindung der nächsten Generation (UPI) oder einen anderen geschichteten Stapel. Bei einer Ausführungsform kann der Protokollstapel 200 Transaktionsschicht 205, Sicherungsschicht 210 und Bitübertragungsschicht 220 umfassen. Eine Schnittstelle, wie etwa die Schnittstellen 117, 118, 121, 122, 126 und 131 in 1, kann als Kommunikationsprotokollstapel 200 repräsentiert sein. Repräsentation als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle zum Implementieren/Enthalten eines Protokollstapels bezeichnet werden.
  • Zum Übermitteln von Informationen zwischen Komponenten können Pakete verwendet werden. Pakete können in der Transaktionsschicht 205 und der Sicherungsschicht 210 gebildet werden, um die Informationen von der Sendekomponente zur Empfangskomponente zu führen. Während die gesendeten Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die verwendet werden, um in diesen Schichten mit Paketen umzugehen. Auf der Empfangsseite tritt der umgekehrte Prozess auf, und Pakete werden aus ihrer Repräsentation der Bitübertragungsschicht 220 in die Repräsentation der Sicherungsschicht 210 transformiert, und letztendlich (für Transaktionsschichtpakete) in die Form, die durch die Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann.
  • Bei einer Ausführungsform kann die Transaktionsschicht 205 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Verbindungsarchitektur, wie etwa der Sicherungsschicht 210 und der Bitübertragungsschicht 220, bereitstellen. In dieser Hinsicht kann eine Hauptverantwortung der Transaktionsschicht 205 das Zusammenbauen und Auseinanderbauen von Paketen (d.h. Transaktionsschichtpaketen oder TLP) umfassen. Die Übersetzungsschicht 205 kann auch auf Kredit basierende Flusssteuerung für TLP verwalten. Bei einigen Implementierungen können aufgeteilte Transaktionen verwendet werden, d.h., Transaktionen mit zeitlich getrennter Anforderung und Antwort, wodurch eine Verbindung anderen Verkehr führen kann, während die Zielvorrichtung Daten für die Antwort sammelt, unter anderen Beispielen.
  • Die auf Kredit basierende Flusssteuerung kann verwendet werden, um virtuelle Kanäle und Netzwerke unter Verwendung des Verbindungskoppelfelds zu realisieren. In einem Beispiel kann eine Vorrichtung eine Anfangskreditmenge für jeden der Empfangspuffer in der Transaktionsschicht 205 ankündigen. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie etwa der Controller-Hub 115 in 1, kann die Anzahl der durch jedes TLP verbrauchten Kredite zählen. Eine Transaktion kann gesendet werden, wenn die Transaktion eine Kreditgrenze nicht überschreitet. Bei Empfang einer Antwort wird eine Kreditmenge wiederhergestellt. Ein Beispiel für einen Vorteil eines solchen Kreditschemas besteht darin, dass die Latenz der Kreditrückgabe die Leistungsfähigkeit nicht beeinträchtigt, so lange die Kreditgrenze nicht angetroffen wird, neben anderen potentiellen Vorteilen.
  • Bei einer Ausführungsform können vier Transaktionsadressenräume einen Konfigurationsadressenraum, einen Speicheradressenraum, einen Eingabe-/Ausgabeadressenraum und einen Nachrichtenadressenraum umfassen. Speicherraumtransaktionen umfassen Leseanforderungen und/oder Schreibanforderungen zum Transfer von Daten zu/von einem Speicherabgebildeten Ort. Bei einer Ausführungsform können Speicherraumtransaktionen zwei verschiedene Adressformate verwenden, z.B. ein kurzes Adressenformat, wie etwa eine 32-Bit-Adresse, oder ein langes Adressenformat, wie etwa eine 64-Bit-Adresse. Mit Konfigurationsraumtransaktionen kann man auf den Konfigurationsraum verschiedener mit der Verbindung verbundener Vorrichtungen zugreifen. Transaktionen an dem Konfigurationsraum können Leseanforderungen und Schreibanforderungen umfassen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) können auch definiert werden, um Inbandkommunikation zwischen Verbindungsagenten zu unterstützen. Bei einer beispielhaften Ausführungsform kann deshalb die Transaktionsschicht 205 Paketheader/ Nutzinformationen 206 zusammenstellen.
  • Unter kurzer Bezugnahme auf 3 ist eine beispielhafte Ausführungsform eines Transaktionsschicht-Paketdeskriptors dargestellt. Bei einer Ausführungsform kann der Transaktionsdeskriptor 300 ein Mechanismus zum Führen von Transaktionsinformationen sein. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 300 Identifikation von Transaktionen in einem System. Andere potentielle Verwendungszwecke wären Verfolgung von Modifikationen von Vorgabetransaktionsanordnungen und Assoziation von Transaktionen mit Kanälen. Zum Beispiel kann der Transaktionsdeskriptor 300 ein Global-Kennungsfeld 302, ein Attributefeld 304 und ein Kanalkennungsfeld 306 umfassen. In dem dargestellten Beispiel ist das Global-Kennungsfeld 302 mit einem Lokal-Transaktionskennungsfeld 308 und einem Quellenkennungsfeld 310 abgebildet. Bei einer Ausführungsform ist die Global-Transaktionskennung 302 für alle ausstehenden Anforderungen einzigartig.
  • Gemäß einer Implementierung ist das Lokal-Transaktionskennungsfeld 308 ein durch einen anfordernden Agenten erzeugtes Feld und kann für alle ausstehenden Anforderungen, die einen Abschluss für diesen anfordernden Agenten erfordern, einzigartig sein. Ferner identifiziert in diesem Beispiel die Quellenkennung 310 eindeutig den Anfordereragenten in einer Verbindungshierarchie. Zusammen mit der Quellen-ID 310 stellt dementsprechend das Lokal-Transaktionskennungsfeld 308 globale Identifikation einer Transaktion in einer Hierarchiedomäne bereit.
  • Das Attributefeld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. In dieser Hinsicht wird das Attributefeld 304 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die Modifikation der Vorgabehandhabung von Transaktionen erlaubt. Bei einer Ausführungsform umfasst das Attributefeld 304 ein Prioritätsfeld 312, ein Reserviert-Feld 314, ein Ordnungsfeld 316 und ein No-Snoop-Feld 318. Hier kann das Prioritätsteilfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das Reserviertes-Attribut-Feld 314 wird für zukünftige oder herstellerdefinierte Benutzung reserviert gelassen. Mögliche Benutzungsmodelle, die Priorität oder Sicherheitsattribute verwenden, können unter Verwendung des Reserviertes-Attribut-Feld implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 316 verwendet, um optionale Informationen zu liefern, die die Art von Ordnung vermitteln, die Vorgabeordnungsregeln modifizieren kann. Gemäß einer beispielhaften Implementierung bedeutet ein Ordnungsattribut „0“, dass Vorgabeordnungsregeln gelten sollen, wobei ein Ordnungsattribut „1“ lockere Ordnung bedeutet, wobei Schreibvorgänge an Schreibvorgängen in derselben Richtung vorbeikommen können und Leseabschlüsse an Schreibvorgängen in derselben Richtung vorbeikommen können. Mit dem Snoop-Attributfeld 318 wird bestimmt, ob Transaktionen gesnoopt werden. Wie gezeigt identifiziert das Kanal-ID-Feld 306 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Wieder mit Bezug auf die Besprechung von 2 kann eine Link-Schicht 210, die auch als Sicherungsschicht 210 bezeichnet wird, als eine Zwischenstufe zwischen der Transaktionsschicht 205 und der Bitübertragungsschicht 220 wirken. Bei einer Ausführungsform ist eine Verantwortung der Sicherungsschicht 210 die Bereitstellung eines zuverlässigen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLP) zwischen zwei Komponenten auf einer Verbindung. Eine Seite der Sicherungsschicht 210 nimmt durch die Transaktionsschicht 205 zusammengestellte TLP an, wendet die Paketsequenzkennung 211, d.h., eine Identifikationsnummer oder Paketnummer, an, berechnet einen Fehlerdetektionscode, d.h. CRC 212, und wendet diesen an und leitet die modifizierten TLP zu der Bitübertragungsschicht 220 zur Übertragung über eine physische zu einer externen Vorrichtung.
  • In einem Beispiel umfasst die Bitübertragungsschicht 220 einen logischen Teilblock 221 und elektrischen Teilblock 222 zum physischen Senden eines Pakets zu einer externen Vorrichtung. Der logische Teilblock 221 ist hier für die „digitalen“ Funktionen der Bitübertragungsschicht 221 verantwortlich. In dieser Hinsicht kann der logische Teilblock einen Sendeteil zum Erstellen von abgehenden Informationen zur Übertragung durch den physischen Teilblock 222 und einen Empfängerteil zum Identifizieren und Aufbereiten von empfangenen Informationen vor dem Weiterleiten dieser zur Sicherungsschicht 210 umfassen.
  • Der physische Block 222 umfasst einen Sender und einen Empfänger. Der Sender erhält von dem logischen Teilblock 221 Symbole, die der Sender serialisiert und weiter zu einer externen Vorrichtung sendet. Der Empfänger erhält serialisierte Symbole von einer externen Vorrichtung und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und dem logischen Teilblock 221 zugeführt. Bei einer beispielhaften Ausführungsform wird ein 8b/10b-Übertragungscode verwendet, wobei 10-Bit-Symbole gesendet/empfangen werden. Hierbei werden spezielle Symbole verwendet, um ein Paket mit Rahmen 223 zu rahmen. Außerdem stellt in einem Beispiel der Empfänger auch einen aus dem ankommenden seriellen Strom wiederhergestellten Symboltakt wieder her.
  • Obwohl die Transaktionsschicht 205, die Sicherungsschicht 210 und die physische Schicht 220 in Bezug auf eine spezifische Ausführungsform eines Protokollstapels (wie etwa eines PCIe-Protokollstapels) besprochen werden, ist wie oben angegeben ein geschichteter Protokollstapel nicht darauf beschränkt. Tatsächlich kann jedes geschichtete Protokoll vorgesehen/implementiert werden und hier besprochene Merkmale verwenden. Beispielsweise kann ein Port/eine Schnittstelle, der bzw. die als ein geschichtetes Protokoll repräsentiert wird, (1) eine erste Schicht zum Zusammenstellen von Paketen, d.h., eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d.h. eine Sicherungsschicht; und eine dritte Schicht zum Senden der Pakete, d.h., eine Bitübertragungsschicht, umfassen. Als ein spezifisches Beispiel wird ein hochleistungsfähiges geschichtetes Verbindungsprotokoll wie hier beschrieben benutzt.
  • Als Nächstes wird unter Bezugnahme auf 4 eine beispielhafte Ausführungsform eines seriellen Punkt-zu-Punkt-Koppelfelds dargestellt. Eine serielle Punkt-zu-Punkt-Verbindung kann einen beliebigen Übertragungspfad zum Übertragen serieller Daten umfassen. Bei der gezeigten Ausführungsform kann eine Verbindung zwei differentiell angesteuerte Niederspannungs-Signalpaare umfassen: ein Sendepaar 406/411 und ein Empfangspaar 412/407. Dementsprechend umfasst die Vorrichtung 405 Übertragungslogik 406 zum Senden von Daten zur Vorrichtung 410 und Empfangslogik 407 zum Empfangen von Daten der Vorrichtung 410. Anders ausgedrückt sind zwei Übertragungspfade, d.h. die Pfade 416 und 417, und zwei Empfangspfade, d.h. die Pfade 418 und 419, in einigen Implementierungen einer Verbindung enthalten.
  • Ein Übertragungspfad bezieht sich auf einen beliebigen Pfad zum Übertragen von Daten, wie etwa eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie etwa der Vorrichtung 405 und der Vorrichtung 410, wird als Verbindung, wie etwa Verbindung 415 bezeichnet. Eine Verbindung kann eine Spur unterstützen - wobei jede Spur eine Menge von Differenz-Signalpaaren (ein Paar zur Übertragung, ein Paar zum Empfang) repräsentiert. Zur Skalierung von Bandbreite kann eine Verbindung mehrere Spuren aggregieren, die durch xN bezeichnet werden, wobei N eine beliebige unterstützte Verbindungsbreite ist, wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein Differenzpaar kann sich auf zwei Übertragungspfade zum Senden von Differenzsignalen beziehen, wie etwa die Leitungen 416 und 417. Wenn beispielsweise die Leitung 416 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel wechselt, d.h. eine ansteigende Flanke, steuert sich die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel, d.h. eine fallende Flanke. Differenzsignale zeigen neben anderen beispielhaften Vorteilen potentiell bessere elektrische Eigenschaften, wie etwa bessere Signalintegrität, d.h. Übersprechen, Spannungsüberschwingen/-unterschwingen, Welligkeit. Dies erlaubt ein besseres Timingfenster, wodurch schnellere Übertragungsfrequenzen ermöglicht werden.
  • Bei einer Ausführungsform kann ein hochleistungsfähiges Verbindungselement wie UPI bereitgestellt werden. UPI kann ein Cache-kohärentes Verbindungselement der nächsten Generation auf Verbindungsbasis umfassen. Als ein Beispiel kann UPI in hochleistungsfähigen Datenverarbeitungsplattformen, wie etwa Workstations oder Servern, benutzt werden, einschließlich in Systemen, in denen PCIe oder ein anderes Verbindungsprotokoll typischerweise zum Verbinden von Prozessoren, Beschleunigern, E/A-Vorrichtungen und dergleichen verwendet wird. UPI ist jedoch nicht darauf beschränkt. Stattdessen kann UPI in beliebigen der hier beschriebenen Systeme oder Plattformen benutzt werden. Ferner können die entwickelten einzelnen Ideen auf andere Verbindungselemente und Plattformen angewandt werden, wie etwa PCIe, MIPI, QPI usw.
  • Zur Unterstützung mehrerer Vorrichtungen kann UPI bei einer beispielhaften Implementierung eine Agnostik bezüglich ISA (Instruction Set Architecture) umfassen (d.h. UPI kann in mehreren verschiedenen Vorrichtungen implementiert werden). In einem anderen Szenario kann UPI auch zur Verbindung von hochleistungsfähigen E/A-Vorrichtungen, und nicht nur Prozessoren oder Beschleunigern, verwendet werden. Zum Beispiel kann eine hochleistungsfähige PCIe-Vorrichtung mittels einer geeigneten Übersetzungsbrücke (d.h. UPI in PCIe) mit UPI gekoppelt werden. Außerdem können die UPI-Verbindungen auf verschiedene Weisen (z.B. Sterne, Ringe, Maschen usw.) von vielen auf UPI basierenden Vorrichtungen benutzt werden, wie etwa Prozessoren. 5 zeigt beispielhafte Implementierungen von mehreren potentiellen Mehrfach-Socket-Konfigurationen. Wie abgebildet kann eine Zwei-Socket-Konfiguration 505 zwei UPI-Verbindungen umfassen; bei anderen Implementierungen kann jedoch eine UPI-Verbindung benutzt werden. Für größere Topologien kann eine beliebige Konfiguration benutzt werden, solange eine Kennung (ID) zuweisbar ist und es eine gewisse Form von virtuellem Pfad gibt, neben anderen zusätzlichen oder Ersatzmerkmalen. Wie gezeigt weist in einem Beispiel eine Vier-Socket-Konfiguration 510 eine UPI-Verbindung von jedem Prozessor zu einem anderen auf. Aber in der in Konfiguration 515 gezeigten Acht-Socket-Implementierung ist nicht jedes Socket direkt mittels einer UPI-Verbindung mit jeder anderen verbunden. Wenn jedoch ein virtueller Pfad oder Kanal zwischen den Prozessoren existiert, wird die Konfiguration unterstützt. Ein Bereich unterstützter Prozessoren umfasst 2-32 in einer nativen Domäne. Höhere Anzahlen von Prozessoren können neben anderen Beispielen mittels Verwendung mehrerer Domänen oder anderer Verbindungselemente zwischen Knotensteuerungen erreicht werden.
  • Die UPI-Architektur umfasst eine Definition einer geschichteten Protokollarchitektur, darunter in einigen Beispielen Protokollschichten (kohärente, nicht-kohärente und gegebenenfalls andere auf Speicher basierende Protokolle), eine Routingschicht, eine Sicherungsschicht und eine Bitübertragungsschicht. Ferner kann UPI Erweiterungen in Bezug auf Powermanager (wie etwa, neben anderen Beispielen, Leistungsregeleinheiten (PCU)), Entwurf für Prüfung und Debuggen (DFT), Fehlerhandhabung, Register, Sicherheit umfassen. 6 zeigt eine Ausführungsform eines beispielhaften geschichteten UPI-Protokollstapels. Bei einigen Implementierungen können mindestens einige der in 6 dargestellten Schichten optional sein. Jede Schicht behandelt ihren eigenen Grad an Granularität oder Quantum von Informationen (die Protokollschicht 605a,b mit Paketen 630, die Sicherungsschicht 610a,b mit Flits 635 und die Bitübertragungsschicht 605a,b mit Phits 640). Man beachte, dass ein Paket bei einigen Ausführungsformen auf der Basis der Implementierung partielle Flits, ein einziges Flit oder mehrere Flits umfassen kann.
  • Als ein erstes Beispiel umfasst eine Breite eines Phit 640 eine 1-zu-1-Abbildung der Verbindungsbreite auf Bit (z.B. umfasst eine 20-Bit-Verbindungsbreite ein Phit von 20 Bit usw.). Flits können eine größere Größe aufweisen, wie etwa 184, 192 oder 200 Bit. Man beachte, dass, wenn das Phit 640 20 Bit breit ist und die Größe des Flit 635 184 Bit ist, man eine Bruchzahl von Phits 640 braucht, um ein Flit 635 zu senden (z.B. 9,2 Phits mit 20 Bit zum Senden eines 184-Bit-Flit 635 oder 9,6 bei 20 Bit zum Senden eines 192-Bit-Flit, neben anderen Beispielen). Man beachte, dass Breiten der fundamentalen Verbindung in der Bitübertragungsschicht unterschiedlich sein können. Zum Beispiel kann die Anzahl der Spuren pro Richtung 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 usw. umfassen. Bei einer Ausführungsform kann die Sicherungsschicht 610a,b mehrere Elemente verschiedener Transaktionen in ein einziges Flit einbetten, und ein oder mehrere Header (z.B. 1, 2, 3, 4) können in das Flit eingebettet werden. In einem Beispiel teilt UPI die Header in entsprechende Schlitze auf, damit mehrere Nachrichten in dem Flit für verschiedene Knoten bestimmt sein können.
  • Die Bitübertragungsschicht 605a,b kann bei einer Ausführungsform für den schnellen Transfer von Informationen auf dem physischen Medium (elektrisch oder optisch usw.) verantwortlich sein. Die physische Verbindung kann von Punkt zu Punkt zwischen zwei Sicherungsschichtentitäten, wie etwa der Schicht 605a und 605b, sein. Die Sicherungsschicht 610a,b kann die Bitübertragungsschicht 605a,b von den oberen Schichten aus abstrahieren und stellt die Fähigkeit zum zuverlässigen Transfer von Daten (sowie von Anforderungen) und Verwalten von Flusssteuerung zwischen zwei direkt verbundenen Entitäten bereit. Die Sicherungsschicht kann auch für das Virtualisieren des physischen Kanals in mehrere virtuelle Kanäle und Nachrichtenklassen verantwortlich sein. Die Protokollschicht 620a,b verwendet die Sicherungsschicht 610a,b zum Abbilden von Protokollnachrichten auf entsprechende Nachrichtenklassen und virtuelle Kanäle, bevor sie zum Transfer über die physischen Verbindungen zur Bitübertragungsschicht 605a,b weitergeleitet werden. Die Sicherungsschicht 610a,b kann mehrere Nachrichten unterstützen, wie etwa, neben anderen Beispielen, eine Anforderung, Snoop, Antwort, Rückschreiben, nichtkohärente Daten.
  • Die Bitübertragungsschicht 605a,b (oder PHY) von UPI kann über der elektrischen Schicht (d.h. elektrischen Leitern, die zwei Komponenten verbinden) und unter der Sicherungsschicht 610a,b implementiert werden, wie in 6 dargestellt. Die Bitübertragungsschicht und entsprechende Logik kann in jedem Agenten residieren und verbindet die Sicherungsschichten in zwei Agenten (A und B) getrennt voneinander (z.B. auf Vorrichtungen auf jeder Seite einer Verbindung). Die lokalen und entfernten elektrischen Schichten werden durch physische Medien (z.B. Drähte, Leiter, optisch usw.) verbunden. Die Bitübertragungsschicht 605a,b weist bei einer Ausführungsform zwei Hauptphasen, Initialisierung und Betrieb, auf. Während der Initialisierung ist die Verbindung der Sicherungsschicht opak und Signalisierung kann eine Kombination von getimten Zuständen und Handshake-Ereignissen umfassen. Während des Betriebs ist die Verbindung der Sicherungsschicht transparent und die Signalisierung erfolgt mit einer Geschwindigkeit, wobei alle Spuren zusammen als eine einzige Verbindung arbeiten. Während der Betriebsphase transportiert die Bitübertragungsschicht Flits von Agent A zu Agent B und von Agent B zu Agent A. Die Verbindung wird auch als Link bezeichnet und abstrahiert einige physische Aspekte, wie etwa Medien, Breite und Geschwindigkeit von den Sicherungsschichten, während Flits und Steuerung/Status der aktuellen Konfiguration (z.B. Breite) mit der Sicherungsschicht ausgetauscht werden. Die Initialisierungsphase umfasst Nebenphasen, z.B. Abfrage, Konfiguration. Die Betriebsphase umfasst auch Nebenphasen (z.B. Verbindungsleistungsverwaltungszustände).
  • Bei einer Ausführungsform kann die Sicherungsschicht 610a,b so implementiert werden, dass zuverlässiger Datentransfer zwischen zwei Protokoll- oder Routingentitäten gewährleistet wird. Die Sicherungsschicht kann die Bitübertragungsschicht 605a,b aus der Protokollschicht 620a,b abstrahieren und kann für die Flusssteuerung zwischen zwei Protokollagenten (A, B) verantwortlich sein und der Protokollschicht (Nachrichtenklassen) und Routingschicht (virtuelle Netzwerke) virtuelle Kanaldienste bereitstellen. Die Schnittstelle zwischen der Protokollschicht 620a,b und der Sicherungsschicht 610a,b kann typischerweise auf der Paketebene sein. Bei einer Ausführungsform wird die kleinste Transfereinheit in der Sicherungsschicht auch als Flit bezeichnet, einer spezifizierten Anzahl von Bit, wie etwa 192 Bit, oder eine gewisse andere Einheit. Die Sicherungsschicht 610a,b verwendet die Bitübertragungsschicht 605a,b zum Rahmen der Transfereinheit (Phit) der Bitübertragungsschicht 605a,b in die Transfereinheit (Flit) der Sicherungsschicht 610a,b. Außerdem kann die Sicherungsschicht 610a,b logisch in zwei Teile zerlegt werden, einen Absender und einen Empfänger. Ein Paar aus Absender/Empfänger in einer Entität kann mit einem Paar aus Empfänger/Absender in einer anderen Entität verbunden sein. Flusssteuerung wird oft sowohl flit- als auch paketweise durchgeführt. Fehlerdetektion und -korrektur wird auch potentiell flitebenenweise durchgeführt.
  • Bei einer Ausführungsform kann die Routingschicht 615a,b ein flexibles und verteiltes Verfahren zum Routen von UPI-Transaktionen von einer Quelle zu einem Ziel bereitstellen. Das Schema ist flexibel, da Routingalgorithmen für mehrere Topologien mittels programmierbarer Routingtabellen in jedem Router spezifiziert werden können (die Programmierung wird bei einer Ausführungsform durch Firmware, Software oder eine Kombination davon durchgeführt). Die Routingfunktionalität kann verteilt sein; das Routing kann mittels einer Reihe von Routingschritten erfolgen, wobei jeder Routingschritt mittels eines Nachschlagens in einer Tabelle entweder im Quellen-, Zwischen- oder Zielrouter definiert wird. Das Nachschlagen in einer Quelle kann verwendet werden, um ein UPI-Paket in das UPI-Koppelfeld zu injizieren. Das Nachschlagen im Zwischenrouter kann verwendet werden, um ein UPI-Paket von einem Eingangsport zu einem Ausgangsport zu routen. Das Nachschlagen in einem Zielport kann verwendet werden, um den Ziel-UPI-Protokollagenten anzuvisieren. Man beachte, dass die Routingschicht bei einigen Implementierungen dünn sein kann, da die Routingtabellen und daher die Routingalgorithmen nicht speziell durch Spezifikation definiert sind. Dies erlaubt Flexibilität und vielfältige Benutzungsmodelle, darunter flexible Plattform-Architekturtopologien, die durch Systemimplementierung definiert werden können. Die Routingschicht 615a,b verwendet die Sicherungsschicht 610a,b zur Bereitstellung der Verwendung von bis zu drei (oder mehr) virtuellen Netzwerken (VN) - in einem Beispiel zwei stockungsfreien VN VN0 und VN1, wobei in jedem virtuellen Netzwerk mehrere Nachrichtenklassen definiert sind. In der Sicherungsschicht kann ein geteiltes adaptives virtuelles Netzwerk (VNA) definiert werden, aber dieses adaptive Netzwerk kann in Routingkonzepten nicht direkt exponiert sein, da jede Nachrichtenklasse und jedes virtuelle Netzwerk eigene Ressourcen und garantierten Vorwärtsfortschritt aufweisen können, neben anderen Merkmalen und Beispielen.
  • Bei einer Ausführungsform kann UPI eine Kohärenzprotokollschicht 620a,b zur Unterstützung von Cache-Linien von Daten von Agenten aus Speicher umfassen. Ein Agent, der Speicherdaten zwischenspeichern möchte, kann mit dem Kohärenzprotokoll die Linie von Daten zum Laden in seinen Cache lesen. Ein Agent, der eine Linie von Daten in seinem Cache modifizieren möchte, kann das Kohärenzprotokoll verwenden, um Eigentümerschaft der Linie zu beschaffen, bevor die Daten modifiziert werden. Nach dem Modifizieren einer Linie kann ein Agent Protokollanforderungen folgen, sie in seinem Cache zu behalten, bis er entweder die Linie wieder in den Speicher zurückschreibt oder die Linie in eine Antwort auf eine externe Anforderung aufnimmt. Als Letztes kann ein Agent externe Anforderungen zum Invalidieren einer Linie in seinen Cache erfüllen. Das Protokoll stellt Kohärenz der Daten sicher, in dem die Regeln, denen alle Zwischenspeicherungsagenten folgen müssen, vorgeschrieben werden. Außerdem stellt es das Mittel bereit, wodurch Agenten ohne Caches Speicherdaten kohärent lesen und schreiben können.
  • Es können zwei Bedingungen durchgesetzt werden, um Transaktionen zu unterstützen, die das UPI-Kohärenzprotokoll benutzen. Erstens kann das Protokoll als ein Beispiel adressenweise Dateneinheitlichkeit unter Daten in Caches von Agenten und zwischen diesen Daten und den Daten im Speicher aufrechterhalten. Informell kann sich Dateneinheitlichkeit auf jede gültige Linie von Daten in den Cache eines Agenten beziehen, die einen auf dem neuesten Stand befindlichen Wert der Daten repräsentiert, und in einem Kohärenzprotokollpaket gesendete Daten können den auf dem neuesten Stand befindlichen Wert der Daten zum Zeitpunkt ihres Sendes repräsentieren. Wenn keine gültige Kopie der Daten in Caches oder in Übertragung existiert, kann das Protokoll sicherstellen, dass der auf dem neuesten Stand befindliche Wert der Daten im Speicher residiert. Zweitens kann das Protokoll wohl definierte Commitment-Punkte für Anforderungen bereitstellen. Commitment-Punkte für Lesevorgänge können angeben, wann die Daten benutzbar sind; und für Schreibvorgänge können sie angeben, wann die geschriebenen Daten global beobachtbar sind und durch nachfolgende Lesevorgänge geladen werden. Das Protokoll kann diese Commitment-Punkte sowohl für Cache-bare als auch Nichtcache-bare bzw. UC-Anforderungen im kohärenten Speicherraum unterstützen.
  • Bei einigen Implementierungen kann UPI einen eingebetteten Takt benutzen. Ein Taktsignal kann unter Verwendung des Verbindungselements in die gesendeten Daten eingebettet werden. Mit dem in die Daten eingebetteten Taktsignal können distinkte und eigene Taktspuren weggelassen werden. Dies kann zum Beispiel nützlich sein, da es erlauben kann, mehr Anschlüsse einer Vorrichtung dem Datentransfer zu widmen, insbesondere in Systemen, in dem der Platz für Anschlüsse kostbar ist.
  • Bitübertragungsschicht
  • Zwischen zwei Agenten auf jeder Seite eines Verbindungselements kann eine Verbindung hergestellt werden. Ein Daten sendender Agent kann ein lokaler Agent sein, und der die Daten empfangende Agent kann ein entfernter Agent sein. Beide Agenten können Automaten verwenden, um verschiedene Aspekte der Verbindung zu verwalten. Bei einer Ausführungsform kann der Bitübertragungsschicht-Datenpfad Flits von der Sicherungsschicht zu dem elektrischen Frontend senden. Der Steuerpfad umfasst bei einer Implementierung einen Automaten (der auch als Verbindungstrainingsautomat oder dergleichen bezeichnet wird). Die Aktionen des Automaten und Austritte aus Zuständen können von internen Signalen, Timern, externen Signalen oder anderen Informationen abhängen. Tatsächlich können einige der Zustände, wie etwa einige wenige Initialisierungszustände, Timer aufweisen, um einen Zeitgrenzenwert zum Verlassen eines Zustands bereitzustellen. Man beachte, dass sich Detektion bei einigen Ausführungsformen auf das Detektieren eines Ereignisses in beiden Zweigen einer Spur bezieht; aber nicht unbedingt gleichzeitig. Bei anderen Ausführungsformen bezieht sich Detektion jedoch auf Detektion eines Ereignisses durch einen Agenten der Referenz. Als ein Beispiel bezieht sich Debounce auf das fortgesetzte Setzen eines Signals. Bei einer Ausführungsform unterstützt UPI Betrieb im Fall von nichtfunktionsfähigen Spuren. Spuren können hier in spezifischen Zuständen abgeworfen werden.
  • In dem Automaten definierte Zustände können neben anderen Kategorien und Subkategorien Rücksetzzustände, Initialisierungszustände und Betriebszustände umfassen. In einem Beispiel können einige Initialisierungszustände einen sekundären Timer aufweisen, mit dem der Zustand bei einer Zeitgrenze verlassen wird (im Wesentlichen ein Abbruch aufgrund der Tatsache, dass in dem Zustand kein Fortschritt erzielt wird). Ein Abbruch kann Aktualisieren von Registern, wie etwa eines Statusregisters, umfassen. Einige Zustände können auch einen oder mehrere primäre Timer aufweisen, mit denen die primären Funktionen in dem Zustand getimt werden. Neben anderen Beispielen können andere Zustände dergestalt definiert werden, dass interne oder externe Signale (wie etwa Handshake-Protokolle) den Übergang von einem Zustand zu einem anderen Zustand steuern.
  • Ein Automat kann auch Debug mittels Einzelschritt, Einfrieren beim Initialisierungsabbruch und Verwendung von Testern unterstützen. Austritte aus Zuständen können hierbei zurückgestellt/warten gelassen werden, bis die Debug-Software bereit ist. In einigen Fällen kann der Austritt bis zur sekundären Zeitgrenze zurückgestellt/warten gelassen werden. Aktionen und Austritte können bei einer Ausführungsform auf dem Austausch von Trainingssequenzen basieren. Bei einer Ausführungsform soll der Verbindungsautomat in der lokalen Agententaktdomäne laufen und der Übergang von einem Zustand zum nächsten soll mit einer Sender-Trainingssequenzgrenze zusammenfallen. Es können Statusregister benutzt werden, um den aktuellen Zustand widerzuspiegeln.
  • 7 zeigt eine Darstellung mindestens eines Teils eines von Agenten verwendeten Automaten in einer beispielhaften Implementierung von UPI. Es versteht sich, dass die in der Zustandstabelle von 7 enthaltenen Zustände eine nicht erschöpfende Auflistung möglicher Zustände umfassen. Zum Beispiel sind einige Übergänge weggelassen, um die Darstellung zu vereinfachen. Außerdem können einige Zustände kombiniert, aufgeteilt oder weggelassen worden sein, während andere hinzugefügt werden könnten. Solche Zustände wären zum Beispiel:
  • Ereignisrücksetzzustand: in diesen wird bei einem Warm- oder Kalt-Rücksetzereignis eingetreten. Stellt Vorgabewerte wieder her. Initialisiert Zähler (z.B. Sync-Zähler). Kann in einen anderen Zustand austreten, wie etwa einen anderen Rücksetzzustand.
  • Getimter Rücksetzzustand: getimter Zustand zum Inband-Rücksetzen. Kann eine vordefinierte elektrische geordnete Menge (EOS) ansteuern, damit entfernte Empfänger die EOS detektieren und auch in das getimte Rücksetzen eintreten können. Der Empfänger weist Spuren auf, die elektrische Einstellungen halten. Kann in einen Agenten zum Rücksetzzustand-Kalibrieren austreten.
  • Rücksetzzustand kalibrieren: Kalibration ohne Signalisierung auf der Spur (z.B. Empfängerkalibrationszustand) oder Ausschalten von Treibern. Kann auf der Basis eines Timers eine vorbestimmte Zeitdauer im Zustand sein. Kann eine Betriebsgeschwindigkeit setzen. Kann als Wartezustand wirken, wenn kein Port freigegeben ist. Kann minimale Residenzzeit umfassen. Auf der Basis des Entwurfs kann Empfängeraufbereitung oder Abstaffelung auftreten. Kann nach einer Zeitgrenze und/oder Abschluss der Kalibration in einen Empfängerdetektionszustand austreten.
  • Empfängerdetektionszustand: Anwesenheit eines Empfängers auf Spur(en) detektieren. Kann nach Empfängerabschluss suchen (z.B. Empfänger-Pulldown-Einfügung). Kann in den Kalibrationsrücksetzzustand austreten, wenn ein spezifizierter Wert gesetzt ist oder wenn kein anderer spezifizierter Wert gesetzt ist. Kann in den Senderkalibrationszustand austreten, wenn ein Empfänger detektiert wird oder eine Zeitgrenze erreicht wird.
  • Senderkalibrationszustand: für Senderkalibrationen. Kann ein für Senderkalibrationen zugeteilter getimter Zustand sein. Kann Signalisierung auf einer Spur umfassen. Kann kontinuierlich eine EOS ansteuern, wie etwa eine elektrisch leerlaufende geordnete Menge des Austritts (oder EIEIOS). Kann in den Compliance-Zustand austreten, wenn das Kalibrieren fertig ist, oder beim Ablauf eines Timers. Kann in den Senderdetektionszustand austreten, wenn ein Zähler abgelaufen ist oder eine sekundäre Zeitgrenze aufgetreten ist.
  • Senderdetektionszustand: erklärt gültige Signalisierung. Kann ein Handshake-Zustand sein, bei dem ein Agent Aktionen abschließt und auf der Basis von Fernagentsignalisierung in einen nächsten Zustand austritt. Empfänger kann gültige Signalisierung vom Sender erklären. Der Empfänger sucht bei einer Ausführungsform nach einem Wach-Detektieren, und bei einem Debounce auf einer oder mehreren Spuren sucht er auf den anderen Spuren danach. Sender steuert ein Detektionssignal an. Kann in einen Abfragezustand austreten, wenn Debounce für alle Spuren abgeschlossen ist und/oder bei einer Zeitgrenze oder wenn Debounce auf allen Spuren nicht abgeschlossen ist und eine Zeitgrenze besteht. Eine oder mehrere Überwachungsspuren können hierbei wachgehalten werden, um ein Wach-Signal zu debouncen. Und beim Debounce erfolgt potential dann auch Debounce der anderen Spuren. Dies kann Stromersparnisse in energiesparenden Zuständen ermöglichen.
  • Abfragezustand: der Empfänger adaptiert, initialisiert den Driftpuffer und rastet auf Bit/Byte ein (z.B. identifiziert Symbolgrenzen). Spuren können entversetzt werden. Ein entfernter Agent kann einen Austritt in einen nächsten Zustand (z.B. einen Verbindungsbreitenzustand) als Reaktion auf eine Bestätigungsnachricht bewirken. Abfrage kann zusätzlich ein Trainingssequenzeinrasten durch Einrasten auf eine EOS und einen Trainingssequenzheader umfassen. Versatz von Spur zu Spur im entfernten Sender kann in einem ersten Abschnitt für obere Geschwindigkeit und einem zweiten Abschnitt für niedrige Geschwindigkeit gekappt werden. Entversetzung kann in einem langsamen Modus sowie einem Betriebsmodus durchgeführt werden. Der Empfänger kann einen spezifischen maximalen zu entversetzenden Versatz von Spur zu Spur aufweisen, wie etwa 8, 16 oder 32 Intervalle Versatz. Empfängeraktionen können Latenzfixierung umfassen. Empfängeraktionen können bei einer Ausführungsform bei erfolgreicher Entversetzung einer gültigen Spurabbildung abgeschlossen werden. Ein erfolgreiches Handshake kann in einem Beispiel erzielt werden, wenn eine Anzahl aufeinanderfolgender Trainingssequenzheader mit Bestätigungen empfangen wird und eine Anzahl von Trainingssequenzen mit einer Bestätigung gesendet wird, nachdem der Empfänger seine Aktionen abgeschlossen hat.
  • Verbindungsbreitenzustand: Agent kommuniziert mit der Endspurenabbildung zum entfernten Sender. Empfänger empfängt die Informationen und decodiert. Empfänger kann eine Konfigurierte-Spur-Abbildung in einer Struktur nach Checkpoint eines vorherigen Spurabbildungswerts in einer zweiten Struktur aufzeichnen. Empfänger kann auch mit einer Bestätigung („ACK“) antworten. Kann ein Inband-Rücksetzen einleiten. Als ein Beispiel erster Zustand zum Einleiten von Inband-Rücksetzen. Bei einer Ausführungsform wird Austritt in einen nächsten Zustand, wie etwa Flit-Konfigurationszustand, als Reaktion auf das ACK durchgeführt. Ferner kann vor dem Eintritt in den energiesparenden Zustand auch ein Rücksetzsignal erzeugt werden, wenn die Häufigkeit eines Auftretens des Wach-Detektionssignals unter einen spezifischen Wert fällt (z.B. 1 in jeder Anzahl von Einheitsintervallen (UI), wie etwa 4K UI). Empfänger kann aktuelle und vorherige Spurabbildungen halten. Sender kann auf der Basis von Trainingssequenzen mit verschiedenen Werten verschiedene Gruppen von Spuren verwenden. Die Spurabbildung kann bei einigen Ausführungsformen einige Statusregister nicht modifizieren.
  • Flitlock-Konfigurationszustand: in ihn wird durch einen Sender eingetreten, aber der Zustand wird als Verlassen betrachtet (d.h. Sekundärzeitgrenzen-Hinfälligkeit), wenn sowohl Sender als auch Empfänger in einen blockierenden Verbindungszustand oder anderen Verbindungszustand ausgetreten sind. Sender tritt in einen Verbindungszustand aus, bei einer Ausführungsform umfassend Grenze des Starts einer Datensequenz (SDS) und Trainingssequenz (TS) nach dem Empfang eines Planetenausrichtungssignals. Der Empfängeraustritt kann hier auf dem Empfang einer SDS von einem entfernten Sender basieren. Dieser Zustand kann eine Brücke vom Agenten zum Verbindungszustand sein. Empfänger identifiziert SDS. Empfänger kann in den blockierenden Verbindungszustand (BLS) (oder ein Steuerfenster) austreten, wenn SDS empfangen wird, nachdem ein Entwürfeler initialisiert ist. Wenn eine Zeitgrenze auftritt, kann der Austritt zum Rücksetzzustand sein. Sender steuert Spuren mit einem Konfigurationssignal an. Senderaustritt kann auf der Basis von Bedingungen oder Zeitgrenzen in den Rücksetz-, BLS- oder andere Zustände erfolgen.
  • Compliance-Zustand: in ihn wird von dem Senderkalibrationszustand aus eingetreten. Eine (als Master wirkende) Vorrichtung kann ein Compliance-Muster zu einer anderen Vorrichtung (Slave) senden, und der Slave kann das Muster nach Neutiming dieses in seinen lokalen Takt zurückschleifen. Kann zur Charakterisierung des Betriebs des Analog-Frontend an einer bestimmten Teilmenge von Spuren verwendet werden, wenn Rückschleifen nicht funktionsfähig ist. Der Compliance-Zustand kann für Jitter- oder Rauschuntersuchungen, Debug, Erkundung einer Verbindung usw. verwendet werden. Der Compliance-Zustand kann eine Supersequenz mit einem Sender von dem Master ansteuern. Empfänger sucht nach einem Wachen auf einer Überwachungsspur, debounct das Wachen, wirft fehlerhafte Spuren ab, adaptiert und bitverriegelt usw. Der Slave-Sender kann das Compliance-Muster ansteuern, bis seine Empfängeraktionen abgeschlossen sind. Dann erfolgt Retiming und Nicht-Entversatz der Rückschleife. Der Slave-Empfänger führt ähnlich Überwachungs- und Debounce-Aktionen usw. aus. Der Austritt kann in einen Rücksetzzustand erfolgen, wie etwa ein getimtes Rücksetzen, oder in einen Rückschleifenmusterzustand zum Beginnen des Tests, neben anderen Beispielen.
  • Agent-Rückschleifen-Markierungszustand: Die Rückschleifenmarkierung ist ein Agentzustand, aber im Gegensatz zu anderen Agent-Zuständen können Master- und Slave-Aktionen und Austritte verschieden sein. Der Rückschleif-Slave kann jede Polaritätsumkehrung und/oder Spurumdrehung rückgängig machen, kann aber nicht rückgeschleifte Bit entwürfeln oder neu verwürfeln. Bestätigungsaustausch kann für einen Slave nicht gelten, da er rückschleift. Da ein Slave vor der Rückschleife an der Symbolgrenze entversetzen kann, muss der Master nicht zum neuen Byte verriegeln oder neuem Entversetzen gezwungen sein, aber der Master kann die Trainingssequenz erneut verriegeln, um Einrastung auf einen bestimmten Alias zu vermeiden. Mittel hierfür wären zum Beispiel erneutes Seeding von LFSR, Vergleichen von TS und/oder EIEOS oder eine gewisse Kombination dieser. Das Ende von SDS markiert das Ende der Rückschleifeneinrichtung und das Beginn der Mustererzeugung, -prüfung und -zählung.
  • Agent-Rückschleifenmusterzustand (oder Block-Verbindungs-Zustand): In diesem Zustand kann ein Master-Sender anstelle von Steuermustern ein IBIST-Muster senden, und sein Empfänger kann auf Fehler im empfangenen Muster prüfen. Zur Senderadaptierung können beide Agenten Master sein. Für einen vorbestimmten Zeitraum kann der Sender ein Muster senden, und ein entfernter Empfänger kann dieses Muster vergleichen und eine Bewertungszahl oder Metrik für das empfangene Muster bestimmen, die in einem Speicherungselement, wie etwa einem Register, aufgezeichnet wird. Das Vergleichsverfahren und die Metrik können entwurfsabhängig sein (z.B. BER mit Jitterinjektion). Am Ende des Zeitraums können beide Agenten zum Rücksetzen für den Rückkanal austreten, um die Metrik zu untersuchen und die nächste Iteration der Senderadaptierung einzurichten.
  • Sende-Verbindung-Zustand: ein Verbindungszustand. Flits werden zu einem entfernten Agenten gesendet. Der Eintritt in diesen kann von einem blockierenden Verbindungszustand aus erfolgen und kann zu einem blockierenden Verbindungszustand bei einem Ereignis, wie etwa einer Zeitgrenze, zurückkehren. Sender sendet Flits. Empfänger empfängt Flits. Kann auch in einen energiesparenden Verbindungszustand austreten. Bei einigen Implementierungen kann der Sende-Verbindung-Zustand (TLS) als der LO-Zustand bezeichnet werden.
  • Blockierender Verbindungszustand: ein Verbindungszustand. Sender und Empfänger arbeiten auf vereinigte Weise. Kann ein getimter Zustand sein, während dem die Sicherungsschichtflits zurückgehalten werden, während die Bitübertragungsschichtinformationen zu dem entfernten Agenten übermittelt werden. Kann in einen energiesparenden Verbindungszustand (oder auf der Basis des Entwurfs in einen anderen Verbindungszustand) austreten. Ein blockierender Verbindungszustand (BLS) tritt bei einer Ausführungsform periodisch auf. Die Periode wird als BLS-Intervall bezeichnet und kann getimt sein, kann aber auch zwischen langsamer Geschwindigkeit und Betriebsgeschwindigkeit unterschiedlich sein. Man beachte, dass die Sicherungsschicht periodisch davon abgehalten werden kann, Flits zu senden, so dass eine Bitübertragungsschicht-Steuersequenz einer Länge gesendet werden kann, wie etwa während eines Senden-Verbindung-Zustands oder eines Teilweise-Breite-Sende-Verbindungszustands. Bei einigen Implementierungen kann der blockierende Verbindungszustand (BLS) als ein L0-Steuerzustand oder L0c-Zustand bezeichnet werden.
  • Teilweise-Breite-Sende-Verbindungszustand: Verbindungszustand. Kann durch Eintreten in einen Zustand teilweiser Breite, wobei eine oder mehrere verfügbare Spuren einer Verbindung während eines Teilweise-Breite-Sende-Verbindungszustands leerlaufen gelassen werden, Strom sparen. Bei einer Ausführungsform bezieht sich asymmetrische teilweise Breite auf jede Richtung einer bidirektionalen Verbindung mit verschiedenen Breiten, die bei bestimmten Entwürfen unterstützt werden kann. Man beachte, dass Geschwindigkeiten nicht geändert werden können, wohl aber Breiten. Deshalb werden potentiell Flits mit verschiedenen Breiten gesendet. Kann logisch einem Sende-Verbindung-Zustand ähnlich sein; da jedoch eine kleinere Breite besteht, kann es länger dauern, um Flits zu senden. Kann auf der Basis bestimmter empfangener und gesendeter Nachrichten oder eines Verlassens des Teilweise-Breite-Sende-Verbindungszustands oder eines Verbindungsblockierungszustands auf der Basis anderer Ereignisse in andere Verbindungszustände austreten, wie etwa einen energiesparenden Verbindungszustand. Bei einer Ausführungsform kann ein Senderport leerlaufende Spuren auf gestaffelte Weise ausschalten, um bessere Signalintegrität (d.h. Rauschminderung) zu gewährleisten, wie in dem Timingdiagramm gezeigt. Hier können nicht neu versuchbare Flits, wie etwa Null-Flits, in Perioden benutzt werden, in denen sich die Verbindungsbreite ändert. Ein entsprechender Empfänger kann diese Null-Flits abwerfen und kann leerlaufende Spuren auf gestaffelte Weise ausschalten, sowie die aktuelle und vorherige Spurabbildung in einer oder mehreren Strukturen aufzeichnen. Man beachte, dass Status und zugeordnete Statusregister unverändert bleiben können. Bei einigen Implementierungen kann der Teilweise-Breite-Sende-Verbindungszustand als ein teilweiser L0- oder L0p-Zustand bezeichnet werden.
  • Teilweise-Breite-Sende-Verbindungszustand-Austritt: Austreten aus dem Zustand teilweiser Breite. Kann bei einigen Implementierungen einen blockierenden Verbindungszustand verwenden oder nicht. Der Sender leitet bei einer Ausführungsform das Austreten durch Senden von Teilweise-Breite-Austrittsmustern auf den leerlaufenden Spuren ein, um diese zu trainieren und zu entversetzen. Als ein Beispiel beginnt ein Austrittsmuster mit EIEOS, was detektiert und debounct wird, um zu signalisieren, dass die Spur bereit ist, den Eintritt in einen voll sendenden Verbindungszustand zu beginnen, und kann mit SDS oder FTS (Fast Training Sequence) auf leerlaufenden Spuren enden. Jeder Ausfall während der Austrittssequenz (Empfängeraktionen, wie etwa Entversatz, nicht vor Zeitgrenze abgeschlossen) stoppt Flit-Transfers zur Sicherungsschicht und setzt ein Rücksetzen, das durch Rücksetzen der Verbindung beim nächsten Auftreten des blockierenden Verbindungszustands gehandhabt wird. Außerdem kann das SDS den Verwürfeler/Entwürfeler auf den Spuren auf geeignete Werte initialisieren.
  • Energiesparender Verbindungszustand: ist ein energiesparenderer Zustand. Bei einer Ausführungsform ist er energiesparender als der Partielle-Breite-Verbindungszustand, da Signalisierung bei dieser Ausführungsform auf allen Spuren und in beiden Richtungen gestoppt ist. Sender können einen blockierenden Verbindungszustand zum Anfordern eines energiesparenden Verbindungszustands verwenden. Der Empfänger kann hier die Anforderung decodieren und mit einem ACK oder einem NAK antworten; andernfalls kann Rücksetzen getriggert werden. Bei einigen Implementierungen kann der energiesparende Verbindungzustand als ein L1-Zustand bezeichnet werden.
  • Bei einigen Implementierungen von UPI können Supersequenzen definiert werden, wobei jede Supersequenz einem jeweiligen Zustand oder Eintritt in den jeweiligen Zustand oder Verlassen dieses entspricht. Eine Supersequenz kann eine sich wiederholende Sequenz von Datenmengen und Symbolen umfassen. Die Sequenzen können sich in einigen Fällen bis zum Abschluss eines Zustands oder Zustandsübergangs oder Übermittlung eines entsprechenden Ereignisses, neben anderen Beispielen, wiederholen. In einigen Fällen kann sich die wiederholende Sequenz einer Supersequenz gemäß einer definierten Häufigkeit wiederholen, wie etwa einer definierten Anzahl von Einheitsintervallen (UI). Ein Einheitsintervall (UI) kann dem Zeitintervall zum Senden eines einzelnen Bit auf einer Spur einer Verbindung oder eines Systems entsprechen. Bei einigen Implementierungen kann die sich wiederholende Sequenz mit einer elektrisch geordneten Menge (EOS) beginnen. Dementsprechend kann erwartet werden, dass sich eine Instanz der EOS gemäß der vordefinierten Häufigkeit wiederholt. Solche geordneten Mengen können als definierte 16-Byte-Codes implementiert werden, die neben anderen Beispielen im Hexadezimalformat repräsentiert werden können. In einem Beispiel kann die EOS einer Supersequenz eine EIEIOS sein, wie etwa in 18 dargestellt. Eine EIEIOS kann zum Beispiel einem niederfrequenten Taktsignal ähneln (z.B. einer vordefinierten Anzahl sich wiederholender hexadezimaler Symbole FF00 oder FFF000 usw.). Der EOS kann eine vordefinierte Menge von Daten folgen, wie etwa eine vordefinierte Anzahl von Trainingssequenzen oder anderen Daten. Solche Supersequenzen (z.B. die oben dargestellten und offenbarten) können bei Zustandsübergängen benutzt werden, darunter Verbindungszustandsübergänge sowie Initialisierung, neben anderen Beispielen.
  • Bei einigen Implementierungen eines Verbindungselements können Abschlüsse einer seriellen Datenverbindung herein- und herausgebracht werden, wie etwa wenn eine Verbindung rückgesetzt oder initialisiert wird. Dieser Ansatz kann Komplexität und Zeit in die Initialisierung einer Verbindung einführen. Bei einigen Implementierungen von UPI können Abschlüsse der Verbindung einschließlich während eines Rücksetzens oder Neuinitialisierung der Verbindung aufrechterhalten werden. Ferner kann UPI Hot-Plugging von Vorrichtungen gestatten. Wenn eine andere Vorrichtung entweder mittels Hot-Plugging oder anderweitig eingeführt wird, ändern sich die Spannungseigenschaften der Spur, auf der der neue entfernte Agent hinzugefügt wird. Der lokale Agent kann diese Änderungen (z.B. Pulldowns) der Spurspannung erfassen, um die Anwesenheit des entfernten Agenten zu detektieren und Initialisierung der Verbindung aufzufordern. Automatenzustände und Timer können in dem Automaten definiert werden, um die Detektion, Konfiguration und Initialisierung einer Verbindung ohne Abschlüsse zu koordinieren.
  • Beispielsweise kann ein Sender einer Vorrichtung während eines Zustands der Empfängerdetektierung („RxDetect“) Spuren einer Verbindung auf die Anwesenheit eines Fernempfängerabschlusses überwachen, wodurch die Anwesenheit einer entfernten Vorrichtung am anderen Ende der Verbindung angegeben wird. Dies kann als eine Art von Handshake dienen, wobei der Empfängerabschluss einen Austritt in den nächsten Zustand (z.B. einen Senderkalibrationszustand) verursacht. Wenn das Handshake nicht innerhalb einer vorbestimmten Zeit auftritt, kann die überwachende Vorrichtung die Initialisierung abbrechen, wodurch ein Übergang zurück zu einem Rücksetzzustand verursacht wird, bevor erneut in den RxDetect-Zustand eingetreten wird, um wieder zu versuchen, Einführung einer entfernten Vorrichtung auf der Verbindung zu identifizieren (z.B. in Verbindung mit einem Hot-Plug-Ereignis oder gesteuerten Verbindungsheraufbringen, das durch Software eingeleitet wird, neben anderen Beispielen). Während RxDetect sind Empfängerabschlüsse (Pulldowns) auf allen funktionsfähigen Spuren einzufügen. Etwaige fehlerhafte Spuren können vor dem Verlassen des Zustands und Übergehen zu einem anderen, wobei eine Detektionssupersequenz zwischen den Vorrichtungen auf der Verbindung übermittelt wird, abgeworfen werden. Ferner kann das durch den Empfängerabschluss erzeugte Signal insofern debounct werden, als die Spuren auf ein aufrechterhaltendes Setzen des Signals geprüft werden. In einem Beispiel kann Debounce für einen Zeitraum auftreten, der der vordefinierten Zeit zum Überwachen der Verbindung während des RxDetect-Zustands entspricht, und kann ein Vielfaches der vordefinierten Zeit sein, neben anderen Beispielen.
  • Bei einer Implementierung kann UPI Neuinitialisierung bei einem Inband-Rücksetzen ohne Ändern der Abschlusswerte mittels der Überprüfung einer Spur durch den empfangenden Agenten auf ankommende Signalisierung unterstützen. Die Signalisierung kann zum Identifizieren funktionsfähiger Spuren verwendet werden. Als ein Beispiel kann die Spur auf ein beliebiges einer Menge vordefinierter Signale überprüft werden, die durch eine Sendervorrichtung zu senden sind, um Entdeckung und Konfiguration der Verbindung zu erleichtern. In einem Beispiel kann eine Supersequenz entsprechend einer oder mehreren Initialisierungs- oder Neuinitialisierungsaufgaben definiert werden. Die vordefinierte Sequenz kann eine EIEOS, gefolgt von zusätzlichen Sequenzdaten, umfassen. In einigen Fällen können, wenn jede Vorrichtung auf jeder Seite einer Spur aktiv wird, die Vorrichtungen beginnen, eine Supersequenz entsprechend einem bestimmten Initialisierungszustand usw. zu senden. Bei einer Ausführungsform können zwei Arten von Anschlussrücksetzungen unterstützt werden; Herauffahr-(oder „kaltes“) Rücksetzen oder warmes Rücksetzen. Ein Rücksetzen, dass durch Software eingeleitet wird oder (in der Bitübertragungs- oder einer anderen Schicht) in einem Agenten ausgelöst wird, kann inband zu dem anderen Agenten übermittelt werden. Aufgrund der Benutzung eines eingebetteten Takts kann ein Inband-Rücksetzen jedoch unter Verwendung einer geordneten Menge, wie etwa einer spezifischen elektrischen geordneten Menge oder EIOS, durch Kommunikation an einen anderen Agenten gehandhabt werden.
  • Die geordnete Menge kann während Initialisierung gesendet werden, und eine PHY-Steuersequenz (oder „blockierender Verbindungszustand“) kann nach Initialisierung gesendet werden. Der Block-Verbindungszustand kann die Sicherungsschicht vom Senden von Flits abhalten. Als ein anderes Beispiel kann Sicherungsschichtverkehr blockiert werden, um einige wenige Null-Flits zu senden, die im Empfänger verworfen werden können.
  • In einem Beispiel (z.B. wie in 10) kann eine Sicherungsschicht-Blockierungssteuersequenz (d.h. ein blockierender Verbindungszustand (BLS) oder L0c-Zustand) einen getimten Zustand umfassen, während dem die Sicherungsschicht-Flits zurückgehalten werden, während die PHY-Informationen zum entfernten Agenten übermittelt werden. Sender und Empfänger können hier einen Block-Steuersequenztimer starten. Und beim Ablauf der Timer können Sender und Empfänger den Blockierungszustand verlassen und können andere Aktionen unternehmen, wie etwa Austritt zum Rücksetzen, Austritt zu einem anderen Verbindungszustand (oder anderen Zustand), darunter Zustände, die das Senden von Flits über die Verbindung erlauben.
  • Bei einer Ausführungsform kann Verbindungstraining bereitgestellt werden und das Senden einer oder mehrerer verwürfelter Trainingssequenzen, geordneter Mengen und Steuersequenzen umfassen, wie etwa in Verbindung mit einer definierten Supersequenz. Ein Trainingssequenzsymbol kann eines oder mehrere von einem Header, reservierten Teilen, einer Ziellatenz, einer Paarnummer, eines physischen Spurabbildungscodes, Referenzspuren oder eine Gruppe von Spuren und eines Initialisierungszustands umfassen. Bei einer Ausführungsform kann der Header mit einer Bestätigung (ACK) oder Negativ-Bestätigung (NAK) gesendet werden, neben anderen Beispielen. Als ein Beispiel können Trainingssequenzen als Teil von Supersequenzen gesendet werden und können verwürfelt werden.
  • Bei einer Ausführungsform werden geordnete Mengen und Steuersequenzen nicht verwürfelt oder gestaffelt und werden auf allen Spuren identisch, gleichzeitig und vollständig gesendet. Ein gültiger Empfang einer geordneten Menge kann Prüfen mindestens eines Teils der geordneten Menge (oder der gesamten geordneten Menge bei teilweise geordneten Mengen) umfassen. Geordnete Mengen können eine elektrisch geordnete Menge (EOS) umfassen, wie etwa eine elektrisch leerlaufende geordnete Menge (EIOS) oder eine EIEOS. Eine Supersequenz kann einen Start einer Datensequenz (SDS) oder eine schnelle Trainingssequenz (FTS) umfassen. Solche Mengen und Steuersupersequenzen können vordefiniert werden und können ein beliebiges Muster oder Hexadezimaldarstellung sowie eine beliebige Länge aufweisen. Zum Beispiel können geordnete Mengen und Supersequenzen eine Länge von 8 Byte, 16 Byte oder 32 Byte usw. aufweisen. Als ein Beispiel kann FTS zusätzlich zur schnellen Bitverriegelung während des Verlassens eines Teilweise-Breite-Sende-Verbindungszustands benutzt werden. Man beachte, dass die FTS-Definition spurweise sein kann und eine gedrehte Version der FTS benutzen kann.
  • Supersequenzen können bei einer Ausführungsform die Einfügung einer EOS, wie etwa einer EIEOS, in einen Trainingssequenzstrom umfassen. Wenn Signalisierung beginnt, fahren Spuren bei einer Implementierung auf gestaffelte Weise herauf. Dies kann jedoch dazu führen, dass anfängliche Supersequenzen auf einigen Spuren im Empfänger abgeschnitten gesehen werden. Supersequenzen können jedoch über kurze Intervalle (z.B. Intervalle von ungefähr eintausend Einheiten (oder ~1KUI)) wiederholt werden. Die Trainingssupersequenzen können außerdem für eines oder mehrere von Entversatz, Konfiguration und zum Übermitteln von Initialisierungsziel, Spurabbildung usw. verwendet werden. Die EIEOS kann für eines oder mehrere von Überführen einer Spur aus einem inaktiven in den aktiven Zustand, Überprüfung auf funktionsfähige Spuren, Identifizierung von Symbol- und TS-Grenzen verwendet werden, neben anderen Beispielen.
  • Nunmehr mit Bezug auf 9 sind Darstellungen beispielhafter Supersequenzen gezeigt. Zum Beispiel kann eine beispielhafte Detektions-Supersequenz 905 definiert werden. Die Detektions-Supersequenz 805 kann eine sich wiederholende Sequenz aus einer einzigen EIEOS (oder andere EOS), gefolgt von einer vordefinierten Anzahl von Instanzen einer bestimmten Trainingssequenz (TS), umfassen. In einem Beispiel kann die EIEOS unmittelbar gefolgt von sieben wiederholten Instanzen von TS gesendet werden. Wenn die letzte der sieben TS gesendet ist, kann die EIEOS nochmals gefolgt von sieben zusätzlichen Instanzen von TS gesendet werden und so weiter. Diese Sequenz kann gemäß einer bestimmten vordefinierten Häufigkeit wiederholt werden. In dem Beispiel von 9 kann die EIEOS auf den Spuren ungefähr einmal alle eintausend UI (~1KUI), gefolgt von dem Rest der Detektions-Supersequenz 905, wieder erscheinen. Ein Empfänger kann Spuren auf die Anwesenheit einer sich wiederholenden Detektions-Supersequenz 905 überwachen und kann bei Validierung der Supersequenz 905 schlussfolgern, dass ein entfernter Agent anwesend ist, auf den Spuren hinzugefügt wurde (z.B. Hot-Plugged), aufgewacht ist oder sich neu initialisiert usw.
  • In einem anderen Beispiel kann eine andere Supersequenz 910 definiert werden, um eine Bedingung bzw. einen Zustand des Abfragens, der Konfiguration oder der Rückschleife anzugeben. Wie bei der beispielhaften Detektions-Supersequenz 905 können Spuren einer Verbindung durch einen Empfänger auf eine solche Abfrage-/Konfig-/Schleifen-Supersequenz 910 überwacht werden, um einen Abfragezustand, Konfigurationszustand oder einen Zustand oder eine Bedingung der Rückschleife zu identifizieren. In einem Beispiel kann eine Abfrage-/Konfig-/Schleifen-Supersequenz 910 mit einer EIEOS, gefolgt von einer vordefinierten Anzahl wiederholter Instanzen einer TS, beginnen. Zum Beispiel kann in einem Beispiel die EIEOS von einunddreißig (31) Instanzen von TS gefolgt werden, wobei sich die EIEOS ungefähr alle 4000 UI (z.B. -4KUI) wiederholt, neben anderen Beispielen.
  • Supersequenzen wie etwa die Detektions-Supersequenz 905 und die Abfrage-/Konfig-/Schleifen-Supersequenz 910 usw. können potentiell im Wesentlichen während des gesamten Verlaufs der Initialisierung oder Neuinitialisierung einer Verbindung gesendet werden. Bei Empfang und Detektion einer bestimmten Supersequenz kann ein Empfänger in einigen Fällen antworten, indem er dieselbe Supersequenz über die Spuren als Echo zu dem Sender sendet. Das Empfangen und Validieren einer bestimmten Supersequenz durch Sender und Empfänger kann als ein Handshake dienen, um einen Zustand oder eine Bedingung zu bestätigen, der bzw. die mittels der Supersequenz übermittelt wird. Zum Beispiel kann man mit einem solchen Handshake (z.B. unter Verwendung einer Detektions-Supersequenz 905) Neuinitialisierung einer Verbindung identifizieren. In einem anderen Beispiel kann man mit einem solchen Handshake das Ende eines elektrischen Rücksetzens oder energiesparenden Zustands angeben, was dazu führt, dass entsprechende Spuren wieder heraufgebracht werden, neben anderen Beispielen. Das Ende des elektrischen Rücksetzens kann zum Beispiel aus einem Handshake zwischen Sender und Empfänger, die jeweils eine Detektions-Supersequenz 905 senden, identifiziert werden.
  • In einem anderen Beispiel können Spuren auf Supersequenzen überwacht werden und die Supersequenzen in Verbindung mit der Überprüfung von Spuren auf Detektions-, Wach-Zustandsaustritte und -Eintritte, neben anderen Ereignissen, verwenden. Die vordefinierte und vorhersehbare Beschaffenheit und Form von Supersequenzen kann ferner zum Ausführen von Initialisierungsaufgaben verwendet werden, wie etwa Bitverriegelung, Byteverriegelung, Debouncing, Entwürfelung, Entversatz, Adaptierung, Latenzfixierung, ausgehandelte Verzögerungen und andere potentielle Verwendungen. Tatsächlich können Spuren im Wesentlichen kontinuierlich auf solche Ereignisse überwacht werden, um die Möglichkeit des Systems, auf solche Bedingungen zu reagieren und sie zu verarbeiten, zu verschnellern. In einigen Fällen können Supersequenzen in Steuerfenstern (z.B. L0c-Steuerfenstern) gesendet werden, um Verbindungszustandübergänge zu triggern, neben anderen Beispielen.
  • Trainingssequenzen (TS) können in einigen Fällen einen Header und verschiedene andere Felder (z.B. Nutzinformationen) umfassen, mit denen Informationen in Verbindung mit der Initialisierung einer Verbindung übermittelt werden können. Zum Beispiel können in einem Beispiel Felder für Ziellatenz, Zustand, Spurpaamummer, Spurabbildung neben anderen Feldern enthalten sein. Bei einigen Implementierungen können Teile einer TS verwürfelt werden, zum Beispiel durch eine Zufalls- oder Pseudozufalls-Binärsequenz (PRBS). In einem Beispiel kann der TS-Header als Klartext bewahrt werden, während der Rest (oder die Nutzinformationen) der TS verwürfelt werden, indem zum Beispiel diese Teile der TS mit einer PRBS XOR-verknüpft werden, neben anderen Beispielen.
  • Bei einer Implementierung kann eine TS sechzehn (16) Byte lang sein und der TS-Header kann das erste Byte (d.h. Byte 0) der TS einnehmen. Die TS-Nutzinformationen können verwürfelt werden und die übrigen fünfzehn Byte einnehmen. Bei einer beispielhaften Implementierung kann ein TS-Nachspann oder -Suffix die letzten wenigen Byte der TS umfassen. Zum Beispiel kann in einem Beispiel ein Verwürfelungssynchronisationsfeld mindestens drei Byte der TS einnehmen, zum Beispiel die Byte 6-8 der TS. Die Nachspannbit der TS (z.B. Byte 9-15) können bei dieser konkreten Implementierung als reservierte Bit aufrechterhalten werden. Die Bit in den Byte 6-15 können alle auf 0 gesetzt werden.
  • Bei einigen Implementierungen kann UPI Verwendung eines TS-Headers unterstützen, kann anstelle von oder zusätzlich zu TS-Nutzinformationen für Schlüsselinitialisierungsparameter benutzt werden. Bei einigen Implementierungen kann man mit TS-Nutzinformationen Initialisierungsparameter wie ACKs und Spurnummern austauschen. Es können auch Gleichstrompegel zur Übermittlung von Spurpolarität verwendet werden. Bei einigen Implementierungen kann UPI jedoch in dem TS-Header für Schlüsselparameter gleichstromausgeglichene Codes implementieren. Falls zum Beispiel ein TS-Header entwürfelt wird, können verfügbare TS-Headercodes so definiert werden, dass die Anzahl von „1“en im Wesentlichen gleich der Anzahl von „0“en ist, die in den TS-Headerfeldern erscheinen. Gleichstromausgleich kann im Verlauf des Restes der TS (z.B. der TS-Nutzinformationen) realisiert werden, indem man Bit der TS-Nutzinformationen verwürfelt, indem die Bit gegen eine Zufalls- oder Pseudozufalls-Binärsequenz XOR-verknüpft werden.
  • Bei einer beispielhaften Implementierung kann eine PRBS-Sequenz mit mindestens 23 Bit (PRBS23) benutzt werden. Die PRBS kann gemäß einem bestimmten ausgewählten Polynom erzeugt werden. In einem Beispiel kann die PRBS durch ein Speicherungselement mit ähnlicher Bitgröße und Selbst-Seed, wie etwa ein LFSR (Linear-Rückkopplungsschieberegister) erzeugt werden. Das LFSR kann ein 23-Bit-Fibonacci-LFSR sein, das eine PRBS-Sequenz mit einer Länge von über 8 Mb erzeugen kann. Die PRBS kann sich nach dem Ende der Sequenz wiederholen. Bei einigen Implementierungen kann die Gesamtheit der PRBS23-Sequenz bei der Verwürfelung von Trainingssequenzen verwendet werden, die in Supersequenzen enthalten sind, die zum Beispiel bei der Initialisierung der Verbindung bei UPI verwendet werden.
  • Während die volle Länge einer PRBS-Sequenz verwendet werden kann, kann UPI bei einigen Implementierungen unterstützen, die Verwendung unterschiedlicher Längen der verfügbaren PRBS-Sequenz (z.B. die Verwendung nur eines Teils der PRBS23-Sequenz) zu erlauben. In einigen Beispielen kann eine Steuerung einer Vorrichtung spezifizieren, dass nur ein Teil der vollen Längen einer PRBS-Sequenz benutzt wird. Dies kann zum Beispiel in Prüfanwendungen wünschenswert sein, wo Wiederholbarkeit von Bitsequenzen erwünscht ist, potentiell neben anderen Anwendungen. Eine auf Software basierende Steuerung kann unterschiedliche Längen der anzuwendenden PRBS spezifizieren. Zum Beispiel kann das BIOS einer Vorrichtung die auf die Verbindung anzuwendende PRBS-Länge spezifizieren. Bei einigen Implementierungen kann Verwendung der vollen Länge der PRBS-Sequenz zum Beispiel die Vorgabeeinstellung sein, um so die Vorteile der langen PRBS-Sequenz zu maximieren.
  • Spurverkehr in einem sendenden Verbindungszustand (TLS) und Trainingssequenzen können mit einer PRBS einer bestimmten Mindestlänge (z.B. 23 Bit) verwürfelt werden. Das auf einen Strom anzuwendende Start-Seed kann zwischen den Spuren variiert werden, um die elektrischen Vorteile der PRBS auf der Verbindung zu verbessern. Bei einer beispielhaften Implementierung kann die PRBS durch ein 23-Bit-Fibonacci-LFSR erzeugt werden, das ein Generatorpolynom mit 6 Abgriffen implementiert, wie etwa (x23 +x21 + x16 + x8 + x5 + x2 +1) oder (x23 + x21 + x18 + x15 + x7 + x2 + 1).
  • Die Seed-Werte beim Start (oder bei der Initialisierung von Verwürfeler/ Entwürfeler) für die Spurnummer Modulo 8 können ein beliebiger Wert sein, zum Beispiel 8 Hexadezimalwerte, wobei jeder mit 2 oder 3 der Spuren in einer Verbindung assoziiert ist. Verwendung solcher Seeds kann zu einer Drehung (oder Staffelung) der PRBS zwischen den Spuren führen. Durch Verwendung der Eigenschaft, dass Geradspuren-PRBS aus einem XOR von PRBS ungerader Spuren abgeleitet werden können, kann die Anzahl der LFSR verringert werden. Die EIEOS und der Header der Trainingssequenzen können nicht verwürfelt sein. Der Eintrittspunkt einer Supersequenz auf jeder Spur kann auf jeder Spur an einem anderen Punkt eingeleitet werden (z.B. wenn der Sender die Ansteuerung beginnt). Dadurch können die Spuren auf gestaffelte Weise eingeschaltet werden, um Rauschen im Stromversorgungsablieferungssystem zu verringern. Tatsächlich kann jede Spur über ihre eigene Instanz eines LFSR verfügen. Die Staffelungszeiten können nach der Anzahl der Spuren, die eingeschaltet werden, variieren und können während der Initialisierung implementierungsabhängig sein. Diese können in den Timingdiagrammen und Timerprofilen für Teilweise-Sendebreite-Zustandsaustritt spezifiziert werden. Ferner können schnelle Trainingssequenzen (FTS) (die auch nachfolgend besprochen werden) auch nach Spur gedreht werden.
  • In einigen Fällen kann Verwürfelung Stromversorgungsrauschen im Sender verringern und im Empfänger ein reichhaltigeres Frequenzspektrum bereitstellen. Der Verwürfeler kann durch die erste gesendete EIEOS initialisiert werden. Der Entwürfeler kann zum Beispiel mittels Selbst-Seeding mit dem Verwürfeler synchronisiert werden. Zum Beispiel kann das empfangene 23-Bit-Muster als ein Seed in ein Feld der TS eingebettet werden. Zum Beispiel kann aus der Verwürfelung der Bit des Verwürfelungssynchronisationsfelds das 23-Bit-Seed identifiziert werden. Der Empfänger kann mit dem Seed-Wert den spezifischen Ort der PRBS identifizieren, der zum Verwürfeln der empfangenen TS verwendet wird. Zum Beispiel kann ein Empfänger das Seed identifizieren und das Seed in sein eigenes LFSR laden; um mit der vom Sender verwendeten PRBS zu synchronisieren. In einigen Fällen kann ein Empfänger mehrere Verwürfelungssynchronisationsfelder oder mehrere TS in einer Supersequenz lesen, um sein eigenes LFSR zu seeden. Bei Detektion und Synchronisation mit der PRBS des Senders kann ein Empfänger jedoch den Rest der TS sowie alle nachfolgenden in Supersequenzen während der Initialisierung der Verbindung gesendeten TS entwürfeln, neben anderen Beispielen.
  • Supersequenzen können zur Erleichterung von Bitverriegelung und Synchronisation auf einer Spur verwendet werden. Wie oben besprochen kann mindestens ein Teil der Supersequenzen verwürfelt werden. Wieder mit Bezug auf die Besprechung von 9 kann eine Detektions-Supersequenz von einem Empfänger zum Detektieren oder Verriegeln der Bit- und Byteflanken des empfangenen Bitstroms und Identifizieren, welche Byte in der Supersequenz gesendet werden, verwendet werden. Zum Beispiel kann der EIEOS- und TS-Header unverwürfelt gelassen werden, um dem Empfänger dabei zu helfen, sich schneller mit der Supersequenz zu verriegeln. Außerdem kann die Supersequenz so definiert werden, dass es der EIEOS (und dem Anfang der Supersequenz) erlaubt wird, sich mit einer relativ kurzen Häufigkeit zu wiederholen (z.B. um dem Empfänger schneller eine andere Chance zu erlauben, die EIEOS zu detektieren, falls die erste EIEOS nicht genau detektiert wurde). Zum Beispiel kann in einem Beispiel eine Supersequenz so definiert werden, dass sie sich alle 1KUI oder kürzer wiederholt. Solche Supersequenzen können ferner mehr randomisierte Übergänge während der Initialisierung erlauben, sowie Vereinfachung von TS-Verriegelung, Latenzfixierung und andere Aktionen.
  • Außerdem kann das Unverwürfelt lassen des EIEOS- und TS-Headers das Auftreten von Byteverriegelung erlauben und dem Empfänger gestatten, in der Lage zu sein, den Ort nachfolgender Byte und Symbole (einschließlich verwürfelter TS-Symbole) zu identifizieren. Zum Beispiel kann die Flanke des unverwürfelten TS-Headers identifiziert werden und dadurch auch der Beginn des Verwürfelungssynchronisationsfelds. Bei Detektion des PRBS-Seed in dem Verwürfelungssynchronisationsfeld kennt der Empfänger die folgenden PRBS-Musterwerte und wird auch in der Lage sein, die Werte von nachfolgenden Verwürfelungssynchronisationsfeldwerten vorherzusagen. Bei Verriegelung mit der PRBS kann der Empfänger dementsprechend die Verwürfelungssynchronisationsfeldwerte zur Erleichterung anderer Konfigurationsaufgaben wie Adaptierung, Entversatz und anderer Aufgaben benutzen.
  • Auf mehrspurigen Verbindungen kann ein Sender Symbole gleichzeitig auf allen Spuren senden, es kann sich aber Versatz von Verbindung zu Verbindung manifestieren, wobei einige Symbole nicht gleichzeitig im Empfänger ankommen. Quellen von Versatz wären zum Beispiel Chip-Differenz-Treiber und -Empfänger, Leiterplatten-Impedanzschwankungen, Spurleitungslängen-Fehlanpassungen, neben anderen Beispielen. Bei einer Ausführungsform stellt UPI erweiterte Logik zum Entversetzen von Spuren bereit. Als ein Beispiel kann die TS-Grenze nach TS-Verriegelung zum Entversetzen der Spuren verwendet werden. Zum Beispiel kann TS-Verriegelung verwendet werden, um Versatz zu detektieren (z.B. das eine TS auf einer Spur später als eine andere TS auf einer anderen der Spuren der Verbindung ankommt). Es kann auch eine EIEOS zur Detektion von Versatz verwendet werden. Außerdem können einige Implementierungen von UPI unter Verwendung der Vorhersehbarkeit eines synchronisierten PRBS-Musters entversetzen, indem Spur-PRBS-Muster in dem LFSR während spezifischer Punkte in den Nutzinformationen verglichen werden.
  • Im Fall der Adaptierung können elektrische Kenngrößen einer Spur zwischen einem Sender und Empfanger zum Beispiel auf der Basis von zwischen dem Sender und Empfänger gesendeten Probendaten justiert werden. Empfängeradaptierung kann zum Beispiel umfassen, dass der Sender ein Datenmuster zum Empfänger sendet, wobei Logik im Empfänger elektrische Kenngrößen im Empfänger justiert, um die Spur für die Verbindung zu adaptieren. Senderadaptierung kann umfassen, dass der Sender Probendaten zum Empfänger sendet und der Empfänger Rückmeldung zum Sender sendet, mit der der Sender dann Justierungen im Sender vornehmen kann, um die Spur zu adaptieren. Der Empfänger kann auf der Basis der im Sender vorgenommenen Justierungen weiter Rückmeldung zum Sender senden.
  • In einem Beispiel können Adaptierungsprobendaten mittels verwürfelter TS-Daten realisiert werden. Als ein Beispiel kann ein festes UI-Muster benutzt werden, um mit einem Bypass zu einem Adaptierungszustand zu verwürfeln. Durch TS-Verwürfelung mit PRBS23 kann aber Empfängeradaptierung ohne den Bypass durchgeführt werden. Außerdem können Offset- und andere Fehler während der Taktwiedergewinnung und Abtastung verringert werden. Die mittels einer langen PRBS-Sequenz (z.B. PRBS23) gewährleistete Zufälligkeit kann sich als ein effektiver Probenstrom zur Adaptierung erweisen. Ferner kann bei einigen Implementierungen eine Spur dafür eingestellt werden, im langsamen Modus zu arbeiten, um der Logik beim Analysieren von auf der Spur empfangenen Probendaten und Adaptieren auf diese zu helfen. Bei Genehmigung der Kenngrößen der Spur mittels Adaptierung können die adaptierten Kenngrößen eingestellt und auf die Initialisierung der Verbindung angewandt werden.
  • Nachdem die Verbindung erfolgreich kalibriert und konfiguriert wurde, kann die Initialisierung enden und zum sendenden Verbindungszustand (TLS) übergehen, in dem Flits anfangen, gesendet zu werden. Bei einigen Implementierungen von UPI können Übergänge zum TLS auf Planetenausrichtung im System basieren. Zum Beispiel kann ein Planetenausrichtungssignal eine Gelegenheit angeben, zum TLS überzugehen. Statt an einer Flanke einer Supersequenz EIEOS oder TLS überzugehen, können einige Implementierungen von UPI ein SDS-Symbol (Start der Datensequenz) benutzen, das gemäß der Planetenausrichtung gesendet wird, um die Initialisierung zu beenden und zum TLS überzugehen. In einem Beispiel kann eine SDS an einer beliebigen Stelle in einem Initialisierungsbitstrom gesendet werden. Dementsprechend kann ein Empfänger empfangene Bit kontinuierlich auf die SDS scannen, um das Beenden der Initialisierung gemäß einer Planetenausrichtung zu beschleunigen.
  • In einem Beispiel kann eine beispielhafte EIEOS ein niederfrequentes Taktsignal, wie etwa ein sich wiederholendes FF00-Signal, emulieren. Eine beispielhafte SDS kann bei einigen Implementierungen ein sich wiederholendes F0-Signal umfassen. Dementsprechend kann in solchen Fällen die Detektion einer in der Mitte einer EIEOS gesendeten SDS relativ einfach zu identifizieren sein, da das Risiko des Alias-Effekts in der EIEOS minimal sein kann. Verwürfelung von TS-Nutzinformationen und die resultierende Zufälligkeit der TS-Daten können jedoch das Risiko des Alias-Effekts von gewissen Formen einer SDS einführen. Bei einigen Implementierungen kann eine PRBS erzeugt werden, die niemals einen Alias einer SDS oder eines Teils einer EIEOS über eine beliebige bestimmte Spanne einer jeweiligen Anzahl von Bit bildet. Ferner kann ein Nachspann oder Suffix an einer TS vorgesehen werden, wie etwa Verwendung der letzten Byte der TS oder Ausnullen der Nutzinformationen der PRBS, um zu bewirken, dass die PRBS XOR-0-Werte im Suffix ist und die PRBS effektiv am Ende der TS im Klartext zu präsentieren.
  • Bei einigen Implementierungen können beim Austritt aus einem Konfigurationszustand in den TLS die Sende- und Empfangs-LFSR durch die zwischen Sender und Empfänger ausgetauschte SDS neu initialisiert werden. Zum Beispiel können in acht Start-PRBS jeweils Seeds auf die Spuren 0..7, 12..19 und 8..11 (z.B. nur die ersten vier) angewandt werden. Ferner können auch Spurwendung einer Verbindung und Polaritätsumkehr einer Spur bestimmt werden, indem zum Beispiel das unverwürfelte erste Byte der TS (z.B. des TS-Headers) nach der EIEOS mit einer Menge möglicher Werte verglichen wird, neben anderen Beispielen.
  • Im Fall des Debouncing können Transienten als Folge vielfältiger Bedingungen auf Spuren eingeführt werden. Zum Beispiel kann das Hinzufügen oder Herauffahren einer Vorrichtung Transienten auf der Spur einführen. Außerdem können Spannungsunregelmäßigkeiten auf einer Spur aufgrund von schlechter Spurqualität oder elektrischem Ausfall vorliegen. In einigen Fällen kann „Bouncing“ auf einer Spur falsche Positive produzieren, wie etwa eine falsche EIEOS. Während Supersequenzen mit einer EIEOS beginnen können, können jedoch bei einigen Implementierungen definierte Supersequenzen ferner zusätzliche Datensequenzen umfassen, sowie eine definierte Häufigkeit, mit der die EIEOS wiederholt wird. Selbst wenn eine falsche EIEOS auf einer Spur erscheint, kann folglich ein Logikanalysator im Empfänger bestimmen, dass die EIEOS eine falsche Positive ist, indem Daten, die der falschen EIEOS nachfolgen, validiert werden. Wenn zum Beispiel der EIEOS keine erwartete TS oder andere Daten folgen oder die EIEOS sich nicht mit einer bestimmten der vordefinierten Häufigkeiten einer der vordefinierten Supersequenzen wiederholt, kann der Empfängerlogikanalysator die Validierung der empfangenen EIEOS fehlschlagen lassen. Da Bouncing beim Herauffahren auftreten kann, während eine Vorrichtung zu einer Leitung hinzugefügt wird, können auch falsche Negative resultieren. Wenn sie zu einer Menge von Spuren hinzugefügt wird, kann zum Beispiel eine Vorrichtung beginnen, eine Detektions-Supersequenz 905 zu senden, um die andere Seite der Verbindung auf ihre Anwesenheit hinzuweisen, und Initialisieren der Verbindung beginnen. Auf den Spuren eingeführte Transienten können jedoch die anfängliche EIEOS, TS-Instanzen und andere Daten der Supersequenz verfälschen. Ein Logikanalysator in der Empfangsvorrichtung kann jedoch weiter die Spuren überwachen und die nächste durch die neue Vorrichtung in der sich wiederholenden Detektions-Supersequenz 905 gesendete EIEOS identifizieren, neben anderen Beispielen.
  • In einem Beispiel kann eine sendende Vorrichtung versuchen, in einen bestimmten Zustand einzutreten. Zum Beispiel kann die sendende Vorrichtung versuchen, die Verbindung zu aktivieren und in einen Initialisierungszustand einzutreten. In einem anderen Beispiel kann die sendende Vorrichtung versuchen, aus einem energiesparenden Zustand, wie etwa einem L1-Zustand, auszutreten, neben anderen Beispielen. In einigen Fällen eines L1-Zustands kann der LI-Zustand als ein Stromersparnis-, Leerlauf- oder Bereitschaftszustand dienen. In einigen Beispielen können tatsächlich Hauptstromversorgungen im L1-Zustand aktiv bleiben. Beim Austritt aus einem LI-Zustand kann eine erste Vorrichtung eine Supersequenz senden, die dem Übergang vom L1-Zustand zu einem bestimmten anderen Zustand, wie etwa einem L0-Sende-Verbindungszustand (TLS), assoziiert ist. Wie in anderen Beispielen kann die Supersequenz eine sich wiederholende Sequenz einer EOS, gefolgt von einer vorbestimmten Anzahl von TS, sein, so dass die EOS mit einer bestimmten vordefinierten Häufigkeit wiederholt wird. In einem Beispiel kann eine Detektions-Supersequenz verwendet werden, um den L1- oder anderen energiesparenden Zustand zu verlassen. Eine empfangende Vorrichtung kann die Daten empfangen und validieren, die Supersequenz identifizieren, und die empfangende Vorrichtung kann das Handshake mit der sendenden Vorrichtung abschließen, indem die Supersequenz zu der sendenden Vorrichtung zurückgesendet wird.
  • Wenn sowohl die sendende als auch die empfangende Vorrichtung dieselbe Supersequenz empfangen, kann jede Vorrichtung unter Verwendung der Supersequenzen zusätzliche Initialisierungsaufgaben ausführen. Zum Beispiel kann jede Vorrichtung Debouncing, Bitverriegelung, Byteverriegelung, Entwürfelung und Entversatz unter Verwendung der Supersequenzen durchführen. Mittels der Header und Nutzinformationen der TS, die in den Supersequenzen enthalten sind, können zusätzliche Initialisierungsinformationen übermittelt werden. Wenn die Verbindung initialisiert wird, kann eine Startdatensende- bzw. SDS-Sequenz gesendet werden, die in einigen Fällen die Supersequenz unterbricht (z.B. in der Mitte einer TS oder EIEOS gesendet), und die jeweiligen Vorrichtungen auf jeder Seite der Verbindung können sich auf den synchronisierten Eintritt in den TLS vorbereiten. Im TLS oder einem „L0“-Zustand können Supersequenzen beendet werden und Flits können unter Verwendung der Sicherungsschicht des Protokollstapels gesendet werden.
  • Während des TLS können der Bitübertragungsschicht immer noch begrenzte Gelegenheiten gegeben werden, Steueraufgaben auszuführen. Zum Beispiel können Bitfehler und andere Fehler auf einer oder mehreren Spuren während eines L0-Zustands identifiziert werden. Bei einer Implementierung kann ein Steuerzustand L0c bereitgestellt werden. Der L0c-Zustand kann als ein periodisches Fenster im TLS bereitgestellt werden, um das Senden von Bitübertragungsschicht-Steuernachrichten zwischen Strömen von Flits, die mittels der Sicherungsschicht gesendet werden, zu erlauben. Zum Beispiel kann, wie in dem in 10 gezeigten Beispiel dargestellt ein LO-Zustand in L0c-Intervalle unterteilt werden. Jedes L0c-Intervall kann mit einem L0c-Zustand oder -Fenster (z.B. 1005) beginnen, in dem Bitübertragungsschicht-Steuercodes und andere Daten gesendet werden können. Der Rest (z.B. 1010) des L0c-Intervalls kann dem Senden von Flits gewidmet werden. Die Länge des L0c-Intervalls und L0c-Zustands in jedem Intervall kann programmatisch definiert werden, zum Beispiel durch das BIOS einer oder mehrerer Vorrichtungen oder eine andere auf Software basierende Steuerung, neben anderen Beispielen. Der L0c-Zustand kann exponentiell kürzer als der Rest eines L0c-Intervalls sein. Zum Beispiel kann in einem Beispiel der L0c 8UI sein, während der Rest des L0c-Intervalls in der Größenordnung von 4KUI liegt, neben anderen Beispielen. Dies kann Fenster erlauben, in denen relativ kurze vordefinierte Nachrichten gesendet werden können, ohne Verbindungsdatenbandbreite wesentlich zu stören oder zu verschwenden.
  • Die L0c-Zustandsnachricht kann vielfältige Bedingungen auf der Bitübertragungsschichtebene übermitteln. In einem Beispiel kann eine Vorrichtung ein Rücksetzen der Verbindung oder einer Spur zum Beispiel auf der Basis von Bitfehlern oder anderen Fehlern über einer bestimmten Schwellenmenge einleiten. Solche Fehler können auch in L0c-Fenstern (wie etwa vorhergehenden L0c-Fenstern) übermittelt werden. Der L0c-Zustand kann auch wirksam eingesetzt werden, um andere Inband-Signalisierung zu realisieren, wie etwa Signalisierung zur Verwendung bei der Unterstützung oder Auslösung von Übergängen zwischen anderen Verbindungszuständen. In einem Beispiel können L0c-Nachrichten benutzt werden, um eine Verbindung von einem aktiven LO-Zustand in einen Bereitschafts- oder energiesparenden Zustand, wie etwa einen L1-Zustand, zu überführen. Zum Beispiel kann man mit einem bestimmten L0c-Zustand eine L1-Eintragsanforderung, eine Rücksetzanforderung oder andere Anforderung übermitteln. Die Anforderung kann das Senden einer entsprechenden Supersequenz umfassen, die so definiert ist, dass ein Eintritt in einen oder Austritt aus einem Verbindungszustand angegeben wird, neben anderen Beispielen.
  • Zusätzlich zum Handshaking unter Verwendung von L0c-Codes (oder als Alternative) können Supersequenzen, wie etwa Detektions-Supersequenzen, in Verbindung mit dem Rücksetzen und Neuinitialisieren der Verbindung gesendet werden. Weiteres Handshaking kann zwischen den Vorrichtungen auftreten, als die Supersequenzen, die durch eine erste Vorrichtung gesendet und durch die zweite empfangende Vorrichtung als Echo zurückgesendet werden. Supersequenzen können wie oben beschrieben verwendet werden, um bei der Neuinitialisierung der Verbindung zu helfen, einschließlich Debouncing, Bitverriegelung, Byteverriegelung, Entwürfelung und Entversatz der Spuren der Verbindung. Ferner können die Vorrichtungen den Timer (der z.B. das L0c-Intervall realisiert) benutzen, um Eintritt der Vorrichtungen und der Verbindung in den angeforderten Zustand zu synchronisieren, neben anderen Beispielen.
  • Bei einer Ausführungsform kann eine Plattform einen Takt umfassen, der als der Referenztakt für Vorrichtungen im System dient. Der Takt kann in die Daten eingebettet werden, so dass es keine getrennten Taktspuren gibt. Das Taktsignal kann aus empfangenden Daten extrahiert werden. Ferner können die über die Spuren gesendeten Flits verwürfelt werden, um Taktwiedergewinnung zu erleichtern. Als ein Beispiel kann die Empfängertaktwiedergewinnungseinheit Abtasttakte an einen Empfänger abliefern (d.h., der Empfänger gewinnt den Takt aus den Daten wieder und verwendet ihn zum Abtasten der ankommenden Daten). Empfänger passen sich bei einigen Implementierungen kontinuierlich an einen ankommenden Bitstrom an. Durch Einbetten des Takts kann das Pinout potentiell verringert werden. Einbettung des Takts in die Inbanddaten kann jedoch die Art und Weise ändern, auf die Inband-Rücksetzen angegangen wird. Bei einer Ausführungsform kann nach Initialisierung ein blockierender Verbindungszustand (BLS) benutzt werden. Außerdem können Supersequenzen elektrisch geordneter Mengen während der Initialisierung benutzt werden, um das Rücksetzen (z.B. wie oben beschrieben) zu erleichtern, neben anderen Betrachtungen. Der eingebettete Takt kann zwischen den Vorrichtungen auf einer Verbindung gemeinsam sein und der gemeinsame Betriebstakt kann während Kalibration und Konfiguration der Verbindung gesetzt werden.
  • Bei einigen Implementierungen von UPI kann Adaptierung von Spuren auf einer Verbindung unterstützt werden. Die Bitübertragungsschicht kann sowohl Empfängeradaptierung als auch Adaptierung von Sender oder Absender unterstützen. Mit Empfängeradaptierung kann der Sender auf einer Spur Probendaten zu dem Empfänger senden, die die Empfängerlogik verarbeiten kann, um Unzulänglichkeiten der elektrischen Kenngrößen der Spur und Qualität des Signals zu identifizieren. Der Empfänger kann dann auf der Basis der Analyse der empfangenen Probendaten Justierungen an der Kalibration der Spur vornehmen, um die Spur zu optimieren. Im Fall von Senderadaptierung kann der Empfänger wieder Probendaten empfangen und Metriken entwickeln, die die Qualität der Spur beschreiben, aber in diesem Fall die Metriken zum Sender (z.B. unter Verwendung eines Rückkanals wie etwa einer Software, einer Hardware, eines eingebetteten Seitenband- oder anderen Kanals) übermitteln, damit der Sender auf der Basis der Rückmeldung Justierungen an der Spur vornehmen kann. Empfängeradaptierung kann am Anfang des Abfragezustands unter Verwendung der von dem entfernten Sender gesendeten Abfrage-Supersequenz eingeleitet werden. Ähnlich kann Senderadaptierung erfolgen, indem Folgendes für jeden Senderparameter wiederholt wird. Beide Agenten können als Master in den Rückschleifenmusterzustand eintreten und spezifiziertes Muster senden. Beide Empfänger können die Metrik (z.B. BER) für diese bestimmte Sendereinstellung in einem entfernten Agenten messen. Beide Agenten können zum Rückschleifen-Markierungszustand gehen und dann Rücksetzen und Rückkanäle (TLS im langsamen Modus oder Seitenband) zum Austausch von Metriken verwenden. Auf der Basis dieser Metriken kann die nächste Sendereinstellung identifiziert werden. Letztendlich kann die optimale Sendereinstellung identifiziert und für nachfolgende Verwendung abgespeichert werden.
  • Bei der Adaptierung kann ein Sender eines Agenten ein zufälliges oder pseudozufälliges Muster zu einem entfernten Empfänger senden. In einigen Fällen können verwürfelte Supersequenzen als das Muster verwendet werden. Logik im Empfänger kann Kenngrößen einer oder mehrerer Spuren der Verbindung bestimmen und Metrikdaten erzeugen, die diese Kenngrößen beschreiben. Im Fall der Empfängeradaptierung kann der Empfänger auf der Basis der Metriken versuchen, optimale Konfigurationen für eine Spur zu bestimmen, und diese Konfigurationen im Empfänger anwenden. Im Fall von Senderadaptierung kann der Empfänger Metriken zum Sender zur Verwendung durch den Senderagenten zum Konfigurieren und Anpassen der Spur auf der Basis der Metrik übermitteln. In jedem Fall kann bei einigen Implementierungen Hardware oder Software benutzt werden, um verschiedene Sendeeinstellungen in algorithmischer Reihenfolge zu bewerten, um die optimalen Einstellungen zu bestimmen.
  • Empfängeradaptierung kann am Anfang des Abfragezustands unter Verwendung der von dem entfernten Sender gesendeten Abfrage-Supersequenz eingeleitet werden. Ähnlich kann Senderadaptierung durch Wiederholen von Folgendem für jeden Senderparameter erfolgen. Beide Agenten können als Master in den Rückschleifenmusterzustand eintreten und spezifiziertes Muster senden. Ferner können beide Empfänger die Metrik (z.B. BER) für diese bestimmte Sendereinstellung in einem entfernten Agenten messen. Beide Agenten können zum Rückschleifen-Markierungszustand gehen und dann Rücksetzen und Rückkanäle (TLS im langsamen Modus oder Seitenband) zum Austausch von Metriken verwenden. Auf der Basis dieser Metriken kann die nächste Sendeeinstellung identifiziert werden. Letztendlich kann die optimale Sendereinstellung identifiziert und für nachfolgende Verwendung abgespeichert werden.
  • Einige UPI benutzende System und Vorrichtungen können deterministisch sein, so dass ihre Transaktionen und Interaktionen mit anderen Systemen, darunter Kommunikation über eine UPI-Verbindung, mit bestimmten Ereignissen in dem System oder der Vorrichtung synchronisiert sind. Eine solche Synchronisation kann gemäß einem Plantenausrichtungspunkt oder -signal entsprechend den deterministischen Ereignissen stattfinden. Zum Beispiel kann man mit einem Planetenausrichtungssignal Zustandsübergänge, darunter Eintritt in einen Verbindungssendezustand, mit anderen Ereignissen in der Vorrichtung synchronisieren. In einigen Fällen können Sync-Zähler verwendet werden, um Ausrichtung mit einer Planetenausrichtung einer Vorrichtung aufrechtzuerhalten. Zum Beispiel kann jeder Agent einen lokalen Sync-Zähler umfassen, der durch ein planetenausgerichtetes Signal initialisiert wird (d.h. gemeinsam und gleichzeitig (mit Ausnahme eines festen Versatzes) für alle Agenten/Schichten, die synchronisiert sind). Dieser Sync-Zähler kann Ausrichtungspunkte selbst in heruntergefahrenen oder energiesparenden Zuständen (z.B. im L1-Zustand) korrekt zählen und kann zum Timen des Initialisierungsprozesses (nach Rücksetzen oder L1-Austritt) verwendet werden, einschließlich der Grenzen (d.h. Anfang oder Ende) einer EIEOS (oder anderen EOS), die in einer während Initialisierung benutzten Supersequenz enthalten ist. Solche Supersequenzen können feste Größe und größere als maximal mögliche Latenz auf einer Verbindung aufweisen. EIEOS-TS-Grenzen in einer Supersequenz können somit als Stellvertreter für einen Fern-Sync-Zählerwert verwendet werden.
  • Ferner kann UPI Master-Slave-Modelle unterstützen, wobei eine deterministische Master-Vorrichtung bzw. ein deterministisches Master-System das Timing der Interaktion mit einer anderen Vorrichtung gemäß ihren bzw. seinen eigenen Planetenausrichtungsmomenten ansteuern kann. Ferner kann in einigen Beispielen Master-Master-Determinismus unterstützt werden. Master-Master- oder Master-Slave-Determinismus kann sicherstellen, dass sich zwei oder mehr Verbindungspaare in der Sicherungsschicht und darüber im Gleichschritt befinden können. Beim Master-Master-Determinismus kann der Austritt aus der Initialisierung jeder Richtung durch jeweiligen Sender gesteuert werden. Im Fall des Master-Slave-Determinismus kann ein Master-Agent den Determinismus des Verbindungspaars (d.h. in beiden Richtungen) steuern, indem ein Slave-Senderinitialisierungsaustritt zum Beispiel auf seinen Empfänger wartengelassen wird, um aus der Initialisierung auszutreten, neben anderen potentiellen Beispielen und Implementierungen.
  • Bei einigen Implementierungen kann ein Synchronisations-(oder „Sync“-)Zähler in Verbindung mit dem Aufrechterhalten von Determinismus in einer UPI-Umgebung benutzt werden. Zum Beispiel kann ein Sync-Zähler dafür implementiert werden, eine definierte Menge zu zählen, wie etwa 256 oder 512 UI. Dieser Sync-Zähler kann durch ein asynchrones Ereignis rückgesetzt werden und kann kontinuierlich (mit Roll-Over) von dort aus zählen (potentiell selbst während eines energiesparenden Verbindungszustands). Rücksetzungen auf Anschlussbasis (z.B. Einschalt-Rücksetzen, warmes Rücksetzen) können Synchronisierungsereignisse sein, die einen Sync-Zähler rücksetzen, neben anderen Beispielen. Bei einer Ausführungsform können diese Ereignisse auf zwei Seiten mit Versatz von weniger (und in vielen Fällen viel weniger) als dem Sync-Zählerwert auftreten. Während der Initialisierung kann der Anfang der gesendeten geordneten Austrittsmenge (z.B. EIEOS), die einer Trainingssequenz einer Trainingssupersequenz vorausgeht, mit dem Rücksetzwert des Sync-Zählers ausgerichtet werden (z.B. Sync-Zähler-Roll-Over). Solche Sync-Zähler können in jedem Agenten auf einer Verbindung unterhalten werden, um so mittels Aufrechterhaltung konstanter Latenz von Flit-Übertragungen über eine bestimmte Verbindung Determinismus zu bewahren.
  • Unter anderen Signalen können Steuersequenzen und -codes mit einem Planetenausrichtungssignal synchronisiert werden. Zum Beispiel können EIEOS-Sequenzen, BLS- oder L0c-Fenster (und darin enthaltene Codes), SDS usw. dafür konfiguriert werden, mit einer Planetenausrichtung synchronisiert zu sein. Ferner können Synchronisationszähler gemäß einem externen Signal, wie etwa einem Planetenausrichtungssignal von einer Vorrichtung, rückgesetzt werden, um so selbst mit der Planetenausrichtung synchronisiert zu werden, neben anderen Beispielen.
  • Sync-Zähler beider Agenten auf einer Verbindung können synchronisiert werden. Rücksetzen, Initialisieren oder Neuinitialisierung einer Verbindung kann ein Rücksetzen der Sync-Zähler umfassen, um die Sync-Zähler neu miteinander und/oder einem externen Steuersignal (z.B. einem Planetenausrichtungssignal) auszurichten. Bei einigen Implementierungen können Sync-Zähler nur mittels eines Eintritts in einen Rücksetzzustand rückgesetzt werden. In einigen Fällen kann Determinismus ohne ein Rücksetzen des Sync-Zählers aufrechterhalten werden, wie etwa bei einer Rückkehr zu einem LO-Zustand. Stattdessen können andere bereits auf eine Planetenausrichtung abgestimmte Signale oder ein anderes deterministisches Ereignis als Stellvertreter für ein Rücksetzen verwendet werden. Bei einigen Implementierungen kann eine EIEOS bei einem deterministischen Zustandseintritt verwendet werden. In einigen Fällen kann die Grenze der EIEOS und eine anfängliche TS einer Supersequenz zum Identifizieren eines Synchronisationsmoments und Synchronisieren von Sync-Zählern eines der Agenten auf einer Verbindung verwendet werden. Das Ende einer EIEOS kann zum Beispiel verwendet werden, um das Potential von die Startgrenze der EIEOS verfälschenden Transienten zu vermeiden, neben anderen Beispielen.
  • Latenzfixierung kann bei einigen Implementierungen von UPI auch bereitgestellt werden. Latenz kann nicht nur die durch die Übertragungsleitung, die zur Übermittlung von Flits verwendet wird, eingeführte Latenz umfassen, sondern auch die Latenz, die sich aus Verarbeitung durch den Agenten auf der anderen Seite der Verbindung ergibt. Latenz einer Spur kann während der Initialisierung der Verbindung bestimmt werden. Ferner können auch Änderungen der Latenz bestimmt werden. Aus der bestimmten Latenz kann Latenzfixierung eingeleitet werden, um solche Änderungen zu kompensieren und die für die Spur erwartete Latenz auf einen konstanten erwarteten Wert zurückzuführen. Die Aufrechterhaltung einheitlicher Latenz auf einer Spur kann für das Aufrechterhalten von Determinismus in einigen Systemen kritisch sein.
  • Latenz kann bei einigen Implementierungen unter Verwendung eines Latenzpuffers in Verbindung mit Determinismus und Freigegeben durch Starten eines Detektierens (z.B. durch Senden einer Detektions-Supersequenz) an einem Sync-Zähler-Roll-Over in einer Empfänger-Sicherungsschicht auf einen programmierten Wert fixiert werden. Dementsprechend kann in einem Beispiel eine gesendete EIEOS (oder andere EOS) bei der Abfragung und Konfiguration an einem Sync-Zähler-Roll-Over auftreten. Anders ausgedrückt kann die EIEOS präzise mit dem Sync-Zähler ausgerichtet werden, so dass eine synchronisierte EIEOS (oder andere EOS) in einigen Fällen als Stellvertreter für den Sync-Zählerwert selbst dienen kann, zumindest in Verbindung mit bestimmten Latenzfixierungsaktivitäten. Zum Beispiel kann ein Empfänger genug Latenz zu einer empfangenen EIEOS hinzufügen, so dass sie die vorgeschriebene Ziellatenz an der Schnittstelle von Bitübertragungsschicht und Sicherungsschicht erfüllt. Wenn beispielsweise die Ziellatenz 96 UI ist und die Empfänger-EIEOS nach Entversatz bei einem Sync-Zählerwert von 80 UI liegt, können 16 UI Latenz hinzugefügt werden. Bei gegebener Synchronisation einer EIEOS kann im Wesentlichen Latenz einer Spur auf der Basis der Verzögerung zwischen wann die EIEOS bekanntlich gesendet wurde (z.B. bei einem bestimmten Sync-Zählerwert) und wann die EIEOS empfangen wurde, bestimmt werden. Ferner kann Latenz unter Verwendung der EIEOS fixiert werden (z.B. durch Hinzufügen von Latenz zur Übertragung einer EIEOS, um eine Ziellatenz aufrechtzuerhalten, usw.).
  • Latenzfixierung kann im Kontext von Determinismus verwendet werden, um es einer externen Entität (wie etwa einer ein Planetenausrichtungssignal bereitstellenden Entität) zu erlauben, den physischen Zustand zweier Agenten über die Verbindung in zwei Richtungen zu synchronisieren. Ein solches Merkmal kann zum Beispiel bei Debugging-Problemen am Einsatzort und zur Unterstützung von Gleichschrittverhalten verwendet werden. Dementsprechend können solche Implementierungen externe Steuerung eines oder mehrerer Signale umfassen, die bewirken können, dass die Bitübertragungsschicht auf zwei Agenten zu einem sendenden Verbindungszustand (TLS) übergeht. Agenten, die Determinismusfähigkeiten besitzen, können die Initialisierung an einer TS-Grenze verlassen, die auch potentiell die saubere Flit-Grenze ist, wenn oder nachdem das Signal gesetzt wird. Master-Slave-Determinismus kann einem Master erlauben, den Bitübertragungsschichtzustand von Master- und Slaveagenten über die Verbindung in beiden Richtungen zu synchronisieren. Wenn er freigegeben ist, kann der Slave-Senderaustritt aus der Initialisierung von seinem Empfängeraustritt aus der Initialisierung abhängen (z.B. diesem folgen oder mit ihm koordiniert sein) (zusätzlich zu anderen Betrachtungen auf der Basis von Determinismus). Agenten, die über Determinismusfähigkeit verfügen, können zusätzlich Funktionalität zum Eintritt in einen BLS oder ein L0c-Fenster an einem sauberen Flit besitzen, neben anderen Beispielen.
  • Bei einigen Implementierungen kann Determinismus bei UPI umfassen, die Fähigkeit eines Agenten zum Bestimmen und Anwenden einer Verzögerung auf der Basis eines deterministischen Signals zu erleichtern. Ein Master kann eine Angabe einer Ziellatenz zu einem entfernten Agenten senden. Der entfernte Agent kann tatsächliche Latenz auf einer Spur bestimmen und eine Verzögerung anwenden, um die Latenz zu justieren, um die Ziellatenz (die z.B. in einer TS identifiziert wird) zu erfüllen. Justierung der Verzögerung oder Latenz kann dabei helfen, den letztendlichen synchronisierten Eintritt in einen Verbindungssendezustand an einem Planetenausrichtungspunkt zu erleichtern. Ein Master kann einen Verzögerungswert zu einem Slave übermitteln, zum Beispiel in TS-Nutzinformationen einer Supersequenz. Die Verzögerung kann eine konkrete für die Verzögerung bestimmte Anzahl UI spezifizieren. Der Slave kann den Eintritt in einen Zustand auf der Basis der bestimmten Verzögerung verzögern. Solche Verzögerungen können zum Beispiel verwendet werden, um Prüfen zu erleichtern, um L0c-Intervalle auf Spuren einer Verbindung zu staffeln, neben anderen Beispielen.
  • Wie oben erwähnt kann ein Zustandsausritt gemäß einem Planetenausrichtungspunkt stattfinden. Zum Beispiel kann eine SDS gesendet werden, um eine Zustandssupersequenz zu unterbrechen, kann zum Ansteuern des Übergangs von dem Zustand zu einem anderen Zustand. Das Senden der SDS kann so getimt werden, dass es mit einem Planetenausrichtungspunkt zusammenfällt, und in einigen Fällen als Reaktion auf ein Planetenausrichtungssignal. In anderen Fällen kann das Senden einer SDS mit einem Planetenausrichtungspunkt auf der Basis eines Sync-Zählerwerts oder anderen mit der Planetenausrichtung synchronisierten Signals synchronisiert werden. Eine SDS kann an einem beliebigen Punkt in einer Supersequenz gesendet werden, in einigen Fällen als Unterbrechung einer bestimmten TS oder EIEOS usw. der Supersequenz. Dies kann sicherstellen, dass der Zustand mit wenig Verzögerung übergeht, während Ausrichtung mit einem Planetenausrichtungspunkt aufrechterhalten wird, neben anderen Beispielen.
  • Bei einigen Implementierungen können Hochgeschwindigkeitsverbindungen, wie etwa diejenigen, die UPI unterstützen und benutzen, aufgrund der elektrischen Anforderungen an die die Verbindungen implementierenden physischen Leitungen bezüglich Länge beschränkt werden. Es können Verbindungsverlängerungsvorrichtungen bei einigen Implementierungen benutzt werden, um effektiv Verbindungsabschnitte zusammen zu „splicen“, um eine Verbindung mit einer Länge von mehr als traditionellen Beschränkungen zu bilden. Zum Beispiel können elektrische Treiber/Empfänger in einer Implementierung eines UPI-Systems auf elektrische Kanäle begrenzter Länge und Bandbreite (z.B. 24" von FR4 bei 10,4 Gbs) optimiert werden. Dies kann für geometrisch kleinere Architekturen akzeptabler sein, aber bei Systemen, die größere Formfaktoren verwenden, wie etwa Server-Racks und andere größere Hochgeschwindigkeitssysteme können Erweiterung oder Repeater, Vorrichtungen wie Retimer oder Redriver verwendet werden, um die Länge der Verbindung zu verlängern. Ferner können optische Verbindungen eingeführt werden, um einen Abschnitt der elektrischen Verbindung zu ersetzen oder zu ergänzen und dadurch die Distanzen von UPI unterstützenden physischen Verbindungen zu vergrößern.
  • Wie oben erwähnt können bei einigen Implementierungen eines UPI ein oder mehrere Verbindungszustände und Verbindungsautomatenübergänge definiert werden, die die Detektion von Pulldowns verwenden, um die Anwesenheit eines entfernten Empfängers auf einer Verbindung zu bestimmen. Wie zum Beispiel in dem beispielhaften Automaten von 7 gezeigt, kann die zwei Vorrichtungen koppelnde Verbindung in allen außer drei Zuständen, Ereignisrücksetzen, Kalibrationsrücksetzen und Empfängerdetektion, aktiv sein. In einem oder mehreren dieser Leerlaufzustände kann ein Empfängerabschluss verwendet werden, um die Anwesenheit des Empfängers am anderen Ende der Verbindung zu detektieren und dadurch Austritt oder Übergang aus dem Verbindungszustand aufzufordern. Zum Beispiel kann bei einem RxDetect-Zustand eine sendende Vorrichtung eine Verbindung auf einen Empfängerabschluss am anderen Ende der Verbindung hin überwachen. Dies kann bewirken, dass der Zustand zu einem Zustand übergeht, in dem Daten aktiv vom Sender zum Empfänger signalisiert werden. Bei einigen Implementierungen kann Verbinden einer Vorrichtung mit dem anderen Ende einer Verbindung, mit der eine andere Vorrichtung bereits verbunden ist, bewirken, dass sich eine Pulldown-Spannung auf der Verbindung manifestiert. Die existierende Vorrichtung kann die Pulldown-Spannung detektieren und das Pulldown als ein Signal deuten, das die Anwesenheit einer Begleitervorrichtung auf der Verbindung angibt.
  • 11 ist eine vereinfachte Blockdarstellung 1100, die das Konzept, das eine Vorrichtung (z.B. 1110) die Anwesenheit einer anderen Vorrichtung (z.B. 1115) auf einer Verbindung detektiert, veranschaulicht. Speziell kann in diesem Beispiel eine Pulldown-Spannung 1105 auf Spuren einer bestimmten Verbindung manifest sein, die einen Sender 1110 mit einem Empfänger 1115 (in der Rückwärtsrichtung der Spuren) verbindet, wenn der Empfänger seine Abschlüsse einfügt (oder zuvor eingefügt hat) und sich elektrisch mit der Verbindung verbindet. Zum Beispiel kann beim Herauffahren die Anwesenheit eines Empfängers bewirken, dass eine Pulldown-Spannung 1105 erzeugt wird. Der Sender 1110 kann Detektionslogik umfassen, um zu bestimmen, dass die Kenngrößen der Pulldown-Spannung 1105 dem entsprechen, was erwartungsgemäß durch einen Empfänger 1115, der am anderen Ende der Verbindung abgeschlossen wird, erzeugt wird. Detektion der Begleitervorrichtung kann weitere Initialisierungsschritte erlauben, um Vorwärts-Fortschritt zu erzielen. Falls keine Begleiter-Empfängervorrichtung (z.B. 1115) als auf der Verbindung anwesend detektiert wird, kann die sendende Vorrichtung in einen energiesparenden, leerlaufenden oder ausgeschalteten Zustand übergehen.
  • Dieselben Spuren, auf denen eine Pulldown-Spannung 1105 manifest ist, können auch durch den Sender 1110 nach Detektionsschritten der Verbindungsinitialisierung benutzt werden, um Signale 1120 zum Empfänger 1115 zu senden. Solche Signale können OS, TS und andere Muster umfassen, die in Verbindung mit weiterer Konfiguration, Anpassung und Training der Verbindung gesendet werden. Ferner können nach Initialisierung und Training der Verbindung Daten in Aktiv-Verbindungszustandssignalen über diese Verbindungsspuren vom Sender zum Empfänger gesendet werden.
  • Wie bereits erwähnt können in einigen Fällen die von Verbindungselementtechnologien (wie UPI) benutzten Hochgeschwindigkeitsfrequenzen die physische Länge entsprechend er Verbindungen, die zwei Vorrichtungen verbinden, (entweder formal oder praktisch) begrenzen. Repeater-Vorrichtungen wie Redriver und Retimer werden immer mehr in verschiedenen Anwendungen eingesetzt, wie etwa in größeren Systemformfaktoren wie Server-Plattformen, um die physischen Längen von Hochgeschwindigkeits-Datenverbindungen auf verschiedenen Verbindungselement-E/A zu verlängern, einschließlich Beispiele wie USB, SATA, SAS, PCIe usw. 12 zeigt eine vereinfachte Blockdarstellung 1200 einer Redriver-Vorrichtung 1205, die vorgesehen ist, um eine Verbindung zu implementieren, die einen Sender 1110 und einen Empfänger 1115 verbindet. In diesem Beispiel ist die Empfängerseite des Redrivers 1205 mit dem Sender der Vorrichtung 1110 verbunden und die Sendeseite des Redrivers 1205 mit dem Empfänger der Vorrichtung 1115 verbunden. Redriver (z.B. 1205) sind typischerweise analoge Vorrichtungen, die die Eingangssignale, die sie (z.B. von einer senden (Tx-) Vorrichtung) empfangen, umformen (z.B. verstärken), bevor das Signal neu zu dem beabsichtigten Empfänger (Rx) herausgesteuert wird. Redriver können die Signale, die sie empfangen, verstärken, das verstärke (oder neu angesteuerte) Signal weiter den nächsten Abschnitt der Verbindung in Richtung der empfangenen Vorrichtung (z.B. 1115) heruntersenden. Solche Signalverstärkung oder -ansteuerung kann etwaige zusätzliche Verluste in dem langen Kanal kompensieren, die ansonsten die Fähigkeit der Treiber und Empfänger der Tx- und Rx-Endpunkte übersteigen können. Der Bedarf an solchen Verlängerungsvorrichtungen wird ferner wahrscheinlich weiter zunehmen, wenn die Zunahme der E/A-Bandbreite die Verbesserungen von Verbindungselementen aufgrund von Plattformkostenbeschränkungen und anderen Faktoren überholt.
  • Als Fortsetzung des Beispiels von 12 kann zur Unterstützung von Verbindungszustandsübergängen und Verbindungskonfigurationsaktivitäten, die die Detektion einer definierten Empfänger-Pulldown-Spannung benutzen, eine sendende Vorrichtung, Vorrichtung A 1110, Pulldown-Detektionslogik umfassen, die dafür ausgelegt ist, Spannungen auf der Verbindung zu identifizieren, die einer erwarteten Pulldown-Spannung von einer auf der Verbindung anwesenden empfangenden Vorrichtung entsprechen. Solche Pulldown-Spannungen können zum Beispiel als Schritt bei einem Handshake zum Verlassen eines Detektionszustand (z.B. RxDetect) dienen und weiteren Fortschritt in Richtung eines aktiven Verbindungszustands erzielen. Die Aufnahme eines Redrivers (z.B. 1205) kann jedoch die Möglichkeit der Detektion einer Pulldown-Spannung von Vorrichtung B 1115 durch die Begleitervorrichtung, Vorrichtung A 1110, stören und untergraben. Zum Beispiel wird sich, obwohl die Einfügung der Abschlüsse der Vorrichtung B 1115 eine Pulldown-Spannung mit Kenngrößen erzeugt, die mit der von Vorrichtung A während der Detektionszustandsüberwachung erwarteten Pulldown-Spannung vereinbar sind, die Pulldown-Spannung gewöhnlich nur auf der Sendeseite des Redrivers 1205 manifestieren und am Tx-Endpunkt 1110 nicht sichtbar sein. Dementsprechend kann kein Handshake abgeschlossen werden, da die Pulldown-Spannung nicht an den Tx-Endpunkt abgeliefert wird und dem Tx-Endpunkt 1110 nicht bewusst ist, dass eine Partnervorrichtung anwesend ist, angesichts dessen, dass die Pulldown-Spannung effektiv durch herkömmliche Redriver „abgefangen“ wird. Dementsprechend kann eine verbesserte Redriver-Vorrichtung wie hier ausführlicher dargelegt bereitgestellt werden, die Detektion von Pulldown-Spannungen eines Rx-Endpunkts in dem verbesserten Redriver und Weiterleitung dieser zum Tx auf der Empfangsseite des Redrivers 1205 erlauben kann, um die Realisierung der Detektion des Rx-Endpunkts 1115 am Tx-Endpunkt 1110 zu erlauben.
  • Nunmehr mit Bezug auf die vereinfachte Blockdarstellung 1300 des Beispiels von 13 ist eine Darstellung eines erweiterten Redrivers 1205 gezeigt. In diesem Beispiel kann der Redriver 1205 zusätzlich zu seinen Kern-Signalansteuerschaltkreisen 1305 zusätzliche Schaltkreise umfassen (oder mit ihnen verbunden sein), die zum Weiterleiten von sich auf den Sendeanschlüssen (z.B. aufgrund der Anwesenheit der Vorrichtung 1115) des Redrivers 1205 manifestierenden Pulldown-Spannungen (z.B. 1105) zu einer Sendevorrichtung 1110 verwendet werden. Zum Beispiel kann ein Redriver 1205 mit Pulldown-Detektionsschaltkreisen 1310 und Pulldown-Weiterleitungsschaltkreisen 1315 versehen werden. Bei einer Implementierung können die Pulldown-Detektionsschaltkreise 1310 dafür ausgelegt werden, Pulldown-Spannungen zu erkennen, die einer definierten Hüllkurve (z.B. Amplitude und Dauer) entsprechen, die für Pulldown-Spannungen erwartet würde, die durch eine Empfängervorrichtung (z.B. 1115) auf der Verbindung erzeugt werden. Detektion einer konformen Pulldown-Spannung kann bewirken, dass die Pulldown-Detektionslogik 1310 der Pulldown-Weiterleitungslogik 1315 signalisiert oder diese anderweitig triggert, die Erzeugung einer emulierten Pulldown-Spannung 1325 (unter Verwendung der Pulldown-Weiterleitungsschaltkreise 1315) zu bewirken, die Kenngrößen aufweist, die durch den Tx-Endpunkt 1110 (oder Detektionsschaltkreise des Tx-Endpunkts) als eine Pulldown-Spannung erkennbar sind, die durch eine Begleitervorrichtung (z.B. 1115) auf der Verbindung gezeigt wird. Während dieser Pulldown-Detektionsphase kann die Anwesenheit des Redrivers auf der Verbindung und seine Beteiligung bei der Bereitstellung der Pulldown-Spannung (z.B. 1325) für den Sender den Endpunkten 1110, 1115 effektiv unsichtbar sein.
  • Als Fortsetzung des Beispiels von 13 kann bei einigen Implementierungen während aktiver Signalisierung auf der Verbindung (z.B. Senden der Signale 1120 von dem Tx-Endpunkt 1110 zu dem Rx-Endpunkt 1115 über die Verbindung) die Pulldown-Unterstützungslogik (z.B. 1310, 1315) des Redrivers 1205 gesperrt oder Endelaufengelassen werden. Im aktiven Modus kann dementsprechend der Redriver 1205 als Vorgabe in seinen herkömmlichen Betriebsmodus eintreten, um empfangene Signale (z.B. 1120) unter Verwendung von Treiberlogik 1305 neu auf die Spuren anzusteuern, die den Redriver 1205 mit dem Rx-Endpunkt 1320 verbinden. Wie oben erwähnt werden dieselben Spuren, die zum Detektieren eines Pulldown 1105 und zum Erzeugen einer emulierten Version 1325 dieses verwendet werden, zur Übertragung und Neuansteuerung von Signalen 1120, 1125 während aktiver Verbindungszustände verwendet.
  • In einigen Fällen kann ein Verbindungselement Endpunkte bereitstellen, die unter Verwendung einer gleichstromgekoppelten elektrischen Schicht arbeiten. Zum Beispiel können UPI und UPI-Endpunkte gemäß einem gleichstromgekoppelten Entwurf implementiert werden. Dessen ungeachtet kann bei einigen Implementierungen ein Wechselstromkopplung verwendender Redriver auf einer Verbindung verwendet werden, die gleichstromgekoppelte Endpunkte verbindet. In einigen Fällen kann es im Allgemeinen wünschenswert sein, wechselstromgekoppelte Redriver zu verwenden. Tatsächlich haben sich neuere Fortschritte bei Redrivern zum großen Teil um wechselstromgekoppelte Entwürfe gedreht, und wechselstromgekoppelte Redriver können besser verfügbar und vertrauenswürdiger als gleichstromgekoppelte Alternativen sein, neben anderen Betrachtungen. In einem Beispiel kann ein wechselstromgekoppelter Redriver auf der Basis der PCIe-Technologie als Redriver zwischen UPI-Endpunktvorrichtungen verwendet werden, die Gleichstromkopplung verwenden. Die Benutzung eines wechselstromgekoppelten Redrivers kann jedoch das Weiterleiten von sich auf einem gleichstromgekoppelten Verbindungselement manifestierenden Pulldown-Spannungen (z.B. zur Verwendung bei Verbindungspräsenzdetektion) weiter verkomplizieren. Zum Beispiel kann in der Verbindungsdetektionsphase eine sendende Vorrichtung (Tx) schwach heraufgezogen werden, um zu detektieren, ob ein Niederimpedanz-Abschlusspräsenz auf der Seite des Empfängers (Rx) der Verbindung besteht. Eine solche Empfängerdetektion kann bei einem anfänglichen Herauffahren oder nach einem Verbindungsrücksetzen durchgeführt werden. Solche Verbindungspräzens-Detektionsmethoden können unterbrochen werden, wenn eine aktive Vorrichtung, wie etwa ein Redriver, zur Verbindung hinzugefügt wird, da der den Tx-Endpunkt mit dem Rx-Endpunkt verbindende Kanal (und die Verwendung des Redrivers) nicht transparent sein können. In solchen Fällen wäre der Rx-Status (d.h. ob er anwesend ist oder nicht) dem Tx unbekannt.
  • 14 zeigt ein Schaltbild 1400, das eine Verbindung zwischen Senderlogik 1405 einer Endpunktvorrichtung 1110 und einem Empfänger oder einer Eingangsstufe eines wechselstromgekoppelten Redrivers 1205 zeigt. Ferner zeigt 14 die Detektionsschaltkreise (z.B. 1410, 1415) des Senderendpunkts 1110 zur Verwendung beim Detektieren einer Empfänger-Pulldown-Spannung auf dem Kanal 1420. Zum Beispiel sind auf dem Endpunkt Tx 1110 Rul_p und Rui_n (1410) die Pull-up-Widerstände zur Verbindungsdetektion auf dem Endpunkt. In diesem Fall wird angenommen, dass der wechselstromgekoppelte Redriver 1205 für wechselstromgekoppelte Verbindungen ausgelegt ist. In 14 ist ein Teil beispielhafter Pulldown-Weiterleitungslogik gezeigt, der einen herkömmlichen wechselstromgekoppelten Redriver-Entwurf ergänzt. Zur Erleichterung der Erzeugung einer Pulldown-Spannung an den Empfängeranschlüssen des Redrivers 1205 werden die Widerstände Rin2_p und Rin2_n (1425) zu einem wechselstromgekoppelten Redriver-Entwurf hinzugefügt, damit Pulldown-Spannungen im Redriver erzeugt werden können und UPI-Verbindungsdetektion durch den Tx-Endpunkt erlaubt wird. In diesem Beispiel werden die Widerstände Rin2_p und Rin2_n auf der Platine vorgesehen und nicht auf dem Redriver-Chip selbst. Ferner können die Widerstände Rin1_p und Rin1_n (1430) im Redriver-Empfänger (auf der anderen Seite der Wechselstrom-Koppelkondensatoren 1435) auf den Chip mit den Haupttreiberschaltkreisen (z.B. 1440) des Redrivers 1205 vorgesehen werden. Die Pulldown-Widerstände Rin2_p und Rin2_n (1425) können vor den Wechselstrom-Koppelkondensatoren (1435) positioniert werden (da sich die Kondensatoren 1435 während einer Empfängerdetektionsphase als offener Schaltkreis manifestieren). Der Vorteil dieser (in 14 gezeigten) konkreten Implementierungen besteht darin, dass er sich minimal auf traditionellen wechselstromgekoppelten Redriver-Entwurf auswirkt und die Benutzung von veralteten wechselstromgekoppelten Redrivern mit den zusätzlichen Schaltkreisen (z.B. Rin2_p und Rin2_n) erlaubt. Anders ausgedrückt können die Pulldown-Widerstände Rin2_p und Rin2_n (1425) hinzugefügt werden, um Funktionalität eines herkömmlicheren Redriver-Entwurfs zu ergänzen. Da die zusätzlichen Komponenten für den Redriver (z.B. Widerstände Rin2_p und Rin2_n (1425) außerhalb des Chips) sich entweder auf Platinen oder in Kapselung befinden, hat dieses Beispiel dagegen das Potential, zusätzliche Diskontinuitäten in die Kanäle einzuführen, Platinenfläche und Materialkosten hinzuzufügen, neben anderen beispielhaften Problemen.
  • 15 ist ein Schaltbild 1500 mit einer alternativen Implementierung der in 14 gezeigten Erweiterungen der empfangsseitigen Schaltkreise eines beispielhaften wechselstromgekoppelten Redrivers. In dem Beispiel von 15 werden, statt die Pulldown-Widerstände Rin2_p und Rin2_n außerhalb des Redriver-Chips vorzusehen, die Pulldown-Widerstände 1425 als erweiterte Redriver-Kapselung auf dem Chip vorgesehen. Folglich werden die Wechselstrom-Koppelkondensatoren 1430 (d.h. Gleichstrom-Blockierungskondensatoren) auch in den Redriver-Chip integriert. Durch einen solchen Redriver-Entwurf kann das Platinenlayout einfacher und kompakter werden (z.B. durch Weglassen zusätzlicher Komponenten auf der Platine). Die Kondensatoren auf dem Chip können in einigen Anwendungen jedoch nicht in der Lage sein, mit einer ausreichenden Kapazität konfiguriert zu werden. Folglich können in einigen Fällen zusätzliche Schaltkreise mit dem in 15 gezeigten On-Chip-Entwurf vorgesehen werden, zum Beispiel um Gleichstrom-Abwanderungskorrelation und andere Faktoren zu behandeln.
  • Die Werte der Pulldown-Widerstände Rin2_p und Rin2_n (1425), die zu der Eingangs- (oder Rx-) Phase des Redrivers 1205 hinzugefügt werden, können so konfiguriert werden, dass nicht nur die Pulldown-Spannung entsprechend einem definieren EmpfängerDetektionszustand bereitgestellt wird, sondern können auch für Impedanzleitungsanpassung konfiguriert werden. Die Widerstände Rin1_p und Rin2_p und Rin1_n und Rin2_n repräsentieren den Pulldown- und Pullup-Widerstand der beiden Zweige eines Differenzpaarkanals und sind parallel, um den Widerstandsabschluss am Eingang des Redrivers zu bilden. Die Werte der Widerstände können so gewählt werden, dass der nominale Wert des Parallelwiderstands von Rin1_p und Rin2_p gleich der Leitungsimpedanz ist, die durch die jeweilige Verbindungselementspezifikation definiert wird (z.B. 42,5 Ohm bei UPI); der Widerstandswert von Rin2_p liegt in dem Senderjustierungsbereich für einen korrekten Gleichstrom-Gleichtaktpegel; und dieselben Werte werden für Rin1_n und Rin2_n, die Widerstände auf dem komplementären Zweig des Differenzpaars, verwendet. Als ein Beispiel können für eine Leitungsimpedanz von 50 Ohm die Widerstandswerte der vier Redriver-Widerstände Rin1_p = Rin2_p = Rin1_n = Rin2_n = 100 Ohm sein, obwohl andere Widerstandswerte verwendet werden können.
  • Ferner können Werte der Pulldown-Widerstände 1425 nicht nur zur Leitungsimpedanzanpassung ausgewählt werden, sondern auch auf der Basis der Eigenschaften der im Sender 1110 verwendeten Pulldown-Detektionsschaltkreise. Um zum Beispiel das bevorzugte oder definierte Pulldown-Spannungs-„Signal“ zu erzeugen, das durch Detektionsschaltkreise des Senders 1110 zu detektieren ist, können größere Schwankungen zwischen Widerstandswerten der Pulldown-Widerstände (z.B. 1425) und Detektionswiderstände (z.B. 1410) erwünscht sein. Die Detektionswiderstände (z.B. 1410) Ru1_p und Rd1_p, können im Detektionsmodus (z.B. wenn keine Signalisierung auf den Spuren besteht) effektiv einen Spannungsteiler mit den Pulldown-Widerständen Rin2_p und Rin2_n (1425) bilden. Wenn keine Pulldown-Spannung vorliegt, kann durch Detektionsschaltkreise des Senders 1110 detektierte Spannung als logische „1“ gedeutet werden, wobei eine Pulldown-Spannung als logische „0“ gedeutet wird (wodurch Anwesenheit eines Begleiterendpunkts angegeben wird). Ferner können Werte dieser Detektionswiderstände Ru1_p und Rd1_p (1410) (z.B. im kOhm-Bereich) ausgewählt werden, um sich so wenig auf die Abschlussimpedanz des Senders auszuwirken (und während aktiver Signalisierung wenig bis keinen Strom zu entnehmen).
  • In den obigen Beispielen kann immer ein Gleichstromabschluss niedriger Impedanz am Eingang eines erweiterten wechselstromgekoppelten Redrivers 1205 anwesend sein (z.B. mittels der Bereitstellung von Pulldown-Widerständen 1425). Dementsprechend kann sich der erweiterte Redriver effektiv immer im aktiven Modus befinden, so dass zum Zeitpunkt der Verbindungsinitialisierung oder nach einem Rücksetzen ein UPI-Tx-Endpunkt (z.B. 1110) immer einen Abschluss niedriger Impedanz sieht, die Tx-Kalibration beginnt und dann Trainingsmuster sendet. Ohne den Redriver wirkt herkömmliche Empfängerdetektion als Handshake, um bei Synchronisieren der zwei Endpunkte zu helfen. Wenn zum Beispiel die Endpunktvorrichtung in einen Rx-Detektions-Verbindungszustand eintritt, kann der Endpunkt warten, bis er eine Pulldown-Spannung auf der Leitung sieht (und den entfernten Empfängerendpunkt detektiert). Detektion des entfernten Empfängerendpunkts kann dem entsprechen, dass der entfernte Empfängerendpunkt auch in den Rx-Detekt- (oder anderen entsprechenden) Verbindungszustand eintritt. Bei einen erweiterten Redriver benutzenden Implementierungen detektiert der Senderendpunkt jedoch die Redriver-Abschlüsse und geht zu nachfolgenden Verbindungszuständen über, bei denen Trainingssequenzen ausgetauscht werden. Handshaking zum Synchronisieren der zwei Endpunkte kann dann mittels des Austauschs von Trainingssequenzen in anderen Verbindungszuständen erreicht werden, neben anderen Beispielen. Seiten gehen dann fertig durch die Trainingssequenzen.
  • Nunmehr in Bezug auf 16 ist ein Schaltbild 1600 gezeigt, das mit einem erweiterten Redriver, wie etwa in dem Beispiel von 13 eingeführt, zu versehende Pulldown-Detektionsschaltkreise darstellt. In 16 ist eine erste beispielhafte Implementierung von Schaltkreisen zur Ermöglichung von Präsenzdetektion zwischen der Ausgangsstufe eines Redrivers 1205 und einer UPI-Rx-Endpunktvorrichtung 1115 gezeigt. In diesem Beispiel sind Schaltkreise mit dem Redriver versehen, um dem Redriverausgang zu erlauben, zu detektieren, ob die UPI-Rx-Vorrichtung auf der Verbindung anwesend ist (z.B. 1605). Im Wesentlichen sind die Schaltkreise denen ähnlich, die in Pulldown-Detektionslogik der UPI-Tx-Vorrichtung verwendet werden, da sowohl der erweitere Redriver 1205 als auch der Tx-Endpunkt (z.B. 1110) dafür zu konfigurieren sind, eine erwartete Pulldown-Spannung zu detektieren, die einem entfernten Endpunktabschluss entspricht. In diesem konkreten Beispiel sind Rrx_p und Rrx_n (1610) die auf dem Chip befindlichen Pulldown-Abschlusswiderstände am Rx-Endpunkt 1115, und (wie bei der im erweiterten Redriver vorgesehenen Pulldown-Logik) der nominale Wert der Widerstände 1610 des Rx-Endpunkts kann gleich oder ungefähr gleich der Leitungsimpedanz (z.B. 42,5 Ohm) sein.
  • Pulldown-Spannungsdetektionsschaltkreise des Redrivers 1205 können Pullup-Widerstände Ru2_p und Ru2_n, (1615) umfassen, die in diesem Beispiel intern im Redriver-Chip 1205 sind. Bei einer Implementierung können die Redriver-Pullup-Widerstände Ru2_p und Ru2_n (1615) relativ hohe Widerstandswerte (z.B. im Kiloohmbereich) aufweisen. Außerdem können Pulldown-Spannungsdetektionsschaltkreise des Redrivers 1205 ferner Widerstände Rd2_p und Rd2_n (1620) und R2_n und R2_p (bei 1625) umfassen, die zusammen mit den Pullup-Widerständen Ru2_p und Ru2_n (1615) einen Widerstandsspannungsteiler oder eine Leiter bilden. Das Widerstandsnetzwerk in den Redriver-Pulldown-Spannungsdetektionsschaltkreisen kann verhindern, dass die Gleichspannung definierte Maximalpegel überschreitet, wenn der Abschluss niedriger Impedanz am Empfängerendpunkt nicht anwesend ist. R2_p und R2_n können auf der Platine parallel zu den Gleichstrom-Blockierungskondensatoren (bei 1625) vorgesehen werden, um den Gleichstrompfad während des Detektionsmodus bereitzustellen. Im Detektionsmodus (und bei Abwesenheit von Hochgeschwindigkeitssignalisierung auf dem Kanal 1605) können zum Beispiel die Kondensatoren als offene Stromkreise wirken, wobei R2_p und R2_n einen Gleichstrompfad um die Kondensatoren bereitstellen. In einigen Fällen kann der Widerstand von R2_p und R2_n relativ hoch sein (z.B. im Kiloohmbereich), so dass sie sich wenig auf die Aktivzustands-Hochgeschwindigkeitssignale auswirken (die Wechselstromsignalen ähneln, die die Kondensatoren überqueren (die während Hochgeschwindigkeitssignalisierung Kurzschlüssen ähneln)). In einigen Fällen können die Widerstände R2_p und R2_n und die entsprechenden Gleichstrom-Blockierungskondensatoren außerhalb des Redriver-Chips 1205 vorgesehen werden, wobei die übrigen Pulldown-Detektionsschaltkreise (z.B. 1615, 1620) auf dem Chip vorgesehen werden. Als Alternative können die Gleichstrom-Blockierungskondensatoren und die Widerstände, die parallel sind (bei 1625) mit den anderen Pulldown-Detektionsschaltkreisen in den Redriver-Entwurf integriert werden, um das Platinenlayout zu vereinfachen, neben anderen Betrachtungen.
  • Es versteht sich, dass nicht immer ein entfernter Abschluss an den Empfängeranschlüssen des Redrivers 1205 anwesend sein kann. Zum Beispiel kann bei Implementierungen wie etwa Hot-Plugging die Rx-Endpunktvorrichtung manchmal nicht auf der Leitung anwesend sein, was die Verwendung eines Redrivers auf dem Kanal verkompliziert. Wenn der entfernte Endpunkt nicht anwesend ist (z.B. in einem Hot-Plug-Szenario), versucht der Tx-Endpunkt weiter, durch die Initialisierung zu gehen, schlägt aber immer fehl (wegen der Abwesenheit eines entferntes Empfängerendpunkts downstream), was zur Meldung eines Fehlers (z.B. an Systemverwaltungssoftware) führt. Um damit eleganter umzugehen, könnte man den Detektionsstatus von der Ausgangsstufe des Redrivers zum Eingang des Redrivers weiterleiten, so dass der Tx-Endpunkt die Anwesenheit des entfernten Rx-Endpunkts korrekt detektieren kann, wie etwa in dem Beispiel von 13.
  • Wie in dem Beispiel von 16 gezeigt, kann Pulldown-Detektionslogik des Redrivers 1205 Detektionssteuerschaltkreise DET2_p und DET2_n (1630) umfassen. Falls eine Pulldown-Spannung entsprechend einem entfernten Empfängerabschluss durch die Pulldown-Detektionslogik des Redrivers 1205 detektiert wird, kann bewirkt werden, dass Detektionssteuerschaltkreise DET2_p und DET2_n (1630) ein Pulldown-Detektionssignal erzeugen. Das Pulldown-Detektionssignal kann zu Pulldown-Weiterleitungslogik auf der Empfangsseite des Redrivers 1205 geleitet werden. Zum Beispiel ist nunmehr mit Bezug auf 17 ein Schaltbild 1700 gezeigt, das Pulldown-Widerstände 1425 im Redriver 1205 umfasst (ähnlich wie die Beispiele von 14-15) und Schaltlogik 1705 umfasst, die mit den Detektionssteuerschaltkreisen DET2_p und DET2_n (1630) des Redrivers 1205 gekoppelt sind, um die Pulldown-Widerstände 1425 des Redrivers 1205 selektiv zu „aktivieren“ oder „freizugeben“.
  • In diesem Beispiel werden, wenn die Ausgangsstufe des Redrivers die Anwesenheit des Rx-Endpunkts detektiert, Pulldown-Detektionssignale zu der Schaltlogik 1705 geleitet, um die Schalter Sp und Sn einzuschalten und infolge einen Gleichstrompfad herzustellen, um Strom durch die Pulldown-Widerstände 1425 „herunterzuziehen“. Dies bewirkt, dass ein Spannungsschritt an den Redriver-Eingangsanschlüssen erscheint, und dieser Spannungsschritt propagiert sich den Kanal 1420 herunter zu den Ausgangsanschlüssen (und Pulldown-Spannungsdetektionslogik) des Tx-Endpunkts 1110. Angesichts der Orientierung der Pulldown-Widerstände 1425 und Wechselstrom-Koppelkondensatoren 1435 erzeugt Einschalten der Schalter Sp und Sn einen Spannungsschritt entsprechend einer Widerstands-Kondensator- bzw. RC-Zeitkonstante, die Werten der Redriver-Widerstände Ru1_p und Ru1_n, Rin1_p und Rin1_n und Rin2_p und Rin_n und der Wechselstrom-Koppelkondensatoren 1435 entspricht. Zum Beispiel schwingt die an den Empfangsanschlüssen des Redrivers 1205 produzierte (und an den Ausgangsanschlüssen des Tx-Endpunkts 1110 detektierte) Spannung letztendlich aufgrund der Beschaffenheit der RC-Zeitkonstante wieder auf Vcc_EndPunkt ein.
  • Zur Erzeugung eines Spannungsschritts mit Eigenschaften, die als Pulldown-Spannung eines entfernten Empfängerabschlusses gedeutet werden können, können dementsprechend geeignete Werte der Redriver-Widerstände und Wechselstrom-Koppelkondensatoren 1435 ausgewählt werden, um eine Zeitkonstante zu realisieren, die einen solchen Spannungsschritt ermöglicht. Bei solchen Implementierungen können Werte der Kondensatoren und Widerstände so ausgewählt werden, dass die Zeitkonstante lang genug ist, um die Rx-Detektion und Startinitialisierung abzuschließen. Zum Beispiel kann bei einigen Implementierungen der Rx-Detektionszustand so definiert werden, dass positive Detektionsergebnisse, wenn die Pulldown-Spannung über eine Mindestzeitdauer anwesend ist (und detektiert wird). Dementsprechend kann die Zeitkonstante so gewählt werden, dass sie der Definition des Rx-Detektionszustands entspricht. Wenn der Empfängervorrichtungsabschluss erfolgreich über den Redriver 1205 zu dem sendenden Endpunkt 1110 weitergeleitet wird, kann Vorwärtsfortschritt weitergehen, und übrige Initialisierungsschritte können abgeschlossen werden. In einigen Fällen müssen diese nachfolgenden Initialisierungsschritte nicht mehr Empfängerdetektion umfassen und können Ausschalten von Pulldown-Spannungsdetektionsschaltkreisen im Tx-Endpunkt (und Redriver) erlauben.
  • Bei einigen Implementierungen können nach dem Abschluss eines Detektionszustands und Übergang zu einem Signalisierungszustand (z.B. einem nachfolgenden Konfigurationsverbindungszustand oder Aktiv-Verbindungszustand) Widerstände (z.B. 1430) des Redrivers 1205, die zur Impedanzanpassung verwendet werden, „ausgeschaltet“ werden, da die Wechselstrom-Koppelkondensatoren mittels der ankommenden Hochgeschwindigkeitssignale „kurzgeschlossen“ werden. In einem Beispiel kann der Redriver 1205 mit elektrischer Leerlaufdetektion versehen werden, die die Amplitude der gesendeten Hochgeschwindigkeitsdaten erfassen kann. Solche Logik kann zum Einschalten der Haupttreiberschaltkreise (z.B. 1440) des Redrivers 1205 (einschließlich des Impedanzanpassungsabschlusses) verwendet werden, um es dem Redriver 1205 zu erlauben, vollständig von einem Pulldown-Detektions- und Weiterleitungsmodus zu seinem Kernsignal-Neuansteuerungsmodus überzugehen. Ferner können die Schalter Sp, Sn dann aus sein, da die Initialisierung abgeschlossen ist.
  • Obwohl das Beispiel von 17 die Wechselstromkopplungs-/Gleichstrom-Blockierungskondensatoren 1435 außerhalb des Chips (und auf der Platine) zeigt, können alternative Entwürfe die Gleichstrom-Blockierungskondensatoren 1435 in Kapselung oder auf dem Chip vorsehen. Falls sich die Kondensatoren auf dem Chip befinden, können Gleichstrom-Abwanderungskorrekturschaltkreise und andere Komponenten vorgesehen werden.
  • Nunmehr mit Bezug auf 18 ist ein Schaltbild 1800 gezeigt, das dem in Verbindung mit dem Beispiel von 17 gezeigten und beschriebenen ähnlich ist. In dem Beispiel von 18 kann direkte Gleichstrompfaddetektion durch einen Redriver 1205 zum Weiterleiten von Rx-Endpunktdetektion zu einem entsprechenden Tx-Endpunkt (z.B. 1110) verwendet werden. In diesem Fall können, wenn die Ausgangsstufe des Redrivers die Anwesenheit des Rx-Endpunkts detektiert, Detektionssteuerschaltkreise DET2_p und DET2_n (1630) wieder Pulldown-Detektionssignale erzeugen, um die Schalter Sp und Sn einzuschalten, was dazu führt, dass ein Gleichstrompfad zwischen Rul_p und Rin2_p und Rul_n und Rin2_n hergestellt wird und bewirkt wird, dass sich eine wesentliche beständige Pulldown-Spannung an den Eingangsanschlüssen des Redrivers 1205 manifestiert. Die Pulldown-Spannung propagiert zu den Ausgangsanschlüssen des Tx-Endpunkts, der die Detektionsschaltung im Tx-Endpunkt so triggert, als bestünde eine Empfänger-Gleichstrom-Niederimpedanz am Eingang des Redrivers. Wie in vorhergehenden Beispielen kann Detektion der Pulldown-Spannung das Voranschreiten weiterer Verbindungsinitialisierungsschritte erlauben. Ferner können in dem in 18 gezeigten Beispiel die Schaltlogik 1705 und entsprechenden Pulldown-Widerstände 1425 jeweils auf dem Chip oder auf der Kapselung mit Redriver-Schaltkreisen 1440 vorgesehen werden. In einigen Fällen kann dies auch zu der Bereitstellung der Wechselstrom-Koppelkondensatoren 1435 auf dem Chip mit der übrigen Redriver-Pulldown-Weiterleitungslogik führen, neben anderen Beispielen.
  • Es versteht sich, dass andere Details und Merkmale in einem hochleistungsfähigen Verbindungselement bereitgestellt werden können, darunter Implementierungen, die eine optische Verbindung zur Verlängerung eines physischen Kanals verwenden. Zum Beispiel kann ein Teil des Kanals optisch statt elektrisch sein. Zum Beispiel können mehrere Redriver in Reihe vorgesehen werden, und ein Teil des Kanals zwischen den Redrivern kann optisch sein. Im Fall einer „Kette“ von Redrivern kann jeder Redriver in der Kette Pulldown-Detektion- und Pulldown-Weiterleitungslogik besitzen, um zu erlauben, dass durch Abschluss eines Endpunktempfängers erzeugte Pulldown-Spannung durch die Kette zu einem Endpunktsender propagiert, vereinbar mit den obigen Beispielen. Ferner kann ein hochleistungsfähiges Verbindungselement (HPI) wie UPI ein oder mehrere Merkmale und Prinzipien anwenden, die in der US-Patentanmeldung Nr. 14/060,191 mit dem Titel „High Performance Interconnect“ beschrieben werden, die hiermit durch Bezugnahme aufgenommen wird.
  • UPI kann auf vielfältige Weise von Datenverarbeitungsvorrichtungen und Systemen aufgenommen werden, darunter Zentralrechner, Serversysteme, Personal Computer, Mobil-Computer (wie etwa Tablets, Smartphones, Personal Digital Systems usw.), intelligente Geräte, Spiel- oder Unterhaltungskonsolen und Set-Top-Boxes, neben anderen Beispielen. Zum Beispiel ist unter Bezugnahme auf 19 eine Ausführungsform einer Blockdarstellung für ein Datenverarbeitungssystem abgebildet, das einen Mehrkern-Prozessor umfasst. Der Prozessor 1900 umfasst eine beliebige Prozessor- oder Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen Handheld-Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SOC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 1900 umfasst bei einer Ausführungsform mindestens zwei Kerne - Kern 1901 und 1902, die asymmetrische Kerne oder symmetrische Kerne (die dargestellte Ausführungsform) umfassen können. Der Prozessor 1900 kann jedoch eine beliebige Anzahl von Bearbeitungselementen umfassen, die symmetrisch oder asymmetrisch sein können.
  • Bei einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Thread. Beispiele für Hardware-Verarbeitungselemente wären eine Thread-Einheit, ein Thread-Slot, ein Thread, eine Prozesseinheit, ein Kontext, eine Kontexteinheit, ein logischer Prozessor, ein Hardware-Thread, ein Kern und/oder ein beliebiges anderes Element, das einen Zustand für einen Prozessor halten kann, wie etwa einen Ausführungszustand oder Architekturzustand. Anders ausgedrückt bezieht sich ein Verarbeitungselement bei einer Ausführungsform auf eine beliebige Hardware, die unabhängig Code zugeordnet werden kann, wie etwa einen Software-Thread, ein Betriebssystem, eine Anwendung oder anderen Code. Ein physischer Prozessor (oder Prozessor-Socket) bezieht sich typischerweise auf eine integrierte Schaltung, die potentiell eine beliebige Anzahl anderer Verarbeitungselemente, wie etwa Kerne oder Hardware-Threads, umfasst.
  • Ein Kern bezieht sich oft auf Logik, die sich auf einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jeder unabhängig aufrechterhaltene Architekturzustand mindestens einigen dedizierten Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread typischerweise auf eine beliebige Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei sich die unabhängig aufrechterhaltenen Architekturzustände Zugriff auf Ausführungsressourcen teilen. Es ist ersichtlich, dass, wenn bestimmte Ressourcen geteilt und andere einem Architekturzustand dediziert sind, sich die Linie zwischen der Nomenklatur eines Hardware-Threads und Kerns überlappt. Oft werden ein Kern und ein Hardware-Thread von einem Betriebssystem jedoch als individuelle logische Prozessoren angesehen, wobei das Betriebssystem in der Lage ist, auf jedem logischen Prozessor individuell Operationen einzuplanen.
  • Der physische Prozessor 1900, sowie er in 19 dargestellt ist, umfasst zwei Kerne - Kern 1901 und 1902. Kern 1901 und 1902 werden hier als symmetrische Kerne betrachtet, d.h. Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. Bei einer anderen Ausführungsform umfasst der Kern 1901 einen Außerreihenfolge-Prozessorkern, während der Kern 1902 einen In-Reihenfolge-Prozessorkern umfasst. Die Kerne 1901 und 1902 können jedoch individuell aus einer beliebigen Art von Kern ausgewählt werden, wie etwa einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der dafür ausgelegt ist, eine native ISA (Instruction Set Architecture) auszuführen, einen Kern, der dafür ausgelegt ist, eine übersetzte ISA (Instruction Set Architecture) auszuführen, einen zusammen entworfenen Kern oder einen anderen bekannten Kern. In einer heterogenen Kernumgebung (d.h. asymmetrische Kerne) kann eine gewisse Form von Übersetzung, wie etwa Binärübersetzung, benutzt werden, um Code auf einem oder beiden Kernen einzuplanen oder auszuführen. Zur weiteren Besprechung werden jedoch nachfolgend die im Kern 1901 dargestellten Funktionseinheiten weiter beschrieben, da die Einheiten in dem Kern 1902 bei der abgebildeten Ausführungsform auf ähnlich Weise arbeiten.
  • Der Kern 1901 umfasst wie abgebildet zwei Hardware-Threads 1901a und 1901b, die auch als Hardware-Thread-Slots 1901a und 1901b bezeichnet werden können. Softwareentitäten wie ein Betriebssystem betrachten deshalb bei einer Ausführungsform den Prozessor 1900 als vier getrennte Prozessoren, d.h. vier logische Prozessoren oder Verarbeitungselemente mit der Fähigkeit, vier Software-Threads gleichzeitig auszuführen. Wie oben angedeutet ist ein erster Thread Architekturzustandsregistern 1901a zugeordnet, ein zweiter Thread Architekturzustandsregistern 1901b zugeordnet, ein dritter Thread kann Architekturzustandsregistern 1902a zugeordnet sein, und ein vierter Thread kann Architekturzustandsregistern 1902b zugeordnet sein. Jedes der Architekturzustandsregister (1901a, 1901b, 1902a und 1902b) kann hier wie oben beschrieben als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten bezeichnet werden. Die Architekturzustandsregister 1901a werden wie dargestellt in den Architekturzustandsregistern 1901b repliziert, so dass individuelle Architekturzustände/Kontexte für den logischen Prozessor 1901a und den logischen Prozessor 1901b gespeichert werden können. In dem Kern 1901 können auch andere kleinere Ressourcen wie etwa Anweisungszeiger und Umbenennungslogik in dem Zuteiler- und Umbenennerblock 1930 für die Threads 1901a und 1901b repliziert sein. Einige Ressourcen wie etwa Umordnungspuffer in der Umordnungs-/Zurückzieheinheit 1935, dem ILTB 1920, Lade-/Speicherpuffern und Warteschlangen können mittels Partitionierung geteilt werden. Andere Ressourcen, wie etwa interne Vielzweckregister, Seiten-Tabellen-Basisregister, Daten-Cache auf niedriger Ebene und Daten-TLB 1915, Ausführungseinheit(en) 1940 und Teile der Außerreihenfolgeeinheit 1935 werden potentiell voll geteilt.
  • Der Prozessor 1900 umfasst oft andere Ressourcen, die voll geteilt, mittels Partitionierung geteilt oder durch/an Verarbeitungselemente dediziert sind. In 19 ist eine Ausführungsform eines rein beispielhaften Prozessors mit beispielhaften logischen Einheiten/ Ressourcen eines Prozessors dargestellt. Man beachte, dass ein Prozessor beliebige dieser Funktionseinheiten umfassen oder weglassen kann und auch beliebige andere bekannte Funktionseinheiten, Logik oder Firmware umfassen kann, die nicht abgebildet ist. Wie dargestellt umfasst der Kern 1901 einen vereinfachten repräsentativen Außerreihenfolge- bzw. OOO-Prozessorkern. Bei anderen Ausführungsformen kann jedoch ein In-Reihenfolge-Prozessor benutzt werden. Der OOO-Kern umfasst einen Verzweigungszielpuffer 1920 zur Vorhersage von Verzweigungen, die auszuführen/zu nehmen sind, und einen Anweisungsübersetzungspuffer (I-TLB) 1920 zum Speichern von Adressenübersetzungseinträgen für Anweisungen.
  • Der Kern 1901 umfasst ferner ein mit einer Abrufeinheit 1920 gekoppeltes Decodiermodul 1925 zum Decodieren abgerufener Elemente. Abruflogik umfasst bei einer Ausführungsform individuelle Sequenzierer, die den Thread-Slots 1901a bzw. 1901b zugeordnet sind. Der Kern 1901 ist gewöhnlich einer ersten ISA zugeordnet, die auf dem Prozessor 1900 ausführbare Anweisungen definiert/spezifiziert. Maschinencodeanweisungen, die Teil der ersten ISA sind, umfassen oft einen Teil der Anweisung (als Opcode bezeichnet), der eine auszuführende Anweisung oder Operation erwähnt/spezifiziert. Decodierungslogik 1925 umfasst Schaltkreise, die diese Anweisungen aus ihren Opcodes erkennen und die decodierten Anweisungen in der Pipeline zur Verarbeitung, wie durch die erste ISA definiert, weiterleiten. Wie zum Beispiel nachfolgend ausführlicher besprochen wird, umfassen die Decodierer 1925 bei einer Ausführungsform Logik, die dafür entworfen oder ausgelegt ist, spezifische Anweisungen zu erkennen, wie etwa Transaktionsanweisung. Als Folge der Erkennung durch die Decodierer 1925 unternimmt die Architektur oder der Kern 1901 spezifische vordefinierte Aktionen, um Aufgaben auszuführen, die der entsprechenden Anweisung zugeordnet sind. Es ist wichtig zu beachten, dass beliebige der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren als Reaktion auf eine einzige oder mehrere Anweisungen ausgeführt werden können; von denen einige neue oder alte Anweisungen sein können. Man beachte, dass die Decodierer 1926 bei einer Ausführungsform dieselbe ISA (oder eine Teilmenge davon) erkennen. Als Alternative erkennen in einer heterogenen Kernumgebung die Decodierer 1926 eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine distinkte ISA).
  • In einem Beispiel umfasst der Zuteiler- und Umbenennerblock 1930 einen Zuteiler zum Reservieren von Ressourcen, wie etwa Registerfiles zum Speichern von Anweisungsverarbeitungsergebnissen. Die Threads 1901a und 1901b sind jedoch potentiell zu Außerreihenfolge-Ausführung fähig, wobei der Zuteiler- und Umbenennerblock 1930 auch andere Ressourcen reserviert, wie etwa Umordnungspuffer zum Verfolgen von Anweisungsergebnissen. Die Einheit 1930 kann auch einen Registerumbenenner zum Umbenennen von Programm-/Anweisungsreferenzregistern in andere interne Register des Prozessors 1900 umfassen. Die Umordnungs-/Zurückzieheinheit 1935 umfasst Komponenten wie etwa die oben erwähnten Umordnungspuffer, Ladepuffer und Speicherpuffer zur Unterstützung von Außerreihenfolge-Ausführung und später In-Reihenfolge-Zurückziehen von Anweisungen, die außerhalb der Reihenfolge ausgeführt werden.
  • Der Einplanungs- und Ausführungseinheit(en)block 1940 umfasst bei einer Ausführungsform eine Einplanungseinheit zum Einplanen von Anweisungen/Operation auf Ausführungseinheiten. Zum Beispiel wird eine Fließkommaanweisung auf einem Port einer Ausführungseinheit eingeplant, der eine verfügbare Fließkomma-Ausführungseinheit aufweist. Den Ausführungseinheiten zugeordnete Registerfiles sind auch vorgesehen, um Informationsanweisungs-Verarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten wären eine Fließkomma-Ausführungseinheit, eine Integer-Ausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Der Daten-Cache auf niedriger Ebene und der Datenübersetzungspuffer (D-TLB) 1950 sind mit Ausführungseinheit(en) 1940 gekoppelt. Der Daten-Cache soll vor kurzem verwendete/verarbeitete Elemente, wie etwa Datenoperanden, die potentiell in Speicherkohärenzzuständen gehalten werden, speichern. Der D-TLB dient zum Speichern von neueren Übersetzungen von virtuellen/linearen in physische Adressen. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur aufweisen, um physischen Speicher in mehrere virtuelle Seiten aufzuteilen.
  • Die Kerne 1901. und 1902 teilen sich hier Zugriff auf einen auf höherer Ebene befindlichen oder weiter abgelegenen Cache, wie etwa einen der Einchip-Schnittstelle 1910 zugeordneten Second-Level-Cache. Man beachte, dass sich höhere Ebene und weiter abgelegen auf Cache-Ebenen bezieht, die von der Ausführungseinheit bzw. den Ausführungseinheiten aus zunehmen oder weiter weg kommen. Bei einer Ausführungsform ist ein Cache einer höheren Ebene ein Daten-Cache der letzten Ebene - der letzte Cache in der Speicherhierarchie auf dem Prozessor 1900 -, wie etwa ein Daten-Cache der zweiten oder dritten Ebene. Cache höherer Ebenen ist jedoch nicht darauf beschränkt, da er einem Anweisungscache zugeordnet sein oder diesen umfassen kann. Ein Trace-Cache - eine Art von Anweisungscache - kann stattdessen nach dem Decodierer 1925 zum Speichern von zuletzt decodierten Traces gekoppelt sein. Eine Anweisung bezieht sich hier potentiell auf eine Makroanweisung (d.h. eine durch die Decodierer erkannte allgemeine Anweisung), die zu einer Anzahl von Mikroanweisungen (Mikrooperationen) decodiert werden kann.
  • In der abgebildeten Konfiguration umfasst der Prozessor 1900 auch ein On-Chip-Schnittstellenmodul 1910. Ein Speichercontroller, der nachfolgend ausführlicher beschrieben wird, war traditionell in einem Computersystem außerhalb des Prozessors 1900 enthalten. In diesem Szenario soll die On-Chip-Schnittstelle 1910 mit Vorrichtungen außerhalb des Prozessors 1900, wie etwa Systemspeicher 1975, einem Chipsatz (der oft einen Speichercontroller-Hub zur Verbindung mit dem Speicher 1975 und einen E/A-Controller-Hub zur Verbindung von Peripherievorrichtungen umfasst), einem Speichercontroller-Hub, einer Northbridge oder einer anderen integrierten Schaltung, kommunizieren. Und in diesem Szenario kann der Bus 1905 ein beliebiges bekanntes Verbindungselement umfassen, wie etwa einen Mehrfachabgriff-Bus, ein Punkt-zu-Punkt-Verbindungselement, ein serielles Verbindungselement, einen parallelen Bus, einen kohärenten (z.B. Cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen Differenz-Bus und einen GTL-Bus.
  • Der Speicher 1975 kann dem Prozessor 1900 dediziert oder mit anderen Vorrichtungen in einem System geteilt sein. Übliche Beispiele für Arten von Speicher 1975 wären DRAM, SRAM, nichtflüchtiger Speicher (NV-Speicher) und andere bekannte Speicherungsvorrichtungen. Man beachte, dass die Vorrichtung 1980 einen Grafikbeschleuniger, einen Grafikprozessor oder eine Grafikkarte, der bzw. die mit einem Speichercontroller-Hub gekoppelt ist, mit einem E/A-Controller-Hub gekoppelte Datenspeicherung, einen drahtlosen Sendeempfänger, eine Flash-Vorrichtung, einen Audiocontroller, einen Netzwerkcontroller oder eine andere bekannte Vorrichtung umfassen kann.
  • In letzter Zeit können diese Vorrichtungen jedoch, wenn mehr Logik und Vorrichtungen auf einem einzigen Chip wie etwa einem SOC integriert werden, jeweils auf dem Prozessor 1900 integriert werden. Zum Beispiel befindet sich bei einer Ausführungsform ein Speichercontroller-Hub auf derselben Kapselung oder demselben Chip mit dem Prozessor 1900. Ein Teil des Kerns (ein Auf-Kern-Teil) 1910 umfasst einen oder mehrere Controller als Schnittstelle mit anderen Vorrichtungen, wie etwa Speicher 1975 oder einer Grafikvorrichtung 1980. Die Konfiguration mit einem Verbindungselement und Controllern zur Bildung einer Schnittstelle mit solchen Vorrichtungen wird oft als ein Auf-Kern (oder Un-Kern-Konfiguration) bezeichnet. Beispielsweise umfasst die On-Chip-Schnittstelle 1910 ein Ringverbindungselement zur On-Chip-Kommunikation und eine schnelle serielle Punkt-zu-Punkt-Verbindung 1905 zur Kommunikation außerhalb des Chips. In der SOC-Umgebung können jedoch sogar noch mehr Vorrichtungen, wie etwa die Netzwerkschnittstelle, Coprozessoren, Speicher 1975, Grafikprozessor 1980 und beliebige andere bekannte Computervorrichtungen/Schnittstellen auf einem einzigen Chip oder einer einzigen integrierten Schaltung integriert werden, um einen kleinen Formfaktor mit viel Funktionalität und wenig Stromverbrauch bereitzustellen.
  • Bei einer Ausführungsform kann der Prozessor 1900 einen Compiler, Optimierung und/oder Übersetzercode 1977 ausführen, um Anwendungscode 1976 zu compilieren, zu übersetzen und/oder zu optimieren, um die hier beschriebenen Vorrichtungen und Verfahren zu unterstützen oder eine Schnittstelle damit zu bilden. Ein Compiler umfasst oft ein Programm oder eine Menge von Programmen zum Übersetzen von Quelltext/-Code in Zieltext/-Code. Compilierung von Programm-/Anwendungscode mit einem Compiler geschieht gewöhnlich in mehreren Phasen und Durchgängen, um einen Programmiersprachencode auf hoher Ebene in Maschinen- oder Assemblersprachencode auf niedriger Ebene zu transformieren. Compiler mit einem Durchgang können jedoch immer noch für simple Compilierung verwendet werden. Ein Compiler kann beliebige bekannte Compilierungstechniken verwenden und beliebige bekannte Compileroperationen ausführen, wie etwa lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codeerzeugung, Codetransformierung und Codeoptimierung.
  • Große Compiler umfassen oft mehrere Phasen, aber am häufigsten sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) einem Frontend, d.h. im Allgemeinen wo syntaktische Verarbeitung, semantische Verarbeitung und gewisse Transformierung/ Optimierung stattfinden können, und (2) ein Backend, d.h. allgemein wo Analyse, Transformationen, Optimierungen und Codeerzeugung stattfinden. Einige Compiler beziehen sich auf eine Mitte, die die unscharfe Grenze zwischen einem Frontend und Backend eines Compilers veranschaulicht. Erwähnung von Einfügung, Assoziation, Erzeugung oder einer anderen Operation eines Compilers kann folglich in einer beliebigen der oben erwähnten Phasen oder Durchgängen stattfinden, und auch in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers. Als ein Anschauungsbeispiel fügt ein Compiler potentiell Operationen, Aufrufe, Funktionen usw. in einer oder mehreren Phasen der Compilierung ein, wie etwa Einfügung von Aufrufen/Operationen in einer Frontend-Phase der Compilierung, und dann Transformation der Aufrufe/Operationen in Code niedrigerer Ebene während einer Transformationsphase. Man beachte, dass während der dynamischen Compilierung Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen sowie den Code für die Ausführung während der Laufzeit optimieren kann. Als ein spezifisches Anschauungsbeispiel kann Binärcode (bereits compilierter Code) während der Laufzeit dynamisch optimiert werden. Der Programmcode kann hier den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon umfassen.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie etwa ein Binärübersetzer, Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Erwähnung der Ausführung von Code, Anwendungscode, Programmcode oder einer anderen Softwareumgebung kann sich deshalb auf Folgendes beziehen: (1) Ausführung eines oder mehrerer Compilerprogramme, Optimierungscode-Optimierers oder Übersetzers entweder dynamisch oder statisch, um Programmcode zu compilieren, um Softwarestrukturen zu warten, um andere Operationen auszuführen, um Code zu optimieren oder um Code zu übersetzen; (2) Ausführung von Hauptprogrammcode, einschließlich Operationen/Aufrufe, wie etwa Anwendungscode, der optimiert/compiliert wurde; (3) Ausführung von anderem Programmcode, wie etwa Bibliotheken, der mit dem Hauptprogrammcode assoziiert ist, um Softwarestrukturen zu warten, um andere softwarebezogene Operationen auszuführen oder um Code zu optimieren; oder (4) eine Kombination davon.
  • Nunmehr mit Bezug auf 20 ist eine Blockdarstellung einer Ausführungsform eines Mehrkernprozessors gezeigt. Wie in der Ausführungsform von 20 gezeigt, umfasst der Prozessor 2000 mehrere Domänen. Speziell umfasst eine Kerndomäne 2030 mehrere Kerne 2030A-2030N, eine Grafikdomäne 2060 eine oder mehrere Grafik-Engines mit einer Medien-Engine 2065 und einer Systemagent-Domäne 2010.
  • Bei verschiedenen Ausführungsformen geht die Systemagent-Domäne 2010 mit Stromversorgungssteuerereignissen und Stromversorgungsverwaltung um, so dass einzelne Einheiten der Domäne 2030 und 2060 (z.B. Kerne und/oder Grafik-Engines) unabhängig steuerbar sind, um im Hinblick auf die Aktivität (oder Inaktivität), die in der gegebenen Einheit auftritt, dynamisch in einem geeigneten Stromversorgungsmodus/-niveau (z.B. aktiv, Turbo, Schlaf, Hibernation, Tiefschlaf oder ein anderer Zustand ähnlich der fortschrittlichen Konfigurationsstromversorgungsschnittstelle). Jede der Domänen 2030 und 2060 kann mit einer anderen Spannung und/oder Stromversorgung arbeiten und ferner arbeiten die einzelnen Einheiten in den Domänen jeweils potentiell mit einer unabhängigen Frequenz und Spannung. Es ist zu beachten, dass der Schutzumfang der vorliegenden Offenbarung, obwohl sie nur mit drei Domänen gezeigt ist, in dieser Hinsicht nicht beschränkt ist und bei anderen Ausführungsformen zusätzliche Domänen anwesend sein können.
  • Wie gezeigt umfasst jeder Kern 2030 ferner Caches auf niedriger Ebene zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen. Die verschiedenen Kerne sind hier miteinander und mit einem geteilten Cache-Speicher gekoppelt, der aus mehreren Einheiten oder Slices eines LLC (Last Level Cache) 2040A-2040N gebildet ist; diese LLC umfassen oft Speicherungs- und Cache-Controllerfunktionalität und werden unter den Kernen geteilt, sowie potentiell auch unter der Grafik-Engine.
  • Es ist ersichtlich, dass ein Ringverbindungselement 2050 die Kerne miteinander koppelt und über mehrere Ringstellen 2052A-2052N jeweils an einer Kopplung zwischen einem Kern und LLC-Slice Verbindung zwischen der Kerndomäne 2030, der Grafikdomäne 2060 und Systemagentschaltkreisen 2010 bereitstellt. Wie in 20 zu sehen ist, wird das Verbindungselement 2050 zum Führen verschiedener Informationen verwendet, darunter Adresseninformationen, Dateninformationen, Bestätigungsinformationen und Snoop-/Ungültig-Informationen. Obwohl ein Ringverbindungselement dargestellt ist, kann ein beliebiges auf dem Chip befindliches Verbindungselement oder Koppelfeld benutzt werden. Als ein Anschauungsbeispiel können einige der oben besprochenen Koppelfelder (z.B. ein anderes auf dem Chip befindliches Verbindungselement, ein OSF (On-Chip System Fabric), ein AMBA-Verbindungselement (Advanced Microcontroller Bus Architecture), ein mehrdimensionales Maschenkoppelfeld oder eine beliebige andere bekannte Verbindungselementarchitektur) auf ähnliche Weise benutzt werden.
  • Wie ferner abgebildet umfasst die Systemagentdomäne 2010 eine Anzeige-Engine 2012, die Steuerung und eine Schnittstelle zu einer zugeordneten Anzeige bereitstellen soll. Die Systemagentdomäne 2010 kann andere Einheiten umfassen, wie etwa einen integrierten Speichercontroller 2020, der eine Schnittstelle zu einem Systemspeicher (z.B. einen mit mehreren DIMM implementierten DRAM) bereitstellt; Kohärenzlogik 2022 zum Ausführen von Speicherkohärenzoperationen. Es können mehrere Schnittstellen anwesend sein, um Verbindung zwischen dem Prozessor und anderen Schaltkreisen zu ermöglichen. Zum Beispiel wird bei einer Ausführungsform mindestens eine Direktmedienschnittstelle (DMI) 2016 sowie eine oder mehrere PCIe™-Schnittstellen 2014 bereitgestellt. Die Anzeige-Engine und diese Schnittstellen sind typischerweise über eine PCIe™-Brücke 2018 mit Speicher gekoppelt. Weiterhin können zur Bereitstellung von Kommunikation zwischen anderen Agenten, wie etwa zusätzlichen Prozessoren oder anderen Schaltkreisen, eine oder mehrere andere Schnittstellen vorgesehen werden.
  • Nunmehr mit Bezug auf 21 ist eine Blockdarstellung eines zweiten Systems 2000 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie in 21 gezeigt, ist das Mehrprozessorsystem 2100 ein Punkt-zu-Punkt-Verbindungselementsystem und umfasst einen ersten Prozessor 2170 und einen zweiten Prozessor 2180, die über ein Punkt-zu-Punkt-Verbindungselement 2150 gekoppelt sind. Jeder der Prozessoren 2170 und 2180 kann eine bestimmte Version eines Prozessors sein. Bei einer Ausführungsform sind 2152 und 2154 Teil eines seriellen kohärenten Punkt-zu-Punkt-Verbindungselement-Koppelfelds, wie etwa einer hochleistungsfähigen Architektur. Folglich können die hier beschriebenen Konzepte in der UPI-Architektur implementiert werden.
  • Obwohl sie mit nur zwei Prozessoren 2170, 2180 gezeigt ist, versteht sich, dass der Schutzumfang der vorliegenden Offenbarung nicht darauf beschränkt ist. Bei anderen Ausführungsformen können in einem gegebenen Prozessor ein oder mehrere zusätzliche Prozessoren anwesend sein.
  • Die Prozessoren 2170 und 2180 sind als integrierte Speichercontrollereinheiten 2172 bzw. 2182 umfassend gezeigt. Der Prozessor 2170 umfasst außerdem als Teil seiner Buscontrollereinheiten Punkt-zu-Punkt- bzw. P-P-Schnittstellen 2176 und 2178; ähnlich umfasst der zweite Prozessor 2180 P-P-Schnittstellen 2186 und 2188. Die Prozessoren 2170, 2180 können über eine Punkt-zu-Punkt- bzw. P-P-Schnittstelle 2150 unter Verwendung von P-P-Schnittstellenschaltungen 2178, 2188 Informationen austauschen. Wie in 21 gezeigt, koppeln die IMC 2172 und 2182 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 2132 und einem Speicher 2134, die Teile von lokal an die jeweiligen Prozessoren angeschlossenem Hauptspeicher sein können.
  • Die Prozessoren 2170, 2180 tauschen jeweils Informationen über individuelle P-P-Schnittstellen 2152, 2154 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 2176, 2194, 2186, 2198 mit einem Chipsatz 2190 aus. Der Chipsatz 2190 tauscht auch über eine Schnittstellenschaltung 2192 entlang einem hochleistungsfähigen Grafikverbindungselement 2139 Informationen mit einer hochleistungsfähigen Grafikschaltung 2138 aus.
  • Ein (nicht gezeigter) geteilter Cache kann entweder im Prozessor oder außerhalb beider Prozessoren enthalten sein; aber dennoch mit den Prozessoren über P-P-Verbindungselement verbunden, so dass lokale Cache-Informationen jedes Prozessors oder beider Prozessoren in dem geteilten Cache gespeichert werden können, wenn ein Prozessor in einen energiesparenden Modus versetzt wird.
  • Der Chipsatz 2190 kann über eine Schnittstelle 2196 mit einem ersten Bus 2116 gekoppelt sein. Bei einer Ausführungsform kann der erste Bus 2116 ein PCI-Bus (Peripheral Component Interconnect) oder ein Bus, wie etwa ein PCI-Express-Bus, oder ein anderer E/A-Verbindungselementbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Offenbarung nicht darauf beschränkt ist.
  • Wie in 21 gezeigt, sind verschiedene E/A-Vorrichtungen 2114 mit dem ersten Bus 2116 gekoppelt, zusammen mit einer Busbrücke 2118, die den ersten Bus 2116 mit einem zweiten Bus 2120 koppelt. Bei einer Ausführungsform umfasst der zweite Bus 2120 einen LPC-Bus (Low Pin Count). Es sind verschiedene Vorrichtungen mit dem zweiten Bus 2120 gekoppelt, darunter zum Beispiel bei einer Ausführungsform eine Tastatur und/oder eine Maus 2122, Kommunikationsvorrichtungen 2127 und eine Speicherungseinheit 2128, wie etwa ein Laufwerk oder eine andere Massenspeicherungsvorrichtung, die oft Anweisungen/Code und Daten 2130 umfasst. Ferner ist eine Audio-E/A 2124 mit dem zweiten Bus 2120 gekoppelt gezeigt. Man beachte, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Verbindungselementarchitekturen unterschiedlich sind. Anstelle der Punkt-zu-Punkt-Architektur von 21 kann zum Beispiel ein System einen Mehrfachabkopplungsbus oder eine andere solche Architektur implementieren.
  • Obwohl die vorliegenden Konzepte mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurden, sind für Fachleute zahlreiche Modifikationen und Varianten daraus ersichtlich. Es ist beabsichtigt, dass die angefügten Ansprüche alle Modifikationen und Varianten abdecken, die in den wahren Gedanken und Schutzumfang der vorliegenden Offenbarung fallen.
  • Ein Entwurf kann verschiedene Phasen durchlaufen, von der Erzeugung zur Simulation bis zur Herstellung. Einen Entwurf repräsentierende Daten können den Entwurf auf eine Anzahl von Weisen repräsentieren. Erstens kann, sowie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache (HDL) oder einer anderen funktionalen Beschreibungssprache repräsentiert werden. Außerdem kann ein Modell auf Schaltungsebene mit Logik und/oder Transistorgattern in einigen Phasen des Entwurfsprozesses produziert werden. Ferner erreichen die meisten Entwürfe in einer bestimmten Phase eine Ebene von Daten, die die physische Platzierung verschiedener Vorrichtungen im Hardwaremodell repräsentieren. Falls herkömmliche Halbleiter-Herstellungstechniken verwendet werden, können die das Hardwaremodell repräsentierenden Daten die Daten sein, die Anwesenheit oder Abwesenheit verschiedener Merkmale auf verschiedenen Maskenschichten für zum Produzieren der integrierten Schaltung verwendete Masken spezifizieren. Bei einigen Implementierungen können solche Daten in einem Datenbank-Dateiformat gespeichert werden, wie etwa GDS II (Graphic Data System II), OASIS (Open Artwork System Interchange Standard) oder einem ähnlichen Format.
  • Bei einigen Implementierungen können auf Software basierende Hardwaremodelle und HDL und andere funktionale Beschreibungssprachenobjekte neben anderen Beispielen Dateien der Registertransfersprache (RTL) umfassen. Solche Objekte können maschinenparsbar sein, so dass ein Entwicklungswerkzeug das HDL-Objekt (oder -Modell) annehmen, das HDL-Objekt auf Attribute der beschriebenen Hardware parsen und aus dem Objekt eine physische Schaltung und/oder ein Layout auf dem Chip bestimmen kann. Die Ausgabe des Entwicklungswerkzeugs kann zur Herstellung der physischen Vorrichtung verwendet werden. Zum Beispiel kann ein Entwicklungswerkzeug Konfigurationen verschiedener Hardware- und/oder Firmwareelemente aus dem HDL-Objekt bestimmen, wie etwa Busbreiten, Register (einschließlich Größe und Typen), Speicherblöcke, physische Verbindungspfade, Koppelfeldtopologien, neben anderen Attributen, die implementiert werden würden, um das in dem HDL-Objekt modellierte System zu realisieren. Entwicklungswerkzeuge können Werkzeuge zur Bestimmung der Topologie und Koppelfeldkonfigurationen eines Systems auf einem Chip (SoC) und anderer Hardwarevorrichtungen umfassen. In einigen Fällen kann das HDL-Objekt als Grundlage für die Entwicklung von Modellen und Entwurfsdateien verwendet werden, die Herstellungsgeräte zur Herstellung der beschriebenen Hardware verwenden können. Tatsächlich kann ein HDL-Objekt selbst als Eingabe in Herstellungssystemsoftware bereitgestellt werden, um die beschriebene Hardware zu bewirken.
  • In jeder Repräsentation des Entwurfs können die Daten in einer beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Das maschinenlesbare Medium zum Speichern von Informationen, die über optische oder elektrische Welle, die zum Senden solcher Informationen moduliert oder anderweitig erzeugt wird, gesendet werden, kann ein Speicher oder eine magnetische oder optische Speicherung, wie etwa ein Datenträger, sein. Wenn eine elektrische Trägerwelle, die den Code oder Entwurf angibt oder führt, gesendet wird, wird, soweit Kopieren, Pufferung oder Neuübertragung des elektrischen Signals durchgeführt wird, eine neue Kopie hergestellt. Somit kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem greifbaren maschinenlesbaren Medium mindestens vorrübergehend einen Artikel, wie etwa in eine Trägerwelle codierte Informationen, speichern, wodurch Techniken von Ausführungsformen der vorliegenden Offenbarung realisiert werden.
  • Ein Modul, sowie es hier verwendet wird, bezieht sich auf eine beliebige Kombination von Hardware, Software und/oder Firmware. Beispielsweise umfasst ein Modul Hardware, wie etwa einen Mikrocontroller, die einem nichttransitorischen Medium zugeordnet ist, um Code zu speichern, der dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden. Erwähnung eines Moduls bezieht sich deshalb bei einer Ausführungsform auf die Hardware, die speziell dafür ausgelegt ist, den auf einem nichttransitorischen Medium zu haltenden Code zu erkennen und/oder auszuführen. Ferner bezieht sich bei einer anderen Ausführungsform Verwendung eines Moduls auf das nichttransitorische Medium, das den Code umfasst, der speziell dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und wie geschlussfolgert werden kann, kann sich bei einer weiteren Ausführungsform der Ausdruck Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nichttransitorischen Mediums beziehen. Modulgrenzen, die als getrennt dargestellt sind, variieren oft gemeinhin und überlappen sich potentiell. Zum Beispiel können sich ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während potentiell einige unabhängige Hardware, Software oder Firmware beibehalten wird. Bei einer Ausführungsform umfasst die Verwendung des Ausdrucks Logik Hardware wie Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung der Phrase „ausgelegt zum“ bezieht sich bei einer Ausführungsform auf Anordnen, Zusammenstellen, Herstellen, zum Verkauf anbieten, Importieren und/oder Entwerfen von einer Vorrichtung, Hardware, Logik oder einem Element zur Ausführung einer designierten oder bestimmten Aufgabe. Eine Vorrichtung oder ein Element davon, das nicht arbeitet, ist in diesem Beispiel immer noch „ausgelegt zum“ Ausführen einer designierten Aufgabe, wenn sie bzw. es dafür entworfen, gekoppelt und/oder verbunden ist, die designierte Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Aber ein Logikgatter das „ausgelegt ist zum“ Bereitstellen eines Freigabesignals für einen Takt umfasst nicht jedes potentielle Logikgatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter ein solches, das auf gewisse Weise gekoppelt ist, so dass während des Betriebs die Ausgabe 1 oder 0 den Takt freigeben soll. Man beachte wieder, dass die Verwendung des Ausdrucks „ausgelegt zum“ keine Funktion erfordert, stattdessen aber Fokus auf dem latenten Zustand einer Vorrichtung, von Hardware und/oder eines Elements liegt, wobei die Vorrichtung, die Hardware und/oder das Element im latenten Zustand dafür gedacht ist, eine bestimmte Aufgabe auszuführen, wenn die Vorrichtung, die Hardware und/oder das Element arbeitet.
  • Ferner bezieht sich die Verwendung der Phrasen „zum,“ „fähig zum“ und/oder „betreibbar zum“ bei einer Ausführungsform auf eine bestimmte Vorrichtung, bestimmte Logik, bestimmte Hardware und/oder ein bestimmtes Element, die so ausgelegt sind, dass Verwendung der Vorrichtung, der Logik, der Hardware und/oder des Elements auf spezifizierte Weise ermöglicht wird. Man beachte, dass sich oben die Verwendung von zum, fähig zum oder betreibbar zum bei einer Ausführungsform auf den latenten Zustand einer Vorrichtung, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, die Logik, die Hardware und/oder das Element nicht arbeitet, aber so entworfen ist, dass Verwendung einer Vorrichtung auf spezifizierte Weise ermöglicht wird.
  • Ein Wert umfasst im vorliegenden Gebrauch jede bekannte Repräsentation einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Die Verwendung von Logikpegeln, Logikwerten oder logischen Werten wird oft als len und 0en bezeichnet, was einfach binäre Logikzustände repräsentiert. Zum Beispiel bezieht sich eine 1 auf einen hohen Logikpegel und 0 auf einen niedrigen Logikpegel. Bei einer Ausführungsform kann eine Speicherungszelle, wie etwa ein Transistor oder eine Flash-Zelle, in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Es wurden jedoch andere Repräsentationen von Werten in Computersystemen verwendet. Zum Beispiel kann die Dezimalzahl 10 auch als ein Binärwert von 1010 und ein hexadezimaler Buchstabe A repräsentiert werden. ein Wert umfasst deshalb jede Repräsentation von Informationen, die in einem Computersystem gehalten werden kann.
  • Außerdem können Zustände durch Werte oder Teile von Werten repräsentiert werden. Beispielsweise kann ein erster Wert, wie etwa eine logische 1, einen Vorgabe- oder anfänglichen Zustand repräsentieren, während ein zweiter Wert, wie etwa eine logische 0, einen Nicht-Vorgabezustand repräsentieren kann. Außerdem beziehen sich die Ausdrücke Rücksetzen und Setzen bei einer Ausführungsform jeweils auf einen Vorgabe- und einen aktualisierten Wert oder Zustand. Zum Beispiel umfasst ein Vorgabewert potentiell einen hohen logischen Wert, d.h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert, d.h. Setzen, umfasst. Man beachte, dass jede Kombination von Werten benutzt werden kann, um jede Anzahl von Zuständen zu repräsentieren.
  • Die oben dargelegten Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über Anweisungen oder Code implementiert werden, die bzw. der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind/ist, die durch ein Verarbeitungselement ausführbar sind. Ein nichttransitorisches maschinenzugängliches/-lesbares Medium umfasst einen beliebigen Mechanismus, der Informationen in einer durch eine Maschine, wie etwa einen Computer oder ein Elektroniksystem, lesbarer Form bereitstellt (d.h. speichert und/oder sendet). Ein nichttransitorisches maschinenzugängliches Medium wäre zum Beispiel Direktzugriffsspeicher (RAM), wie etwa statischer RAM (SRAM) oder dynamischer RAM (DRAM); ROM; ein magnetisches oder optisches Speicherungsmedium; Flash-Speichervorrichtungen; elektrische Speicherungsvorrichtungen; optische Speicherungsvorrichtungen, akustische Speicherungsvorrichtungen; oder eine andere Form von Speicherungsvorrichtungen zum Halten von Informationen, die aus transitorischen (propagierten) Signalen (z.B. Trägerwellen, Infrarotsignalen, Digitalsignalen) empfangen werden; usw., die von den nichttransitorischen Medien zu unterscheiden sind, die Informationen von dort empfangen können.
  • Anweisungen, die zum Programmieren von Logik zum Ausführen von Ausführungsformen der Offenbarung verwendet werden, können in einem Speicher im System, wie etwa DRAM, Cache, Flash-Speicher oder anderer Speicherung, gespeichert werden. Ferner können die Anweisungen über ein Netzwerk oder mittels anderer computerlesbarer Medien verteilt werden. Ein maschinenlesbares Medium kann somit einen beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer durch eine Maschine (z.B. einen Computer) lesbaren Form umfassen, aber ist nicht beschränkt auf Disketten, optische Datenträger, CD-ROMs (Compact Disks, Read-Only Memory) und magnetooptische Datenträger, ROMs (Festwertspeicher), RAM (Direktzugriffsspeicher), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), magnetische oder optische Karten, Flash-Speicher oder eine greifbare, maschinenlesbare Speicherung, die bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen propagierter Signale (z.B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) verwendet werden. Das computerlesbare Medium umfasst dementsprechend eine beliebige Art von greifbarem maschinenlesbarem Medium, das zum Speichern oder Senden von elektronischen Anweisungen oder Informationen in einer durch eine Maschine (z.B. einen Computer) lesbaren Form geeignet ist.
  • Die folgenden Beispiele betreffen Ausführungsformen gemäß der vorliegenden Patentschrift. Eine oder mehrere Ausführungsformen können ein Verfahren, ein System, eine maschinenlesbare Speicherung, ein maschinenlesbares Medium und eine Vorrichtung mit einer Redriver-Vorrichtung zum Empfangen von Signalen von einer ersten Vorrichtung und weiterleiten der Signale zu einer zweiten Vorrichtung auf einer Differenz-Verbindung, Detektionsschaltkreise zum Detektieren der Anwesenheit der zweiten Vorrichtung auf der Verbindung durch Detektieren einer aus Abschluss der zweiten Vorrichtung auf der Verbindung erzeugten Pulldown-Spannung und Pulldown-Weiterleitungsschaltkreise zum Erzeugen einer emulierten Version der Pulldown-Spannung der zweiten Vorrichtung auf Anschlüssen zur Verbindung mit der ersten Vorrichtung als Reaktion auf Detektion der Anwesenheit der zweiten Vorrichtung auf der Verbindung umfassen.
  • In einem Beispiel entspricht die emulierte Spannung einer Spannung, die durch die erste Vorrichtung identifizierbar ist, um zu bestimmen, dass die zweite Vorrichtung auf der Verbindung anwesend ist.
  • In einem Beispiel entspricht die emulierte Spannung einer für einen Empfänger-Detektions-Verbindungszustand definierten Spannung.
  • In einem Beispiel soll die emulierte Spannung einen Übergang von dem Empfänger-Detektions-Verbindungszustand zu einem anderen in einem Verbindungsautomaten definierten Verbindungszustand bewirken.
  • In einem Beispiel umfasst der andere Verbindungszustand einen anderen Verbindungs-Trainingszustand vor dem Eintritt in den aktiven Verbindungszustand.
  • In einem Beispiel unterbricht die Redriver-Vorrichtung elektrische Ausbreitung in der Pulldown-Spannung von der zweiten Vorrichtung zu der ersten Vorrichtung auf der Verbindung.
  • In einem Beispiel umfasst der Redriver einen wechselstromgekoppelten Redriver, und jede der ersten und zweiten Vorrichtung umfasst gleichstromgekoppelte Vorrichtungen.
  • In einem Beispiel umfassen die Pulldown-Spannung und die emulierte Pulldown-Spannung jeweils Gleichspannungen.
  • In einem Beispiel umfasst die emulierte Pulldown-Spannung einen Spannungsimpuls mit einer entsprechenden Zeitkonstante.
  • In einem Beispiel umfasst die emulierte Pulldown-Spannung ein im Wesentlichen stationäres Gleichstromsignal.
  • In einem Beispiel werden ein erster Wechselstrom-Koppelkondensator auf einer Empfangsseite des Redrivers und ein zweiter Wechselstrom-Koppelkondensator auf einer Sendeseite des Redrivers vorgesehen.
  • In einem Beispiel sind der erste und/oder der zweite Wechselstrom-Koppelkondensator in die Redriver-Vorrichtung integriert.
  • In einem Beispiel umfassen die Pulldown-Weiterleitungsschaltkreise zwei oder mehr Pulldown-Widerstände zur Erzeugung der Spannung und entsprechende Schalter zum Ermöglichen der Erzeugung der emulierten Pulldown-Spannung als Reaktion auf die Detektion der Pulldown-Spannung der zweiten Vorrichtung unter Verwendung der Detektionsschaltkreise.
  • In einem Beispiel sind die Pulldown-Weiterleitungsschaltkreise mit den Detektionsschaltkreisen gekoppelt.
  • In einem Beispiel umfasst der zweite Wechselstrom-Koppelkondensator zwei oder mehr Kondensatoren, und die Detektionsschaltkreise umfassen zwei oder mehr Pullup-Widerstände, zwei oder mehr zweite Widerstände zur Bildung eines Spannungsteilers mit den zwei oder mehr Pullup-Widerständen und zwei oder mehr konkrete Widerstände, die mit den zwei oder mehr zweiten Wechselstrom-Koppelkondensatoren parallel geschaltet sind, um einen Gleichstrompfad um die zweiten Wechselstrom-Koppelkondensatoren während eines Detektionsmodus bereitzustellen.
  • In einem Beispiel bewirkt der Spannungsteiler die Erzeugung eines Signals, um die Pulldown-Weiterleitungsschaltkreise als Reaktion der Detektion der Pulldown-Spannung freizugeben.
  • In einem Beispiel wird mindestens ein Teil der Detektionsschaltkreise oder der Pulldown-Weiterleitungsschaltkreise außerhalb eines Chips der Redriver-Vorrichtung vorgesehen.
  • In einem Beispiel werden die Detektionsschaltkreise und die Pulldown-Weiterleitungsschaltkreise auf dem Chip der Redriver-Vorrichtung vorgesehen.
  • Eine oder mehrere Ausführungsformen können ein Verfahren, ein System, eine maschinenlesbare Speicherung, ein maschinenlesbares Medium und eine Vorrichtung mit wechselstromgekoppelten Redriver-Schaltkreisen zum Empfangen von Signalen an Eingangsanschlüssen von einer ersten Endpunktvorrichtung auf einer Verbindung, verstärken der empfangenen Signale und Weiterleiten der verstärkten Signale auf Ausgangsanschlüssen umfassen. Es können Detektionsschaltkreise vorgesehen werden, um Gleichstrom-Pulldown-Spannungen an den Ausgangsanschlüssen entsprechend Abschluss einer zweiten Endpunktvorrichtung auf der Verbindung zu detektieren. Es können Pulldown-Weiterleitungsschaltkreise vorgesehen werden, um eine emulierte Pulldown-Spannung entsprechend einem Empfängerdetektionszustand als Reaktion auf Detektion einer Instanz der Pulldown-Spannung zu erzeugen, wobei die Pulldown-Spannung an den Eingangsanschlüssen erzeugt wird, um in dem Empfängerdetektionszustand durch die erste Endpunktvorrichtung detektiert zu werden.
  • Eine oder mehrere Ausführungsformen können ein System bereitstellen, umfassend: eine gleichstromgekoppelte erste Vorrichtung und einen mit der ersten Vorrichtung auf einer Differenz-Verbindung verbundenen wechselstromgekoppelten Redriver, wobei der Redriver Folgendes umfasst: Detektionsschaltkreise zum Detektieren einer zweiten Vorrichtung zur Kommunikation mit der ersten Vorrichtung unter Verwendung der Verbindung, wobei die Detektionsschaltkreise eine Pulldown-Spannung detektieren, die Anwesenheit der zweiten Vorrichtung angibt; und Pulldown-Weiterleitungsschaltkreise zur Erzeugung einer emulierten Version der Pulldown-Spannung als Reaktion auf Detektion der Pulldown-Spannung zur Anlegung an die erste Vorrichtung auf der Verbindung, wobei die emulierte Version der Pulldown-Spannung eine Gleichspannung sein kann, die durch die erste Vorrichtung identifizierbar ist, um zu bestimmen, dass die zweite Vorrichtung anwesend ist.
  • In einem Beispiel umfasst die erste Vorrichtung Automatenlogik, um während eines Empfänger-Detektionszustands zu bestimmen, ob die zweite Vorrichtung anwesend ist, und der Empfänger-Detektionszustand einer von mehreren Verbindungs-Konfigurationszuständen ist.
  • In einem Beispiel soll die Automatenlogik ferner die Verbindung für Hochgeschwindigkeitskommunikation zwischen der ersten und zweiten Vorrichtung initialisieren.
  • In einem Beispiel umfasst das System auch die zweite Vorrichtung.
  • In einem Beispiel ist die zweite Vorrichtung hot-pluggable.
  • Die Erwähnung von „einer Ausführungsform“ oder „eine Ausführungsform“ bedeutet in der gesamten vorliegenden Patentschrift, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Das Erscheinen der Phrasen „bei einer Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in der ganzen vorliegenden Patentschrift bezieht sich somit nicht unbedingt immer auf dieselbe Ausführungsform. Ferner können die konkreten Merkmale, Strukturen oder Charakteristiken in einer oder mehreren Ausführungsformen auf beliebige geeignete Weise kombiniert werden.
  • In der obigen Patentschrift wurde eine ausführliche Beschreibung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch ersichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem allgemeineren Wesen und Schutzumfang der in den angefügten Ansprüchen dargelegten Offenbarung abzuweichen. Die Patenschrift und Zeichnungen sind dementsprechend nicht im einschränkenden Sinne, sondern im veranschaulichenden Sinne aufzufassen. Ferner bezieht sich die obige Verwendung von Ausführungsform- und anderer beispielhafter Sprache nicht unbedingt auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich auf verschiedene und distinkte Ausführungsformen sowie potentiell dieselbe Ausführungsform beziehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62194081 [0001]
    • US 14/865682 [0001]
    • US 14060191 [0136]

Claims (29)

  1. Vorrichtung, umfassend: eine Redriver-Vorrichtung zum Empfangen von Signalen von einer ersten Vorrichtung und Weiterleiten der Signale zu einer zweiten Vorrichtung auf einer Differenz-Verbindung; Detektionsschaltkreise zum Detektieren der Anwesenheit der zweiten Vorrichtung auf der Verbindung, wobei Detektieren der Anwesenheit der zweiten Vorrichtung Detektieren einer aus Abschluss der zweiten Vorrichtung auf der Verbindung erzeugten Pulldown-Spannung umfasst; und Pulldown-Weiterleitungsschaltkreise zur Erzeugung einer emulierten Version der Pulldown-Spannung der zweiten Vorrichtung an Anschlüssen zur Verbindung mit der ersten Vorrichtung als Reaktion auf Detektion von Anwesenheit der zweiten Vorrichtung auf der Verbindung.
  2. Vorrichtung nach Anspruch 1, wobei die emulierte Spannung einer Spannung entspricht, die durch die erste Vorrichtung identifizierbar ist, um zu bestimmen, dass die zweite Vorrichtung auf der Verbindung anwesend ist.
  3. Vorrichtung nach Anspruch 2, wobei die emulierte Spannung einer für einen Empfänger-Detektions-Verbindungszustand definierten Spannung entspricht.
  4. Vorrichtung nach Anspruch 3, wobei die emulierte Spannung einen Übergang von dem Empfänger-Detektions-Verbindungszustand zu einem anderen in einem Verbindungsautomaten definierten Verbindungszustand bewirken soll.
  5. Vorrichtung nach Anspruch 4, wobei der andere Verbindungszustand einen anderen Verbindungstrainingszustand vor einem Eintritt in einen aktiven Verbindungszustand umfasst.
  6. Vorrichtung nach Anspruch 1, wobei die Redriver-Vorrichtung elektrische Ausbreitung der Pulldown-Spannung von der zweiten Vorrichtung zu der ersten Vorrichtung auf der Verbindung unterbricht.
  7. Vorrichtung nach Anspruch 1, wobei die Redriver-Vorrichtung einen wechselstromgekoppelten Redriver umfasst und jede der ersten und zweiten Vorrichtung gleichstromgekoppelte Vorrichtungen umfasst.
  8. Vorrichtung nach Anspruch 7, wobei die Pulldown-Spannung und die emulierte Pulldown-Spannung jeweils Gleichspannungen umfassen.
  9. Vorrichtung nach Anspruch 8, wobei die emulierte Pulldown-Spannung einen Spannungsimpuls mit einer entsprechenden Zeitkonstante umfasst.
  10. Vorrichtung nach Anspruch 8, wobei die emulierte Pulldown-Spannung ein im Wesentlichen stationäres Gleichstromsignal umfasst.
  11. Vorrichtung nach Anspruch 7, die ferner einen ersten Wechselstrom-Koppelkondensator auf einer Empfangsseite des Redrivers und einen zweiten Wechselstrom-Koppelkondensator auf einer Sendeseite des Redrivers umfasst.
  12. Vorrichtung nach Anspruch 11, wobei der erste und/oder der zweite Wechselstrom-Koppelkondensator in der Redriver-Vorrichtung integriert sind.
  13. Vorrichtung nach Anspruch 11, wobei die Pulldown-Weiterleitungsschaltkreise zwei oder mehr Pulldown-Widerstände zur Erzeugung der Spannung und entsprechende Schalter zur Ermöglichung der Erzeugung der emulierten Pulldown-Spannung als Reaktion auf die Detektion der Pulldown-Spannung der zweiten Vorrichtung unter Verwendung der Detektionsschaltkreise umfassen.
  14. Vorrichtung nach Anspruch 13, wobei die Pulldown-Weiterleitungsschaltkreise mit den Detektionsschaltkreisen gekoppelt sind.
  15. Vorrichtung nach Anspruch 11, wobei der zweite Wechselstrom-Koppelkondensator zwei oder mehr Kondensatoren umfasst und die Detektionsschaltkreise zwei oder mehr Pullup-Widerstände, zwei oder mehr zweite Widerstände zur Bildung eines Spannungsteilers mit den zwei oder mehr Pullup-Widerständen und zwei oder mehr mit den zwei oder mehr zweite Wechselstrom-Koppelkondensatoren parallel geschaltete konkrete Widerstände zur Bereitstellung eines Gleichstrompfads um die zweiten Wechselstrom-Koppelkondensatoren während eines Detektionsmodus umfassen.
  16. Vorrichtung nach Anspruch 15, wobei der Spannungsteiler Erzeugung eines Signals bewirkt, um die Pulldown-Weiterleitungsschaltkreise als Reaktion auf Detektion der Pulldown-Spannung freizugeben.
  17. Vorrichtung nach Anspruch 1, wobei mindestens ein Teil der Detektionsschaltkreise oder der Pulldown-Weiterleitungsschaltkreise außerhalb eines Chips der Redriver-Vorrichtung vorgesehen ist.
  18. Vorrichtung nach Anspruch 1, wobei die Detektionsschaltkreise und die Pulldown-Weiterleitungsschaltkreise auf dem Chip der Redriver-Vorrichtung vorgesehen sind.
  19. Vorrichtung, umfassend: wechselstromgekoppelte Redriver-Schaltkreise zum: Empfangen von Signalen an Eingangsanschlüssen von einer ersten Endpunktvorrichtung auf einer Verbindung, Verstärken der empfangenen Signale; und Weiterleiten der verstärkten Signale auf Ausgangsanschlüssen; Detektionsschaltkreise zum Detektieren von Gleichstrom-Pulldown-Spannungen auf den Ausgangsanschlüssen entsprechend Abschluss einer zweiten Endpunktvorrichtung auf der Verbindung; und Pulldown-Weiterleitungsschaltkreise zur Erzeugung einer emulierten Pulldown-Spannung entsprechend einem Empfänger-Detektionszustand als Reaktion auf die Detektion einer Instanz der Pulldown-Spannung, wobei die Pulldown-Spannung auf den Eingangsanschlüssen erzeugt wird, um durch die erste Endpunktvorrichtung im Empfänger-Detektionszustand detektiert zu werden.
  20. System, umfassend: eine gleichstromgekoppelte erste Vorrichtung; und einen mit der ersten Vorrichtung auf einer Differenz-Verbindung verbundenen wechselstromgekoppelten Redriver, wobei der Redriver Folgendes umfasst: Detektionsschaltkreise zum Detektieren einer zweiten Vorrichtung zur Kommunikation mit der ersten Vorrichtung unter Verwendung der Verbindung, wobei die Detektionsschaltkreise eine Pulldown-Spannung detektieren, die Anwesenheit der zweiten Vorrichtung angibt; und Pulldown-Weiterleitungsschaltkreise zur Erzeugung einer emulierten Version der Pulldown-Spannung als Reaktion auf Detektion der Pulldown-Spannung zur Anlegung an die erste Vorrichtung auf der Verbindung, wobei die emulierte Version der Pulldown-Spannung eine Gleichspannung umfasst, die durch die erste Vorrichtung identifizierbar ist, um zu bestimmen, dass die zweite Vorrichtung anwesend ist.
  21. System nach Anspruch 20, wobei die erste Vorrichtung Automatenlogik umfasst, um während eines Empfänger-Detektionszustands zu bestimmen, ob die zweite Vorrichtung anwesend ist, und der Empfänger-Detektionszustand einer von mehreren Verbindungs-Konfigurationszuständen ist.
  22. System nach Anspruch 21, wobei die Automatenlogik ferner die Verbindung für Hochgeschwindigkeitskommunikation zwischen der ersten und zweiten Vorrichtung initialisieren soll.
  23. System nach Anspruch 20, das ferner die zweite Vorrichtung umfasst.
  24. System nach Anspruch 23, wobei die zweite Vorrichtung Logik zur Teilnahme bei der Initialisierung der Verbindung umfasst.
  25. System nach Anspruch 20, wobei die zweite Vorrichtung hot-pluggable ist.
  26. Verfahren, umfassend: Detektieren einer gleichstromgekoppelten ersten Vorrichtung in einem wechselstromgekoppelten Redriver, die mit dem Redriver verbunden ist, wobei der Redriver mit einer gleichstromgekoppelten zweiten Vorrichtung verbunden ist und durch die zweite Vorrichtung zu der ersten Vorrichtung gesendete Signale über den Redriver unter Verwendung einer Differenz-Verbindung zu der ersten Vorrichtung gesendet werden; Aktivieren von Spannungserzeugungsschaltkreisen des Redrivers; und Verwenden der Spannungserzeugungsschaltkreise zur Erzeugung einer Spannung, die zu der zweiten Vorrichtung auszubreiten ist, um die Anwesenheit der ersten Vorrichtung auf der Verbindung anzugeben.
  27. Verfahren nach Anspruch 25, ferner umfassend Neuansteuern von Signalen, die auf der Verbindung von der zweiten Vorrichtung zu der ersten Vorrichtung gesendet werden.
  28. Verfahren nach Anspruch 25, wobei der Redriver wechselstromgekoppelt ist und die erste und die zweite Vorrichtung gleichstromgekoppelt sind.
  29. System mit Mitteln zum Ausführen der Schritte nach einem der Ansprüche 25-27.
DE112016003222.6T 2015-07-17 2016-06-17 Hochleistungsfähiger repeater Pending DE112016003222T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562194081P 2015-07-17 2015-07-17
US62/194,081 2015-07-17
US14/865,682 US10050623B2 (en) 2015-07-17 2015-09-25 High performance repeater
US14/865,682 2015-09-25
PCT/US2016/037962 WO2017014875A1 (en) 2015-07-17 2016-06-17 High performance repeater

Publications (1)

Publication Number Publication Date
DE112016003222T5 true DE112016003222T5 (de) 2018-04-19

Family

ID=57776415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016003222.6T Pending DE112016003222T5 (de) 2015-07-17 2016-06-17 Hochleistungsfähiger repeater

Country Status (4)

Country Link
US (1) US10050623B2 (de)
DE (1) DE112016003222T5 (de)
TW (1) TWI710222B (de)
WO (1) WO2017014875A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10050623B2 (en) 2015-07-17 2018-08-14 Intel Corporation High performance repeater
US10491701B2 (en) * 2016-07-14 2019-11-26 Cisco Technology, Inc. Interconnect method for implementing scale-up servers
CN109145205B (zh) 2018-07-27 2020-09-01 阿里巴巴集团控股有限公司 一种基于区块链的跨链数据操作方法和装置
CN109167811B (zh) 2018-07-27 2020-05-05 阿里巴巴集团控股有限公司 一种基于区块链的跨链数据访问方法和装置
US11688981B2 (en) 2019-03-06 2023-06-27 Nxp B.V. Redriver to autonomously detect cable orientation
US10790794B1 (en) * 2019-03-18 2020-09-29 Semiconductor Components Industries, Llc Methods and apparatus for an interface
US11356236B2 (en) 2019-05-16 2022-06-07 Texas Instruments Incorporated Bidirectional re-driver for half-duplex interfaces
US11481015B2 (en) * 2019-06-25 2022-10-25 Nxp B.V. Power consumption management in protocol-based redrivers
CN111510220B (zh) * 2020-04-08 2021-10-08 武汉光迅科技股份有限公司 一种带有USB Type-C电口的收发一体光模块
US11558183B2 (en) * 2020-05-15 2023-01-17 Bank Of America Corporation System for exchanging symmetric cryptographic keys using computer network port knocking
TWI746083B (zh) * 2020-07-24 2021-11-11 聯陽半導體股份有限公司 訊號中繼系統
KR20220065587A (ko) 2020-11-13 2022-05-20 삼성전자주식회사 인터커넥트 모듈과 인터커넥트 모듈을 포함하는 ufs 시스템 및 이의 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE458326T1 (de) 1999-11-04 2010-03-15 Alcatel Lucent Verfahren zur fernspeisung eines endgerätes in einem lokalen netz
JP2002258999A (ja) 2001-03-02 2002-09-13 Kawasaki Microelectronics Kk シリアル・データ転送インターフェイス装置及びシリアル・データ転送用ケーブル
US7603486B2 (en) 2002-11-26 2009-10-13 3Com Corporation Network management system providing logic signals over communication lines for detecting peripheral devices
US7461192B2 (en) 2004-12-15 2008-12-02 Rambus Inc. Interface for bridging out-of-band information and preventing false presence detection of terminating devices
US8212587B2 (en) 2008-10-23 2012-07-03 Pericom Semiconductor Corp. Redriver with output receiver detection that mirrors detected termination on output to input
US8188615B2 (en) * 2009-09-18 2012-05-29 Ati Technologies Ulc Integrated circuit adapted to be selectively AC or DC coupled
US10050623B2 (en) 2015-07-17 2018-08-14 Intel Corporation High performance repeater

Also Published As

Publication number Publication date
US10050623B2 (en) 2018-08-14
TWI710222B (zh) 2020-11-11
WO2017014875A1 (en) 2017-01-26
TW201705696A (zh) 2017-02-01
US20170019105A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112013007751B3 (de) Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112017006687T5 (de) Hochgeschwindigkeitsverbindungen mit kanalerweiterung
EP3035563B1 (de) Hochleistungsfähiger optischer repeater
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
EP3800557A1 (de) Aktualisierungen des status von implizierten verzeichnissen
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
US9965370B2 (en) Automated detection of high performance interconnect coupling
TW201824294A (zh) 交易型緩衝記憶體中之錯誤處置技術(二)
DE102018005753A1 (de) Serdes link training
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung
DE112015006953T5 (de) Training einer gültigen lane
DE112015007278B3 (de) Verfahren, System und Vorrichtung mit einer Schnittstelle zum Koppeln von integrierten Schaltungspaketen
DE112015007276B3 (de) Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe
DE112013007769B3 (de) System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen
DE112013007770B3 (de) Vorrichtungen, verfahren und system zum senden und empfangen über eine schnittstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication