DE102020116195A1 - Leistungsmanagement für neu-treiber-vorrichtungen - Google Patents

Leistungsmanagement für neu-treiber-vorrichtungen Download PDF

Info

Publication number
DE102020116195A1
DE102020116195A1 DE102020116195.6A DE102020116195A DE102020116195A1 DE 102020116195 A1 DE102020116195 A1 DE 102020116195A1 DE 102020116195 A DE102020116195 A DE 102020116195A DE 102020116195 A1 DE102020116195 A1 DE 102020116195A1
Authority
DE
Germany
Prior art keywords
state
power management
signal
driver
connection
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
DE102020116195.6A
Other languages
English (en)
Inventor
Huimin Chen
Jingbo Li
Kai Xiao
Yong Yang
Chunfei Ye
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 DE102020116195A1 publication Critical patent/DE102020116195A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/22Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral
    • H03K5/24Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude
    • H03K5/2472Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude using field effect transistors
    • H03K5/2481Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude using field effect transistors with at least one differential stage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Nonlinear Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Sources (AREA)

Abstract

Eine Vorrichtung, wie z. B. ein Neu-Treiber, kann einen Empfängeranschluss, der über eine erste Verbindung an einen ersten Verbindungspartner gekoppelt ist; einen Senderanschluss, der über eine zweite Verbindung an einen zweiten Verbindungspartner gekoppelt ist; und einen in Hardware implementierten Leistungsmanagement- (PM-) Controller enthalten. Der PM-Controller kann ein PM-Steuersignal detektieren, einen PM-Zustand für die Vorrichtung basierend auf dem PM-Steuersignal bestimmen und die Vorrichtung veranlassen, in den PM-Zustand einzutreten. Die Vorrichtung kann basierend auf dem PM-Zustand elektrische Signale an den zweiten Verbindungspartner senden. Das PM-Managementsteuersignal kann eine Taktanforderung, einen elektrischen Leerlauf, eine Gleichtaktspannung oder ein anderes elektrisches Signal, das eine PM-Verbindungszustandsänderung eines an den Neu-Treiber gekoppelten Verbindungspartners angibt, enthalten.

Description

  • HINTERGRUND
  • Zusammenschaltungen können verwendet werden, um eine Kommunikation zwischen verschiedenen Vorrichtungen innerhalb eines Systems bereitzustellen, wobei irgendein Typ eines Zusammenschaltungsmechanismus verwendet wird. Ein typisches Kommunikationsprotokoll für Kommunikationsverbindungen zwischen den Vorrichtungen in einem Computersystem ist das Peripheriekomponenten-Zusammenschaltungsexpress- (PCI Express™- (PCIe™-)) Kommunikationsprotokoll. Dieses Kommunikationsprotokoll ist ein Beispiel eines Lade-/Speicher-Eingabe-/Ausgabe-Zusammenschaltungssystems (Lade-/Speicher-E/A-Zusammenschaltungssystems). Die Kommunikation zwischen den Vorrichtungen wird typischerweise seriell gemäß diesem Protokoll mit sehr hohen Geschwindigkeiten ausgeführt.
  • Die Vorrichtungen können über eine unterschiedliche Anzahl von Datenverbindungen verbunden sein, wobei jede Datenverbindung mehrere Datenspuren enthält. Die stromaufwärts gelegenen Vorrichtungen und die stromabwärts gelegenen Vorrichtungen werden nach der Initialisierung einem Verbindungstraining unterzogen, um die Datenübertragungen über die verschiedenen Verbindungen und Spuren zu optimieren.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Blockschaltplans für ein Rechensystem, das einen Mehrkernprozessor enthält.
    • 2A ist eine schematische graphische Darstellung eines miteinander verknüpften Systems, das zwei Neu-Zeitgeber enthält, in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung.
    • 2B ist eine schematische graphische Darstellung eines verbundenen Systems, das eine Konfiguration eines stromaufwärts gelegenen Inband-Anschlusses und eines Neu-Zeitgebers in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 3A ist eine schematische logische graphische Darstellung eines Übertragungsweges, der einen Neu-Treiber enthält, in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung.
    • 3B ist ein schematischer Blockschaltplan einer beispielhaften Platinenimplementierung für einen Neu-Treiber in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist eine schematische graphische Darstellung, die eine beispielhafte Topologie, die mehr als einen Neu-Treiber enthält, in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 5A ist eine schematische graphische Darstellung, die eine beispielhafte Topologie, die mehr als einen Neu-Treiber enthält, in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 5B ist eine schematische graphische Darstellung einer beispielhaften Logik zum Detektieren eines elektrischen Leerlaufs und einer Gleichtaktspannung in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung.
    • 6 ist ein Prozessablaufplan zum Ändern von Neu-Treiber-Leistungsmanagementzuständen in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung.
    • 7 veranschaulicht eine Ausführungsform eines Rechensystems, das eine Zusammenschaltungsarchitektur enthält.
    • 8 veranschaulicht eine Ausführungsform einer Zusammenschaltungsarchitektur, die einen geschichteten Stapel enthält.
    • 9 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die bzw. das innerhalb einer Zusammenschaltungsarchitektur erzeugt oder empfangen wird.
    • 10 veranschaulicht eine Ausführungsform eines Sender- und Empfängerpaars für eine Zusammenschaltungsarchitektur.
    • 11 veranschaulicht eine weitere Ausführungsform eines Blockschaltplans für ein Rechensystem, das einen Prozessor enthält.
    • 12 veranschaulicht eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessorsockel enthält.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, wie z. B. Beispiele spezifischer Prozessortypen und Systemkonfigurationen, spezifischer Hardware-Strukturen, spezifischer Architektur- und Mikroarchitektureinzelheiten, spezifischer Registerkonfigurationen, spezifischer Anweisungstypen, spezifischer Systemkomponenten, spezifischer Abmessungen/Höhen, spezifischer Prozessor-Pipeline-Stufen und -Operationen usw., um ein umfassendes Verständnis der vorliegenden Offenbarung bereitzustellen. Für Fachleute auf dem Gebiet ist es jedoch offensichtlich, dass diese spezifischen Einzelheiten nicht verwendet werden müssen, um die vorliegende Offenbarung zu praktizieren. In anderen Fällen sind wohlbekannte Komponenten oder Verfahren, wie z. B. spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/spezifischer Code für beschriebene Algorithmen, spezifischer Firmware-Code, eine spezifische Zusammenschaltungsoperation, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Kompilierer-Implementierungen, ein spezifischer Ausdruck von Algorithmen in Code, spezifische Abschalt- und Ansteuerungstechniken/eine spezifische Abschalt- und Ansteuerungslogik und andere spezifische Betriebseinzelheiten des Computersystems nicht ausführlich beschrieben worden, um das unnötige Verbergen der vorliegenden Offenbarung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen bezüglich der Energieeinsparung und des Energiewirkungsgrads in spezifischen integrierten Schaltungen, wie z. B. in Rechenplattformen oder Mikroprozessoren, beschrieben werden können, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren der hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die außerdem von einem besseren Energiewirkungsgrad und einer Energieeinsparung profitieren können. Die offenbarten Ausführungsformen sind z. B. nicht auf Desktop-Computersysteme oder Ultrabooks™ eingeschränkt. Sie können außerdem in anderen Vorrichtungen verwendet werden, wie z. B. in tragbaren Vorrichtungen, Tablets, anderen dünnen Notebooks, Vorrichtungen von Systemen auf einem Chip (SOC) und eingebetteten Anwendungen. Einige Beispiele der tragbaren Vorrichtungen enthalten Mobiltelephone, Internet-Protokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Die eingebetteten Anwendungen enthalten typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Set-Top-Boxes, Netz-Hubs, Weitbereichsnetz-Netzknoten (WLAN-Netzknoten) oder irgendein anderes System, das die im Folgenden gelehrten Funktionen und Operationen ausführen kann. Überdies sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen eingeschränkt, sondern können sich außerdem auf Software-Optimierungen zur Energieeinsparung und des Energiewirkungsgrades beziehen. Wie in der folgenden Beschreibung leicht offensichtlich wird, sind die hier beschriebenen Ausführungsformen der (ob bezüglich der Hardware, der Firmware, der Software oder einer Kombination daraus) beschriebenen Verfahren, Vorrichtungen und Systeme für eine Zukunft einer ‚grünen Technik‘, die mit Leistungserwägungen ausgewogen ist, unverzichtbar.
  • Mit dem Fortschritt der Rechensysteme werden die darin enthaltenen Komponenten komplexer. Im Ergebnis nimmt außerdem die Komplexität der Zusammenschaltungsarchitektur, um die Komponenten zu koppeln und zwischen den Komponenten zu kommunizieren, zu, um sicherzustellen, dass die Bandbreitenanforderungen für einen optimalen Betrieb der Komponenten erfüllt sind. Weiterhin verlangen unterschiedliche Marktsegmente unterschiedliche Aspekte von Zusammenschaltungsarchitekturen, um mit den Marktanforderungen übereinzustimmen. Die Server erfordern z. B. eine höhere Leistung, während das mobile Ökosystem manchmal die Gesamtleistung für Leistungseinsparungen opfern kann. Dennoch ist es ein einziger Zweck der meisten Strukturen, die höchstmögliche Leistung bei maximaler Leistungseinsparung bereitzustellen. Im Folgenden wird eine Anzahl von Zusammenschaltungen erörtert, die potentiell von Aspekten der hier beschriebenen Offenbarung profitieren würden.
  • In 1 ist eine Ausführungsform eines Blockschaltplans für ein Rechensystem, das einen Mehrkernprozessor enthält, dargestellt. Der Prozessor 100 enthält irgendeinen Prozessor oder irgendeine Verarbeitungsvorrichtung, wie z. B. einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, einen System auf einem Chip (SOC) oder eine andere Vorrichtung, um Code auszuführen. Der Prozessor 100 enthält in einer Ausführungsform wenigstens zwei Kerne - einen Kern 101 und einen Kern 102, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichende Ausführungsform) enthalten können. Der Prozessor 100 kann jedoch eine irgendeine Anzahl von Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf eine Hardware oder eine Logik, um einen Software-Thread zu unterstützen. Die Beispiele der Hardware-Verarbeitungselemente enthalten Folgendes: eine Thread-Einheit, einen Thread-Schlitz, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder irgendein anderes Element, das einen Zustand für einen Prozessor, wie z. B. einen Ausführungszustand oder einen Architekturzustand, halten kann. Mit anderen Worten, ein Verarbeitungselement bezieht sich in einer Ausführungsform auf irgendeine Hardware, die unabhängig einem Code, wie z. B. einem Software-Thread, einem Betriebssystem, einer Anwendung oder einem anderen Code, zugeordnet werden kann. Ein physischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die potentiell irgendeine Anzahl anderer Verarbeitungselemente, wie z. B. Kerne oder Hardware-Threads, enthält.
  • Ein Kern bezieht sich oft auf eine Logik, die sich in einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei jeder unabhängig aufrechterhaltene Architekturzustand wenigstens einigen dedizierten Ausführungsbetriebsmitteln zugeordnet ist. Im Gegensatz zu den Kernen bezieht sich ein Hardware-Thread typischerweise auf irgendeine Logik, die sich in einer integrierten Schaltung befindet, die einen unabhängigen Architekturzustand aufrechterhalten kann, wobei die unabhängig aufrechterhaltenen Architekturzustände den Zugriff auf die Ausführungsbetriebsmittel gemeinsam benutzen. Wie ersichtlich ist, überschneidet sich die Grenze zwischen der Nomenklatur eines Hardware-Threads und eines Cores, wenn bestimmte Betriebsmittel gemeinsam benutzt werden und andere für einen Architekturzustand dediziert sind. Ein Kern und ein Hardware-Thread werden sogar oft durch ein Betriebssystem als einzelne logische Prozessoren betrachtet, wobei das Betriebssystem die Operationen im jedem logischen Prozessor einzeln planen kann.
  • Der physische Prozessor 100, wie er in 1 veranschaulicht ist, enthält zwei Kerne - den Kern 101 und den Kern 102. Hier werden die Kerne 101 und 102 als symmetrische Kerne betrachtet, d. h., als Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. In einer weiteren Ausführungsform enthält der Kern 101 einen Außerhalb-der-Reihenfolge-Prozessorkern, während der Kern 102 einen In-der-Reihenfolge-Prozessorkern enthält. Die Kerne 101 und 102 können jedoch einzeln aus irgendeinem Typ von Kern, wie z. B. einem nativen Kern, einem software-gemanagten Kern, einem Kern, der angepasst ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einem Kern, der angepasst ist, eine übersetzte Anweisungssatzarchitektur (ISA) auszuführen, einem gemeinsam entworfenen Kern oder einem anderen bekannten Kern, ausgewählt sein. In einer heterogenen Kernumgebung (d. h., asymmetrischen Kernen) kann irgendeine Form der Übersetzung, z. B. eine binäre Übersetzung, verwendet werden, um Code in einem oder beiden Kernen zu planen oder auszuführen. Um dennoch die Erörterung voranzubringen, werden die im Kern 101 veranschaulichten Funktionseinheiten im Folgenden ausführlicher beschrieben, da die Einheiten im Kern 102 in der dargestellten Ausführungsform in einer ähnlichen Weise arbeiten.
  • Wie dargestellt ist, enthält Kern 101 zwei Hardware-Threads 101a und 101b, die außerdem als Hardware-Thread-Schlitze 101a und 101b bezeichnet werden können. Deshalb betrachten die Software-Entitäten, wie z. B. ein Betriebssystem, in einer Ausführungsform den Prozessor 100 potentiell als vier separate Prozessoren, d. h., vier logische Prozessoren oder Verarbeitungselemente, die vier Software-Threads gleichzeitig ausführen können. Wie oben darauf hingewiesen worden ist, ist ein erster Thread den Architekturzustandsregistern 101a zugeordnet, ist ein zweiter Thread den Architekturzustandsregistern 101b zugeordnet, kann ein dritter Thread den Architekturzustandsregistern 102a zugeordnet sein und kann ein vierter Thread den Architekturzustandsregistern 102b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (101a, 101b, 102a und 102b) als Verarbeitungselemente, Thread-Schlitze oder Thread-Einheiten bezeichnet werden, wie oben beschrieben worden ist. Wie veranschaulicht ist, werden die Architekturzustandsregister 101a in den Architekturzustandsregistern 101b repliziert, so dass einzelne Architekturzustände/-kontexte für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert sein können. Im Kern 101 können außerdem andere kleinere Betriebsmittel, wie z. B. Anweisungszeiger und eine Umbenennungslogik im Zuweisungs- und Umbenennungsblock 130, für die Threads 101a und 101b repliziert sein. Einige Betriebsmittel, wie z. B. die Neuordnungspuffer in der Neuordnungs-/Stilllegungseinheit 135, ein ILTB 120, die Lade-/Speicherpuffer und die Warteschlangen, können durch Partitionierung gemeinsam benutzt werden. Andere Betriebsmittel, wie z. B. interne Universalregister, Seitentabellen-Basisregister, ein Daten-Cache auf tiefer Ebene und ein Daten-TLB 115, Ausführungseinheit(en) 140 und Abschnitte der Außerhalb-der-Reihenfolge-Einheit 135 werden potentiell vollständig gemeinsam benutzt.
  • Der Prozessor 100 enthält oft andere Betriebsmittel, die vollständig gemeinsam benutzt werden können, durch Partitionierung gemeinsam benutzt werden oder durch/für Verarbeitungselemente dediziert sind. In 1 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Betriebsmitteln eines Prozessors veranschaulicht. Es wird angegeben, dass ein Prozessor sowohl irgendwelche dieser Funktionseinheiten enthalten oder weglassen kann als auch irgendwelche anderen bekannten Funktionseinheiten, Logik oder Firmware, die nicht dargestellt sind, enthalten kann. Wie veranschaulicht ist, enthält der Kern 101 einen vereinfachten, repräsentativen Außerhalb-der-Reihenfolge-Prozessorkern (OOO-Prozessorkern). Ein In-der-Reihenfolge-Prozessor kann aber in verschiedenen Ausführungsformen verwendet werden. Der OOO-Kern enthält einen Verzweigungszielpuffer 120, um die auszuführenden/zu nehmenden Verzweigungen vorherzusagen, und einen Anweisungsübersetzungspuffer (1-TLB) 120, um die Adressübersetzungseinträge für die Anweisungen zu speichern.
  • Der Kern 101 enthält ferner ein Decodiermodul 125, das an eine Holeinheit 120 gekoppelt ist, um die geholten Elemente zu decodieren. Die Hollogik enthält in einer Ausführungsform einzelne Sequenzer, die jeweils den Thread-Schlitzen 101a und 101b zugeordnet sind. Normalerweise ist der Kern 101 einer ersten ISA zugeordnet, die die in dem Prozessor 100 ausführbaren Anweisungen definiert/spezifiziert. Oft enthalten die Maschinencodeanweisungen, die ein Teil der ersten ISA sind, einen Abschnitt der Anweisung (der als ein Opcode bezeichnet wird), der auf eine auszuführende Anweisung oder Operation verweist/sie spezifiziert. Die Decodierlogik 125 enthält eine Schaltungsanordnung, die diese Anweisungen aus ihren Opcodes erkennt und die decodierten Anweisungen in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert ist. Die Decodierer 125 enthalten, wie im Folgenden ausführlicher erörtert wird, z. B. in einer Ausführungsform eine Logik, die dafür entworfen oder angepasst ist, spezifische Anweisungen, wie z. B. eine Transaktionsanweisung, zu erkennen. Im Ergebnis der Detektion durch die Decodierer 125 ergreift die Architektur oder der Kern 101 spezifische, vorgegebene Maßnahmen, um die Aufgaben auszuführen, die der geeigneten Anweisung zugeordnet sind. Es ist wichtig anzugeben, dass irgendwelche der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren in Reaktion auf eine einzelne oder mehrere Anweisungen ausgeführt werden können; wobei einige davon neue oder alte Anweisungen sein können. Es wird angegeben, dass die Decoder 126 in einer Ausführungsform die gleiche ISA (oder eine Teilmenge davon) erkennen. Alternativ erkennen die Decodierer 126 in einer heterogenen Kernumgebung eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine ungleiche ISA).
  • In einem Beispiel enthält der Zuweisungs- und Umbenennungsblock 130 einen Zuweiser, um Betriebsmittel, wie z. B. Registerdateien, um Anwendungsverarbeitungsergebnisse zu speichern, zu reservieren. Die Threads 101a und 101b sind jedoch potentiell zur Außerhalb-der-Reihenfolge-Ausführung in der Lage, wobei der Zuweisungs- und Umbenennungsblock 130 außerdem andere Betriebsmittel reserviert, wie z. B. Neuordnungspuffer, um Anweisungsergebnisse zu verfolgen. Die Einheit 130 kann außerdem einen Registerumbenenner enthalten, um Programm-/Anweisungsreferenzregister in andere Register innerhalb des Prozessors 100 umzubenennen. Die Neuordnungs-/Stilllegungseinheit 135 enthält Komponenten, wie z. B. die obenerwähnten Neuordnungspuffer, Ladepuffer und Speicherpuffer, um die Außerhalb-der-Reihenfolge-Ausführung und die spätere In-der-Reihenfolge-Stilllegung von Anweisungen, die außerhalb der Reihenfolge ausgeführt wurden, zu unterstützen.
  • Ein Scheduler- und Ausführungseinheit(en)-Block 140 enthält in einer Ausführungsform eine Scheduler-Einheit, um Anweisungen/Operationen in den Ausführungseinheiten zu planen. Eine Gleitkommaanweisung wird z. B. an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Die den Ausführungseinheiten zugeordneten Registerdateien sind außerdem enthalten, um die Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Gleitkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Daten-Cache auf tiefer Ebene und ein Datenübersetzungspuffer (D-TLB) 150 sind an die Ausführungseinheit(en) 140 gekoppelt. Der Daten-Cache soll Elemente, die kürzlich verwendete/auf die kürzlich eingewirkt wurde, wie z. B. Datenoperanden, speichern, die potentiell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll die neuesten Übersetzungen von virtuellen/linearen in physische Adressen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier benutzen die Kerne 101 und 102 den Zugriff auf einen Cache höherer Ebene oder einen Cache weiter draußen, wie z. B. einen Cache zweiter Ebene, der der Schnittstelle 110 auf dem Chip zugeordnet ist, gemeinsam. Es wird angegeben, dass sich höhere Ebene oder weiter draußen auf Cache-Ebenen bezieht, die von der (den) Ausführungseinheit(en) ansteigen oder einen weiteren Weg von ihr (ihnen) erhalten. In einer Ausführungsform ist der Cache auf höherer Ebene ein Daten-Cache der letzten Ebene - der letzte Cache in der Speicherhierarchie an dem Prozessor 100 - wie z. B. ein Daten-Cache der zweiten oder dritten Ebene. Der Cache der höheren Ebene ist jedoch nicht so eingeschränkt, da er einem Anweisungs-Cache zugeordnet sein kann oder einen Anweisungs-Cache enthält. Ein Verfolgungs-Cache - ein Typ eines Anweisungs-Caches - kann stattdessen nach dem Decoder 125 gekoppelt sein, um kürzlich decodierte Verfolgungen zu speichern. Hier bezieht sich eine Anweisung potentiell auf eine Makroanweisung (d. h., eine allgemeine Anweisung, der durch die Decodierer erkannt wird), die in eine Anzahl von Mikroanweisungen (Mikrooperationen) decodiert werden kann.
  • In der dargestellten Konfiguration enthält der Prozessor 100 außerdem das Schnittstellenmodul 110 auf dem Chip. Historisch ist ein Speicher-Controller, der im Folgenden ausführlicher beschrieben wird, in einem Rechensystem außerhalb des Prozessors 100 enthalten gewesen. In diesem Szenario soll die Schnittstelle 110 auf dem Chip mit den Vorrichtungen außerhalb des Prozessors 100, z. B. einem Systemspeicher 175, einem Chipsatz (der oft einen Speicher-Controller-Hub zur Verbindung mit dem Speicher 175 und einen E/A-Controller-Hub zur Verbindung mit den Peripherievorrichtungen enthält), einem Speicher-Controller-Hub, einer Nordbrücke oder einer anderen integrierten Schaltung, kommunizieren. In diesem Szenario kann ein Bus 105 irgendeine bekannte Zusammenschaltung, wie z. B. einen Mehranschlussstellenbus, eine Punkt-zu-Punkt-Zusammenschaltung, eine serielle Zusammenschaltung, einen parallelen Bus, einen kohärenten (z. B. cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differentiellen Bus und einen GTL-Bus, enthalten.
  • Ein Speicher 175 kann für den Prozessor 100 dediziert sein oder mit anderen Vorrichtungen in einem System gemeinsam benutzt werden. Übliche Beispiele der Typen des Speichers 175 enthalten einen DRAM, einen SRAM, einen nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es wird angegeben, dass die Vorrichtung 180 einen Graphikbeschleuniger, einen Graphikprozessor oder eine Graphikkarte, der bzw. die an einen Speicher-Controller-Hub gekoppelt ist, einen an einen E/A-Controller-Hub gekoppelten Datenspeicher, einen drahtlosen Sender/Empfänger, eine Flash-Vorrichtung, einen Audio-Controller, einen Netz-Controller oder eine andere bekannte Vorrichtung enthalten kann.
  • Da jedoch in letzter Zeit mehr Logik und Vorrichtungen in einem einzigen Die integriert sind, wie z. B. ein SOC, kann jede dieser Vorrichtungen in den Prozessor 100 aufgenommen sein. In einer Ausführungsform befindet sich z. B. ein Speicher-Controller-Hub in derselben Baugruppe und/oder demselben Die mit Prozessor 100. Hier enthält ein Abschnitt des Kerns (ein Abschnitt im Kern) 110 einen oder mehrere Controller zum Bilden einer Schnittstelle mit anderen Vorrichtungen, wie z. B. dem Speicher 175 oder einer Graphikvorrichtung 180. Die Konfiguration, die eine Zusammenschaltung und die Controller zum Bilden von Schnittstellen mit derartigen Vorrichtungen enthält, wird oft als eine Konfiguration im Kern (oder eine Unkern-Konfiguration) bezeichnet. Als Beispiel enthält die Schnittstelle 110 auf dem Chip eine Ringzusammenschaltung für die Kommunikation auf dem Chip und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 für die Kommunikation außerhalb des Chips. In der SOC-Umgebung können sogar noch mehr Vorrichtungen, wie z. B. die Netzschnittstelle, die Co-Prozessoren, der Speicher 175, der Graphikprozessor 180 und irgendwelche anderen bekannten Computervorrichtungen/-schnittstelle auf einem einzigen Die oder einer einzigen integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedriger Leistungsaufnahme bereitzustellen.
  • In einer Ausführungsform kann der Prozessor 100 einen Kompilierer-, Optimierungs- und/oder Übersetzercode 177 ausführen, um einen Anwendungscode 176 zu kompilieren, zu übersetzen und/oder zu optimieren, um die hier beschriebenen Vorrichtungen und Verfahren zu unterstützen oder eine Schnittstelle mit ihnen zu bilden. Ein Kompilierer enthält oft ein Programm oder einen Satz von Programmen, um einen Quelltext/-code in einen Zieltext/-code zu übersetzen. Normalerweise wird die Kompilierung des Programm-/Anwendungscodes mit einem Kompilierer in mehreren Phasen und Durchläufen ausgeführt, um den Code der Programmiersprache auf hoher Ebene in den Code der Maschinen- oder Assemblersprache auf niedriger Ebene zu transformieren. Dennoch können Einzeldurchlauf-Kompilierer für eine einfache Kompilierung verwendet werden. Ein Kompilierer kann irgendwelche bekannten Kompilierungstechniken verwenden und irgendwelche bekannten Kompiliereroperationen ausführen, wie z. B. eine lexikalische Analyse, eine Vorverarbeitung, ein Parsen, eine semantische Analyse, eine Codeerzeugung, eine Codetransformation und eine Codeoptimierung.
  • Größere Kompilierer enthalten oft mehrere Phasen, wobei aber diese Phasen am häufigsten in zwei allgemeinen Phasen enthalten sind: (1) ein Front-End, d. h., wo im Allgemeinen eine syntaktische Verarbeitung, eine semantische Verarbeitung und etwas Transformation/Optimierung stattfinden können, und (2) ein Back-End, d. h., wo im Allgemeinen eine Analyse, Transformationen, Optimierungen und eine Codeerzeugung stattfinden. Einige Kompilierer beziehen sich auf eine Mitte, was die Verwischung der Abgrenzung zwischen einem Front-End und einem Back-End eines Kompilierers veranschaulicht. Im Ergebnis kann der Verweis auf eine Einfügung, eine Zuordnung, eine Erzeugung oder eine andere Operation eines Kompilierers sowohl in irgendeiner der obenerwähnten Phasen oder Durchläufe als auch in irgendwelchen anderen bekannten Phasen oder Durchläufen eines Kompilierers stattfinden. Als ein veranschaulichendes Beispiel fügt ein Kompilierer potentiell Operationen, Aufrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung ein, wie z. B. die Einfügung von Aufrufen/Operationen in einer Front-End-Phase der Kompilierung und dann die Transformation der Aufrufe/Operationen in den Code niedrigerer Ebene während einer Transformationsphase. Es wird angegeben, dass während der dynamischen Kompilierung Kompilierercode oder dynamischer Optimierungscode sowohl derartige Operationen/Aufrufe einfügen als auch den Code für die Ausführung während der Laufzeit optimieren kann. Als ein spezifisches veranschaulichendes Beispiel kann binärer Code (bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination daraus enthalten.
  • Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen. In verschiedenen Zeichnungen können die gleichen Bezugszeichen verwendet werden, um die gleichen oder ähnliche Elemente zu identifizieren. In der folgenden Beschreibung werden zu Erklärungs- und nicht zu Einschränkungszwecken spezifische Einzelheiten, wie z. B. bestimmte Strukturen, Architekturen, Schnittstellen, Techniken usw. dargelegt, um ein umfassendes Verständnis der verschiedenen Aspekte der verschiedenen Ausführungsformen bereitzustellen. Für die Fachleute auf dem Gebiet, die den Vorteil der vorliegenden Offenbarung aufweisen, ist es jedoch offensichtlich, dass die verschiedenen Aspekte der verschiedenen Ausführungsformen in anderen Beispielen praktiziert werden können, die von diesen spezifischen Einzelheiten abweichen. In bestimmten Fällen werden die Beschreibungen von wohlbekannten Vorrichtungen, Schaltungen und Verfahren weggelassen, um die Beschreibung der verschiedenen Ausführungsformen nicht mit unnötigen Einzelheiten zu verbergen.
  • 2A ist eine schematische und zeitliche graphische Darstellung, die eine Mustertopologie 200 mit zwei Neu-Zeitgebern [engl.: re-timer] 204 und 206 zwischen einem stromabwärts gelegenen Anschluss 202 einer stromaufwärts gelegenen Komponente und einem stromaufwärts gelegenen Anschluss 208 einer stromabwärts gelegenen Komponente in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Der stromabwärts gelegene Anschluss 202 der stromaufwärts gelegenen Komponente kann ein Anschluss für ein PCIe-basierte Vorrichtung sein, z. B. eine CPU oder eine andere Vorrichtung, die ein Datenpaket erzeugen und das Datenpaket über eine Datenverbindung, die mit dem PCIe-Protokoll konform ist, übertragen kann. Der stromaufwärts gelegene Anschluss 208 der stromabwärts gelegenen Komponente kann ein Anschluss für eine Peripheriekomponente sein, die ein Datenpaket von einer Verbindung empfangen kann, die mit dem PCIe-Protokoll konform ist. Es wird erkannt, dass der stromabwärts gelegene Anschluss 202 der stromaufwärts gelegenen Komponente und der stromaufwärts gelegene Anschluss 208 der stromabwärts gelegenen Komponente Datenpakete über eine PCIe-Verbindung(en), die als eine PCIe-Verbindung 210a-c veranschaulicht ist, senden und empfangen kann.
  • Die Topologie 200 kann einen oder mehrere Neu-Zeitgeber 204 und 206 enthalten. Die Neu-Zeitgeber 204 und 206 können als ein Signal-Zwischenverstärker dienen, der auf der physikalischen Schicht arbeitet, um das Signal von der stromaufwärts gelegenen Komponente 202 und/oder dem stromaufwärts gelegenen Anschluss 208 der stromabwärts gelegenen Komponente feinabzustimmen. Ein Neu-Zeitgeber kann eine kontinuierliche zeitlineare Entzerrung (CTLE), eine Entzerrung mit Entscheidungsrückkopplung (DFE) verwenden und eine Impulsantwortentzerrung (TX FIR EQ oder nur TXEQ) senden. Die Neu-Zeitgeber sind für die Datenverbindungs- und Transaktionsschichten transparent, implementieren aber die volle physikalische Schicht.
  • Die mehrspurige PCIe-Verbindung ist in drei Verbindungssegmente (LS) 210a, 210b und 210c in jeder Richtung aufgeteilt. Der stromabwärts gelegene Anschluss 202 der stromaufwärts gelegenen Komponente kann durch eine mehrspurige PCIe-Verbindung 210a an den Neu-Zeitgeber 1 204 gekoppelt sein. Der Neu-Zeitgeber 1 204 kann durch ein Verbindungssegment 210b an den Neu-Zeitgeber 2 206 gekoppelt sein. Der Neu-Zeitgeber 2 206 kann durch ein Verbindungssegment 210c mit dem stromaufwärts gelegenen Anschluss 208 der stromabwärts gelegenen Komponente gekoppelt sein.
  • Die Komponenten können außerdem durch Seitenbandverknüpfungen gekoppelt sein. Der stromabwärts gelegene Anschluss 202 der stromaufwärts gelegenen Komponente kann durch eine Seitenbandverbindung 212a an den Neu-Zeitgeber 1 204 gekoppelt sein. Der Neu-Zeitgeber 1 204 kann durch eine Seitenbandverbindung 212b an den Neu-Zeitgeber 2 206 gekoppelt sein. Der Neu-Zeitgeber 2 206 kann durch eine Seitenbandverbindung 212c an den stromaufwärts gelegenen Anschluss 208 der stromabwärts gelegenen Komponente gekoppelt sein.
  • Eine Funktion einer Neu-Zeitgeber-Vorrichtung (Puffer-Vorrichtung) ist die Signal-Neu-Zeitsteuerung. Diese Funktionen werden durch die Neu-Zeitgeber 204 und 206 ausgeführt. Die speziellen Neu-Zeitgeber-Vorrichtungs-Schaltungen hängen von der PHY ab, die für die Verbindung verwendet wird. Im Allgemeinen ist die Neu-Zeitgeber-Schaltungsanordnung konfiguriert, das ankommende Signal wiederzugewinnen und unter Verwendung eines lokalen Takts und einer neuen Sendeentzerrungsschaltungsanordnung erneut zu senden, wobei sie typischerweise eine wohlbekannte Schaltungsanordnung für diesen Zweck, wie z. B. Phasenregelkreise, verwenden kann. Ein Neu-Zeitgeber kann ferner sowohl eine Sender- und Empfängerschaltungsanordnung, die eine oder mehrere Verstärkerschaltungen enthält, als auch verschiedene Typen einer wohlbekannten Signalaufbereitungsschaltungsanordnung, die verwendet werden, um den Treiberpegel eines empfangenen Signals zu erhöhen, enthalten. Eine derartige Neu-Zeitgeber-Schaltungsanordnung ist den Fachleuten auf dem Gebiet der Hochgeschwindigkeitszusammenschaltungen wohlbekannt, wobei entsprechend hier keine weiteren Einzelheiten gezeigt oder erörtert werden.
  • Jeder Neu-Zeitgeber 204 und 206 kann einen stromaufwärts gelegenen Weg und einen stromabwärts gelegenen Weg aufweisen. In einigen Implementierungen kann ein Neu-Zeitgeber zwei Pseudoanschlüsse enthalten, wobei die Pseudoanschlüsse ihre jeweilige Stromabwärts-/Stromaufwärtsorientierung dynamisch bestimmen können. Ferner können die Neu-Zeitgeber 204 und 206 Betriebsarten einschließlich einer Weiterleitungsbetriebsart und einer Ausführungsbetriebsart unterstützen. In einigen Fällen können die Neu-Zeitgeber 204 und 206 die auf der Unterverbindung empfangenen Daten decodieren und die Daten, die auf ihrer anderen Unterverbindung stromabwärts weitergeleitet werden sollen, neu codieren. Als solche können Neu-Zeitgeber den empfangenen Bitstrom vor dem Regenerieren erfassen und den Bitstrom an eine weitere Vorrichtung oder sogar an einen weiteren Neu-Zeitgeber (oder Neu-Treiber [engl.: re-driver] oder Zwischenverstärker) erneut senden. In einigen Fällen kann der Neu-Zeitgeber einige Werte in den Daten, die er empfängt, modifizieren, wie z. B. wenn er den geordneten Satz der Daten verarbeitet und weiterleitet. Zusätzlich kann ein Neu-Zeitgeber potentiell irgendeine Breitenoption als seine maximale Breite, wie z. B. einen Satz von Breitenoptionen, die durch eine Spezifikation, wie z. B. PCIe, definiert sind, unterstützen.
  • Da die Datenraten von seriellen Zusammenschaltungen (z. B. PCIe, UPI, USB usw.) zunehmen, werden die Neu-Zeitgeber zunehmend verwendet, um die Kanalreichweite zu erweitern. Für eine noch längere Kanalreichweite können mehrere Neu-Zeitgeber kaskadiert werden. Es wird erwartet, dass, wenn die Signalgeschwindigkeiten zunehmen, die Kanalreichweite typischerweise als eine allgemeine Sache abnimmt. Entsprechend kann die Verwendung von Neu-Zeitgebern üblicher werden, wie sich die Zusammenschaltungstechniken beschleunigen. Da als ein Beispiel der PCIe Gen-4 mit seinen 16 GT/s zugunsten des PCIe Gen-3 (8 GT/s) angewendet wird, kann die Verwendung von Neu-Zeitgebern in PCIe-Zusammenschaltungen zunehmen, wie es bei anderen Zusammenschaltungen der Fall sein kann, wenn die Geschwindigkeiten zunehmen.
  • In einer Implementierung kann eine gemeinsame BGA-Basisfläche (Kugelgitteranordnung-Basisfläche) für auf der PCI Express Gen-4 (16 GT/s) basierende Neu-Zeitgeber definiert sein. Eine derartige Bauform könnte wenigstens sowohl einige der beispielhaften Mängel, die bei herkömmlichen PCIe Gen-3 (8 GT/s) Neu-Zeitgeber-Vorrichtungen gefunden werden, als auch einige der Probleme, die mit dem Aufkommen der PCIe Gen-4 entstehen, behandeln. Ferner wird erwartet, dass für die PCIe Gen-4 die Anzahl der Anbieter von Neu-Zeitgebern und das Volumen zunehmen werden. Aufgrund der Signalverluste von der doppelten Datenrate (von 8 GT/s auf 16 GT/s) wird die erreichbare Zusammenschaltungslänge bei der Gen-4 signifikant verringert. In dieser und anderen beispielhaften Zusammenschaltungstechniken können die Neu-Zeitgeber, da die Datenrate zunimmt, dadurch einen höheren Nutzen aufweisen, da sie verwendet werden können, um die Kanallängen drastisch zu erhöhen, die sonst durch die erhöhte Datenrate eingeschränkt sein würden.
  • Obwohl gezeigt ist, dass der Neu-Zeitgeber von der stromaufwärts gelegenen Komponente und der stromabwärts gelegenen Komponente getrennt ist, kann er ein Teil der stromaufwärts gelegenen oder stromabwärts gelegenen Komponenten sein, sich an Bord mit den stromaufwärts gelegenen oder den stromabwärts gelegenen Komponenten befinden oder sich in der Baugruppe mit der stromabwärts gelegenen Komponente befinden.
  • Der stromabwärts gelegene Anschluss 202 der stromaufwärts gelegenen Komponente kann Zugriff auf ein Speicherelement 222, wie z. B. einen Flash-Speicher, einen Cache oder eine andere Speichervorrichtung, haben. Der Neu-Zeitgeber 1 204 kann optional ein ähnliches Speicherelement 224 enthalten. Der Neu-Zeitgeber 2 206 kann optional ein ähnliches Speicherelement 226 enthalten. Der stromaufwärts gelegene Anschluss 208 der stromabwärts gelegenen Komponente kann optional ein ähnliches Speicherelement 228 enthalten.
  • 2B ist eine schematische graphische Darstellung eines verbundenen Systems 250, das eine Inband-Konfiguration eines stromaufwärts gelegenen Anschlusses und eines Neu-Zeitgebers in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie in 2A gezeigt ist, kann ein stromabwärts gelegener Anschluss 202 einer stromaufwärts gelegenen Komponente durch eine Verbindung 210a-c, die um zwei Neu-Zeitgeber 204, 206 erweitert ist, an den stromaufwärts gelegenen Anschluss 208 der stromabwärts gelegenen Komponente gekoppelt sein. In diesem Beispiel kann der stromabwärts gelegene Anschluss 202 mit einem Adressen/Datenregister 252 des Neu-Zeitgeber-Konfigurationsregisters bereitgestellt sein, um Daten zu halten, die in einem Konfigurationszugriffsbefehl unter Verwendung von Feldern eines erweiterten SKP-OS an einen der beiden Neu-Zeitgeber zu senden sind. Ein oder mehrere Bits des SKP-OS können einen Befehlscode, Daten oder eine Adresse zur Verwendung in einem Konfigurationsregister (z. B. 256, 258) eines Neu-Zeitgebers (z. B. 204 bzw. 206), um Daten aus dem/in das Register 256, 258 zu lesen oder zu schreiben, enthalten. Die Neu-Zeitgeber können auf Konfigurationszugriffsbefehle antworten, die durch Codieren von Daten in einer Instanz eines erweiterten SKP OS gesendet werden, indem sie selbst die Antwortdaten in einer nachfolgenden Instanz eines erweiterten SKP-OS codieren. Die durch den Neu-Zeitgeber (z. B. 204, 206) codierten Daten können am stromabwärts gelegenen Anschluss extrahiert und in einem Konfigurationsdaten-Rücksprungregister des Neu-Zeitgebers (z. B. 254) aufgezeichnet werden. In die Register (z. B. 252, 254), die am stromabwärts gelegenen Anschluss 202 der stromaufwärts gelegenen Vorrichtung aufrechterhalten werden, kann durch die System-Software und/oder andere Komponenten des Systems, die einen (indirekten) Zugriff auf die Register des Neu-Zeitgebers ermöglichen, geschrieben und aus ihnen gelesen werden: ein Register (z. B. 252), das die Adresse/die Daten/den Befehl an den Neu-Zeitgeber übermittelt, und ein zweites Register (z. B. 254), das die vom Neu-Zeitgeber zurückkommenden Antworten speichert. In anderen Implementierungen können derartige Register (z. B. 260) unter anderen Beispielen anstelle von oder zusätzlich zu den Registern, die an dem stromabwärts gelegenen Anschluss 202 der stromaufwärts gelegenen Komponente aufrechterhalten werden, an dem stromaufwärts gelegenen Anschluss 208 der stromabwärts gelegenen Komponente aufrechterhalten werden.
  • Mit dem Beispiel nach 2B fortfahrend kann der Neu-Zeitgeber im Zusammenhang mit einem Mechanismus zum Bereitstellen eines Inband-Zugriffs auf die Neu-Zeitgeber-Register Architekturregister aufweisen, die mit wohldefinierten Bits und Eigenschaften adressierbar sind. In diesem Beispiel wird ein verbessertes SKP-OS als das von der physikalischen Schicht erzeugte periodische Muster definiert/modifiziert, um die Befehle/Informationen von den „Neu-Zeitgeber-Konfigurationsregistern-Adressen/Daten“ (z. B. 252) zu den Neu-Zeitgebern zu übertragen und die Antworten von den Neu-Zeitgebern zurück zu übertragen, um sie in die „Neu-Zeitgeber-Konfigurationsdaten-Rückgabe“ (z. B. 840) zu laden, wobei einige Bits für CRC zum Schutz der Daten zugewiesen sind. Im PCIe kann dies z. B. das Verbessern der vorhandenen geordneten SKP-Menge (z. B. mit CSR-Zugriff und CSR-Rücksprung (CRC-geschützte Bits)) enthalten. Ferner kann ein Ablauf zum Sicherstellen der garantierten Zustellung der Befehle/Informationen an den Neu-Zeitgeber und der entsprechenden Antwort zurück definiert sein. Der Mechanismus der physikalischen Schicht kann verbessert werden, so dass er unter anderen beispielhaften Merkmalen außerdem Benachrichtigungen vom Neu-Zeitgeber (zusätzlich zur Antwort) enthält, falls er irgendeine Art von Dienst benötigt.
  • Die Eingabe-/Ausgabe- (E/A-) Bandbreite hat in den letzten Jahren signifikant zugenommen. Die Spurgeschwindigkeiten für die Zusammenschaltungen, wie z. B. jene, auf den PCIe-Zusammenschaltungs-Protokollen basieren, haben sich z. B. von 8 Gb/s (PCIe Gen3) auf 16 Gbps (PCIE gen4) und 32 Gb/s (PCIe Gen5) mit jeder Generation verdoppelt. Die USB-Spurgeschwindigkeit sprang von 480 Mb/s (USB2.0) auf 10 Gbps (USB3.2gen2) und 20 Gbps (USB4.0). Da die E/A-Geschwindigkeit für jede Generation zunimmt, skaliert das Budget des PCB-Verlusts (dB), das der Systemplatine zugewiesen ist, in einer Geschwindigkeit, die viel langsamer als das Bandbreitenwachstum ist. Dies führt zu einer immer kürzeren Kanalreichweite. Zur Kanalerweiterung können Zwischenverstärkervorrichtungen, wie z. B. Neu-Treiber oder Neu-Zeitgeber, verwendet werden.
  • Im Vergleich zu einem Neu-Zeitgeber kann ein Neu-Treiber (wie z. B. ein Neu-Treiber 304) die folgenden Vorteile enthalten: 1) geringere Kosten; 2) relativ geringere Leistungsaufnahme; 3) weniger Verzögerung; und 4) Entwurf mit geringer Komplexität und ohne Protokollwahrnehmung. Die Neu-Treiber können ungeachtet dessen, dass sie eine relativ geringe Leistungsaufnahme aufweisen, einen signifikanten Betrag an Leistung verbrauchen, insbesondere wenn sie verwendet werden, um eine große Anzahl von E/A-Spuren zu unterstützen. Zusätzlich neigen die Neu-Treiber dazu, in Unkenntnis des Protokolls zu sein oder das Protokoll/die Plattform nicht wahrzunehmen. Typischerweise verbraucht ein Neu-Treiber im aktiven Zustand ~ 150 - 300 mW/Spur und mehr als mehrere mW/Spur während der Bereitschaft. Auf Datenzentrumsplattformen kann die Gesamtzahl der Hochgeschwindigkeits-E/A-Spuren einige hundert übersteigen, einschließlich PCIe, UPI, USB usw.
  • Diese Offenbarung beschreibt Neu-Treiber-Leistungsmanagementmechanismen, die nicht nur die Leistungsaufnahme der Plattform verringern, sondern außerdem die thermische Bauform beeinflussen können. Die hier beschriebenen Leistungsmanagementmechanismen können die gleichen oder ähnliche Leistungsmanagementfähigkeiten eines protokollbewussten Neu-Treibers erreichen. Die hierin beschriebenen Leistungsmanagementmechanismen können die Leistungsaufnahme für Neu-Treiber-Anwendungen verbessern und können auf Neu-Treiber für verschiedene Schnittstellen, wie z. B. PCIe, USB, UPI usw., angewendet werden (PCIe wird hier verwendet, um den Kontext bereitzustellen).
  • 3A ist eine schematische logische graphische Darstellung einer Übertragungstopologie 300, die einen Neu-Treiber enthält, in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung. Die Topologie 300 kann eine stromaufwärts gelegene Komponente (USC) 302 enthalten, die in Hardware, Software oder einer Kombination aus Hardware und Software implementiert sein kann. Die USC 302 kann unter Verwendung einer analogen und/oder einer digitalen Schaltungsanordnung implementiert sein. Die USC 302 kann die Sendung (TX) und den Empfang (RX) von elektrischen Signalen über eine Verbindung unterstützen. Die UPC 302 kann z. B. ein elektrisches Signal an die stromabwärts gelegene Komponente (DSC) 306 senden und empfangen. Die DSC 306 kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert sein. Die DSC 306 kann unter Verwendung einer analogen und/oder einer digitalen Schaltungsanordnung implementiert sein. Die DSC 306 kann die Sendung (TX) und den Empfang (RX) von elektrischen Signalen über eine Verbindung unterstützen.
  • Die UPC 302 kann elektrische Signale über eine Verbindung 308a senden und/oder empfangen, während die DSC 306 elektrische Signale über eine Verbindung 308b senden und empfangen kann. Die effektive Kanallänge der Topologie 300 kann L1 + L2 betragen, die die effektiven Längen der Verbindungen 308a und 308b sind. Ein Neu-Treiber 304 kann eine Kanalerweiterung für die Topologie 300 bereitstellen. Tabelle 1 veranschaulicht ein Beispiel einer Kanalerweiterung mit und ohne einen Neu-Treiber für verschiedene Bedingungen, wie z. B. PCIe-Geschwindigkeiten, PCB-Materialien usw. Tabelle 1. Beispiel der geschätzten Gesamtkanallänge mit und ohne einen Neu-Treiber.
    Ohne Neu-Treiber Mit Neu-Treiber
    Geschwindigkeit/Material verlustarmes PCB-Material ultra-verlustarmes PCB-Material verlustarmes PCB-Material ultra-verlustarmes PCB-Material
    PCIe 3.0 (8 GT/s) ~20-22 in ~30 in ~35 in > 45 in
    PCIe 4.0 (16 GT/s) ~14 in ~21 in ~25 in ~32 in
    PCIe 5.0 (32 GT/s) ~8 in ~12 in ~13 in ~20 in
  • 3B ist ein schematischer Blockschaltplan einer beispielhaften Platinenimplementierung für einen Neu-Treiber in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung. Ein System 350 kann eine Basisplatine 360 enthalten. Die Basisplatine 360 kann eine Leiterplatte (PCB) oder ein anderes Substrat enthalten, das elektrische Komponenten tragen kann. Derartige elektrischen Komponenten können eine stromaufwärts gelegene Komponente 352, einen Neu-Treiber 354, Schaltungselemente (z. B. einen Kondensator 358), einen Verbinder 380, eine Signalweiterleitung (z. B. eine Platinenverknüpfung 362) enthalten. Die USC 352 kann zur obigen USC 302 nach 3A ähnlich sein. Der Neu-Treiber 354 kann zum obigen Neu-Treiber 304 ähnlich sein.
  • Der Neu-Treiber 354 kann eine analoge (oder eine Kombination aus einer analogen und einer digitalen) Reichweitenerweiterungsvorrichtung enthalten, die entworfen ist, die Hochfrequenzanteile eines Signals zu verstärken, um der frequenzabhängigen Dämpfung entgegenzuwirken, die durch die Verbindungsmedien einschließlich verschiedener Komponenten der Zusammenschaltungskomponenten, wie z. B. die Baugruppe der Zentraleinheit (CPU), die Systemplatine, die Verbinder, die Übertragungsleitungen usw., verursacht wird. Der Neu-Treiber 354 kann einen Datenweg enthalten, der typischerweise einen kontinuierlichen zeitlich linearen Entzerrer (CTLE), eine Breitband-Verstärkungsstufe und einen linearen Treiber aufweist. Um die Stromaufwärts- und Stromabwärts-Sendung und den Stromaufwärts- und Stromabwärts-Empfang zu fördern, kann der Neu-Treiber 354 ein Senderelement und ein Empfängerelement enthalten. Der Neu-Treiber kann unidirektional oder bidirektional sein. Zusätzlich können die Neu-Treiber einen Rauschsperrendetektor am Empfänger enthalten, um den Signalverlust oder den Beginn des ankommenden Signals zu detektieren.
  • Die Basisplatine 360 kann einen Verbinder 380 tragen, der eine Erweiterungskarte (AIC) 370 elektrisch und physisch an die Basisplatine 360 koppeln kann. Die AIC 370 kann elektrische Komponenten tragen, wie z. B. eine stromabwärts gelegene Komponente (DSC) 356, die zur obigen DSC 306 ähnlich sein kann. Die DSC 356 kann über die Kartenverknüpfung 372, durch den Verbinder 380 und durch die Platinenverknüpfung 362 elektrisch an die USC 352 gekoppelt sein. In den Ausführungsformen kann sich der Neu-Treiber 354 zwischen der USC 352 und der DSC 356 befinden und elektrisch an sie gekoppelt sein. In der in 3B gezeigten Ausführungsform des Systems 350 befindet sich der Neu-Treiber 354 auf der Basisplatine 360. In anderen Ausführungsformen kann sich ein Neu-Treiber auf der AIC 370 befinden.
  • Die Neu-Treiber-Vorrichtungen können analoge Vorrichtungen sein und das Protokoll nicht kennen. Deshalb profitieren derartige Neu-Treiber nicht von den Leistungsmanagementschemata, die durch die Zusammenschaltungsprotokolle oder anderen Mechanismen bereitgestellt werden, was auf die Unfähigkeit des Neu-Treibers zurückzuführen sein kann, die Verbindungsleistungsmanagementbefehle zu interpretieren. Die Neu-Treiber werden folglich in einer Bereitschaftsbetriebsart aufrechterhalten, wenn es keinen Verbindungsverkehr gibt oder wenn sie ein Steuersignal (normalerweise durch ein Leitungsgatter) empfangen würden, um die Vorrichtung in eine Niedrigleistungsbetriebsart zu versetzen oder die Vorrichtungsleistung vollständig abzuschalten. Das Fehlen eines standardkonformen Neu-Treiber-Leistungsmanagementzustands in Verbindung mit den Verbindungsleistungszuständen hat den Systementwurf verkompliziert und ist nicht leistungseffizient.
  • Das Fehlen eines Leistungsmanagementschemas in diesen Vorrichtungen weist zwei Nachteile auf: 1) Die Vorrichtung kann mehr Leistung verbrauchen als erforderlich; 2) das vollständige Aufwachen aus einem ausgeschalteten Zustand erfordert eine längere Zeit und kann sich auf die Latenzzeit auswirken.
  • Das hier beschriebene Leistungsmanagementschema für Neu-Treiber-Vorrichtungen ermöglicht es den Neu-Treibern, die Leistungsaufnahme zu managen (oder selbst zu managen). Dieses Leistungsmanagementschema wird durch das Bestimmen oder Folgern eines Protokollverbindungszustands und das Versetzen des Neu-Treibers in einen entsprechenden Leistungszustand erreicht. Deshalb können die hierin beschriebenen Leistungsmanagementtechniken Plattformleistung einsparen, ohne die Latenzanforderungen zu opfern. Hier werden die PCIe-Neu-Treiber als ein Beispiel verwendet. In einigen Ausführungsformen können drei Signale verwendet werden, um auf den PCIe-Verbindungszustand zu folgern. Die Leistungsmanagementtechniken können für die Neu-Treiber für andere Schnittstellen mit einer ähnlichen Implementierung, wie z. B. USB, angewendet werden.
  • Die Vorteile der vorliegenden Ausführungsformen sind für die Fachleute auf dem Gebiet offensichtlich. Die verschiedenen Vorteile enthalten einen Neu-Treiber, der basierend auf den Verbindungsleistungsmanagementzuständen funktionieren kann, ohne die Verbindungsleistungsmanagementbefehle zu decodieren, was die Komplexität der Implementierung signifikant verringert. Ein weiterer beispielhafter Vorteil kann das Einsparen von Leistungsaufnahme von Neu-Treiber-Vorrichtungen enthalten, ohne die Verbindungslatenzzeit zu opfern.
  • Das hier beschriebene Neu-Treiber-Leistungsmanagementschema beinhaltet das Abbilden von Neu-Treiber-Leistungszuständen auf vorhandene Verbindungszustände, die im PCIe-Protokoll definiert sind (PCIe wird hier abermals als ein Beispiel verwendet, wobei andere Leistungsmanagementzustände des Zusammenschaltungsprotokolls in einer ähnlichen Weise außerdem abgebildet werden können). Ein beispielhaftes PCIe-Neu-Treiber-Leistungsmanagementschema ist durch die in Tabelle 2 gezeigte Abbildung veranschaulicht. Tabelle 2. Auf die Neu-Treiber-Leistungsbetriebsarten und die Leistungsbetriebsart-Steuersignale abgebildete PCIe-Verbindungszustände.
    Leistungs betriebsart - Steuersignal
    PCIe-Verbindungszustand Neu-Treiber-Zustandsmaschine Neu-Treiber-Leistungszustand/Operation EI Det CLKREQ# Vtx_cm Det
    L0 Rdr-L0 Aktives Weiterleiten nein aktiviert k. A.
    L0s Rdr-L0s Bereitschaft für RX-Rauschsperrendetektion freigeben ja aktiviert aufrechterhalten
    L1.0 (kurze Latenzzeit)
    L1.0 (lange Latenzzeit) Rdr-L1 TX/RX im Niedrigleistungszustand; TX erhält Vtx cm aufrecht ja deaktivier aufrechterhalten
    L1.1
    L1.2 Rdr-L2 TX/RX im Niedrigleistungszustand; TX erhält Vtx cm nicht aufrecht ja deaktivier nicht aufrechterhalten
    L2
    L3 ausgeschaltet Vorrichtung ausgeschaltet k. A. k. A. k. A.
  • Die erste Spalte der Tabelle 2 zeigt die PCIe-Verbindungszustände. Der PCIe-Standard definiert mehrere Verbindungszustände vom L0 bis zum L3, einschließlich eines oder mehrerer Unterzustände. Wenn der Verbindungszustand vom L0 bis zum L3 übergeht, nimmt die Leistungseinsparung zu. Die Verbindungszustände können wie folgt beschrieben werden: voll aktiver Zustand (L0), elektrischer Leerlauf- oder Bereitschaftszustand (L0s), L1 (Bereitschafts-/Schlummer-Zustand mit niedrigerer Leistung), L2 (Niedrigleistungs-Schlafzustand) und L3 (Auszustand der Verbindung). Wenn die Verbindungen vom L0-Zustand zum L3-Zustand übergehen, nehmen die Leistungseinsparung und die Ausgangslatenzzeiten zu. Im Zustand L0 ist die Verbindung in ihrer Bereitschaftsbetriebsart vollständig aktiv. Während kurzer Intervalle des logischen Leerlaufs beim Fehlen von Verbindungsaktivitäten kann die Verbindung in einen L0s-Zustand mit sehr niedrigen Ausgangslatenzzeiten (mehrere hundert Nanosekunden) für eine kleine Leistungsverringerung übergehen. Im L1-Zustand sind die Versorgungs- und Referenztaktkomponenten vollständig aktiv, mit Ausnahme, wie es durch das Taktleistungsmanagement (unter Verwendung der CLKREQ#) erlaubt ist, wenn es freigegeben ist. Wenn der optionale interne PLL aus- oder eingeschaltet ist, können der TX und der RX ausgeschaltet oder im Leerlauf sein, wobei der Gleichtakthalter aktiv bleibt. Abhängig von der Anzahl der optionalen aktiven Vorrichtungen im L1-Zustand können die Leistungseinsparungen in der L1-Bereitschaftsbetriebsart begrenzt sein, wobei sie nicht wie vorgesehen den Anforderungen des Mobilfunkmarktes entsprechen, selbst wenn die Ausgangslatenzzeiten des L1-Zustands unter bestimmten Bedingungen in der Größenordnung von Mikrosekunden liegen könnten.
  • Im L2-Schlafzustand sind die Takte und die Hauptleistungsversorgungen ausgeschaltet, was die höchsten Leistungseinsparungen im Leerlaufzustand bereitstellt. Die Ausgangslatenzzeiten können jedoch relativ lang sein: in der Größenordnung von einigen zehn Millisekunden; deshalb wird der L2-Leistungszustand üblicherweise in mobilen Anwendungen verwendet, wenn das System in einen verlängerten Bereitschaftszustand eintritt.
  • Wenn die Verbindung aus einer Leistungssparbetriebsart aufwacht (d. h., die Verbindung zum L0 übergeht), nimmt die Latenzzeit zu. Um die Leistungsaufnahme im L1-Leerlaufzustand mit angemessenen Ausgangslatenzzeitzielen und ohne Beeinflussung der Gesamtleistung der PCIe-Verbindungszustände zu verringern, sind zwei Unterzustände als ein Teil des L1-Verbindungszustands definiert. Die L1-Unterzustände L1.1 und L1.2 verwenden ein bidirektionales Seitenband-Taktanforderungssignal pro Verbindung, CLKREQ#, das durch beide Anschlüsse an den beiden Enden einer Verbindung benötigt wird. Wenn beide Enden der Verbindung nicht zum L1-Unterzustand fähig sind und freigegeben sind, dann kann die Verbindung nur im alten L1-Leistungszustand arbeiten. Die internen Phasenregelkreise (PLLs) weisen nicht länger eine Option auf, eingeschaltet sein, und sollten sowohl im L1.1 als auch im L1.2 ausgeschaltet sein, da in den L1-Unterzuständen keine Referenztakteingaben erforderlich sind. Ähnlich sind sowohl der TX als auch der RX ausgeschaltet, wobei es nicht erforderlich ist, dass sie in diesen Unterzuständen einen elektrischen Leerlauf detektieren. Der Hauptunterschied zwischen L1.1 und L1.2 ist der Gleichtaktspannungszustand, wie er im L1.1 aufrechterhalten wird und im L1.2-Unterzustand ausgeschaltet ist. Deshalb ist die Ausgangslatenzzeit des L1.2 infolge der Gleichtakt-Wiederherstellungszeit länger als die des L1.1.
  • Die abgebildete Neu-Treiber-Leistungsbetriebsart und die Betriebsbedingungen sind in der zweiten bzw. der dritten Spalte der Tabelle 2 definiert. In diesem Beispiel werden drei Steuersignale verwendet, um den PCIe-Verbindungszustand zu folgern und die Übergänge zwischen den verschiedenen Neu-Treiber-Leistungsbetriebsarten zu steuern. Diese Signale und ihr Zustand in jeder Leistungsbetriebsart sind in den letzten drei Spalten der Tabelle 2 definiert, einschließlich der Detektion des elektrischen Leerlaufs (EI), der Taktanforderung (CLKREQ#) und der Detektion der Sender-Gleichtaktspannung (Vtx cm) eines Verbindungspartners.
  • 4 ist eine schematische graphische Darstellung einer Zustandsmaschine 400 für die Neu-Treiber-Leistungsbetriebsartübergänge in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung. Der Übergang zwischen den verschiedenen Neu-Treiber-Leistungsbetriebsarten ist in 4 gezeigt. Die Neu-Treiber-Zustandsmaschine 400 enthält vier Leistungsmanagementzustände (der Ausschaltzustand ist nicht gezeigt, würde aber ähnlich auf den L3-PCIe-Verbindungszustand abgebildet werden). Es werden Tabelle 2 und 4 gemeinsam betrachtet:
  • Der L0-Zustand 402 des Neu-Treibers (Rdr) kann auf den L0-PCIe-Zustand abgebildet werden. Der Leistungszustand/-betrieb des Neu-Treibers kann das aktive Weiterleiten von Signalen während des Rdr-L0 enthalten. Der Rdr-L0-Zustand 402 ist der aktive Zustand des Neu-Treibers, der dem PCIe-LO-Zustand entspricht. Im Rdr-L0-Zustand 402 ist die Verbindung aktiv, wobei der Neu-Treiber den Datenverkehr von einer Sendevorrichtung zu einer Empfangsvorrichtung weiterleitet. In den Rdr-L0-Zustand 402 wird eingetreten, wenn die Detektion des elektrischen Leerlaufs (EI-Detektion) „nein“ ist und die CLKREQ# aktiviert ist, und ohne Berücksichtigung des Vtx_cm.
  • Der Rdr-LOs-Zustand 404 kann auf die PCIe-Verbindungszustände L0s und L1.0 (kurze Latenzzeit) abgebildet werden. Der Rdr-LOs Zustand 404 ist eine Neu-Treiber-Bereitschaftsbetriebsart, die den PCIe-Zuständen L0s und L1.0 (kurze Latenzzeit) entspricht. Wenn sich der Neu-Treiber im Rdr-LOs-Zustand 404 befindet, steht er für den Verbindungsverkehr mit aktivierter RX-Rauschsperrendetektion in Bereitschaft. In den Rdr-LOs 404 wird eingetreten, wenn der elektrische Leerlauf EI aktiviert ist/detektiert wird, aber die CLKREQ# immer noch aktiviert ist. Wenn sich der Neu-Treiber im Rdr-LOs-Zustand 404 befindet, kann er schnell aufwachen und zurück in die aktive (Rdr-L0-) Betriebsart mit geringer Latenzzeit übergehen (z. B. in ähnlicher Weise wie der PCIe-L1.0-PM-Zustand mit geringer Latenzzeit).
  • Der Rdr-L1-Zustand 406 kann auf die PCIe-Verbindungszustände L1.0 (lange Latenzzeit) und L1.1 abgebildet werden. Der Rdr-L1-Zustand 406 ist die Niedrigleistungsbetriebsart des Neu-Treibers, die den PCIe-Zuständen L1.0 (lange Latenzzeit) und L1.1 entspricht. Wenn sich der TX/RX des Neu-Treibers im Rdr-L1-Zustand 406 befindet, befindet er sich in der Niedrigleistungsbetriebsart. Der TX des Neu-Treibers erhält die Gleichtaktspannung (Vtx cm) aufrecht. In den Rdr-L1-Zustand 406 wird vom Rdr-LOs-Zustand 404 beim Detektieren der Deaktivierung der CLKREQ# eingetreten, oder vom Rdr-L0-Zustand 402 bei einer im Wesentlichen gleichzeitigen Detektion des elektrischen Leerlaufs (EI) und der CLKREQ#-Deaktivierung eingetreten.
  • Der Rdr-L2-Zustand 408 kann auf die PCIe-Verbindungszustände L1.2 und L2 abgebildet werden. Der Rdr-L2-Zustand 408 ist die Neu-Treiber-Betriebsart mit der geringsten Leistung und entspricht den PCIe-Zuständen L1.2 bis L2. Wenn sich der TX/RX des Neu-Treibers im Rdr-L2-Zustand 408 befindet, befindet er sich in der Niedrigleistungsbetriebsart. In den Rdr-L2-Zustand 408 wird aus dem Rdr-L1-Zustand 406 beim Detektieren der Entfernung der Gleichtaktspannung (Vtx_cm) oder aus dem Rdr-L0-Zustand 402 bei im Wesentlichen gleichzeitiger Detektion des elektrischen Leerlaufs (EI) am Eingang, der Deaktivierung der CLKREQ# und der Entfernung der Gleichtaktspannung (Vtx cm) eingetreten. In anderen Implementierungen kann der Neu-Treiber einen Unterzustand im Rdr-L2-Zustand 408 implementieren, falls das optionale Inband-Wecken unterstützt wird.
  • In diesem Beispiel werden drei Steuersignale verwendet, um den PCIe-Verbindungszustand zu folgern und die Übergänge zwischen verschiedenen Leistungsbetriebsarten des Neu-Treibers zu steuern. Diese Signale und ihr Zustand bei jeder Leistungsbetriebsart sind in den letzten drei Spalten der Tabelle 2 definiert, einschließlich der Detektion des „elektrischen Leerlaufs“, der Taktanforderung (CLKREQ#) und der Detektion der Sender-Gleichtaktspannung (Vtx_cm) eines Verbindungspartners.
  • 5A ist eine schematische graphische Darstellung, die eine beispielhafte Topologie 500, die mehr als einen Neu-Treiber enthält, gemäß den Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Die Topologie 500 ist eine beispielhafte vereinfachte Schaltungsimplementierung der drei Steuersignale (EI det, Vtx_cm und CLKREF#).
  • Die Topologie 500 kann einen stromabwärts gelegenen Anschluss (CA_DSP) 502 einer ersten Komponente, Komponente A, enthalten. Der CA_DSP 502 enthält einen Sender 504 und einen Empfänger 506. Der CA_DSP 502 kann außerdem sowohl einen Phasenregelkreis (PLL) 508 als auch andere Schaltungskomponenten enthalten. Die Topologie 500 kann außerdem einen stromaufwärts gelegenen Anschluss (CB USP) 522 einer zweiten Komponente, Komponente B, enthalten. Der CB _USP 522 enthält sowohl einen Empfänger 526, einen Sender 524 und einen PLL 528 als auch andere Schaltungselemente.
  • Ein erster Neu-Treiber 542 kann sich innerhalb eines Schaltungswegs zwischen dem Sender 504 und dem Empfänger 526 befinden. Der Neu-Treiber 542 kann einen Neu-Treiber-Empfänger 544 und einen Neu-Treiber-Sender 546 enthalten. Der Neu-Treiber 542 kann außerdem einen Leistungsmanagement-Controller (PM-Controller) 548 enthalten. Der Neu-Treiber 542 kann außerdem Eingänge für die drei PM-Steuersignale enthalten: einen CLKREQ#-Eingang, der ein Seitenbandeingang vom Taktgenerator (CLK Gen) 560 sein kann; einen EI-Detektionseingang und einen Gleichtaktspannungseingang.
  • Ein zweiter Neu-Treiber 552 kann sich innerhalb eines Schaltungswegs zwischen dem Sender 524 und dem Empfänger 506 befinden. Der Neu-Treiber 552 kann einen Neu-Treiber-Empfänger 5454 und einen Neu-Treiber-Sender 556 enthalten. Der Neu-Treiber 552 kann außerdem einen Leistungsmanagement-Controller (PM-Controller) 558 enthalten. Der Neu-Treiber 552 kann außerdem Eingänge für die drei PM-Steuersignale enthalten: den CLKREQ#-Eingang, der ein Seitenbandeingang vom Taktgenerator (CLK Gen) 560 sein kann; die EI-Detektion und die Gleichtaktspannung.
  • In diesem Beispiel erzeugt der CLK Gen 560 die Referenztakte sowohl für den CA_DSP 502 (REFCLKA) als auch für den CB USP 522 (REFCLKB). Die Taktanforderungssignale (CLKREQA# u. CKLREQB#) sind zusammengekoppelt und werden in die beiden unidirektionalen Neu-Treiber 542 und 552 eingespeist. In dieser Weise wird das CLKREQ#-Signal angezapft, ohne die Taktsignalfunktionalitäten zu beeinflussen. In den Ausführungsformen kann das Anzapfen des CLKREQ#-Signals in der Funktionalität und der Form ähnlich wie die Verwendung einer Seitenbandeingabe vom CLK Gen 560 in die CLKREQ#-Eingänge jedes Neu-Treibers 542 und 552 sein.
  • 5B ist eine schematische graphische Darstellung einer beispielhaften Logik 570 zum Detektieren des elektrischen Leerlaufs und der Gleichtaktspannung in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung. Die beispielhafte Logik 570 kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert sein. In 5B ist eine beispielhafte Logik für die Detektion des elektrischen Leerlaufs (EI Det) und die Detektion der TX-Gleichtaktspannung (Vtx cm Det) gezeigt. 5B veranschaulicht eine beispielhafte TX-Schaltung 572 und eine beispielhafte RX-Schaltung 574. Die EI-Detektionslogik 576, die als Hardware, Software oder eine Kombination aus Hardware und Software implementiert sein kann, kann einen EI detektieren. Der „elektrische Leerlauf“ kann durch Schaltungselemente erkannt werden, um die differentielle Spitze-Spitze-Spannung (Vrx_diff_pp) des RX 574 mit einem vorgegebenen Schwellenwert (Vrx_idle_det_diff_pp; lokale Vorspannung) zu vergleichen. Der Ausgang der EI-Det-Logik 576 kann das Vorhandensein des Fehlens des EI zum Steuern der PM-Zustände des Neu-Treibers angeben.
  • Die Gleichtaktspannungs-Detektionslogik 578 kann in Hardware, Software oder einer Kombination aus Hardware und Software implementiert sein. Das Vtx _cm ist die Gleichtaktspannung des TX 572 eines Verbindungspartners. Das Vtx_cm Det-Logik 578 enthält Schaltungselemente, um die Gleichtaktspannungen des TX 572 zu überwachen.
  • Der EI-Detektor kann einen Rauschsperrendetektor am Empfänger enthalten, um den Signalverlust oder den Beginn des ankommenden Signals zu detektieren. Ein Rauschsperrendetektor kann zum Detektieren einer Aktivität oder eines Signalverlusts auf einer Signalleitung verwendet werden und verwendet werden, um zu bestimmen, ob diese Aktivität auf der Signalleitung als Signal für die Verarbeitung oder als Rauschen qualifiziert ist.
  • Die „Taktanforderung“ (CLKREQ#) kann ein Seitenbandsignal sein, das durch den Neu-Treiber abgegriffen werden kann. Die CLKREQ# ist aktiviert, wenn der Referenztakt verfügbar ist, und andernfalls deaktiviert.
  • Die obige Offenbarung stellt die Leistungsbetriebsartsteuerung und die Implementierungen für PCIe-basierte Neu-Treiber bereit. Es werden außerdem andere Protokollimplementierungen für die Neu-Treiber-Leistungsmanagementsteuerung betrachtet. Tabelle 3 veranschaulicht die USB 3.2-Verbindungszustände, die auf die Leistungsbetriebsarten und -operationen der Neu-Treiber abgebildet sind, mit den Steuersignalen für jeden Leistungsmanagementzustand. Tabelle 3. Die auf die Leistungsbetriebsarten der Neu-Treiber und die Leistungsbetriebsart-Steuersignale abgebildeten USB 3.2-Verbindungszustände.
    Leistungs betriebsart - Steuersignale
    USB3.2-Verbindungszustand Neu-Treiber-Zustandsmaschine Neu-Treiber-Leistungszustand/ Operation EI Det Vtx_cm Det
    U0 Rdr-U0 aktives Weiterleiten nein k. A.
    U1 Rdr-U1 Bereitschaft für RX-Rauschsperrendetektion freigeben ja aufrechterhalten
    U2/U3 Rdr-Ux TX/RX im Niedrigleistungszustand; TX erhält nur Vtx cm aufrecht ja nicht aufrechterhalten
  • Tabelle 3 zeigt die Leistungsbetriebsartsteuerung für USB-3.2-basierte Neu-Treiber. Die erste Spalte in Tabelle 3 zeigt die vorhandenen USB 3.2-Verbindungszustände. Die abgebildete Leistungsbetriebsart und die Betriebsbedingung des Neu-Treibers befinden sich in der zweiten und der dritten Spalte. Die Leistungsbetriebsart-Steuersignale sind im letzten Abschnitt aufgelistet. Der Mechanismus ist zu den PCIe-Neu-Treibern ähnlich, mit Ausnahme, dass der USB-3.2-Neu-Treiber weniger Leistungszustände aufweist und kein CLKREQ#-Signal benötigt. Die beiden Steuersignale „Detektion des elektrischen Leerlaufs“ und „Vtx_cm-Detektion“ werden intern innerhalb der Neu-Treiber-Vorrichtung mit ähnlichen Implementierungen erzeugt, wie sie oben für die PCIe-Implementierung gezeigt sind.
  • 6 ist ein Prozessablaufplan 600 zum Ändern der Neu-Treiber-Leistungsmanagementzustände in Übereinstimmung mit den Ausführungsformen der vorliegenden Offenbarung. Ein Neu-Treiber, der einen Leistungsmanagement-Controller (PM-Controller) enthalten kann, kann initialisiert werden und kann in einer ersten PM-Betriebsart arbeiten (602). Bei der Initialisierung kann der Neu-Treiber z. B. in der gleichen PM-Betriebsart arbeiten wie die Verbindungspartner der stromaufwärts gelegenen Komponente oder der stromabwärts gelegenen Komponenten. Der Neu-Treiber kann z. B. in einem aktiven Zustand initialisiert werden, der einem PCIe-L0-Verbindungszustand entspricht, wenn die Verbindungspartner außerdem initialisiert werden, um den L0-Verbindungszustand zu betreiben.
  • Wenn der eine oder die mehreren Verbindungspartner die PM-Verbindungszustände ändern, kann der Neu-Treiber-PM-Controller ein oder mehrere elektrische Signale empfangen oder detektieren, die die Änderung des PM-Verbindungszustands angeben (604). Die elektrischen Signale können eine Taktanforderung (CLKREQ#), einen elektrischen Leerlauf (EI), eine Gleichtaktspannung (Vtx cm) oder ein anderes elektrisches Signal, das eine Änderung des PM-Verbindungszustands identifizieren kann, enthalten.
  • Der PM-Controller kann basierend auf den empfangenen oder detektierten elektrischen Signale eine PM-Betriebsart für den Neu-Treiber bestimmen (606). Der Neu-Treiber kann dann in der basierend auf den empfangenen elektrischen Signalen bestimmten PM-Betriebsart arbeiten (608). Der Neu-Treiber kann dann weiterhin elektrische Signale detektieren, um die PM-Betriebsart zu ändern, wenn sich die PM-Verbindungszustände ändern.
  • Eine Zusammenschaltungsstrukturarchitektur enthält die Peripheriekomponentenzusammenschaltungs- (PCI-) Express- (PCIe-) Architektur. Es ist ein Ziel der PCIe, es zu ermöglichen, dass die Komponenten und Vorrichtungen von verschiedenen Anbietern in einer offenen Architektur, die mehrere Marktsegmente; Clients (Desktops und Mobiltelephone), Server (Standard und Unternehmen) und eingebettete und Kommunikationsvorrichtungen überspannt, zusammenarbeiten. Der PCI-Express ist eine Hochleistungs-Universal-E/A-Zusammenschaltung, die für eine breite Vielfalt zukünftiger Rechen- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute, wie z. B. das Verwendungsmodell, die Lade-Speicher-Architektur und die Software-Schnittstellen, sind durch ihre Überarbeitungen aufrechterhalten worden, wohingegen frühere Implementierungen paralleler Busse durch eine im hohen Grade skalierbare, vollständig serielle Schnittstelle ersetzt worden sind. Die neueren Versionen des PCI-Express nutzen die Fortschritte bei den Punkt-zu-Punkt-Zusammenschaltungen, der netzknoten-basierten Technik und dem paketierten Protokoll aus, um neue Niveaus der Leistung und der Merkmale zu liefern. Das Leistungsmanagement, die Dienstqualität (QoS), die Unterstützung des Einbaus/Austauschs während des laufenden Betriebs, die Datenintegrität und die Fehlerbehandlung sind einige der weiterentwickelten Merkmale, die durch den PCI-Express unterstützt werden.
  • In 7 ist eine Ausführungsform einer Struktur veranschaulicht, das aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten zusammenschalten. Das System 700 enthält einen Prozessor 705 und einen Systemspeicher 710, die an den Controller-Hub 715 gekoppelt sind. Der Prozessor 705 enthält irgendein Verarbeitungselement, wie z. B. einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Der Prozessor 705 ist über den Front-Side-Bus (FSB) 706 an den Controller-Hub 715 gekoppelt. In einer Ausführungsform ist der FSB 706 eine serielle Punkt-zu-Punkt-Zusammenschaltung, wie im Folgenden beschrieben wird. In einer weiteren Ausführungsform enthält die Verbindung 706 eine serielle, differentielle Zusammenschaltungsarchitektur, die mit verschiedenen Zusammenschaltungsstandards konform ist.
  • Der Systemspeicher 710 enthält irgendeine Speichervorrichtung, wie z. B. einen Schreib-Lese-Speicher (RAM), einen nicht flüchtigen Speicher (NV-Speicher) oder andere Speicher, die durch die Vorrichtungen im System 700 zugänglich sind. Der Systemspeicher 710 ist durch eine Speicherschnittstelle 716 an den Controller-Hub 715 gekoppelt. Die Beispiele einer Speicherschnittstelle enthalten eine Speicherschnittstelle mit doppelter Datenrate (DDR), eine Zweikanal-DDR-Speicherschnittstelle und eine Speicherschnittstelle des dynamischen RAM (DRAM-Speicherschnittstelle).
  • In einer Ausführungsform ist der Controller-Hub 715 ein Wurzel-Hub, ein Wurzel-Komplex oder ein Wurzel-Controller in einer Peripheriekomponenten-Zusammenschaltungsexpress- (PCIe- oder PCIE-) Zusammenschaltungshierarchie. Die Beispiele des Controller-Hubs 715 enthalten einen Chipsatz, einen Speicher-Controller-Hub (MCH), eine Nordbrücke, einen Zusammenschaltungs-Controller-Hub (ICH), eine Südbrücke und einen Wurzel-Anschluss-Controller/Hub. Oft bezieht sich der Begriff Chipsatz auf zwei physisch getrennte Controller-Hubs, d. h., einen Speicher-Controller-Hub (MCH), der an einen Zusammenschaltungs-Controller-Hub (ICH) gekoppelt ist. Es wird angegeben, dass die aktuellen Systeme oft den MCH enthalten, der mit dem Prozessor 705 integriert ist, während der Controller 715 in einer ähnlichen Weise, wie sie im Folgenden beschrieben wird, mit den E/A-Vorrichtungen kommuniziert. In einigen Ausführungsformen wird die Peer-to-Peer-Weiterleitung optional durch den Wurzel-Komplex 715 unterstützt.
  • Hier ist der Controller-Hub 715 durch die serielle Verbindung 719 an den Netzknoten/die Brücke 720 gekoppelt. Die Eingabe-/Ausgabemodule 717 und 721, die außerdem als Schnittstellen/Anschlüsse 717 und 721 bezeichnet werden können, enthalten/implementieren einen geschichteten Protokollstapel, um die Kommunikation zwischen dem Controller-Hub 715 und dem Netzknoten 720 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen an den Netzknoten 720 gekoppelt sein.
  • Der Netzknoten/die Brücke 720 leitet die Pakete/Nachrichten von der Vorrichtung 725 stromaufwärts, d. h., eine Hierarchie aufwärts in Richtung auf einen Wurzel-Komplex, zum Controller-Hub 715 und stromabwärts, d. h., eine Hierarchie abwärts weg von einem Wurzel-Anschluss-Controller, vom Prozessor 705 oder Systemspeicher 710 zur Vorrichtung 725 weiter. Der Netzknoten 720 wird in einer Ausführungsform als eine logische Anordnung mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 725 enthält irgendeine interne oder externe Vorrichtung oder Komponente, die an einen elektronischen System zu koppeln ist, wie z. B. eine E/A-Vorrichtung, einen Netz-Schnittstellen-Controller (NIC), eine Erweiterungskarte, einen Audioprozessor, einen Netzprozessor, ein Festplattenlaufwerk, ein Speichervorrichtung, einen CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, ein Firewire-Vorrichtung, eine Vorrichtung des universellen seriellen Busses (USB), einen Scanner und andere Eingabe-/Ausgabevorrichtungen. In der PCIe-Fachsprache wird einer solche Vorrichtung oft als ein Endpunkt bezeichnet. Obwohl dies nicht spezifisch gezeigt ist, kann die Vorrichtung 725 eine PCIe-zu-PCI/PCI-X-Brücke enthalten, um PCI-Vorrichtungen älterer oder anderer Versionen zu unterstützen. Die Endpunktvorrichtungen im PCIe werden oft als integrierte Alt-, PCIe- oder Wurzel-Komplex-Endpunkte klassifiziert.
  • Der Graphikbeschleuniger 730 ist durch die serielle Verbindung 732 außerdem an den Controller-Hub 715 gekoppelt. In einer Ausführungsform ist der Graphikbeschleuniger 730 an einen MCH gekoppelt, der an einen ICH gekoppelt ist. Der Netzknoten 720 und entsprechend die E/A-Vorrichtung 725 ist dann an den ICH gekoppelt. Die E/A-Module 731 und 718 implementieren außerdem einen geschichteten Protokollstapel, um zwischen dem Graphikbeschleuniger 730 und dem Controller-Hub 715 zu kommunizieren. Ähnlich wie bei der obigen MCH-Diskussion kann ein Graphik-Controller oder der Graphikbeschleuniger 730 selbst in den Prozessor 705 integriert sein.
  • In 8 ist eine Ausführungsform eines geschichteten Protokollstapels veranschaulicht. Der geschichtete Protokollstapel 700 enthält irgendeine Form eines geschichteten Kommunikationsstapels, wie z. B. einen Schnellwegzusammenschaltungsstapel (QPI-Stapel), einen PCIe-Stapel, einen Hochleistungsrechen-Zusammenschaltungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl die Erörterung unmittelbar im Folgenden bezüglich der 7-10 in Bezug auf einen PCIe-Stapel ist, können die gleichen Konzepte auf andere Zusammenschaltungsstapel angewendet werden. In einer Ausführungsform ist der Protokollstapel 800 ein PCIe-Protokollstapel, der eine Transaktionsschicht 805, eine Verbindungsschicht 810 und eine physikalische Schicht 820 enthält. Eine Schnittstelle, wie z. B. die Schnittstellen 717, 718, 721, 722, 726 und 731 in 7, kann als ein Kommunikationsprotokollstapel 800 dargestellt sein. Die Darstellung als Kommunikationsprotokollstapel kann außerdem als ein Modul oder eine Schnittstelle bezeichnet werden, das bzw. die einen Protokollstapel implementiert/einschließt.
  • Der PCI-Express verwendet Pakete, um Informationen zwischen den Komponenten zu übertragen. Die Pakete werden in der Transaktionsschicht 805 und der Datenverbindungsschicht 810 gebildet, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu übertragen. Wenn die gesendeten Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die notwendig sind, um die Pakete in diesen Schichten zu behandeln. Auf der Empfangsseite findet der umgekehrte Prozess statt, wobei die Pakete von ihrer Darstellung in der physikalischen Schicht 820 in die Darstellung in der Datenverbindungsschicht 810 und schließlich (für Pakete der Transaktionsschicht) in die Form transformiert werden, die durch die Transaktionsschicht 705 der empfangenden Vorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 805 eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Zusammenschaltungsarchitektur, wie z. B. der Datenverbindungsschicht 810 und der physikalischen Schicht 820, bereitstellen. In dieser Hinsicht sind die Zusammenstellung und die Zerlegung der Pakete (d. h., der Pakete der Transaktionsschicht oder TLPs) eine primäre Verantwortlichkeit der Transaktionsschicht 805. Die Übersetzungsschicht 805 managt typischerweise die Kreditbasis-Flusssteuerung für die TLPs. Die PCIe implementiert aufgeteilte Transaktionen, d. h., Transaktionen mit zeitlich getrennter Anfrage und Antwort, die es einer Verbindung ermöglichen, anderen Verkehr zu übertragen, während die Zielvorrichtung die Daten für die Antwort sammelt.
  • Zusätzlich verwendet die PCIe eine kreditbasierte Flusssteuerung. Bei diesem Schema wirbt eine Vorrichtung für jeden der Empfangspuffer in der Transaktionsschicht 805 mit einem anfänglichen Kreditbetrag. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie z. B. der Controller-Hub 715 in 7, zählt die Anzahl der durch jedes TLP verbrauchten Kredite. Eine Transaktion kann übertragen werden, falls die Transaktion ein Kreditlimit nicht überschreitet. Nach dem Empfangen einer Antwort wird ein Kreditbetrag wiederhergestellt. Es ist ein Vorteil eines Kreditschemas, dass die Latenzzeit der Kreditrückgabe die Leistung nicht beeinflusst, vorausgesetzt, dass das Kreditlimit nicht erreicht wird.
  • In einer Ausführungsform enthalten vier Transaktionsadressenräume einen Konfigurationsadressenraum, einen Speicheradressenraum, einen Eingabe-/Ausgabeadressenraum und einen Nachrichtenadressenraum. Die Speicherraumtransaktionen enthalten eine oder mehrere Leseanforderungen und Schreibanforderungen, um Daten zu/von einem speicherabgebildeten Ort zu übertragen. In einer Ausführungsform können die Speicherraumtransaktionen zwei verschiedene Adressenformate zu verwenden, z. B. ein kurzes Adressenformat, wie z. B. eine 32-Bit-Adresse, oder ein langes Adressenformat, wie z. B. eine 64-Bit-Adresse. Die Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Die Transaktionen in den Konfigurationsraum enthalten Leseanforderungen und Schreibanforderungen. Die Nachrichtenraumtransaktionen (oder einfach die Nachrichten) sind definiert, um die Inband-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Deshalb stellt die Transaktionsschicht 805 in einer Ausführungsform den Paketkopf/die Nutzdaten 706 zusammen. Das Format für aktuellen Paketköpfe/Nutzdaten kann in der PCIe-Spezifikation auf der Website der PCIe-Spezifikation gefunden werden.
  • In 9 ist eine Ausführungsform eines PCIe-Transaktionsdeskriptors schnell veranschaulicht. In einer Ausführungsform ist der Transaktionsdeskriptor 900 ein Mechanismus zum Übertragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 900 die Identifizierung von Transaktionen in einem System. Andere potentielle Verwendungen enthalten das Verfolgen von Modifikationen der vorgegebenen Transaktionsordnung und die Zuordnung der Transaktion zu den Kanälen.
  • Der Transaktionsdeskriptor 900 enthält ein Feld 902 einer globalen Kennung, ein Attributfeld 904 und ein Kanalkennungsfeld 906. In dem veranschaulichten Beispiel ist das Feld 902 einer globalen Kennung dargestellt, das ein Kennungsfeld 908 einer lokalen Transaktion und das Quellenkennungsfeld 910 umfasst. In einer Ausführungsform ist die Kennung 902 einer globalen Transaktion für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das Kennungsfeld 908 einer lokalen Transaktion ein durch einen anfordernden Agenten erzeugtes Feld, wobei es für alle ausstehenden Anforderungen, die eine Vervollständigung für diesen anfordernden Agenten erfordern, eindeutig ist. Weiterhin identifiziert in diesem Beispiel die Quellenkennung 810 den anfordernden Agenten innerhalb einer PCIe-Hierarchie eindeutig. Entsprechend stellt das Feld für die lokale Transaktionskennung 908 zusammen mit der Quellen-ID 910 eine globale Identifikation einer Transaktion innerhalb einer Hierarchie-Domäne bereit.
  • Das Attributfeld 904 spezifiziert die Eigenschaften und Beziehungen der Transaktion an. In dieser Hinsicht wird das Attributfeld 904 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der vorgegebenen Behandlung der Transaktionen ermöglichen. In einer Ausführungsform enthält das Attributfeld 904 ein Prioritätsfeld 912, ein reserviertes Feld 914, ein Ordnungsfeld 916 und ein Keine-Spionage-Feld 918. Hier kann das Prioritätsunterfeld 912 von einem Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 914 wird für eine zukünftige oder vom Anbieter definierte Verwendung reserviert gelassen. Mögliche Verwendungsmodelle mit Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 916 verwendet, um optionale Informationen zu liefern, die den Typ der Ordnung transportieren, die die vorgegebenen Ordnungsregeln modifizieren können. Gemäß einer beispielhaften Implementierung bezeichnet ein Ordnungsattribut von „0“, dass die vorgegebenen Ordnungsregeln anzuwenden sind, während ein Ordnungsattribut von „1“ eine gelockerte Ordnung bezeichnet, wobei die Schreibvorgänge die Schreibvorgänge in der gleichen Richtung weiterleiten können und die Lesevervollständigungen die Schreibvorgänge in der gleichen Richtung weiterleiten können. Das Spionageattributfeld 918 wird verwendet, um zu bestimmen, ob Transaktionen ausspioniert werden. Wie gezeigt ist, identifiziert das Kanal-ID-Feld 906 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 810, die außerdem als eine Datenverbindungsschicht 810 bezeichnet wird, wirkt als eine Zwischenstufe zwischen der Transaktionsschicht 805 und der physikalischen Schicht 820. In einer Ausführungsform stellt eine Verantwortlichkeit der Datenverbindungsschicht 810 einen zuverlässigen Mechanismus zum Austauschen von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereit. Eine Seite der Datenverbindungsschicht 810 akzeptiert die durch die Transaktionsschicht 805 zusammengestellten TLPs, wendet die Paketfolgekennung 811, d. h., eine Identifikationsnummer oder Paketnummer, an, berechnet einen Fehlerdetektionscode, d. h., CRC 812, und wendet ihn an und schickt die modifizierten TLPs an die physikalische Schicht 820 zur Übertragung über eine physikalische an eine externe Vorrichtung ab.
  • Physikalische Schicht
  • In einer Ausführungsform enthält die physikalische Schicht 820 den logischen Unterblock 821 und den elektrischen Unterblock 822, um ein Paket physisch an eine externe Vorrichtung zu senden. Hier ist der logische Unterblock 821 für die „digitalen“ Funktionen der physikalischen Schicht 821 verantwortlich. In dieser Hinsicht enthält der logische Unterblock einen Sendeabschnitt, um abgehende Informationen für die Sendung durch den physischen Unterblock 822 vorzubereiten, und einen Empfängerabschnitt, um die empfangenen Informationen zu identifizieren und vorzubereiten, bevor sie zu der Verbindungsschicht 810 weitergeleitet werden.
  • Der physische Block 822 enthält einen Sender und einen Empfänger. Der Sender wird durch den logischen Unterblock 821 mit Symbolen beliefert, die der Sender serialisiert und an eine externe Vorrichtung sendet. Der Empfänger wird von einem externen Vorrichtung mit serialisierten Symbolen beliefert und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und dem logischen Unterblock 821 zugeführt. In einer Ausführungsform wird ein 8b/10b-Übertragungscode verwendet, bei dem Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit den Rahmen 823 einzurahmen. Zusätzlich stellt der Empfänger in einem Beispiel außerdem einen Symboltakt bereit, der aus dem eingehenden seriellen Strom wiedergewonnen wird.
  • Obwohl die Transaktionsschicht 805, die Verbindungsschicht 810 und die physikalische Schicht 820 bezüglich einer spezifischen Ausführungsform eines PCIe-Protokollstapels erörtert worden sind, wie oben dargelegt worden ist, ist ein geschichteter Protokollstapel nicht so eingeschränkt. Tatsächlich kann irgendein geschichtetes Protokoll enthalten/implementiert sein. Als ein Beispiel enthält ein Anschluss/eine Schnittstelle, der/die als ein geschichtetes Protokoll dargestellt ist, Folgendes: (1) eine erste Schicht, um Pakete zusammenzustellen, d. h., eine Transaktionsschicht; eine zweite Schicht, um die Pakete sequentiell zu ordnen, d. h., eine Verbindungsschicht; und eine dritte Schicht, um die Pakete zu senden, d. h., eine physikalische Schicht. Als ein spezifisches Beispiel wird ein geschichtetes Protokoll einer gemeinsamen Standardschnittstelle (CSI) verwendet.
  • In 10 ist als Nächstes eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Struktur veranschaulicht. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung veranschaulicht wird, ist eine serielle Punkt-zu-Punkt-Verbindung nicht so eingeschränkt, da sie irgendeinen Übertragungsweg zum Übertragen serieller Daten enthält. In der gezeigten Ausführungsform enthält eine PCIe-Basisverbindung zwei differentiell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 1006/1011 und ein Empfangspaar 1012/1007. Entsprechend enthält die Vorrichtung 1005 die Sendelogik 1006, um Daten an die Vorrichtung 1010 zu senden, und die Empfangslogik 1007, um Daten von der Vorrichtung 1010 zu empfangen. Mit anderen Worten, zwei Sendewege, d. h., die Wege 1016 und 1017, und zwei Empfangswege, d. h., die Wege 1018 und 1019, sind in einer PCIe-Verbindung enthalten.
  • Ein Sendeweg bezieht sich auf irgendeinen Weg zum Senden von Daten, wie z. B. eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationsweg. Eine Verbindung zwischen zwei Vorrichtungen, wie z. B. der Vorrichtung 1005 und der Vorrichtung 1010, wird als eine Verbindung, wie z. B. eine Verbindung 1015, bezeichnet. Eine Verbindung kann eine Spur unterstützen - jede Spur repräsentiert einen Satz von differentiellen Signalpaaren (ein Paar für die Sendung, ein Paar für den Empfang). Um die Bandbreite zu skalieren, kann eine Verbindung mehrere durch xN bezeichnete Spuren aggregieren, wobei N irgendeine unterstützte Verbindungsbreite ist, wie z. B. 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differentielles Paar bezieht sich auf zwei Übertragungswege, wie z. B. die Leitungen 1016 und 1017, um differentielle Signale zu senden. Wenn z. B. die Leitung 1016 von einem tiefen Spannungspegel zu einen hohen Spannungspegel umschaltet, d. h., eine steigende Flanke, dann steuert die Leitung 1017 von einem hohen Logikpegel zu einem tiefen Logikpegel, d. h., eine fallende Flanke. Differenzsignale demonstrieren potentiell bessere elektrische Eigenschaften, wie z. B. eine bessere Signalintegrität, d. h., Kreuzkopplung, ein Spannungsüberschwingen/-unterschwingen, Klingeln usw. Dies ermöglicht ein besseres Zeitfenster, was schnellere Übertragungsfrequenzen ermöglicht.
  • Es wird angegeben, dass die oben beschriebenen Vorrichtungen, Verfahren und Systeme in irgendeiner elektronischen Vorrichtung oder irgendeinem System implementiert sein können, wie oben erwähnt worden ist. Als spezifische Veranschaulichungen stellen die Figuren im Folgenden beispielhafte Systeme zum Verwenden der hier beschriebenen Offenbarung bereit. Da die Systeme im Folgenden ausführlicher beschrieben werden, wird eine Anzahl verschiedener Zusammenschaltungen offenbart, beschrieben und aus der obigen Diskussion wieder aufgegriffen. Wie es leicht offensichtlich ist, können die oben beschriebenen Fortschritte auf irgendeine dieser Zusammenschaltungen, Strukturen oder Architekturen angewendet werden.
  • In 11 ist ein Blockschaltplan eines beispielhaften Computersystems veranschaulicht, das mit einem Prozessor, der Ausführungseinheiten enthält, um eine Anweisung auszuführen, ausgebildet ist, wobei eine oder mehrere der Zusammenschaltungen ein oder mehrere Merkmale in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung implementieren. Das System 1100 enthält eine Komponente, wie z. B. einen Prozessor 1102, um Ausführungseinheiten einschließlich einer Logik zu verwenden, um Algorithmen auszuführen, um Daten zu verarbeiten, in Übereinstimmung mit der vorliegenden Offenbarung, wie z. B. in der hier beschriebenen Ausführungsform. Das System 1100 ist für die Verarbeitungssysteme repräsentativ, die auf den Mikroprozessoren PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™ basieren, die von der Intel Corporation in Santa Clara, Kalifornien, verfügbar sind, obwohl andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, Entwicklungs-Arbeitsplatzrechnern, Set-Top-Boxes und dergleichen) außerdem verwendet werden können. In einer Ausführungsform führt das Mustersystem 1000 eine Version des Betriebssystems WlNDOWS™ aus, das von der Microsoft Corporation in Redmond, Washington, verfügbar ist, obwohl außerdem andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder graphische Anwenderschnittstellen verwendet werden können. Folglich sind die Ausführungsformen der vorliegenden Offenbarung nicht auf irgendeine spezifische Kombination aus einer Hardware-Schaltungsanordnung und Software eingeschränkt.
  • Die Ausführungsformen sind nicht auf Computersysteme eingeschränkt. Alternative Ausführungsformen der vorliegenden Offenbarung können in anderen Vorrichtungen, wie z. B. tragbaren Vorrichtungen und eingebetteten Anwendungen, verwendet werden. Einige Beispiele der tragbaren Vorrichtungen enthalten Mobiltelephone, Internet-Protokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Die eingebetteten Anwendungen können einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Set-Top-Boxes, Netz-Hubs, Weitbereichsnetz-Netzknoten (WAN-Netzknoten) oder irgendein anderes System, das eine oder mehrere Anweisungen in Übereinstimmung mit wenigstens einer Ausführungsform ausführen kann, enthalten.
  • In dieser veranschaulichten Ausführungsform enthält der Prozessor 1102 eine oder mehrere Ausführungseinheiten 1008, um einen Algorithmus zu implementieren, der wenigstens eine Anweisung ausführen soll. Eine Ausführungsform kann im Kontext eines Einzelprozessor-Desktop- oder Serversystems beschrieben werden, wobei aber alternative Ausführungsformen in einem Mehrprozessorsystem enthalten sein können. Das System 1100 ist ein Beispiel einer ‚Hub‘-Systemarchitektur. Das Computersystem 1100 enthält einen Prozessor 1102, um Datensignale zu verarbeiten. Der Prozessor 1102 als ein veranschaulichendes Beispiel enthält z. B. einen Mikroprozessor eines Computers mit komplexem Anweisungssatz (CISC), einen Mikroprozessor mit Berechnung mit reduziertem Anweisungssatz (RISC), einen Mikroprozessor mit sehr langen Anweisungswörtern (VLIW), einen Prozessor, der eine Kombination aus Anweisungssätzen implementiert, oder irgendeine andere Prozessorvorrichtung, wie z. B. einen digitalen Signalprozessor. Der Prozessor 1102 ist an einen Prozessorbus 1110 gekoppelt, der Datensignale zwischen dem Prozessor 1102 und den anderen Komponenten im System 1100 überträgt. Die Elemente des Systems 1100 (z. B. ein Graphikbeschleuniger 1112, ein Speicher-Controller-Hub 1116, ein Speicher 1120, ein E/A-Controller-Hub 1124, ein drahtloser Sender/Empfänger 1126, ein Flash-BIOS 1028, ein Netz-Controller 1134, ein Audio-Controller 1136, ein serieller Erweiterungsanschluss 1138, ein E/A-Controller 1140 usw.) führen ihre herkömmlichen Funktionen aus, die den Fachleuten auf dem Gebiet wohlbekannt sind.
  • In einer Ausführungsform enthält der Prozessor 1102 einen internen Cache-Speicher der Ebene 1 (L1) 1104. Abhängig von der Architektur kann der Prozessor 1102 einen einzigen internen Cache oder mehrere Ebenen interner Caches aufweisen. Andere Ausführungsformen enthalten abhängig von der speziellen Implementierung und den speziellen Notwendigkeiten eine Kombination aus sowohl internen als auch externen Caches. Eine Registerdatei 1106 soll verschiedene Typen von Daten in verschiedenen Registern einschließlich Ganzzahlregistern, Gleitkommaregistern, Vektorregistern, Bank-Registern, Schattenregistern, Kontrollpunktregistern, Zustandsregistern und Anweisungszeigerregistern speichern.
  • Die Ausführungseinheit 1108, einschließlich der Logik, um Ganzzahl- und Gleitkommaoperationen auszuführen, befindet sich außerdem im Prozessor 1102. Der Prozessor 1102 enthält in einer Ausführungsform einen Mikrocode- (µcode-) ROM, um Mikrocode zu speichern, der, wenn er ausgeführt wird, Algorithmen für bestimmte Makroanweisungen ausführt oder komplexe Szenarien behandelt. Hier ist der Mikrocode potentiell aktualisierbar, um Logikfehler/-reparaturen für den Prozessor 1102 zu behandeln. Für eine Ausführungsform enthält die Ausführungseinheit 1108 eine Logik, um einen gepackten Anweisungssatz 1109 zu behandeln. Durch das Einbeziehen des gepackten Anweisungssatzes 1109 in den Anweisungssatz eines Universalprozessors 1102 zusammen mit der zugeordneten Schaltungsanordnung, um die Anweisungen auszuführen, können die durch viele Multimedia-Anwendungen verwendeten Operationen unter Verwendung gepackter Daten in einem Universalprozessor 1102 ausgeführt werden. Folglich werden unter Verwendung der vollen Breite des Datenbusses eines Prozessors zum Ausführen von Operationen an gepackten Daten viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt. Dies eliminiert potentiell die Notwendigkeit, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen, ein Datenelement auf einmal, auszuführen.
  • Alternative Ausführungsformen einer Ausführungseinheit 1108 können außerdem in Mikrocontrollern, eingebetteten Prozessoren, Graphikvorrichtungen, DSPs und anderen Typen von Logikschaltungen verwendet werden. Das System 1100 enthält einen Speicher 1120. Der Speicher 1020 enthält eine Vorrichtung eines dynamischen Schreib-Lese-Speicher (DRAM), eine Vorrichtung eines statischen Schreib-Lese-Speicher (SRAM), eine Flash-Speicher-Vorrichtung oder eine andere Speichervorrichtung. Der Speicher 1120 speichert durch Datensignale repräsentierte Anweisungen und/oder Daten, die durch den Prozessor 1102 ausgeführt werden sollen.
  • Es wird angegeben, dass irgendwelche der obenerwähnten Merkmale oder Aspekte der Offenbarung in einer oder mehreren in 11 veranschaulichten Zusammenschaltungen verwendet werden können. Eine Zusammenschaltung auf dem Die (ODI), die nicht gezeigt ist, zum Koppeln interner Einheiten des Prozessors 1102 implementiert einen oder mehrere Aspekte der oben beschriebenen Offenbarung. Oder die Offenbarung ist einem Prozessorbus 1110 (z. B. dem Intel Quick Path Interconnect (QPI) oder einer anderen bekannten Hochleistungs-Rechenzusammenschaltung), einem Speicherweg 1118 mit hoher Bandbreite zum Speicher 1120, einer Punkt-zu-Punkt-Verbindung zum Graphikbeschleuniger 1112 (z. B. einer peripheriekomponenten-zusammenschaltungsexpress-konformen (PCIekonformen) Struktur), einer Controller-Hub-Zusammenschaltung 1122, einer E/A- oder anderen Zusammenschaltung (z. B. USB, PCI, PCIe) zum Koppeln der anderen veranschaulichenden Komponenten zugeordnet. Einige Beispiele derartiger Komponenten enthalten den Audio-Controller 1136, den Firmware-Hub (Flash-BIOS) 1128, den drahtlosen Sender/Empfänger 1126, den Datenspeicher 1124, den Alt-E/A-Controller 1110, der die Anwendereingabe- und Tastaturschnittstellen 1142 enthält, einen seriellen Erweiterungsanschluss 1138, wie z. B. einen universellen seriellen Bus (USB), und einen Netz-Controller 1134. Die Datenspeichervorrichtung 1124 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • In 12 ist nun ein Blockschaltplan eines zweiten Systems 1200 in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie in 12 gezeigt ist, ist das Mehrprozessorsystem 1200 ein Punkt-zu-Punkt-Zusammenschaltungssystem, wobei es einen ersten Prozessor 1270 und einen zweiten Prozessor 1280 enthält, die über eine Punkt-zu-Punkt-Zusammenschaltung 1250 gekoppelt sind. Jeder der Prozessoren 1270 und 1280 kann irgendeine Version eines Prozessors sein. In einer Ausführungsform sind 1252 und 1254 Teil einer seriellen, kohärenten Punkt-zu-Punkt-Zusammenschaltungsstruktur, wie z. B. Intels Quick Path Interconnect-Architektur (QPI-Architektur). Im Ergebnis kann die Offenbarung innerhalb der QPI-Architektur implementiert sein.
  • Während sie mit nur zwei Prozessoren 1270, 1280 gezeigt ist, wird erkannt, dass der Schutzumfang der vorliegenden Offenbarung nicht so eingeschränkt ist. In anderen Ausführungsformen können in einem gegebenen Prozessor ein oder mehrere zusätzliche Prozessoren vorhanden sein.
  • Es ist gezeigt, dass die Prozessoren 1270 und 1280 die integrierten Speicher-Controller-Einheiten 1272 bzw. 1282 enthalten. Der Prozessor 1270 enthält als einen Teil seiner Bus-Controller-Einheiten außerdem die Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1276 und 1278; wobei der zweite Prozessor 1280 ähnlich die P-P-Schnittstellen 1286 und 1288 enthält. Die Prozessoren 1270, 1280 können Informationen über eine Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstelle) 1250 unter Verwendung der P-P-Schnittstellenschaltungen 1278, 1288 austauschen. Wie in 12 gezeigt ist, koppeln die IMCs 1272 und 1282 die Prozessoren an jeweilige Speicher, nämlich einen Speicher 1232 und einen Speicher 1234, die Abschnitte des Hauptspeichers sein können, die lokal mit den jeweiligen Prozessoren verbunden sind.
  • Die Prozessoren 1270, 1280 tauschen jeder Informationen über einzelne P-P-Schnittstellen 1252, 1254 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 1276, 1294, 1286, 1298 mit einem Chipsatz 1290 aus. Der Chipsatz 1290 tauscht über eine Schnittstellenschaltung 1292 entlang einer Hochleistungs-Graphikzusammenschaltung 1239 außerdem Informationen mit einer Hochleistungs-Graphikschaltung 1138 aus.
  • Ein (nicht gezeigter) gemeinsam benutzter Cache kann entweder in einem der beiden Prozessoren oder außerhalb der beiden Prozessoren enthalten sein; er ist dennoch über eine P-P-Zusammenschaltung mit den Prozessoren verbunden, so dass die lokalen Cache-Informationen eines oder beider Prozessoren im gemeinsam benutzten Cache gespeichert werden können, falls ein Prozessor in eine Niedrigleistungsbetriebsart versetzt wird.
  • Der Chipsatz 1290 kann über eine Schnittstelle 1296 an einen ersten Bus 1216 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1216 ein Peripheriekomponenten-Zusammenschaltungsbus (PCI-Bus) oder ein Bus, wie z. B. ein PCI-Express-Bus, oder ein anderer E/A-Zusammenschaltungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Offenbarung nicht so eingeschränkt ist.
  • Wie in 12 gezeigt ist, sind verschiedene E/A-Vorrichtungen 1214 zusammen mit einer Busbrücke 1218, die den ersten Bus 1216 an einen zweiten Bus 1220 koppelt, an den ersten Bus 1216 gekoppelt. In einer Ausführungsform enthält der zweite Bus 1220 einen Bus mit kleiner Anschlussstiftzahl (LPC-Bus). In einer Ausführungsform sind verschiedene Vorrichtungen an den zweiten Bus 1220 gekoppelt, einschließlich z. B. einer Tastatur und/oder eine Maus 1222, der Kommunikationsvorrichtungen 1227 und einer Speichereinheit 1228, wie z. B. ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die oft Anweisungen/Code und Daten 1230 enthält. Ferner ist gezeigt, dass eine Audio-E/A 1224 an den zweiten Bus 1220 gekoppelt ist. Es wird angegeben, dass andere Architekturen möglich sind, bei denen die enthaltenen Komponenten und Zusammenschaltungsarchitekturen variieren. Anstelle der Punkt-zu-Punkt-Architektur nach 12 kann ein System z. B. einen Mehranschlussstellenbus oder eine andere derartige Architektur implementieren.
  • Unter Verwendung der verschiedenen Trägheits- und Umgebungssensoren, die in einer Plattform vorhanden sind, können viele verschiedene Anwendungsfälle verwirklicht sein. Diese Anwendungsfälle ermöglichen weiterentwickelte Rechenoperationen, einschließlich Wahrnehmungsberechnungen, und ermöglichen außerdem Verbesserungen bezüglich des Leistungsmanagements/der Batterielebensdauer, der Sicherheit und der Systemansprechempfindlichkeit.
  • Bezüglich der Probleme des Leistungsmanagements/der Batterielebensdauer werden z. B. wenigstens teilweise basierend auf den Informationen von einem Umgebungslichtsensor die Umgebungslichtbedingungen an einem Ort der Plattform bestimmt, wobei die Intensität der Anzeige entsprechend gesteuert wird. Folglich wird die beim Betreiben der Anzeige verbrauchte Leistung bei bestimmten Lichtverhältnissen verringert.
  • Bezüglich der Sicherheitsoperationen kann basierend auf den Kontextinformationen, die von den Sensoren erhalten werden, wie z. B. den Ortsinformationen, bestimmt werden, ob ein Anwender auf bestimmte geschützte Dokumente zugreifen darf. Einem Anwender kann z. B. der Zugriff auf derartige Dokumente an einem Arbeitsplatz oder an einem Heimatort erlaubt sein. Der Anwender wird jedoch am Zugriff auf derartige Dokumente gehindert, wenn sich die Plattform an einem öffentlichen Ort befindet. Diese Bestimmung basiert in einer Ausführungsform auf den Ortsinformationen, die z. B. über einen GPS-Sensor oder die Kameraerkennung von Orientierungspunkten bestimmt werden. Andere Sicherheitsoperationen können das Bereitstellen einer Paarung von Vorrichtungen innerhalb eines Nahbereichs zueinander enthalten, z. B. einer tragbaren Plattform, wie sie hier beschrieben ist, und des Desktop-Computers, des Mobiltelephons usw. eines Anwenders. In einigen Implementierungen ist eine gewisse gemeinsame Benutzung über eine Nahfeldkommunikation verwirklicht, wenn diese Vorrichtungen so gepaart sind. Wenn die Vorrichtungen jedoch einen bestimmten Bereich überschreiten, kann eine derartige gemeinsame Benutzung gesperrt werden. Weiterhin kann, wenn eine Plattform, wie sie hier beschrieben ist, und ein Smartphone gepaart werden, ein Alarm konfiguriert sein, so dass er ausgelöst wird, wenn sich die Vorrichtungen mehr als eine vorbestimmte Entfernung voneinander entfernen, wenn sich an einem öffentlichen Ort befinden. Wenn sich diese gepaarten Vorrichtungen an einem sicheren Ort befinden, z. B. am Arbeitsplatz oder am Heimatort, können im Gegensatz die Vorrichtungen diese vorgegebene Grenze überschreiten, ohne dass ein derartiger Alarm ausgelöst wird.
  • Die Ansprechempfindlichkeit kann außerdem unter Verwendung der Sensorinformationen verbessert werden. Selbst wenn sich eine Plattform in einem Niedrigleistungszustand befindet, können die Sensoren z. B. dennoch freigegeben sein, um mit einer relativ niedrigen Frequenz zu arbeiten. Entsprechend werden irgendwelche Änderungen des Ortes der Plattform, wie sie z. B. durch die Trägheitssensoren, den GPS-Sensor usw. bestimmt werden, bestimmt. Falls keine solchen Änderungen registriert worden sind, findet eine schnellere Verbindung zu einem früheren drahtlosen Hub, wie z. B. einem Wi-Fi™-Zugangspunkt, oder einem ähnlichen drahtlosen Ermöglicher statt, da es in diesem Fall keine Notwendigkeit gibt, nach verfügbaren drahtlosen Netzbetriebsmitteln abzutasten. Folglich wird höheres Niveau der Ansprechempfindlichkeit beim Aufwachen aus einem Niedrigleistungszustand erreicht.
  • Es wird erkannt, dass viele andere Verwendungsfälle unter Verwendung der Sensorinformationen, die über die integrierten Sensoren innerhalb einer Plattform erhalten werden, wie hier beschrieben ist, ermöglicht werden können, wobei die obigen Beispiele lediglich für Veranschaulichungszwecke sind. Unter Verwendung eines Systems, wie hier beschrieben ist, kann ein Wahrnehmungsrechensystem die Hinzufügung alternativer Eingabemodalitäten, einschließlich der Gestenerkennung, ermöglichen und es ermöglichen, dass das System die Operationen und die Absicht des Anwenders wahrnimmt.
  • In einigen Ausführungsformen können ein oder mehrere Infrarot- oder andere Wärmeabtastelemente oder irgendein anderes Element zum Abtasten der Anwesenheit oder Bewegung eines Anwenders vorhanden sein. Derartige Abtastelemente können mehrere verschiedene Elemente, die zusammenarbeiten, nacheinander arbeiten oder beides, enthalten. Die Abtastelemente enthalten z. B. Elemente, die eine anfängliche Abtastung bereitstellen, wie z. B. eine Licht- oder Schallprojektion, gefolgt vom Abtasten für eine Gestendetektion durch z. B. eine Ultraschall-Laufzeitkamera oder eine Kamera für gemustertes Licht.
  • In einigen Ausführungsformen enthält das System außerdem einen Lichtgenerator, um eine beleuchtete Linie zu erzeugen. In einigen Ausführungsformen stellt diese Linie einen visuellen Hinweis hinsichtlich einer virtuellen Grenze bereit, nämlich einen imaginären oder virtuellen Ort im Raum, an dem die Handlung des Anwenders, um die virtuelle Grenze oder Ebene zu passieren oder zu durchbrechen, als eine Absicht interpretiert wird, das Rechensystem in Anspruch zu nehmen. In einigen Ausführungsformen kann die beleuchtete Linie die Farben ändern, wenn das Rechensystem in verschiedene Zustände bezüglich des Anwenders übergeht. Die beleuchtete Linie kann verwendet werden, einen visuellen Hinweis für den Anwender auf eine virtuelle Grenze im Raum bereitzustellen, und kann durch das System verwendet werden, um Zustandsübergänge des Computers bezüglich des Anwenders zu bestimmen, einschließlich des Bestimmens, wann der Anwender wünscht, den Computer in Anspruch zu nehmen.
  • In einigen Ausführungsformen tastet der Computer die Anwenderposition ab, wobei er arbeitet, um die Bewegung einer Hand des Anwenders durch die virtuelle Grenze als eine Geste zu interpretieren, die eine Absicht des Anwenders angibt, den Computer in Anspruch zu nehmen. In einigen Ausführungsformen kann sich das durch den Lichtgenerator erzeugte Licht ändern, wenn der Anwender die virtuelle Linie oder Ebene passiert, wodurch dem Anwender eine visuelle Rückmeldung bereitgestellt wird, dass er in einen Bereich zum Bereitstellen von Gesten eingetreten ist, um dem Computer eine Eingabe bereitzustellen.
  • Die Anzeigeschirme können visuelle Angaben der Zustandsübergänge des Rechensystems bezüglich eines Anwenders bereitstellen. In einigen Ausführungsformen ist ein erster Schirm in einem ersten Zustand bereitgestellt, in dem die Anwesenheit eines Anwenders durch das System abgetastet wird, z. B. durch die Verwendung eines oder mehrerer der Abtastelemente.
  • In einigen Implementierungen wirkt das System, um die Identität des Anwenders abzutasten, wie z. B. durch eine Gesichtserkennung. Hier kann der Übergang zu einem zweiten Schirm in einem zweiten Zustand bereitgestellt werden, in dem das Rechensystem die Anwenderidentität erkannt hat, wobei dieser zweite Schirm dem Anwender eine visuelle Rückmeldung bereitstellt, dass der Anwender in einen neuen Zustand übergegangen ist. Der Übergang zu einem dritten Schirm kann in einem dritten Zustand stattfinden, in dem der Anwender die Erkennung des Anwenders bestätigt hat.
  • In einigen Ausführungsformen kann das Rechensystem einen Übergangsmechanismus verwenden, um einen Ort einer virtuellen Grenze für einen Anwender zu bestimmen, wobei der Ort der virtuellen Grenze mit dem Anwender und dem Kontext variieren kann. Das Rechensystem kann ein Licht, wie z. B. eine beleuchtete Linie, erzeugen, um die virtuelle Grenze anzugeben, um das System in Anspruch zu nehmen. In einigen Ausführungsformen kann sich das Rechensystem in einem Wartezustand befinden, wobei das Licht in einer ersten Farbe erzeugt werden kann. Das Rechensystem kann detektieren, ob der Anwender die virtuelle Grenze überschritten hat, wie z. B. durch das Abtasten der Anwesenheit und der Bewegung des Anwenders unter Verwendung der Abtastelemente.
  • In einigen Ausführungsformen kann das Rechensystem in einen Zustand zum Empfangen von Gesteneingaben von dem Anwender übergehen, falls detektiert worden ist, dass der Anwender die virtuelle Grenze überschritten hat (sich die Hände des Anwenders z. B. näher am Rechensystem als die virtuelle Grenzlinie befinden), wobei ein Mechanismus, um den Übergang anzugeben, enthalten kann, dass das Licht, das die virtuelle Grenze anzeigt, zu einer zweiten Farbe wechselt.
  • In einigen Ausführungsformen kann das Rechensystem dann bestimmen, ob eine Gestenbewegung detektiert wird. Falls eine Gestenbewegung detektiert wird, kann das Rechensystem mit einem Gestenerkennungsprozess fortfahren, der die Verwendung von Daten aus einer Gestendatenbibliothek enthalten kann, die sich im Speicher in der Rechenvorrichtung befinden kann oder auf die durch die Rechenvorrichtung anderweitig zugegriffen werden kann.
  • Falls eine Geste des Anwenders erkannt wird, kann das Rechensystem in Reaktion auf die Eingabe eine Funktion ausführen und zurückkehren, um zusätzliche Gesten zu empfangen, wenn sich der Anwender innerhalb der virtuellen Grenze befindet. In einigen Ausführungsformen kann das Rechensystem, falls die Geste nicht erkannt wird, in einen Fehlerzustand übergehen, in dem ein Mechanismus, um den Fehlerzustand anzugeben, enthalten kann, dass das Licht, das die virtuelle Grenze angibt, zu einer dritten Farbe wechselt, wobei das System zurückkehrt, um zusätzliche Gesten zu empfangen, falls sich der Anwender innerhalb der virtuellen Grenze befindet, um das Rechensystem in Anspruch zu nehmen.
  • Wie oben erwähnt worden ist, kann das System in anderen Ausführungsformen als ein konvertierbares Tablet-System konfiguriert sein, das in wenigstens zwei verschiedenen Betriebsarten verwendet werden kann, einer Tablet-Betriebsart und einer Notebook-Betriebsart. Das konvertierbare System kann zwei Tafeln aufweisen, nämlich eine Anzeigetafel und eine Basistafel, so dass in der Tablet-Betriebsart die beiden Tafeln in einem Stapel übereinander angeordnet sind. In der Tablet-Betriebsart ist die Anzeigetafel nach außen gerichtet und kann eine Berührungsschirmfunktionalität bereitstellen, wie sie bei herkömmlichen Tablets gefunden wird. In der Notebook-Betriebsart können die beiden Tafeln in einer Konfiguration einer offenen Muschelschale angeordnet sein.
  • In verschiedenen Ausführungsformen kann der Beschleunigungsmesser ein 3-Achsen-Beschleunigungsmesser mit Datenraten von wenigstens 50 Hz sein. Es kann außerdem ein Gyroskop enthalten sein, das ein 3-Achsen-Gyroskop sein kann. Zusätzlich kann ein E-Kompass/Magnetometer vorhanden sein. Außerdem können ein oder mehrere Näherungssensoren bereitgestellt sein (z. B. für einen offenen Deckel, um anzutasten, wenn sich eine Person in der Nähe (oder nicht) des Systems befindet, und um die Leistung/Leistungsfähigkeit einzustellen, um die Lebensdauer der Batterie zu verlängern). Für einige OS kann die Sensorfusionsfähigkeit einschließlich des Beschleunigungsmessers, des Gyroskops und des Kompasses verbesserte Merkmale bereitstellen. Zusätzlich kann über einen Sensor-Hub mit einer Echtzeituhr (RTC) ein Wecken-von-den-Sensoren-Mechanismus verwirklicht sein, um Sensoreingaben zu empfangen, wenn sich ein Rest des Systems in einem Niedrigleistungszustand befindet.
  • In einigen Ausführungsformen ein interner Deckel/Anzeige-Offen-Schalter oder -Sensor, um anzugeben, wenn der Deckel geschlossen/geöffnet ist, und kann verwendet werden, das System in den verbundenen Bereitschaftszustand zu versetzen oder automatisch aus dem verbundenen Bereitschaftszustand aufzuwecken. Andere Systemsensoren können ACPI-Sensoren zum Überwachen des internen Prozessors, des Speichers und der Außenhauttemperatur enthalten, um basierend auf den abgetasteten Parametern Änderungen der Betriebszustände des Prozessors und des Systems zu ermöglichen.
  • In einer Ausführungsform kann das OS ein Microsoft® Windows® 8 OS sein, das die verbundene Bereitschaft implementiert (die hier außerdem als Win8 CS bezeichnet wird). Die verbundene Bereitschaft des Windows 8 oder eines anderen OS mit einem ähnlichen Zustand kann über eine Plattform, wie sie hier beschrieben ist, eine sehr geringe Ultra-Leerlaufleistung bereitstellen, um es zu ermöglichen dass Anwendungen bei sehr geringer Leistungsaufnahme z. B. mit einem cloud-basierten Ort verbunden bleiben. Die Plattform kann 3 Leistungszustände unterstützen, nämlich Schirm eingeschaltet (normal); verbundene Bereitschaft (als vorgegebener „Aus“-Zustand) und Stilllegung (null Watt Leistungsaufnahme). Folglich ist die Plattform im Zustand „verbundene Bereitschaft“ (bei minimalen Leistungspegeln) logisch eingeschaltet, selbst wenn der Bildschirm ausgeschaltet ist. Bei einer derartigen Plattform kann das Leistungsmanagement für die Anwendungen transparent gemacht werden und eine konstante Verbindbarkeit aufrechterhalten, was teilweise auf die Abstoßtechnik zurückzuführen ist, um es der am geringsten mit Energie versorgten Komponente zu ermöglichen, eine Operation auszuführen.
  • Während diese Offenbarung bezüglich einer begrenzten Anzahl von Ausführungsformen beschrieben worden ist, erkennen die Fachleute auf dem Gebiet zahlreiche Modifikationen und Variationen davon. Es ist vorgesehen, dass die beigefügten Ansprüche alle derartigen Modifikationen und Variationen abdecken, wie sie in den wahren Erfindungsgedanken und Schutzumfang dieser Offenbarung fallen.
  • Ein Entwurf kann verschiedene Phasen durchlaufen, von der Erzeugung über die Simulation bis zur Fertigung. Die Daten, die einen Entwurf repräsentieren, können den Entwurf in einer Anzahl von Arten darstellen. Erstens kann, wie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt werden. Zusätzlich kann in einigen Phasen des Entwurfsprozesses ein Modell auf Schaltungsebene mit Logik- und/oder Transistor-Gattern hergestellt werden. Weiterhin erreichen die meisten Entwürfe in irgendeiner Phase eine Datenebene, die die physische Anordnung verschiedener Vorrichtungen im Hardware-Modell darstellt. In dem Fall, in dem herkömmliche Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardware-Modell repräsentieren, die Daten sein, die das Vorhandensein oder Fehlen verschiedener Merkmale in verschiedenen Maskenschichten für die Masken, die verwendet werden, um die integrierten Schaltung herzustellen, spezifizieren. In irgendeiner Darstellung des Entwurfs können die Daten in irgendeiner Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder ein magnetischer oder optischer Speicher, wie z. B. eine Platte, kann das maschinenlesbare Medium sein, um die Informationen zu speichern, die über optische oder elektrische Wellen übertragen werden, die moduliert oder anderweitig erzeugt werden, um derartige Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder den Entwurf angibt oder führt, übertragen wird, wird in dem Ausmaß, in dem das Kopieren, Puffern oder die erneute Übertragung des elektrischen Signals ausgeführt wird, eine neue Kopie erstellt. Folglich kann ein Kommunikationsanbieter oder ein Netzbetreiber wenigstens vorübergehend einen Artikel, wie z. B. die in einer Trägerwelle codierten Informationen, die die Techniken der Ausführungsformen der vorliegenden Offenbarung verkörpern, in einem greifbaren, maschinenlesbaren Medium speichern.
  • Ein Modul, wie es hier verwendet wird, bezieht sich auf irgendeine Kombination aus Hardware, Software und/oder Firmware. Als ein Beispiel enthält ein Modul Hardware, wie z. B. einen Mikrocontroller, dem ein nicht transitorisches Medium, um Code zu speichern, der so angepasst ist, um durch den Mikrocontroller ausgeführt zu werden, zugeordnet ist. Deshalb bezieht sich der Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, um den in einem nicht transitorischen Medium zu haltenden Code zu erkennen und/oder auszuführen. Weiterhin bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls auf das nicht transitorische Medium, das den Code enthält, der spezifisch angepasst ist, um durch den Mikrocontroller ausgeführt zu werden, um vorgegebene Operationen durchzuführen. Wie gefolgert werden kann, kann sich in einer noch weiteren Ausführungsform der Begriff Modul (in diesem Beispiel) auf die Kombination aus dem Mikrocontroller und dem nicht transitorischen Medium beziehen. Die Modulgrenzen, die als getrennt veranschaulicht sind, variieren im Allgemeinen oft und überlappen potentiell. Ein erstes und ein zweites Modul können z. B. Hardware, Software, Firmware oder eine Kombination daraus gemeinsam benutzen, während irgendeine unabhängige Hardware, Software oder Firmware potentiell beibehalten wird. In einer Ausführungsform enthält die Verwendung des Begriffs Logik Hardware, wie z. B. Transistoren, Register oder andere Hardware, wie z. B. programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „zu“ oder „konfiguriert zu“ bezieht sich in einer Ausführungsform auf das Anordnen, Zusammenstellen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Entwerfen einer Vorrichtung, einer Hardware, einer Logik oder eines Elements, um eine bezeichnete oder bestimmte Aufgabe auszuführen. In diesem Beispiel ist eine Vorrichtung oder Element davon, das nicht arbeitet, immer noch ‚konfiguriert‘, eine bezeichnete Aufgabe auszuführen, falls es entworfen, gekoppelt und/oder zusammengeschaltet ist, um die bezeichnete Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Aber ein Logikgatter, das ‚konfiguriert ist‘, ein Freigabesignal für einen Takt bereitzustellen, enthält nicht jedes potentielle Logikgatter, das eine 1 oder eine 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das auf irgendeine Weise gekoppelt ist, so dass während des Betriebs der Ausgang 1 oder 0 ist, um den Takt freizugeben. Es wird abermals angegeben, dass die Verwendung des Begriffs ‚konfiguriert‘ keine Operation erfordert, sondern sich stattdessen auf den latenten Zustand einer Vorrichtung, einer Hardware und/oder eines Elements konzentriert, wobei im latenten Zustand die Vorrichtung, die Hardware und/oder das Element entworfen ist, eine spezielle Aufgabe auszuführen, wenn die Vorrichtung, die Hardware und/oder das Element arbeitet.
  • Weiterhin bezieht sich die Verwendung der Ausdrücke ‚fähig zu/zu‘ und oder ‚betreibbar, um‘ in einer Ausführungsform auf irgendeine Vorrichtung, irgendeine Logik, irgendeine Hardware und/oder irgendein Element, die bzw. das derart entworfen ist, die Verwendung der Vorrichtung, der Logik, der Hardware und/oder des Elements in einer spezifizierten Weise zu ermöglichen. Es wird wie oben angegeben, dass sich die Verwendung von um, fähig zu oder betreibbar, um in 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 arbeiten, sondern in einer derartigen Weise entworfen ist, die Verwendung einer Vorrichtung in einer spezifizierten Weise zu ermöglichen.
  • Ein Wert, wie er hier verwendet wird, enthält irgendeine bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Die Verwendung von Logikpegeln, Logikwerten oder logischen Werten wird oft als ‚1‘en und ‚0‘ en bezeichnet, was einfach binäre Logikzustände repräsentiert. Eine 1 bezieht sich z. B. auf einen hohen Logikpegel, während sich eine 0 auf einen tiefen Logikpegel bezieht. In einer Ausführungsform kann eine Speicherzelle, wie z. B. ein Transistor oder eine Flash-Zelle, einen einzelnen logischen Wert oder mehrere logische Werte halten. Es sind jedoch andere Darstellungen von Werten in Computersystemen verwendet worden. Die Dezimalzahl zehn kann z. B. außerdem als ein binärer Wert von 1010 und ein hexadezimaler Buchstabe A dargestellt werden. Ein Wert enthält deshalb irgendeine Darstellung von Informationen, die in einem Computersystem gehalten werden kann.
  • Überdies können die Zustände durch Werte oder Teile von Werten dargestellt sein. Als ein Beispiel kann ein erster Wert, wie z. B. eine logische Eins, einen vorgegebenen oder Anfangszustand repräsentieren, während ein zweiter Wert, z. B. eine logische null, einen nicht vorgegebenen Zustand repräsentieren kann. Zusätzlich beziehen sich die Begriffe Rücksetzen und Setzen in einer Ausführungsform auf einen vorgegebenen und einen aktualisierten Wert bzw. Zustand. Ein vorgegebener Wert enthält potentiell einen hohen logischen Wert, d. h., Rücksetzen, während ein aktualisierter Wert potentiell einen tiefen logischen Wert, d. h., Setzen, enthält. Es wird angegeben, dass irgendeine Kombination von Werten verwendet werden kann, um irgendeine Anzahl von Zuständen zu repräsentieren.
  • Die oben dargelegten Ausführungsformen der Verfahren, der Hardware, der Software, der Firmware oder des Codes können über Anweisungen oder Code implementiert sein, die in einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind, die durch ein Verarbeitungselement ausführbar sind. Ein nicht transitorisches maschinenzugängliches/-lesbares Medium enthält irgendeinen Mechanismus, der Informationen in einer durch eine Maschine, wie z. B. einen Computer oder ein elektronisches System, lesbaren Form bereitstellt (d. h., speichert und/oder überträgt). Ein nicht transitorisches maschinenzugängliches Medium enthält z. B. einen Schreib-Lese-Speicher (RAM), wie z. B. einen statischen RAM (SRAM) oder einen dynamischen RAM (DRAM); einen ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die von transitorischen (ausgebreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von den nicht transitorischen Medien zu unterscheiden sind, die davon Informationen empfangen können.
  • Die Anweisungen, die verwendet werden, um eine Logik zu programmieren, um die Ausführungsformen der Offenbarung auszuführen, können innerhalb eines Speichers im System, wie z. B. einem DRAM, einem Cache, einem Flash-Speicher oder einem anderen Speicher, gespeichert sein. Weiterhin können die Anweisungen über ein Netz oder über andere computerlesbare Medien verteilt werden. Folglich kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form enthalten, ist aber nicht eingeschränkt auf Disketten, optische Platten, Kompaktplatten-Festwertspeicher (CD-ROMs) und magnetooptische Platten, Festwertspeicher (ROMs), Schreib-Lese-Speicher (RAM), löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen greifbaren, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von ausgebreiteten Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) verwendet wird. Entsprechend enthält das computerlesbare Medium irgendeinen Typ eines greifbaren, maschinenlesbarem Medium, das zum Speichern oder Übertragen elektronischer Anweisungen oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form geeignet ist.
  • Die Bezugnahme überall in dieser Beschreibung auf „eine einzige Ausführungsform“ oder „eine Ausführungsform“ bedeutet, dass ein spezielles Merkmal, eine spezielle Struktur oder eine spezielle Eigenschaft, das bzw. die im Zusammenhang mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Folglich beziehen sich die Auftreten der Ausdrücke „in einer einzigen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen überall in dieser Beschreibung nicht notwendigerweise alle auf dieselbe Ausführungsform. Weiterhin können die speziellen Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen in irgendeiner geeigneten Weise kombiniert werden.
  • In der vorstehenden Beschreibung ist eine ausführliche Beschreibung bezüglich spezifischer beispielhafter Ausführungsformen gegeben worden. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Erfindungsgedanken und Schutzumfang der Offenbarung, wie sie in den beigefügten Ansprüchen dargelegt sind, abzuweichen. Die Beschreibung und die Zeichnungen sind entsprechend in einem veranschaulichenden Sinn anstatt in einem einschränkenden Sinn zu betrachten. Weiterhin bezieht sich die vorstehende Verwendung der Ausführungsform und anderer beispielhafter Terminologie nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern sie kann sich sowohl auf verschiedene und unterschiedliche Ausführungsformen als auch auf potentiell dieselbe Ausführungsform beziehen.
  • Das Beispiel 1 ist eine Vorrichtung mit einem Empfängeranschluss, der über eine erste Verbindung an einen ersten Verbindungspartner gekoppelt ist; einem Senderanschluss, der über eine zweite Verbindung an einen zweiten Verbindungspartner gekoppelt ist; und einem Leistungsmanagement-Controller, der wenigstens teilweise in Hardware implementiert ist, um ein oder mehrere Leistungsmanagement-Steuersignale zu detektieren, einen Leistungsmanagementzustand für die Vorrichtung wenigstens teilweise basierend auf wenigstens einem des einen oder der mehreren Leistungsmanagement-Steuersignale zu bestimmen und die Vorrichtung zu veranlassen, in den Leistungsmanagementzustand einzutreten. Die Vorrichtung sendet basierend auf dem Leistungsmanagementzustand elektrische Signale an den zweiten Verbindungspartner.
  • Das Beispiel 2 kann den Gegenstand des Beispiels 1 enthalten, wobei die Vorrichtung einen Neu-Treiber umfasst.
  • Das Beispiel 3 kann den Gegenstand eines der Beispiele 1-2 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Steuersignale ein an der Vorrichtung empfangenes elektrisches Leerlaufsignal (EI) oder ein Gleichtaktspannungssignal (Vtx_cm), das bei dem Sender des ersten Verbindungspartners aufrechterhalten wird, umfassen.
  • Das Beispiel 4 kann den Gegenstand des Beispiels 3 enthalten, wobei die Vorrichtung basierend auf einem oder mehreren der Detektion oder dem Fehlen des EI-Signals oder der Aufrechterhaltung oder der Nichtaufrechterhaltung der Vtx_cm in einen Leistungsmanagementzustand eintritt.
  • Das Beispiel 5 kann den Gegenstand eines der Beispiele 1-4 enthalten, wobei die Vorrichtung ein aktives Weiterleiten ausführt, wenn kein EI-Signal detektiert wird.
  • Das Beispiel 6 kann den Gegenstand eines der Beispiele 1-4 enthalten, wobei die Vorrichtung in einen Bereitschaftszustand eintritt, wenn das EI-Signal detektiert wird und das Vtx cm aufrechterhalten wird.
  • Das Beispiel 7 kann den Gegenstand eines der Beispiele 1-4 enthalten, wobei die Vorrichtung in einen Niedrigleistungszustand eintritt, wenn das EI-Signal detektiert wird und das Vtx cm nicht aufrechterhalten wird.
  • Das Beispiel 8 kann den Gegenstand eines der Beispiele 1-7 enthalten, wobei die Vorrichtung auf einem Zusammenschaltungsprotokoll des universellen seriellen Busses (USB) basiert; und der Leistungsmanagementzustand einem Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Zusammenschaltungsprotokoll zugeordnet ist.
  • Das Beispiel 9 kann den Gegenstand eines der Beispiele 1-7 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Steuersignale ein Taktanforderungs-(CLKREQ#-) Signal umfassen; und wobei die Vorrichtung basierend auf einer Detektion oder einem Fehlen eines oder mehrerer des CLKREQ#-Signals oder des EI-Signals oder darauf basierend, dass das Vtx_cm aufrechterhalten wird, in einen Leistungsmanagementzustand eintritt.
  • Das Beispiel 10 kann den Gegenstand eines der Beispiele 1-7 und 9 enthalten, wobei die Vorrichtung auf einem Peripheriekomponenten-Zusammenschaltungsexpress-Protokoll basiert.
  • Das Beispiel 11 kann den Gegenstand eines der Beispiele 1-10 enthalten, wobei der Leistungsmanagementzustand einem Leistungsmanagement-Verbindungszustand entspricht, der einem Zusammenschaltungsprotokoll zugeordnet ist.
  • Das Beispiel 12 kann den Gegenstand eines der Beispiele 1-11 enthalten, wobei der Leistungsmanagementzustand einen eines aktiven Zustands, eines Bereitschaftszustands oder eines Niedrigleistungszustands umfasst.
  • Das Beispiel 13 kann den Gegenstand eines der Beispiele 1-7 und 9-12 enthalten, wobei die Vorrichtung mit einem Peripheriekomponenten-Zusammenschaltungsexpress-Protokoll (PCIe-Protokoll) konform ist und wobei der aktive Zustand einem L0-Leistungsmanagement-Verbindungszustand entspricht, der dem PCIe-Protokoll zugeordnet ist; der Bereitschaftszustand einem L0s-Leistungsmanagement-Verbindungszustand und einem L1.0-Leistungsmanagement-Verbindungszustand mit kurzer Latenzzeit entspricht, die dem PCIe-Protokoll zugeordnet sind; und der Niedrigleistungszustand entweder einem L1.0-Leistungsmanagement-Verbindungszustand mit langer Latenzzeit und einem L1.1-Leistungsmanagement-Verbindungszustand oder einem L1.2- und L2-Leistungsmanagement-Verbindungszustand entspricht, die dem PCIe-Protokoll zugeordnet sind.
  • Das Beispiel 14 kann den Gegenstand eines der Beispiele 1-8 und 11-12 enthalten, wobei die Vorrichtung mit einem Zusammenschaltungsprotokoll des universellen seriellen Busses (USB) konform ist und wobei der aktive Zustand einem U0-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist; der Bereitschaftszustand einem U1-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist; und der Niedrigleistungszustand einem U2/U3-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist.
  • Das Beispiel 15 ist ein Verfahren, das in einem Neu-Treiber ausgeführt wird, das das Empfangen eines oder mehrerer Leistungsmanagement-Änderungssignale an dem Neu-Treiber; das Identifizieren eines Leistungsmanagementzustands für den Neu-Treiber basierend auf den empfangenen Leistungsmanagement-Änderungssignalen; das Eintreten in den identifizierten Leistungsmanagementzustand umfasst.
  • Das Beispiel 16 kann den Gegenstand des Beispiels 15 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Änderungssignale ein elektrisches Leerlaufsignal oder eine Gleichtaktspannung umfassen.
  • Das Beispiel 17 kann den Gegenstand eines der Beispiele 15-16 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Änderungssignale ein Taktanforderungs-(CLKREQ#-) Signal umfassen.
  • Das Beispiel 18 kann den Gegenstand eines der Beispiele 15-17 enthalten, das ferner das Empfangen eines elektrischen Leerlaufsignals; und das Eintreten in einen Niedrigleistungszustand basierend auf dem Empfangen eines elektrischen Leerlaufsignals umfasst.
  • Das Beispiel 19 kann den Gegenstand eines der Beispiele 15-18 enthalten, das ferner das Empfangen eines Taktanforderungs- (CLKREQ#-) Signals auf einer Seitenbandverbindung; das Eintreten in einen Bereitschafts-Leistungsmanagementzustand basierend auf dem Empfangen des elektrischen Leerlaufsignals und des CLKREQ#-Signals umfasst.
  • Das Beispiel 20 kann den Gegenstand eines der Beispiele 15-18 enthalten, das ferner das Empfangen einer Gleichtaktspannung, die einem Sender stromaufwärts des Neu-Treibers zugeordnet ist; das Bestimmen, dass die Gleichtaktspannung aufrechterhalten wird; und das Eintreten in einen Niedrigleistungs-Leistungsmanagementzustand basierend auf der aufrechterhaltenen Gleichtaktspannung umfasst.
  • Das Beispiel 21 ist ein System, das eine Basisplatine umfasst, die eine erste Rechenvorrichtung, die elektrisch und physisch an die Basisplatine gekoppelt ist; und eine Neu-Treiber-Vorrichtung, die stromabwärts der ersten Rechenvorrichtung elektrisch an die erste Rechenvorrichtung gekoppelt ist, umfasst, wobei der Neu-Treiber eine Leistungsmanagement-Controller-Logik (PM-Controller-Logik) umfasst; Das System enthält außerdem eine Erweiterungskarte (AIC), die durch einen Verbinder elektrisch an die Basisplatine gekoppelt ist, wobei die AIC eine zweite Rechenvorrichtung umfasst, die elektrisch an den Neu-Treiber auf der Basisplatine gekoppelt ist. Die PM-Controller-Logik empfängt ein oder mehrere Neu-Treiber-PM-Steuersignale; bestimmt einen PM-Zustand für den Neu-Treiber wenigstens teilweise basierend auf dem empfangenen einen oder den empfangenen mehreren PM-Steuersignalen; und veranlasst den Neu-Treiber basierend auf dem empfangenen einen oder den empfangenen mehreren PM-Steuersignalen, im PM-Zustand zu arbeiten.
  • Das Beispiel 22 kann den Gegenstand des Beispiels 21 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Änderungssignale ein elektrisches Leerlaufsignal oder eine Gleichtaktspannung umfassen.
  • Das Beispiel 23 kann den Gegenstand eines der Beispiele 21-22 enthalten, wobei der PM-Controller ein elektrisches Leerlaufsignal empfängt; und basierend auf dem Empfangen eines elektrischen Leerlaufsignals in einen Niedrigleistungszustand eintritt.
  • Das Beispiel 24 kann den Gegenstand eines der Beispiele 21-22 enthalten, wobei das eine oder die mehreren Leistungsmanagement-Änderungssignale ein Taktanforderungs-(CLKREQ#-) Signal umfassen.
  • Das Beispiel 25 kann den Gegenstand des Beispiels 24 enthalten, wobei der PM-Controller ein Taktanforderungs- (CLKREQ#-) Signal auf einer Seitenbandverbindung empfängt; basierend auf dem Empfangen des elektrischen Leerlaufsignals und des CLKREQ#-Signals in einen Bereitschafts-Leistungsmanagementzustand eintritt.
  • Das Beispiel 26 ist eine Vorrichtung, die einen Empfängeranschluss, der über eine erste Verbindung an einen ersten Verbindungspartner gekoppelt ist; einen Senderanschluss, der über eine zweite Verbindung an einen zweiten Verbindungspartner gekoppelt ist; und Mittel zum Detektieren eines oder mehrerer Leistungsmanagement-Steuersignale, Mittel zum Bestimmen eines Leistungsmanagementzustands für die Vorrichtung wenigstens teilweise basierend auf wenigstens einem des einen oder der mehreren Leistungsmanagement-Steuersignale und Mittel zum Veranlassen, dass die Vorrichtung in den LeistungsmanagementZustand eintritt, enthält. Die Vorrichtung sendet basierend auf dem Leistungsmanagementzustand elektrische Signale an den zweiten Verbindungspartner.
  • Die vorstehende Beschreibung einer oder mehrerer Implementierungen stellt eine Veranschaulichung und eine Beschreibung bereit, ist aber nicht vorgesehen, vollständig zu sein oder den Schutzumfang der Ausführungsformen auf die genaue offenbarte Form einzuschränken. Angesichts der obigen Lehren sind Modifikationen und Variationen möglich oder können aus der Praxis verschiedener Ausführungsformen gewonnen werden.

Claims (25)

  1. Vorrichtung, die Folgendes umfasst: einen Empfängeranschluss, der über eine erste Verbindung an einen ersten Verbindungspartner gekoppelt ist; einen Senderanschluss, der über eine zweite Verbindung an einen zweiten Verbindungspartner gekoppelt ist; und einen Leistungsmanagement-Controller, der in Hardware implementiert ist, um: ein Leistungsmanagement-Steuersignal zu detektieren, einen Leistungsmanagementzustand für die Vorrichtung basierend auf dem Leistungsmanagement-Steuersignal zu bestimmen und die Vorrichtung zu veranlassen, in den Leistungsmanagementzustand einzutreten; und wobei die Vorrichtung basierend auf dem Leistungsmanagementzustand elektrische Signale an den zweiten Verbindungspartner sendet.
  2. Vorrichtung nach Anspruch 1, wobei die Vorrichtung einen Neu-Treiber umfasst.
  3. Vorrichtung nach Anspruch 2, wobei das Leistungsmanagement-Steuersignal ein durch einen Rauschsperrendetektor an der Vorrichtung bestimmtes elektrisches Leerlaufsignal (EI) oder ein an einem Vtx_cm-Detektor am Empfänger des Neu-Treibers detektiertes Gleichtaktspannungssignal (Vtx cm) umfasst.
  4. Vorrichtung nach Anspruch 3, wobei die Vorrichtung basierend auf einer Detektion oder einem Fehlen des EI-Signals oder der Aufrechterhaltung oder der Nichtaufrechterhaltung des Vtx_cm in einen Leistungsmanagementzustand eintritt.
  5. Vorrichtung nach Anspruch 4, wobei die Vorrichtung ein aktives Weiterleiten ausführt, wenn kein EI detektiert wird.
  6. Vorrichtung nach Anspruch 4, wobei die Vorrichtung in einen Bereitschaftszustand eintritt, wenn das EI-Signal detektiert wird und das Vtx_cm aufrechterhalten wird.
  7. Vorrichtung nach Anspruch 4, wobei die Vorrichtung in einen Niedrigleistungszustand eintritt, wenn das EI-Signal detektiert wird und das Vtx_cm nicht aufrechterhalten wird.
  8. Vorrichtung nach Anspruch 4, wobei die Vorrichtung auf einem Zusammenschaltungsprotokoll des universellen seriellen Busses (USB) basiert; und der Leistungsmanagementzustand einem Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Zusammenschaltungsprotokoll zugeordnet ist.
  9. Vorrichtung nach Anspruch 4, wobei das Leistungsmanagement-Steuersignal ein Taktanforderungs- (CLKREQ#-) Signal umfasst; und wobei die Vorrichtung basierend auf einer Detektion oder einem Fehlen des CLKREQ#-Signals oder des EI-Signals, oder darauf, dass das Vtx_cm aufrechterhalten wird, in einen Leistungsmanagementzustand eintritt.
  10. Vorrichtung nach Anspruch 9, wobei die Verbindung eine mehrspurige Verbindung ist, die ein Peripheriekomponenten-Zusammenschaltungsexpress-Protokoll verwendet.
  11. Vorrichtung nach Anspruch 1, wobei der Leistungsmanagementzustand einem Leistungsmanagement-Verbindungszustand entspricht, der einem Zusammenschaltungsprotokoll zugeordnet ist.
  12. Vorrichtung nach Anspruch 1, wobei der Leistungsmanagementzustand einen aktiven Zustand, einen Bereitschaftszustand oder einen Niedrigleistungszustand umfasst.
  13. Vorrichtung nach Anspruch 12, wobei die Vorrichtung mit einem Peripheriekomponenten-Zusammenschaltungsexpress-Protokoll (PCIe-Protokoll) konform ist und wobei: der aktive Zustand einem L0-Leistungsmanagement-Verbindungszustand entspricht, der dem PCIe-Protokoll zugeordnet ist; der Bereitschaftszustand einem L0s- und einem L1.0-Leistungsmanagement-Verbindungszustand mit kurzer Latenzzeit entspricht, die dem PCIe-Protokoll zugeordnet sind; und der Niedrigleistungszustand entweder einem L1.0-Leistungsmanagement-Verbindungszustand mit langer Latenzzeit und einem L1.1-Leistungsmanagement-Verbindungszustand oder einem L1.2- und L2-Leistungsmanagement-Verbindungszustand entspricht, die dem PCIe-Protokoll zugeordnet sind.
  14. Vorrichtung nach Anspruch 12, wobei die Vorrichtung mit einem Zusammenschaltungsprotokoll des universellen seriellen Busses (USB) konform ist und wobei: der aktive Zustand einem U0-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist; der Bereitschaftszustand einem U1-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist; und der Niedrigleistungszustand einem U2/U3-Leistungsmanagement-Verbindungszustand entspricht, der dem USB-Protokoll zugeordnet ist.
  15. Verfahren, das in einem Neu-Treiber ausgeführt wird, das Folgendes umfasst: Empfangen eines Leistungsmanagement-Änderungssignals an dem Neu-Treiber; Identifizieren eines Leistungsmanagementzustands für den Neu-Treiber basierend auf den empfangenen Leistungsmanagement-Änderungssignalen; Eintreten in den identifizierten Leistungsmanagementzustand.
  16. Verfahren nach Anspruch 15, wobei das Empfangen des Leistungsmanagement-Änderungssignals das Empfangen eines elektrischen Leerlaufsignals oder einer Gleichtaktspannung umfasst.
  17. Verfahren nach Anspruch 16, wobei das Empfangen des Leistungsmanagement-Änderungssignals das Empfangen eines Taktanforderungs- (CLKREQ#-) Signals umfasst.
  18. Verfahren nach Anspruch 15, das ferner Folgendes umfasst: Empfangen eines elektrischen Leerlaufsignals; und Eintreten in einen Niedrigleistungszustand basierend auf dem Empfangen eines elektrischen Leerlaufsignals.
  19. Verfahren nach Anspruch 18, das ferner Folgendes umfasst: Empfangen eines Taktanforderungs- (CLKREQ#-) Signals; Eintreten in einen Bereitschafts-Leistungsmanagementzustand basierend auf dem Empfangen des elektrischen Leerlaufsignals und des CLKREQ#-Signals.
  20. Verfahren nach Anspruch 18, das ferner Folgendes umfasst: Empfangen einer Gleichtaktspannung, die einem Sender stromaufwärts des Neu-Treibers zugeordnet ist; Bestimmen, dass die Gleichtaktspannung aufrechterhalten wird; und Eintreten in einen Niedrigleistungs-Leistungsmanagementzustand basierend auf der aufrechterhaltenen Gleichtaktspannung.
  21. System, das Folgendes umfasst: eine Basisplatine, die Folgendes umfasst: eine erste Rechenvorrichtung, die elektrisch und physisch an die Basisplatine gekoppelt ist; eine Neu-Treiber-Vorrichtung, die stromabwärts der ersten Rechenvorrichtung elektrisch an die erste Rechenvorrichtung gekoppelt ist, wobei der Neu-Treiber eine Leistungsmanagement-Controller-Logik (PM-Controller-Logik) umfasst; eine Erweiterungskarte (AIC), die durch einen Verbinder elektrisch an die Basisplatine gekoppelt ist, wobei die AIC Folgendes umfasst: eine zweite Rechenvorrichtung, die elektrisch an den Neu-Treiber auf der Basisplatine gekoppelt ist; wobei die PM-Controller-Logik: ein Neu-Treiber-PM-Steuersignal empfängt; einen PM-Zustand für den Neu-Treiber basierend auf dem empfangenen PM-Steuersignal bestimmt; den Neu-Treiber basierend auf dem empfangenen PM-Steuersignal veranlasst, im PM-Zustand zu arbeiten.
  22. System nach Anspruch 21, wobei das PM-Steuersignal ein elektrisches Leerlaufsignal oder eine Gleichtaktspannung umfasst.
  23. System nach Anspruch 22, wobei der PM-Controller: ein elektrisches Leerlaufsignal empfängt; und basierend auf dem Empfangen eines elektrischen Leerlaufsignals in einen Niedrigleistungszustand eintritt.
  24. System nach Anspruch 22, wobei das PM-Steuersignal ein Taktanforderungs-(CLKREQ#-) Signal umfasst.
  25. System nach Anspruch 24, wobei der PM-Controller: ein Taktanforderungs- (CLKREQ#-) Signal auf einer Seitenbandverbindung empfängt; basierend auf dem Empfangen des elektrischen Leerlaufsignals und des CLKREQ#-Signals in einen Bereitschafts-PM-Zustand eintritt.
DE102020116195.6A 2019-07-16 2020-06-19 Leistungsmanagement für neu-treiber-vorrichtungen Pending DE102020116195A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/513,691 2019-07-16
US16/513,691 US11194751B2 (en) 2019-07-16 2019-07-16 Power management of re-driver devices

Publications (1)

Publication Number Publication Date
DE102020116195A1 true DE102020116195A1 (de) 2021-01-21

Family

ID=68383918

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020116195.6A Pending DE102020116195A1 (de) 2019-07-16 2020-06-19 Leistungsmanagement für neu-treiber-vorrichtungen

Country Status (2)

Country Link
US (1) US11194751B2 (de)
DE (1) DE102020116195A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
US11481015B2 (en) * 2019-06-25 2022-10-25 Nxp B.V. Power consumption management in protocol-based redrivers
US11625084B2 (en) * 2019-08-15 2023-04-11 Intel Corporation Method of optimizing device power and efficiency based on host-controlled hints prior to low-power entry for blocks and components on a PCI express device
CN113360436B (zh) * 2020-03-06 2023-02-21 浙江宇视科技有限公司 PCIe设备的处理方法、装置、设备及存储介质
US11907035B2 (en) * 2020-05-15 2024-02-20 Intel Corporation Sideband signaling over existing auxiliary pins of an interface
DE112020007429T5 (de) * 2020-07-15 2023-05-11 Intel Corporation Entzerrereinstellungen für einen redriver
TWI746083B (zh) * 2020-07-24 2021-11-11 聯陽半導體股份有限公司 訊號中繼系統
US11334139B1 (en) * 2020-11-30 2022-05-17 Semiconductor Components Industries, Llc Power state control for multi-channel interfaces
JP2022134510A (ja) * 2021-03-03 2022-09-15 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム、および記憶媒体
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
TWI791257B (zh) * 2021-08-02 2023-02-01 群聯電子股份有限公司 訊號重驅動裝置、資料儲存系統及模式控制方法
CN113644935B (zh) * 2021-08-09 2024-04-12 群联电子股份有限公司 信号重驱动装置、数据存储***及模式控制方法
US20230324978A1 (en) * 2022-04-06 2023-10-12 Hewlett-Packard Development Company, L.P. Power saving feature controls for add-in cards
JP2024014337A (ja) * 2022-07-22 2024-02-01 キオクシア株式会社 メモリシステム
WO2024112965A1 (en) * 2022-11-24 2024-05-30 Molex, Llc Systems and methods for entering and exiting low power mode for aggregator-disaggregator
CN117112477B (zh) * 2023-08-02 2024-05-28 成都电科星拓科技有限公司 一种PCIe Retimer验证的归一化实现方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203853B2 (en) * 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
US6906549B2 (en) * 2002-12-31 2005-06-14 Intel Corporation Asynchronous coupling and decoupling of chips
JP2004246525A (ja) * 2003-02-13 2004-09-02 Matsushita Electric Ind Co Ltd 順序回路、記憶素子、クロック発生回路およびクロック制御方法、ならびに回路変更方法および回路設計支援装置、半導体集積回路およびそれを備えた電子装置、ならびに電子制御装置およびそれを備えた移動体
TWI337464B (en) * 2007-04-14 2011-02-11 Realtek Semiconductor Corp Transceiver device and method with saving power
US7986159B1 (en) * 2010-07-16 2011-07-26 Texas Instruments Incorporated Method and apparatus for detecting a cable in a redriver
US8645724B2 (en) * 2011-06-03 2014-02-04 Nxp B.V. Redriver circuits with power saving modes
WO2013006586A1 (en) * 2011-07-01 2013-01-10 Qualcomm Atheros, Inc. System and method for standby power reduction in a serial communication system
US8804792B1 (en) * 2012-02-24 2014-08-12 Pericom Semiconductor Corporation Intermediary signal conditioning device with interruptible detection mode
US9223385B2 (en) * 2012-12-19 2015-12-29 Intel Corporation Re-driver power management
US8843093B2 (en) 2012-12-20 2014-09-23 Intel Corporation Low power squelch detector circuit
JP2015006093A (ja) * 2013-06-21 2015-01-08 住友電気工業株式会社 電力変換装置
KR102149679B1 (ko) * 2014-02-13 2020-08-31 삼성전자주식회사 데이터 저장 장치, 그 동작 방법, 및 이를 포함하는 데이터 처리 시스템
US9639291B2 (en) * 2014-09-10 2017-05-02 Kabushiki Kaisha Toshiba Memory system
MY184148A (en) * 2015-12-25 2021-03-23 Intel Corp Power management system
CN107689735B (zh) * 2016-08-05 2020-01-31 台达电子企业管理(上海)有限公司 功率变换***及其共模电压抑制方法
US20190068397A1 (en) * 2017-03-24 2019-02-28 Intel Corporation Method and system for protocol aware universal serial bus redriver
CN109729479B (zh) * 2017-10-31 2021-09-21 华为技术有限公司 音频播放电路以及音频播放设备
US11068433B2 (en) * 2018-10-18 2021-07-20 Texas Instruments Incorporated Serial bus repeater with low power state detection
US11481015B2 (en) * 2019-06-25 2022-10-25 Nxp B.V. Power consumption management in protocol-based redrivers

Also Published As

Publication number Publication date
US20190340146A1 (en) 2019-11-07
US11194751B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
US11416397B2 (en) Global persistent flush
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
KR101848379B1 (ko) 공유 메모리 링크 내의 저전력 진입
DE112013007752B3 (de) Hochleistungsverdrahtungs-Bitübertragungsschicht
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
NL2029511B1 (en) Source ordering in device interconnects
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112014006183T5 (de) Vorrichtung, Verfahren und System für einen Schnellkonfigurationsmechanismus
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE112016004332T5 (de) Verfahren, vorrichtungen und systeme zum taktversatzausgleich von datenverbindungaufteilungen
DE102019132213A1 (de) Adressenübersetzung für skalierbare verlinkte Vorrichtungen
DE102018005753A1 (de) Serdes link training
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
US10817454B2 (en) Dynamic lane access switching between PCIe root spaces
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle
DE102020130536A1 (de) Adaptiver Eintritt in und adaptives Verlassen von Niedrigenergiezuständen