DE102021118048A1 - Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports - Google Patents

Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports Download PDF

Info

Publication number
DE102021118048A1
DE102021118048A1 DE102021118048.1A DE102021118048A DE102021118048A1 DE 102021118048 A1 DE102021118048 A1 DE 102021118048A1 DE 102021118048 A DE102021118048 A DE 102021118048A DE 102021118048 A1 DE102021118048 A1 DE 102021118048A1
Authority
DE
Germany
Prior art keywords
usb
power
interconnect
protocol
devices
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
DE102021118048.1A
Other languages
English (en)
Inventor
Rajaram REGUPATHY
Abdul R. Ismail
Ziv Kabiry
Abhilash K. V
Purushotam Kumar
Gaurav Kumar Singh
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 DE102021118048A1 publication Critical patent/DE102021118048A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • 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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/409Mechanical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3812USB port controller

Abstract

In einer Ausführungsform beinhaltet eine Einrichtung eine Host-Steuerung zum Implementieren einer oder mehrerer Schichten eines Universal-Serial-Bus(USB)-basierten Protokolls, um ein Interconnect für mehrere Vorrichtungen bereitzustellen. Die Host-Steuerung ist ausgelegt zum Überwachen von Steuerebenennachrichten auf dem Interconnect, Detektieren, in den Steuerebenennachrichten, eines Leistungszustandsänderungsbefehls für eine Vorrichtung, die mit dem Interconnect gekoppelt ist, wobei die Vorrichtungen ein getunneltes Protokoll auf dem Interconnect nutzen, und Modifizieren der Leistungsverteilung für eine oder mehrere andere Vorrichtungen des Interconnects basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet von Computersystemen und insbesondere eine Systemleistungsverwaltung in Eingabe/Ausgabe(E/A)-Hybridsystemen mit mehreren Ports.
  • HINTERGRUND
  • USB-Spezifikationen (USB: Universal Serial Bus) haben sich seit mehr als einem Jahrzehnt entwickelt, um eine ubiquitäre Schnittstelle für Peripheriegeräte bereitzustellen, um Peripheriegeräte mit Computersystemen zu verbinden. Die Entwicklung der USB-Busgeschwindigkeit ist in diesen Jahren von 1,5 Mbps in der USB-v1.1-Spezifikation auf 10 Gbps in der USB-v3.1-Spezifikation übergegangen. Mit der Einführung der USB-Typ-C-Port- und USB-Power-Delivery-Spezifikationen (Power Delivery: Leistungslieferung) hat der USB-C-Port die USB-Portfunktionalität auf Leistungsversorgungs- und Anzeigefähigkeiten erweitert. Der USB-C-Port hat auch eine Erweiterung der Bandbreite des USB-Busses auf 20 Gbps mit der Einführung der USB-v3.2-Spezifikation ermöglicht, die zusätzliche Signalleitungen verwendet, die durch die USB-C-Ports bereitgestellt werden.
  • Eine weitere Entwicklung von USB-basierten Protokollen (z. B. USB v4) kann ermöglichen, dass eine verbindungsorientierte Tunnelarchitektur mehrere Protokolle (z. B. USB-basierte Protokolle, PCIe(Peripheral Component Interconnect Express)-basierte Protokolle, DisplayPort(DP)-basierte Protokolle und/oder Host-zu-Host-Protokolle) auf eine einzige physische Schnittstelle kombiniert, sodass die Gesamtgeschwindigkeit und Performanz des USB-Fabric nicht nur zwischen USB-Vorrichtungen, sondern auch PCIe- oder DP-Endpunkten dynamisch geteilt werden können. Die Gesamtbandbreite kann über einen Typ-C-Verbinder auf 40 Gbps (z. B. das Doppelte der USB-v3-Bandbreite) erweitert werden.
  • Figurenliste
    • 1 ist ein schematisches Diagramm eines beispielhaften USB-Systems (USB: Universal Serial Bus) gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2A ist ein schematisches Diagramm eines beispielhaften USB-Protokollstapels gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2B ist ein schematisches Diagramm, das beispielhafte Universal-Serial-Bus-Funktionsschichtkommunikationspfade gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 3 veranschaulicht ein beispielhaftes Ökosystem mit mehreren Ports.
    • 4 veranschaulicht ein beispielhaftes Kommunikationsstapeldiagramm für Vorrichtungen des beispielhaften Ökosystems von 3.
    • 5 veranschaulicht ein anderes beispielhaftes Ökosystem mit mehreren Ports.
    • 6 veranschaulicht ein beispielhaftes Kommunikationsstapeldiagramm gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 7 ist ein Flussdiagramm eines beispielhaften Prozesses zum Detektieren und Kommunizieren von Leistungsübergangsinformationen in einem Ökosystem mit mehreren Ports gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 8 ist ein Flussdiagramm eines anderen beispielhaften Prozesses zum Detektieren und Kommunizieren von Leistungsübergangsinformationen in einem Ökosystem mit mehreren Ports gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 9 ist eine beispielhafte Veranschaulichung eines Prozessors gemäß einer Ausführungsform.
    • 10 veranschaulicht ein Rechensystem, das in einer Punkt-zu-Punkt(PtP)-Konfiguration angeordnet ist, gemäß einer Ausführungsform.
  • Gleiche Bezugsziffern und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG BEISPIELHAFTER AUSFÜHRUNGSFORMEN
  • In der folgenden Beschreibung werden verschiedene Aspekte der veranschaulichenden Implementierungen unter Verwendung von Begriffen beschrieben, die üblicherweise von einem Fachmann eingesetzt werden, um einem anderen Fachmann den Inhalt ihrer Arbeit zu vermitteln. Es wird jedoch für einen Fachmann offensichtlich, dass Ausführungsformen der vorliegenden Offenbarung mit nur manchen der beschriebenen Aspekte umgesetzt werden können. Zu Erklärungszwecken sind spezielle Zahlen, Materialien und Konfigurationen dargelegt, um ein umfassendes Verständnis der veranschaulichenden Implementierungen zu vermitteln. Jedoch versteht es sich für einen Fachmann, dass Ausführungsformen der vorliegenden Offenbarung ohne die speziellen Einzelheiten umgesetzt werden können. In anderen Fällen werden allgemein bekannte Merkmale weggelassen oder vereinfacht, um die veranschaulichenden Implementierungen nicht unklar zu machen.
  • In der folgenden ausführlichen Beschreibung wird Bezug auf die begleitenden Zeichnungen genommen, die einen Teil hiervon bilden, wobei gleiche Ziffern durchweg gleiche Teile kennzeichnen, und in denen durch Veranschaulichung Ausführungsformen gezeigt werden, in denen der Gegenstand der vorliegenden Offenbarung umgesetzt werden kann. Es versteht sich, dass andere Ausführungsformen genutzt werden können und strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Schutzumfang der vorliegenden Offenbarung abzuweichen. Demzufolge ist die folgende ausführliche Beschreibung nicht in einem beschränkenden Sinne aufzufassen und ist der Schutzumfang von Ausführungsformen durch die angehängten Ansprüche und deren Äquivalente definiert.
  • Für die Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A oder B“ (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A, B oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Beschreibung verwendet möglicherweise die Ausdrücke „in einer Ausführungsform“ oder „in Ausführungsformen“, die jeweils auf eine oder mehrere der gleichen oder verschiedene Ausführungsformen verweisen. Weiterhin sind die Ausdrücke „umfassend“, „beinhaltend“, „aufweisend“ und dergleichen, wie sie mit Bezug auf Ausführungsformen der vorliegenden Offenbarung verwendet werden, synonym.
  • Der Begriff „gekoppelt mit“ kann hier, zusammen mit seinen Ableitungen, verwendet werden. „Gekoppelt“ kann eines oder mehrere von Folgenden bedeuten. „Gekoppelt“ kann bedeuten, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt befinden. Jedoch kann „gekoppelt“ auch bedeuten, dass zwei oder mehr Elemente einander indirekt kontaktieren, aber dennoch miteinander zusammenwirken oder wechselwirken, und kann bedeuten, dass ein oder mehrere andere Elemente zwischen die Elemente, die als miteinander gekoppelt gelten, gekoppelt oder zwischen diesen verbunden sind. Der Begriff „direkt gekoppelt“ kann bedeuten, dass sich zwei oder mehr Elemente in direktem Kontakt befinden.
  • So wie hier verwendet, kann sich der Begriff „Modul“ auf eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder als Gruppe) und/oder einen Speicher (gemeinsam genutzt, dediziert oder als Gruppe) beziehen, Teil davon sein oder solches beinhalten, der/die ein oder mehrere Software- oder Firmware-Programme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten, die die beschriebene Funktionalität bereitstellen, ausführen.
  • USB-Spezifikationen (USB: Universal Serial Bus) haben sich seit mehr als einem Jahrzehnt entwickelt, um eine ubiquitäre Schnittstelle für Peripheriegeräte bereitzustellen, um Peripheriegeräte mit Computersystemen zu verbinden. Die Entwicklung der USB-Busgeschwindigkeit ist in diesen Jahren von 1,5 Mbps in der USB-v1.1-Spezifikation auf 10 Gbps in der USB-v3.1-Spezifikation übergegangen. Mit der Einführung der USB-Typ-C-Port- und USB-Power-Delivery(PD)-Spezifikationen (Power Delivery: Leistungslieferung) hat der USB-C-Port die USB-Portfunktionalität auf Leistungsversorgungs- und Anzeigefähigkeiten erweitert. Der USB-C-Port hat auch eine Erweiterung der Bandbreite des USB-Busses auf 20 Gbps mit der Einführung der USB-v3.2-Spezifikation ermöglicht, die zusätzliche Signalleitungen verwendet, die durch die USB-C-Ports bereitgestellt werden. USB-Klassenspezifikationen, die Funktionalitäten über diesem USB-Bus definieren, haben sich auch entwickelt, um diese USB-Bandbreitenerhöhung zu nutzen, um bessere Benutzererlebnisse bereitzustellen und die Fähigkeit des USB-Busses weiter auszunutzen.
  • Eine weitere Entwicklung von USB-basierten Protokollen (z. B. USB v4) kann ermöglichen, dass eine verbindungsorientierte Tunnelarchitektur mehrere Protokolle (z. B. USB-basierte Protokolle, PCIe(Peripheral Component Interconnect Express)-basierte Protokolle, DisplayPort(DP)-basierte Protokolle und/oder Host-zu-Host-Protokolle) auf eine einzige physische Schnittstelle kombiniert, sodass die Gesamtgeschwindigkeit und Performanz des USB-Fabric nicht nur zwischen USB-Vorrichtungen, sondern auch PCIe- oder DP-Endpunkten dynamisch geteilt werden können. Die Gesamtbandbreite kann über einen Typ-C-Verbinder auf 40 Gbps (z. B. das Doppelte der USB-Gen-3-Bandbreite) erweitert werden. Zusätzlich dazu kann eine weitere Entwicklung von USB-basierten Protokollen eine Unterstützung von Thunderbolt-Schnittstellen ermöglichen und kann ein Daisy-Chaining (Verkettung) von Vorrichtungen ermöglichen.
  • In manchen Ausführungsformen können Leistungsanforderungen gemäß der USB-C-/USB-PD-Spezifikation sein. Leistung für USB-Operationen kann zum Beispiel wie in der USB-Typ-C-Spezifikation und der USB-PD-Spezifikation definiert hergestellt und verwaltet werden. Ferner kann in manchen Ausführungsformen die Suspend-Leistung basierend auf den Fähigkeiten der USB-Vorrichtung definiert werden. Zum Beispiel kann eine USB-kompatible Vorrichtung, die nicht zum Fernwecken in der Lage ist (oder das Fernwecken deaktiviert hat), eine Leistung von ungefähr 25 mW abrufen, wohingegen eine USB-kompatible Vorrichtung, die das Fernwecken unterstützt (oder das Fernwecken aktiviert hat), eine Leistung von ungefähr 50 mW abrufen kann.
  • Das USB-Power-Delivery(PD)-Protokoll ermöglicht einer Leistungssenkenvorrichtung (d. h. der USB-verbundenen Vorrichtung, die Leistung über eine physische USB-Verbindung empfängt), die Leistungsquellenvorrichtung (d. h. die USBverbundene Vorrichtung, die Leistung über eine physische USB-Verbindung bereitstellt) wissen zu lassen, ob die Senkenvorrichtung USB-Datenleitungen aufweist. Falls zum Beispiel ein „USB-Kommunikationsfähigkeit“-Flag durch eine Senke auf null gesetzt wurde, dann kann sich die Quelle bewusst sein, dass USB-Suspend-Regeln durch die Senke nicht beobachtet werden können. Außerdem kann ein „Kein USB-Suspend“-Bit durch eine Leistungssenkenvorrichtung gesetzt werden, um anzugeben, dass ihre existierende Leistungsaufnahme während USB-Suspend-Ereignissen fortgesetzt werden sollte und nicht auf ein niedrigeres Leistungsprofil umgeschaltet werden sollte (z. B. „pSnkSusp“). Tabelle 1: Leistungsdatenobjekt(PDO)-Bits
    Bits Beschreibung
    B31 Reserviert - Soll auf Null gesetzt werden
    B30...28 Objektposition (000b ist reserviert und darf nicht verwendet werden)
    B27 GiveBack-Flag = 0
    B26 Fähigkeitsfehlanpassung
    B25 USB-Kommunikationsfähigkeit
    B24 Kein USB-Suspend
    B23 Nicht in Chunks enthaltene erweiterte Nachrichten unterstützt
    B22...20 Reserviert - Soll auf Null gesetzt werden
    B19...10 Betriebsstrom in 10-mA-Einheiten
    B9...0 Maximaler Betriebsstrom 10-mA-Einheiten
  • In manchen Fällen können zusätzliche Protokolle, wie DisplayPort, auf denselben Leitungen getunnelt werden. Dies kann zusätzliche Niedrigleistungsmodus(LPM: Low Power Mode)-Anforderungen aufweisen, wie unten angegeben:
    2:0 SET_POWER_STATE (LEISTUNGSZUSTAND EINSTELLEN)Soll beim Power-on-Reset (Einschaltrücksetzen) oder einer Trennung einer Upstream-Vorrichtung auf 001b programmiert werden.
    001b = Einstellen der lokalen Senkenvorrichtung und aller Downstream-Senkenvorrichtungen bis D0 (Normalbetriebsmodus).
    010b = Einstellen der lokalen Senkenvorrichtung und aller Downstream-Senkenvorrichtungen bis D3 (Herunterfahrmodus).
    101b = Einstellen des Hauptlinks für die lokale Senkenvorrichtung und alle Downstream-Senkenvorrichtungen auf D3 (Herunterfahrmodus), Halten des AUX-Blocks vollständig mit Leistung versorgt, bereit zur Antwort innerhalb der AUX-Antwort-Timeout-Timer-Periode
  • 1 ist ein schematisches Diagramm eines beispielhaften USB-Systems 100 (USB: Universal Serial Bus) gemäß Ausführungsformen der vorliegenden Offenbarung. 1 veranschaulicht die Doppelbusarchitektur eines beispielhaften USB-Systems 100, wie etwa jene, die durch USB v4 (hier auch als „USB4“ bezeichnet) oder höhere Protokolle implementiert werden. Wie konzipiert, wird Rückwärtskompatibilität mit minimaler Interoperabilität unterstützt, beginnend bei USB v2.0, weiter über USB v3.2 und schließlich bis zu USB4, basierend auf dem höchsten gemeinsamen Buspegel, der über die miteinander verbundenen Komponenten unterstützt wird.
  • Das USB-System 100 kann einen USB4-Host 102 beinhalten, der durch einen USB-Link mit einem USB4-Hub 104 verbunden ist. Der USB4-Hub 104 kann durch einen USB-Link mit einer USB4-Vorrichtung 106 verbunden sein. Der USB4-Hub 104 kann auch mit anderen Arten von Vorrichtungen, wie etwa Anzeigen oder Peripheriegeräten oder anderen Arten von Vorrichtungen, verbunden sein. Der USB4-Host 102 kann eine Host-Vorrichtung, wie etwa eine Host-Vorrichtung, ein Computer, ein Server, eine Hauptplatine, ein Prozessor oder eine Prozessorbank, oder eine andere Art von Host-Vorrichtung sein (oder mit dieser gekoppelt sein). Der USB4-Hub 104 kann ein Dongle, eine Docking-Station oder eine andere Zwischenvorrichtung sein (oder diese beinhalten). Die USB4-Vorrichtung 106 kann eine Endpunktvorrichtung, eine Peripherievorrichtung, ein Speicher oder eine andere Art von Vorrichtung sein, die mit dem USB4-Host 102 und/oder dem USB4-Hub 104 verbunden ist.
  • Das System 100 kann einen USB4-Host 102 beinhalten. Der USB4-Host kann einen Host-Router 110, eine interne Host-Steuerung und eine DisplayPort-Quelle 112, wie etwa eine DisplayPort2.0-Quelle, beinhalten. Die DisplayPort2.0(oder DP2.0)-Quelle kann ein Grafikprozessor sein und kann einen DisplayPort-Sender (DPTX) beinhalten, der DP2.0 und höher unterstützt. Der DPTX kann mit einem VESA(Video Electronics Standards Association)-DisplayPort-2.0-Protokollstandard oder zukünftigen DisplayPort-Protokollstandard-Versionen konform sein.
  • Ein USB4-Host unterstützt 20G-USB4-Betrieb (Gen2x2) und optional 40G-USB4-Betrieb (Gen3x2). Ein USB4-Host kann auch den DisplayPort-Alt-Modus an allen seinen Downstream-Facing-Ports (DFP) unterstützen. Zur vollständigen Definition der Anforderungen und Einzelheiten zur DisplayPort-Alt-Modus-Unterstützung auf einem DFP siehe USB-Typ-C-Spezifikation.
  • Optional kann ein USB4-Host auch eine PCIe-Steuerung 114 enthalten. Die PCIe-Steuerung 114 kann einen PCIe-Root-Komplex oder PCIe-Switch-Komplex zum Steuern von PCIebasiertem Routing zu einer oder mehreren Peripherievorrichtungen beinhalten (oder damit verbunden sein). Die PCIe-Steuerung 114 kann über einen oder mehrere PCIe-Adapter (z. B. PCIe-Downstream-Facing-Adapter 128, 130) mit dem USB4-Host-Router 110 verbunden sein. Der USB4-Hub 104 kann einen PCIe-Switch 144 über einen PCIe-Upstream-Facing-Adapter 154 und PCIe-Downstream-Facing-Adapter 156 und 158 beinhalten (oder damit verbunden sein). Die USB4-Vorrichtung 106 kann eine PCIe-Funktion 180 beinhalten, die die PCIe-Downstreamverbundene Komponente oder Endpunktvorrichtung ist, die mit der PCIe-Steuerung 114 überdas USB4-Fabric 100 kommuniziert. Der USB4-Vorrichtungsrouter 178 kann einen PCIe-Upstream-Facing-Adapter 190 beinhalten, um die PCIe-Funktion 180 mit Upstream-verbundenen Komponenten, wie etwa dem USB4-Hub 104, dem PCIe-Switch 144 und der PCIe-Steuerung 114, zu koppeln.
  • Der USB4-Host 102 kann einen USB-Host-Router 110 beinhalten. Der USB4-Hub 104 kann einen USB-Hub-Router 142 beinhalten. Die USB4-Vorrichtung 106 kann einen USB-Vorrichtungsrouter 178 beinhalten. Ein Router ist ein grundlegender Baustein der USB4-Architektur. Ein Router bildet getunnelten Protokollverkehr auf USB4-Pakete ab und routet Pakete durch das USB4-Fabric 100. Ein Router verteilt und synchronisiert auch Zeit durch das USB4-Fabric über seine Zeitverwaltungseinheit (TMU: Time Management Unit), wie etwa TMU 140, 170 und 196. Ein Router wird durch einen Verbindungsmanager (z. B. einen Host-Schnittstellenadapter) 124 entdeckt und konfiguriert, der sich innerhalb des USB4-Hosts befindet. Der Router beinhaltet einen flachen konfigurierbaren Punkt-zu-Punkt-Switch, der notwendig ist, um die internen Pfade zwischen Adaptern zu erzeugen. Ein Router existiert typischerweise innerhalb jeder Instanz eines USB4-Hosts 102, eines USB4-Hubs 104 oder einer USB4-Vorrichtung 106. Es gibt zwei Arten von Routern: Host-Router und Vorrichtungsrouter.
  • Der USB4-Host oder die USB4-Peripherievorrichtung kann optional Interoperabilität mit Thunderbolt-3(TBT3)-Produkten unterstützen. Ein USB4-Hub ist erforderlich, um die Interoperabilität mit Thunderbolt-3-Produkten an allen seinen DFP zu unterstützen. Ein USB4-basiertes Dockelement ist erforderlich, um die Interoperabilität mit Thunderbolt-3-Produkten an seinen Upstream-Facing-Ports (UFP) zusätzlich zu allen seinen DFP zu unterstützen.
  • Beim Zusammenwirken mit einem TBT3-Produkt wird der Thunderbolt-Alt-Modus auf dem Link zwischen Produkten eingerichtet. Die USB-Typ-C-Spezifikation beschreibt, wie ein USB4-Produkt verhandelt und in den Thunderbolt-Alt-Modus eintritt.
  • Der USB4-Host 102 kann eine DisplayPort(DP)-Quelle 112, wie etwa eine Grafikverarbeitungseinheit (GPU) oder eine andere Quelle von Grafiken, Videos, Bildern usw., beinhalten (oder mit dieser verbunden sein). Der USB4-Host-Router 110 kann einen DP_IN-Adapter 126 beinhalten, der eine Schnittstelle zu der DP-Quelle 112 ermöglichen kann. In Ausführungsformen kann die DP-Quelle eine USB4-Peripherievorrichtung sein oder über eine DisplayPort-basiertes Interconnect (z. B. über ein DisplayPort-2.0-Protokoll-lnterconnect) mit dem USB4-Host-Router 110 verbunden sein.
  • Der USB4-Hub 104 kann einen DP_OUT-Adapter 152 zum Ausgeben von DP-Signalisierung an eine DP-Senke, wie etwa eine Anzeige oder einen Monitor, beinhalten. Der USB4-Hub 104 kann auch DP-Signalisierung über einen USB4-Tunnel zu der USB4-Vorrichtung 106 übertragen. Die USB4-Vorrichtung 106 kann einen DP_OUT-Adapter 192 zum Ausgeben von DP-Signalen an eine DP-Senke 182 beinhalten, die eine Anzeige oder ein Monitor sein kann.
  • Der interne Enhanced-SuperSpeed-Host 116 legt einen oder mehrere Downstream-USB3-Ports offen, die mit einem USB-Endpunkt oder Downstream-USB3-Protokolladapter verbunden werden können. Der Upstream-Port des internen Enhanced-SuperSpeed-Hubs ist über eine Schnittstelle mit einem Upstream-USB3-Protokolladapter verbunden, der Pakete an den Upstream-Facing-Port des USB4-Hubs weiterleitet.
  • Jeder Router enthält bis zu 64 Adapter. Adapter stellen eine Schnittstelle zwischen einem Router und einer externen Entität bereit. Es gibt drei Arten von Adaptern: Protokolladapter, Spuradapter und Steueradapter. Ein Protokolladapter wird zum Übersetzen zwischen einem unterstützten nativen Protokoll und einem USB4-Tunnel verwendet. Es gibt vier Arten von Protokolladaptern: USB3-Adapter 136, 138, 164, 166, 168 und 194, DisplayPort(DP)-Adapter 126, 152 und 182, PCIe-Adapter 128, 130, 154, 156, 158 und 190 und Host-Schnittstellenadapter 124.
  • Ein Router kann einen internen Steueradapter unterstützen, der ausschließlich zum Übertragen und Empfangen von Steuerpaketen zu und von der Transportschicht dient. Im Gegensatz zu den Nicht-Steueradaptern ist der Steueradapter nicht direkt mit einem Link verbunden und weist somit keine mit ihm assoziierte physikalische Schicht auf.
  • Ein USB4-Port ist die Entität, die USB4-Funktionsschnittstelle bereitstellt, die sich an jedem Ende eines USB4-Links befindet. Sie besteht aus der Übertragungs- und Empfangsspur des USB4-Datenbusses sowie einem Zweidraht-Seitenband(SB)-Kanal (SBTX/SBRX). USB4-Ports arbeiten entweder als einspuriger Link oder als doppelspuriger Link. Wenn sie als ein einspuriger Link arbeiten, ist die Spur 1 des USB4-Ports deaktiviert. Wenn sie als ein doppelspuriger Link arbeiten, werden die Spuren 0 und 1 logisch miteinander gebunden, um einen einzigen Datenkanal bereitzustellen. Beispielhafte USB4-Ports sind als Elemente 132, 134, 160, 162 und 188 gezeigt. Die USB4-Ports können einen USB-Typ-C-Verbinder oder einen Thunderbolt(z. B. TBT3)-Typ-Verbinder usw. unterbringen.
  • Der primäre Kommunikationskanal des USB4-Fabric ist über den USB4-Link, der zwei USB4-Ports miteinander verbindet. Der USB4-Link transportiert Pakete sowohl für getunnelten Protokollverkehr als auch für Busverwaltungsverkehr zwischen Routern. Der Seitenbandkanal eines USB4-Ports wird verwendet, um den USB4-Link zwischen den USB4-Ports zu initialisieren und zu verwalten. Für einen USB4-fähigen USB-Typ-C-Port beinhaltet die vollständige Schnittstelle einen USB4-Port, einen USB-2.0-Datenbus und den USB-Typ-C-Konfigurationskanal (CC) zusammen mit Leistung/Masse (VBUS, VCONN und GND).
  • Bei einem High-Pegel ist ein USB4-Hub 104 funktional ähnlich einem USB-3.2-Hub - er besteht aus einem Upstream-Facing-Port und einem oder mehreren Downstream-Facing-Ports. Der USB4-Hub 104 arbeitet funktional als eine baumartige Struktur, um zu ermöglichen, dass ein oder mehrere Downstream-Facing-Ports von einem Upstream-Facing-Port versorgt werden, typischerweise zum Zweck der Port-Erweiterung.
  • Zusätzlich zu der USB4-spezifischen Hub-Funktionalität wird USB-3.2- und USB-2.0-Hub-Funktionalität unterstützt, sodass Downstream-Facing-Ports eines USB4-Hubs Rückwärtskompatibilität mit USB-3.2- und USB-2.0-Vorrichtungen unterstützen können. Die USB-2.0-Funktionalität kann über den USB-2.0-Host 118 bereitgestellt werden, der mit einem USB-2.0-Hub 146 und einer USB-2.0-Funktion 184 verbunden ist.
  • Ein USB4-Hub enthält einen Vorrichtungsrouter, einen Enhanced-SuperSpeed-USB-Hub, einen PCIe-Switch und einen USB-2.0-Hub. Ein USB4-Hub unterstützt 20G-USB4-Betrieb (Gen2x2) und 40G-USB4-Betrieb (Gen3x2). Ein USB4-Hub ist erforderlich, um den DisplayPort-Alt-Modus an allen seinen DFP zu unterstützen. Zur vollständigen Definition der Anforderungen und Einzelheiten zur DisplayPort-Alt-Modus-Unterstützung auf einem DFP siehe USB-Typ-C-Spezifikation.
  • Der USB4-Host 102, der Hub 104 und die Vorrichtung 106 können einen oder mehrere USB-Typ-C-Verbinderports 120, 122, 172, 174, 176 und 198 beinhalten. Die USB-Typ-C-Verbinderports können USB-Typ-C-Verbinder für verbundene USB-konforme Komponenten und zum Transferieren von Informationen und Leistung zwischen Komponenten empfangen.
  • 2A ist ein schematisches Diagramm eines beispielhaften USB-Protokollstapels 200 gemäß Ausführungsformen der vorliegenden Offenbarung. Der USB4-Protokollstapel 200 kann eine elektrische Schicht 202 und eine logische Schicht 204 beinhalten. Die elektrische Schicht 202 und die logische Schicht 204 können als Unterblöcke der physikalischen Schicht 206 angesehen werden. Die elektrische Schicht 202 definiert elektrische Signalisierungscharakteristiken eines USB4-Links einschließlich Verwürfeln, Codieren, Jitter und Spannung. Die logische Schicht 206 stellt einen USB4-Link zwischen zwei Routern her und stellt Dienste zum Übertragen und Empfangen von Byte-Strömen zwischen ihnen bereit. Die logische Schicht 204 befindet sich auf der elektrischen Schicht 202 und unterhalb der Transportschicht 208. Die logische Schicht 204 behandelt den Verkehr zu und von der Transportschicht 208 als einen Byte-Strom.
  • Die Dienste, die durch die logische Schicht 204 bereitgestellt werden, sind Einrichten und Unterhalten eines USB4-Links mit einem Link-Partner, Performanzskalierbarkeit über unterschiedliche Geschwindigkeiten und Breiten, Fehlerdetektions- und Wiederherstellungsmechanismen, Betrieb mit unterschiedlichen Medien, wie etwa passives Kabel, aktives Kabel und Retimer, Unterstützung für Mechanismen, wie etwa Taktkompensation, Datenverwürfelung und Vorwärtsfehlerkorrekturcodes, und Leistungsverwaltung.
  • Ein USB4-Link wird durch einen begleitenden Seitenbandkanal unterstützt und verwaltet, der Parameter des USB4-Links konfiguriert, mit Retimern (falls vorhanden) interagiert und einen USB4-Link-TxFFE-Handshake durchführt, eine korrekte Abschalt-/Aufwecksequenz der USB4-Link-Sendeempfänger und Retimer gewährleistet.
  • Die Transportschicht 208 leitet getunnelte Pakete und Steuerpakete über den Bus weiter. Die Transportschicht 208 definiert Paketformat, Routing, QoS-Unterstützung (QoS: Quality-of-Service-Dienstgüte), Flusssteuerung und Zeitsynchronisation. In derTransportschicht 208 wird Protokoll-Muxing durchgeführt.
  • Die Konfigurationsschicht 212 führt Router-Konfigurationsaufgaben durch und bearbeitet eingehende Steuerpakete. Die Konfigurationsschicht 212 stellt ein Adressierungsschema für Steuerpakete innerhalb der Domäne bereit, verarbeitet Steuerpakete und liefert einen zuverlässigen Transportmechanismus für Steuerpakete. Steuerpakete bieten dem Verbindungsmanager Zugriff auf die Konfigurationsräume eines Routers.
  • Die Protokolladapterschicht 210 führt eine Abbildung zwischen getunneltem Protokollverkehr und USB4-Transportschichtpaketen durch. Eine Protokolladapterschicht 210 ist durch die Art des von ihr gesendeten und empfangenen getunnelten Protokollverkehrs definiert.
  • Ein USB4-Host unterstützt USB3-Tunnelung, DisplayPort-Tunnelung und Host-zu-Host-Tunnelung. Ein USB4-Host kann optional auch PCIe-Tunnelung unterstützen. Ein USB4-Hub unterstützt USB3-Tunnelung, DisplayPort-Tunnelung, PCIe-Tunnelung und Host-zu-Host-Tunnelung. Es gibt mehrere Weisen, auf die ein USB4-Hub DisplayPort-Tunnelung unterstützt. Zum Beispiel agiert der USB4-Hub als ein „Durchgang“ für DisplayPort-Tunnelung (d. h. der USB4-Hub routet getunnelten Verkehr direkt zwischen zwei seiner USB4-Ports). Der USB4-Hub enthält einen DP-OUT-Adapter, der getunnelten DisplayPort-Verkehr von einem USB4-Port empfängt und ihn an eine DisplayPort-Senke sendet.
  • 2B ist ein schematisches Diagramm 220, das beispielhafte Universal-Serial-Bus-Funktionsschichtkommunikationspfade gemäß Ausführungsformen der vorliegenden Offenbarung 220 veranschaulicht. Das Kommunikationskonstrukt kann einen USB4-Link 222 beinhalten, die Pakete und geordnete Sätze kommuniziert.
  • Steuerpakete 226 werden von einem Verbindungsmanager 224 zur Konfiguration und Verwaltung der Router über den Bus verwendet. Steuerpakete 226 werden auch durch einen Router zur Kommunikation mit dem Verbindungsmanager 224 verwendet. Die Steuerpakete 226 werden basierend auf einem Routen-String, der eine Position des Routers in einem Spannbaum identifiziert, über den Bus geleitet. Wenn ein Steuerpaket 226 von dem Verbindungsmanager 224 stammt, identifiziert der Routen-String den Router, auf den das Paket abzielt. Wenn ein Steuerpaket 226 von einem Router stammt, identifiziert der Router-String den Router, der das Paket gesendet hat. Ein Steueradapter in einem Nicht-Ziel-Router leitet das Paket an einen USB4-Port weiter. Der Steueradapter des Ziel-Routers verbraucht das Steuerpaket 226.
  • Protokollverkehr 228 wird eingekapselt und über das USB4-Fabric in getunnelten Paketen 230 getunnelt. Die getunnelten Pakete 230 durchlaufen das USB4-Fabric entlang eines oder mehrerer Pfade.
  • Die Link-Verwaltungspakete 232 sind auf einen einzigen USB4-Link 222 beschränkt. Die Link-Verwaltungspakete 232 gehen von der Transportschicht 208 eines Routers an einem Ende des Links aus und enden in der Transportschicht des Routers am anderen Ende des Links. Die folgenden Link-Verwaltungspakete sind definiert: Zeitsynchronisierungspakete - verwendet zum Synchronisieren der Takte der Router auf dem Bus; Flusssteuerungspakete - verwendet zum Verhindern von Pufferüberlauf; Leerlaufpakete - gewährleisten, dass ein stationärer Byte-Strom in die logische Schicht eingespeist wird, wenn keine anderen Transportschichtpakete übertragen werden.
  • Die logische Schicht 204 verwendet geordnete Sätze 234 für Aufgaben, wie etwa Symbolsynchronisation, Link-Training und Entzerrung zwischen Spuren. Die geordneten Sätze 238 sind 66-Bit-Symbole (bei Gen-2-Geschwindigkeit) oder 132-Bit-Symbole (bei Gen-3-Geschwindigkeit).
  • Der Seitenbandkanal 240 bearbeitet die folgenden Ereignisse: Spurinitialisierung; Verbindung oder Trennung an einem USB4-Port; Spurdeaktivierung oder -freigabe; und Eintritt oder Austritt aus dem Schlafzustand.
  • LFPS (LFPS: Low Frequency Periodic Signaling - periodische Signalisierung mit niedriger Frequenz) 236 wird zur In-Band-Kommunikation zwischen zwei Link-Partnern beim Verlassen von Leistungsverwaltungs-Link-Zuständen verwendet.
  • Transportschichtpakete sind entweder getunnelte Pakete von Protokolladapterschichten, Steuerpakete von der Konfigurationsschicht oder innerhalb der Transportschicht erzeugt (nämlich Link-Verwaltungspakete, die innerhalb der Transportschicht erzeugt werden).
  • Getunnelte Pakete werden durch die Protokolladapterschicht eines Quelladapters erzeugt und an die Transportschicht übergeben. Ein getunneltes Paket soll den für Transportschichtpakete definierten Header aufweisen. Die Protokolladapterschicht eines Quelladapters soll Protokollverkehr größer als 256 Byte in mehrere getunnelte Pakete zerlegen. Ein Wiederzusammensetzen von Protokollverkehr aus getunnelten Paketen soll durch die Protokolladapterschicht des Zieladapters durchgeführt werden.
  • Die Größe eines Transportschichtpakets beträgt immer ein Vielfaches von 4 Byte. Die Protokolladapterschicht eines Quelladapters soll der Nutzlast eines getunnelten Pakets zwischen 0 und 3 Bytes Auffüllung hinzufügen, um zu gewährleisten, dass das getunnelte Paket eine Größe aufweist, die ein Vielfaches von 4 Bytes ist. Die Protokolladapterschicht des Zieladapters soll jegliche Bytes an Auffüllung entfernen.
  • Der Inhalt der Auffüllung-Bytes ist implementierungsspezifisch und kann nicht als irgendwelche spezifischen Werte aufweisend angenommen werden. Es wird jedoch empfohlen, Null-Byte-Auffüllung zu verwenden.
  • 3 veranschaulicht ein beispielhaftes Ökosystem mit mehreren Ports 300. In dem gezeigten Beispiel beinhaltet das Ökosystem 300 mit mehreren Ports einen Laptop 302, ein externes Laufwerk 304, eine mobile Vorrichtung 306 und eine Anzeige 308, die jeweils über ein USB-Dockelement 310 kommunikativ miteinander gekoppelt sind. Das USB-Dockelement kann mit einer oder mehreren Versionen von USB-Spezifikationen (z. B. USB4) konform sein und jeder Link zwischen einer Vorrichtung (z. B. Laptop 302) und dem USB-Dockelement 310 kann ein USB-basiertes Protokoll nutzen. Bei dem gezeigten Beispiel ist der Laptop 302 mit einer Leistungsquelle 320 verbunden und kann eine Quellvorrichtung sein, wie oben für eine oder mehrere der anderen gezeigten Vorrichtungen beschrieben (d. h. kann Leistung an eine oder mehrere der Vorrichtungen liefern).
  • Bei dem beispielhaften Ökosystem 300 können Vorrichtungsdaten über die USB-Links mit dem USB-Dockelement getunnelt werden. Beispielsweise können die Vorrichtungen 302, 304, 306 USB-basierte Ports nutzen, die durch eine USB-C-/Power-Delivery-Richtlinie (z. B. USB-Power-Delivery(PD)-Spezifikation 3.0 und/oder in Verbindung mit USB-Typ-C(USB-C)-Kabel- und -Verbinderspezifikation 1.3) reguliert werden oder mit dieser assoziiert sind, während die Anzeige 308 durch eine DisplayPort(DP)-Richtlinie reguliert oder mit dieser assoziiert werden kann. Die Verwaltung der DP-Niedrigleistungsmodi kann dementsprechend außerhalb des USB-basierten Ökosystems (z. B. USB v4/USB-C/PD) liegen, sodass, wenn das DP-System die Anzeige 308 in einen Niedrigleistungsmodus versetzt, die Informationen nicht zu einem USB-Vorrichtungsrichtlinienmanager (DPM) propagiert werden. Der USB-DPM kann Power Delivery (Leistungslieferung) durch die USB-Links und entsprechende Ressourcen über einen oder mehrere Ports basierend auf der lokalen Richtlinie der Vorrichtung verwalten.
  • 4 veranschaulicht ein beispielhaftes Kommunikationsstapeldiagramm 400 für Vorrichtungen des beispielhaften Ökosystems 300 von 3. Insbesondere veranschaulicht das gezeigte Diagramm die Trennung zwischen dem Anzeigen-Niedrigleistungsrichtlinienmodul 412 und dem USB-basierten DPM 410 (und USB-Niedrigleistungsrichtlinie 411). In dem gezeigten Beispiel beinhaltet jeder der USB-basierten Ports 409 Konfigurationskanal(CC)-Logik 408, die über einen beispielhaften Kommunikationsstapel mit dem DPM 410 gekoppelt ist. Jeder der USB-basierten Ports 409 beinhaltet seine eigene jeweilige Richtlinien-Engine 402, um eine Leistungsrichtlinie, z. B. Niedrigleistungsrichtlinie, für den entsprechenden USB-basierten Port 409 zu implementieren. Die jeweiligen Richtlinien-Engines 402 kommunizieren mit jeweiligen Protokollschichten 404, um zu ermöglichen, dass Nachrichten über jeweilige physikalische Schichten 406 zum Bearbeiten von Übertragung und Empfang von Bits für jeweilige USB-basierte Links ausgetauscht werden.
  • In dem gezeigten Beispiel bestimmt der DPM 410 eine Leistungsverteilungsrichtlinie für mehrere Vorrichtungen, die über jeweilige USB-basierte Ports 409 mit dem DPM 410 zu koppeln sind. Wie gezeigt, werden jedoch USB-basierte Ports 409a und 409b durch eine USB-basierte (z. B. USB-C/PD) Niedrigleistungsrichtlinie 411 reguliert, während der USB-basierte Port 409c durch eine Anzeigen-Niedrigleistungsrichtlinie 412 reguliert wird (z. B. wie in USB-Typ-C-Alternate-Mode-DisplayPort-1.4-Spezifikation oder einer anderen Alternate-Mode-Richtlinie enthalten sein kann). Obwohl 4 nur zwei USB-basierte Ports zeigt, die durch eine USB-basierte Niedrigleistungsrichtlinie reguliert werden, sowie einen USB-basierten Port, der durch eine alternative Niedrigleistungsrichtlinie reguliert wird, können Ausführungsformen eine beliebige geeignete Anzahl von Vorrichtungen (z. B. Hosts und Peripheriegeräte für Daten und Leistung) beinhalten, die mit jeder Niedrigleistungsrichtlinie über einen USB-basierten Port gekoppelt werden können.
  • Da die Vorrichtungen durch unterschiedliche Niedrigleistungsrichtlinien in einem Ökosystem mit mehreren Ports, wie in 4 gezeigt, reguliert werden können, können Konflikte in gewissen Szenarien auftreten, wie etwa wenn eine Leistungssenkenvorrichtung in dem Ökosystem auch Daten an andere Vorrichtungen in dem Ökosystem liefert. 5 veranschaulicht ein anderes beispielhaftes Ökosystem 500 mit mehreren Ports, bei dem eine Anzeige 506 mit einer Leistungsquelle 510 sowie einem Laptop 502 (über den USB-basierten Link 504, der mit USB-v4-Protokollen kompatibel sein kann) gekoppelt ist. Wie gezeigt, fungiert der Laptop 502 als eine Leistungssenkenvorrichtung für die Anzeige 506 und stellt auch Anzeigedaten für die Anzeige 506 bereit. Das Ökosystem 500 beinhaltet auch eine Vorrichtung 508, die über einen USB-basierten Link mit dem Laptop 502 verbunden ist. Die Vorrichtung 508 kann eine Leistungssenkenvorrichtung mit Bezug auf sowohl den Laptop 502 als auch die Anzeige 506 sein.
  • In dem in 5 gezeigten Szenario hätte die Anzeige 506 (die als eine Leistungsquellenvorrichtung für den Laptop 502 auf einem DFP fungiert) den Power-Delivery(PD)-Vertrag mit einem gelöschten USB-Suspend-Bit ausgehandelt. Dies kann auch bedeuten, dass andere Vorrichtungen, die über einen USB-basierten Link an der Anzeige 506 verbunden sind, möglicherweise nicht Suspend-Regeln einhalten. Wenn das Grafik-/Anzeigemodul des Laptops die Anzeige 506 jedoch in den Niedrigleistungsmodus versetzt (z. B. durch Schreiben in die DPCD-Adresse 0x0600), kann es wichtig sein, dass der Laptop-Richtlinienmanagersich dem Niedrigleistungsmodus bewusst ist und dem ganzen Ökosystem 500 ermöglicht, in den Niedrigleistungsmodus überzugehen. Im Gegensatz dazu schreibt das Anzeigemodul des Laptops 502 möglicherweise nicht in die Adresse 0x600, wenn der DPM den Laptop 502 lädt oder einen Hochleistungsbetrieb benötigt (der eine Verbindung zwischen diesen Funktionen und dem Leistungsrichtlinienmanager erfordert). Dementsprechend fehlen dem DPM in einem Ökosystem, wie etwa dem Ökosystem 500, Informationen über Niedrigleistungsmodi der verschiedenen Funktionen, die auf den USB-basierten Ports verfügbar gemacht werden. Dieses Fehlen von Informationen für den DPM kann unter anderem zu ineffizienter Leistungsverteilung und Leistungseinsparung führen.
  • Somit können in Ausführungsformen der vorliegenden Offenbarung zusätzliche Informationen über den Niedrigleistungszustand einer Vorrichtung, die getunnelte Protokolle nutzt, einem Host-Schnittstellen-Verbindungsmanager (CM) bereitgestellt werden, der im Gegenzug einen USB-PD-Betriebssystem-Leistungsrichtlinienmanager (OSPPM) beeinflussen kann. Zum Beispiel kann die getunnelte Steuerebene durch Snooping auf Leistungsbefehle in den getunnelten Protokollen überwacht werden, wie etwa Befehle, die Leistungszustandsänderungen (z. B. Änderungen in einen Niedrigleistungszustand) angeben oder befehlen. Ein Statusregister in einer USB-Host-Schnittstelle (z. B. eines, das mit Protokollen basierend auf der USB-v4-Spezifikation kompatibel ist) kann aktualisiert werden und kann ein Interrupt erzeugen, um die detektierte Änderung des Leistungszustands anzugeben. Diese Informationen können durch den Verbindungsmanager unter Verwendung des OSPPM, der die Leistungszustandsänderung verarbeitet und eine Richtlinie mit der verfügbaren Leistung festlegt, an den DPM weitergeleitet werden. In manchen Ausführungsformen werden ein USB-Verbindungsmanager (CM) und der USB-C-/-PD-DPM mit zusätzlichen Informationen versehen, um einen vollständigen Satz von Informationen bezüglich der Niedrigleistungszustände des getunnelten Protokolls aufzuweisen. Um die Niedrigleistungszustandsinformationen zu erhalten, kann die Steuerebene der getunnelten Funktionen überwacht werden.
  • Bei aktuellen Implementierungen stehen Informationen bezüglich des Niedrigleistungsmodus einer Leistungsquelle möglicherweise nicht für andere Vorrichtungen zur Verfügung, und dementsprechend wird eine gewisse Menge an verfügbarer Leistung (z. B. bis zu 1,5 A) möglicherweise nicht auf andere Vorrichtungen umverteilt, die mit dem Ökosystem mit mehreren Ports verbunden sind (oder konserviert). Ausführungsformen der vorliegenden Offenbarung können jedoch ermöglichen, dass Leistungssenkenvorrichtungen Kenntnis über Leistungszustandsübergänge in Leistungsquellenvorrichtungen haben, wie etwa jenen, die nicht durch USB-basierte Niedrigleistungsrichtlinien reguliert werden (z. B. Anzeigevorrichtungen wie oben beschrieben). Durch Kenntnis dieser Leistungszustandsübergänge kann Leistung umverteilt oder eingespart werden.
  • 6 veranschaulicht ein beispielhaftes Kommunikationsstapeldiagramm 600 gemäß Ausführungsformen der vorliegenden Offenbarung. Wie das in 4 gezeigte Beispiel beinhaltet jeder der USB-basierten Ports 609 Konfigurationskanal(CC)-Logik 608, die über einen beispielhaften Kommunikationsstapel mit dem DPM 610 gekoppelt ist. Jeder der USB-basierten Ports 609 beinhaltet seine eigene jeweilige Richtlinien-Engine 602, um eine Leistungsrichtlinie, z. B. Niedrigleistungsrichtlinie, für den entsprechenden USB-basierten Port 609 zu implementieren. Die jeweiligen Richtlinien-Engines 602 kommunizieren mit jeweiligen Protokollschichten 604, um zu ermöglichen, dass Nachrichten über jeweilige physikalische Schichten 606 zum Bearbeiten von Übertragung und Empfang von Bits für jeweilige USB-basierte Links ausgetauscht werden.
  • In dem gezeigten Beispiel überwacht jedoch ein USB-Verbindungsmanager (CM) 622 Kommunikationen in Bezug auf Leistungszustandsübergänge, wie oben beschrieben. Der USB-CM 622 kann als Firmware, Software oder eine Kombination davon implementiert sein und kann auf einer Host-USB-Steuerung 620 ausgeführt werden. Der CM 622 kann für das Einrichten und Verwalten von Protokollen (z. B. USB 3.x, DP oder PCIe-basierte Protokolle) verantwortlich sein, die auf USB-Links in dem Ökosystem getunnelt werden. Der CM 622 kann die Leistungszustandsübergangsinformationen durch Snooping der getunnelten Protokolle (z. B. USB 3.x, DP oder PCIe-basierten Protokolle) auf den USB-Links des Ökosystems nach Leistungsbefehlen und Aktualisieren eines Statusregisters 624 in der USB-Steuerung 620 detektieren. Der CM 622 kann dem DPM 610 die Leistungszustandsübergangsbefehle über die Host-Schnittstelle angeben. Mit den Einzelheiten aus der Steuerebene und Einzelheiten des Eintritts und Austritts in/aus Niedrigleistungszustände/n kann der DPM 610 dann Leistung einsparen oder umverteilen, die ansonsten durch Vorrichtungen in dem Ökosystem verbraucht worden wäre.
  • 7 ist ein Flussdiagramm eines beispielhaften Prozesses 700 zum Detektieren und Kommunizieren von Leistungsübergangsinformationen in einem Ökosystem mit mehreren Ports gemäß Ausführungsformen der vorliegenden Offenbarung. Operationen in dem beispielhaften Prozess können durch Komponenten einer Vorrichtung ausgeführt werden, die einen USB-Verbindungsmanager oder einen oder mehrere andere Aspekte einer USB-Steuerung implementiert. In manchen Ausführungsformen können ein oder mehrere computerlesbare Medien mit Anweisungen (z. B. Software, Firmware oder eine Kombination davon) codiert sein, die eine oder mehrere der Operationen in dem beispielhaften Prozess implementieren. Der beispielhafte Prozess kann zusätzliche oder andere Operationen beinhalten und die Operationen können in der gezeigten Reihenfolge oder in einer anderen Reihenfolge durchgeführt werden. In manchen Fällen sind eine oder mehrere der in 7 gezeigten Operationen als Prozesse implementiert, die mehrere Operationen, Unterprozesse oder andere Arten von Routinen beinhalten. In manchen Fällen können Operationen kombiniert, in einer anderen Reihenfolge durchgeführt, parallel durchgeführt, iteriert oder anderweitig wiederholt oder auf andere Weise durchgeführt werden.
  • Bei 702 werden Steuerebenennachrichten eines USB-basierten Interconnect überwacht. Das USB-basierte Interconnect kann bei gewissen Ausführungsformen ein USB4-Protokoll implementieren. Das USB-basierte Interconnect kann einen Satz von Vorrichtungen, die ein USB-basiertes Protokoll (z. B. USB 3.x) auf dem USB-basierten Interconnect nutzen (z. B. Vorrichtungen 304, 306 von 6), und einen anderen Satz von Vorrichtungen, die ein nicht-USB-basiertes Protokoll (z. B. DP, PCIe usw.) nutzen, das über das USB-basierte Interconnect getunnelt wird (z. B. Anzeige 308 von 6), beinhalten. Die Überwachung von Steuerebenennachrichten kann durch einen USB-Verbindungsmanager (z. B. USB-CM 622 von 6) durchgeführt werden, der durch eine USB-Host-Steuerung (z. B. 620 von 6) implementiert wird, z. B. wie oben beschrieben. Der CM kann die Steuerebenennachrichten für Leistungszustandsänderungsbefehle, die durch die mit dem Interconnect gekoppelten Vorrichtungen ausgegeben werden, snoopen.
  • Bei 704 wird ein Leistungsstufenänderungsbefehl auf dem USB-Interconnect für eine Vorrichtung detektiert, die ein getunneltes Protokoll (z. B. DP, PCIe usw.) auf dem Interconnect nutzt. Der Leistungszustandsänderungsbefehl kann ein Niedrigleistungsbefehl sein, der an die Vorrichtung ausgegeben wird, um zu bewirken, dass die Vorrichtung in einen Niedrigleistungsmodus übergeht (z. B. ein Befehl vom Laptop 302 zur Anzeige 308 von 3 oder vom Laptop 502 zur Anzeige 506 von 5).
  • Bei 706 wird die Leistungsverteilung für eine oder mehrere Vorrichtungen auf dem Interconnect basierend auf dem detektierten Leistungszustandsänderungsbefehl modifiziert. Dies kann zum Beispiel Modifizieren einer Leistungsverteilungsrichtlinie für die Vorrichtungen beinhalten (z. B. Richtlinien 611, 612 von 6). Falls die Vorrichtung, für die der Leistungszustandsänderungsbefehl ausgegeben wurde, eine Leistungssenkenvorrichtung ist (d. h. Leistung über das Interconnect empfängt), kann Leistung an andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, umverteilt werden oder konserviert (oder z. B. nicht verwendet) werden. In Fällen, in denen die Vorrichtung, für die der Leistungszustandsänderungsbefehl ausgegeben wurde, eine Leistungsquellenvorrichtung ist (d. h. Leistung an eine oder mehrere andere Vorrichtungen über das Interconnect liefert), können eine oder mehrere Vorrichtungsleistungsrichtlinien neu verhandelt werden, z. B. wie oben beschrieben).
  • In manchen Ausführungsformen kann ein Interrupt basierend auf dem Detektieren des Leistungszustandsänderungsbefehls bei 704 erzeugt werden. Das Interrupt kann zum Beispiel durch Setzen eines oder mehrerer Bits eines Statusregisters einer USB-Host-Steuerung (z. B. Statusregister 624 von 6) erzeugt werden.
  • 8 ist ein Flussdiagramm eines beispielhaften Prozesses 800 zum Detektieren und Kommunizieren von Leistungsübergangsinformationen in einem Ökosystem mit mehreren Ports gemäß Ausführungsformen der vorliegenden Offenbarung. Operationen in dem beispielhaften Prozess können durch Komponenten einer Vorrichtung ausgeführt werden, die einen USB-Verbindungsmanager oder einen oder mehrere andere Aspekte einer USB-Steuerung implementiert. In manchen Ausführungsformen können ein oder mehrere computerlesbare Medien mit Anweisungen (z. B. Software, Firmware oder eine Kombination davon) codiert sein, die eine oder mehrere der Operationen in dem beispielhaften Prozess implementieren. Der beispielhafte Prozess kann zusätzliche oder andere Operationen beinhalten und die Operationen können in der gezeigten Reihenfolge oder in einer anderen Reihenfolge durchgeführt werden. In manchen Fällen sind eine oder mehrere der in 8 gezeigten Operationen als Prozesse implementiert, die mehrere Operationen, Unterprozesse oder andere Arten von Routinen beinhalten. In manchen Fällen können Operationen kombiniert, in einer anderen Reihenfolge durchgeführt, parallel durchgeführt, iteriert oder anderweitig wiederholt oder auf andere Weise durchgeführt werden.
  • Bei 802 detektiert ein USB-Verbindungsmanager (CM) (z. B. USB-CM 622 von 6) ein hybrides Ökosystem. Ein hybrides Ökosystem kann sich auf ein Vorrichtungsökosystem (z. B. Ökosystem 300 von 3 oder Ökosystem 500 von 5) beziehen, wobei die Vorrichtungen des Ökosystems unter Verwendung USB-basierter Ports und Links miteinander verbunden sind, wobei aber wenigstens manche der Ökosystemvorrichtungen unterschiedliche Kommunikationsprotokolle innerhalb des Ökosystems nutzen (z. B. eine Mischung aus USB-basierten, PCIe-basierten oder anderen Arten von Protokollen, die über die USB-basierten Links getunnelt werden). Das hybride Ökosystem kann eine oder mehrere Vorrichtungen, die durch eine USB-basierte Niedrigleistungsrichtlinie (z. B. Richtlinie 611 von 6) reguliert werden, und eine oder mehrere andere Vorrichtungen, die durch eine andere Niedrigleistungsrichtlinie (z. B. Anzeige-Niedrigleistungsrichtlinie 612 von 6) reguliert werden, beinhalten. Der USB-CM kann das hybride Ökosystem als Reaktion auf oder anderweitig basierend auf dem Einrichten von Tunneln über die USB-basierten Links für die mehreren Protokolle (z. B. USB 3.x, PCIe oder andere Arten von Protokollen) detektieren.
  • Bei 804 ermöglicht der USB-CM ein Steuerebenen-Niedrigleistungsverwaltungs-Snooping. Dies kann Überwachen von Steuerebenennachrichten innerhalb des Ökosystems auf Leistungszustandsänderungsbefehle für die eine oder die mehreren Vorrichtungen des Ökosystems beinhalten. Beispielsweise kann der USB-CM die Steuerebeneninformationen nach Niedrigleistungsbefehlen oder -modi in den getunnelten Protokollen (z. B. DP oder PCIe) snoopen. Das Snooping kann auf der Steuerebene durch ein oder mehrere Register einer USB-Host-Schnittstelle ermöglicht werden.
  • Bei 806 detektiert der USB-CM einen Niedrigleistungsbefehl für eine Vorrichtung, die nicht durch eine USB-basierte Niedrigleistungsrichtlinie reguliert wird. Als manche Beispiele kann die Vorrichtung durch eine DisplayPort(DP)-basierte Niedrigleistungsrichtlinie oder eine PCIe-basierte Niedrigleistungsrichtlinie reguliert werden.
  • Bei 808 gibt der USB-CM die Leistungsübergangs-/-statusänderung an, indem es ein Interrupt erzeugt oder anderweitig angibt. Beispielsweise kann der USB-CM ein oder mehrere Bits in einem Statusregister einer USB-Steuerung (z. B. Statusregister 424 der USB-Steuerung 420 von 4) setzen.
  • Bei 810 kann der USB-CM einen Vorrichtungsrichtlinienmanager (DPM, z. B. DPM 410 von 4) unter Verwendung eines OSPPM aktualisieren.
  • Bei 812 wird bestimmt, ob die Vorrichtung, an die der Leistungszustandsänderungsbefehl ausgegeben wird, eine Leistungsquelle für eine oder mehrere andere Vorrichtungen in dem Ökosystem ist. Falls die Vorrichtung andere Vorrichtungen des Ökosystems mit Leistung versorgt, dann verteilt der DPM bei 814 Leistung an andere Vorrichtungen des Ökosystems um. Unter Bezugnahme auf das in 3 gezeigte Beispiel kann der DPM, falls der USB-CM detektiert, dass die Leistungszustandsänderung ein Niedrigleistungsbefehl an die Anzeige 308 ist (was bewirkt, dass sie in einen Niedrigleistungsmodus übergeht), dann Vorrichtungsleistungsrichtlinien modifizieren, um die Leistung, die ansonsten an die Anzeige 308 gegangen wäre, an die anderen Vorrichtungen des Ökosystems (z. B. 304, 306) umzuverteilen.
  • Falls die Vorrichtung, an die der Leistungszustandsänderungsbefehl ausgegeben wird, keine Leistung an andere Vorrichtungen des Ökosystems liefert (z. B. eine Leistungssenkenvorrichtung ist), dann verhandelt der DPM bei 816 die Vorrichtungsleistungsrichtlinie/-richtlinien für das Ökosystem erneut (z. B. verhandelt den Vertrag mit dem oben beschriebenen USB-Suspend Bit neu) und bei 818 treten die Vorrichtungen des Ökosystems in einen Niedrigleistungsmodus ein. Unter Bezugnahme auf das in 5 gezeigte Beispiel kann beispielsweise, falls der USB-CM detektiert, dass die Anzeige 506 (in dem Beispiel die Leistungsquelle) einen Leistungszustandsänderungsbefehl empfangen hat, um in einen Niedrigleistungsmodus überzugehen, der DPM die Leistungsrichtlinie für die Vorrichtungen des Ökosystems (z. B. 502, 508 des Ökosystems 500) neu verhandeln und die Vorrichtungen auch in einen Niedrigleistungsmodus versetzen.
  • Die 9-10 sind Blockdiagramme beispielhafter Computerarchitekturen, die in gemäß hierin offenbarten Ausführungsformen verwendet werden können. Andere, in der Technik bekannte Computerarchitekturgestaltungen für Prozessoren und Rechensysteme können ebenfalls verwendet werden. Im Allgemeinen können geeignete Computerarchitekturen für hier offenbarte Ausführungsformen unter anderem die in 9-10 veranschaulichten Konfigurationen einschließen.
  • 9 ist eine beispielhafte Veranschaulichung eines Prozessors gemäß einer Ausführungsform. Der Prozessor 900 ist ein Beispiel für einen Typ einer Hardwarevorrichtung, die in Verbindung mit den obigen Implementierungen verwendet werden kann. Der Prozessor 900 kann ein beliebiger Typ von Prozessor sein, wie etwa ein Mikroprozessor, ein eingebetteter Prozessor, ein Digitalsignalprozessor (DSP), ein Netzwerkprozessor, ein Mehrfachkernprozessor, ein Einzelkernprozessor oder eine andere Vorrichtung zum Ausführen von Code. Obwohl in 9 nur ein Prozessor 900 veranschaulicht ist, kann ein Verarbeitungselement alternativ dazu mehr als einen des in 9 veranschaulichten Prozessors 900 beinhalten. Der Prozessor 900 kann ein Single-Thread-Kern sein oder für mindestens eine Ausführungsform kann der Prozessor 900 in dem Sinne multithreaded sein, dass er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern beinhalten kann.
  • 9 veranschaulicht auch einen Speicher 902, der mit dem Prozessor 900 gekoppelt ist, gemäß einer Ausführungsform. Der Speicher 902 kann ein beliebiger aus einer breiten Vielfalt von Speichern sein (einschließlich verschiedener Schichten einer Speicherhierarchie), die einem Fachmann bekannt sind oder anderweitig zur Verfügung stehen. Solche Speicherelemente können unter anderem Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), Logikblöcke eines feldprogrammierbaren Gate-Arrays (FPGA), einen löschbaren programmierbaren Nurlesespeicher (EPROM) und einen elektrisch löschbaren programmierbaren ROM (EEPROM) beinhalten.
  • Der Prozessor 900 kann einen beliebigen Typ von Befehlen ausführen, die mit Algorithmen, Prozessen oder Operationen assoziiert sind, die hier ausführlich beschrieben sind. Allgemein kann der Prozessor 900 ein Element oder einen Artikel (z. B. Daten) von einem Zustand oder Ding zu einem anderen Zustand oder Ding transformieren.
  • Ein Code 904, der ein oder mehr durch den Prozessor 900 auszuführende Befehle ist, kann in dem Speicher 902 gespeichert sein oder kann in Software, Hardware, Firmware oder einer beliebigen geeigneten Kombination davon oder in einer/einem beliebigen anderen internen oder externen Komponente, Vorrichtung, Element oder Objekt gespeichert sein, wenn dies angemessen ist und auf speziellen Anforderungen basiert. Bei einem Beispiel kann der Prozessor 900 einer Programmsequenz von Anweisungen, die durch den Code 904 angegeben werden, folgen. Jede Anweisung tritt in eine Frontend-Logik 906 ein und wird durch einen oder mehrere Decodierer 908 verarbeitet. Der Decodierer kann eine Mikrooperation, wie etwa eine Mikrooperation mit fester Breite, in einem vordefinierten Format als seine Ausgabe erzeugen oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale, die den ursprünglichen Codebefehl widerspiegeln, erzeugen. Die Frontend-Logik 906 beinhaltet auch eine Registerumbenennungslogik 910 und eine Planungslogik 912, die allgemein Ressourcen zuweisen und die Operation, die der Anweisung entspricht, zur Ausführung in eine Warteschlange einreihen.
  • Der Prozessor 900 kann auch Ausführungslogik 914 mit einem Satz von Ausführungseinheiten 916a, 916b, 916n usw. beinhalten. Manche Ausführungsformen können eine Anzahl von Ausführungseinheiten beinhalten, die spezifischen Funktionen oder Sätzen von Funktionen dediziert sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine spezielle Funktion durchführen kann, beinhalten. Die Ausführungslogik 914 führt die durch Codeanweisungen spezifizierten Operationen durch.
  • Nach der Beendigung der Ausführung der durch die Codebefehle spezifizierten Operationen kann eine Backend-Logik 918 die Befehle des Codes 904 zurückziehen. In einer Ausführungsform ermöglicht der Prozessor 900 eine Ausführung außerhalb der Reihenfolge, benötigt aber ein Zurückziehen der Anweisungen in Reihenfolge. Eine Rückzugslogik 920 kann eine Vielfalt bekannter Formen annehmen (z. B. Umordnungspuffer oder dergleichen). Auf diese Art und Weise wird der Prozessor 900 während der Ausführung des Codes 904 zumindest hinsichtlich der durch den Decodierer erzeugten Ausgabe, der Hardwareregister und Tabellen, die durch die Registerumbenennungslogik 910 genutzt werden, und beliebiger durch die Ausführungslogik 914 modifizierter Register (nicht dargestellt) transformiert.
  • Obwohl dies in 9 nicht gezeigt ist, kann ein Verarbeitungselement andere Elemente auf einem Chip mit dem Prozessor 900 beinhalten. Ein Verarbeitungselement kann zum Beispiel eine Speichersteuerlogik zusammen mit dem Prozessor 900 beinhalten. Das Verarbeitungselement kann eine E/A-Steuerlogik beinhalten und/oder kann eine E/A-Steuerlogik beinhalten, die mit der Speichersteuerlogik integriert ist. Das Verarbeitungselement kann auch einen oder mehrere Caches beinhalten. In manchen Ausführungsformen kann ein nichtflüchtiger Speicher (wie etwa Flash-Speicher oder Fuses) auch auf dem Chip mit dem Prozessor 900 enthalten sein.
  • 10 veranschaulicht ein Rechensystem 1000, das in einer Punkt-zu-Punkt(PtP)-Konfiguration angeordnet ist, gemäß einer Ausführungsform. Insbesondere zeigt 10 ein System, bei dem Prozessoren, Speicher und Eingabe/Ausgabe-Vorrichtungen durch eine Anzahl von Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. Allgemein können ein oder mehrere der hierin beschriebenen Rechensysteme auf die gleiche oder eine ähnliche Weise wie das Rechensystem 900 konfiguriert sein.
  • Die Prozessoren 1070 und 1080 können auch jeweils eine integrierte Speichersteuerungslogik (MC) 1072 und 1082 beinhalten, um mit den Speicherelementen 1032 und 1034 zu kommunizieren. In alternativen Ausführungsformen kann die Speichersteuerungslogik 1072 und 1082 eine diskrete Logik, getrennt von den Prozessoren 1070 und 1080 sein. Die Speicherelemente 1032 und/oder 1034 können verschiedene Daten speichern, die durch die Prozessoren 1070 und 1080 beim Erreichen von hierin dargelegten Operationen und Funktionalitäten verwendet werden sollen.
  • Die Prozessoren 1070 und 1080 können ein beliebigerTyp eines Prozessors sein, wie etwa jene in Verbindung mit anderen Figuren besprochene. Die Prozessoren 1070 und 1080 können Daten über eine Punkt-zu-Punkt(PtP)-Schnittstelle 1050 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1078 bzw. 1088 austauschen. Die Prozessoren 1070 und 1080 können jeweils Daten über individuelle Punkt-zu-Punkt-Schnittstellen 1052 und 1054 mit einem Chipsatz 1090 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1076, 1086, 1094 und 1098 austauschen. Der Chipsatz 1090 kann auch Daten mit einem Coprozessor 1038, wie etwa einer Grafikschaltung mit hoher Leistungsfähigkeit, einem Maschinenlernbeschleuniger oder einem anderen Coprozessor 1038, über eine Schnittstelle 1039 austauschen, die eine PtP-Schnittstellenschaltung sein könnte. In alternativen Ausführungsformen könnten beliebige oder alle der in 10 veranschaulichten PtP-Links als ein Multi-Drop-Bus anstelle eines PtP-Links implementiert werden.
  • Der Chipsatz 1090 kann sich über eine Schnittstellenschaltung 1096 mit einem Bus 1020 in Kommunikation befinden. Der Bus 1020 kann eine oder mehrere Vorrichtungen aufweisen, die über ihn kommunizieren, wie etwa eine Busbrücke 1018 und E/A-Vorrichtungen 1016. Die Busbrücke 1018 kann sich über einen Bus 1010 in Kommunikation mit anderen Vorrichtungen befinden, wie etwa einer Benutzerschnittstelle 1012 (wie etwa einer Tastatur, einer Maus, einem Touchscreen oder anderen Eingabevorrichtungen), Kommunikationsvorrichtungen 1026 (wie etwa Modems, Netzwerkschnittstellenvorrichtungen oder anderen Arten von Kommunikationsvorrichtungen, die durch ein Computernetzwerk 1060 kommunizieren können), Audio-E/A-Vorrichtungen 1014 und/oder einer Datenspeicherungsvorrichtung 1028. Die Datenspeicherungsvorrichtung 1028 kann Code 1030 speichern, der durch die Prozessoren 1070 und/oder 1080 ausgeführt werden kann. In alternativen Ausführungsformen könnten beliebige Teile der Busarchitekturen mit einem oder mehreren PtP-Links implementiert werden.
  • Das in 10 dargestellte Computersystem ist eine schematische Veranschaulichung einer Ausführungsform eines Rechensystems, das genutzt werden kann, um verschiedene hier besprochene Ausführungsformen zu implementieren. Es versteht sich, dass verschiedene Komponenten des in 10 dargestellten Systems in einer System-on-Chip(SoC)-Architektur oder in einer beliebigen anderen geeigneten Konfiguration kombiniert werden können, die zum Erreichen der Funktionalität und der Merkmale von hierin bereitgestellten Beispielen und Implementierungen in der Lage ist.
  • Obwohl manche der hier beschriebenen Systeme und Lösungen als mehrere Elemente enthaltend oder mit diesen assoziiert beschrieben sind, werden möglicherweise nicht alle Elemente, die explizit veranschaulicht oder beschrieben sind, in jeder alternativen Implementierung der vorliegenden Offenbarung genutzt. Zusätzlich können sich eines oder mehrere der Elemente, die hier beschrieben sind, außerhalb eines Systems befinden, während in anderen Fällen gewisse Elemente innerhalb oder als Teil eines oder mehrerer der anderen beschriebenen Elemente sowie anderer Elemente, die bei der veranschaulichten Implementierung nicht beschrieben sind, enthalten sein können. Ferner können gewisse Elemente mit anderen Komponenten kombiniert werden sowie für alternative oder zusätzliche Zwecke zusätzlich zu jenen hier beschriebenen Zwecken verwendet werden.
  • Ferner versteht es sich, dass die oben präsentierten Beispiele nicht beschränkende Beispiele sind, die lediglich zum Zweck der Veranschaulichung gewisser Prinzipien und Merkmale bereitgestellt sind und nicht notwendigerweise die möglichen Ausführungsformen der hier beschriebenen Konzepte beschränken oder eingrenzen. Beispielsweise kann eine Vielzahl unterschiedlicher Ausführungsformen unter Nutzung verschiedener Kombinationen der hier beschriebenen Merkmale und Komponenten realisiert werden, einschließlich Komponenten, die durch die verschiedenen Implementierungen von hier beschriebenen Komponenten realisiert werden. Andere Implementierungen, Merkmale und Einzelheiten sollten aus den Inhalten dieser Patentschrift verstanden werden.
  • Obwohl diese Offenbarung bezüglich gewisser Implementierungen und allgemein assoziierter Verfahren beschrieben wurde, werden einem Fachmann Abänderungen und Permutationen dieser Implementierungen und Verfahren ersichtlich sein. Zum Beispiel können die hier beschriebenen Handlungen in einer anderen Reihenfolgen als beschrieben durchgeführt werden und immer noch die gewünschten Ergebnisse erzielen. Als ein Beispiel erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die gezeigte spezielle Reihenfolge oder sequenzielle Reihenfolge, um die gewünschten Ergebnisse zu erzielen. Bei gewissen Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein. Außerdem können andere Benutzeroberflächenlayouts und -funktionalitäten unterstützt werden. Andere Variationen liegen innerhalb des Schutzumfangs der folgenden Ansprüche.
  • Allgemein kann ein Aspekt des Gegenstands, der in dieser Spezifikation beschrieben ist, in Verfahren und ausgeführten Anweisungen umgesetzt sein, die die Handlungen des Identifizierens einer Probe, die einen Softwarecode beinhaltet, des Erzeugens eines Steuerflussgraphen für jede mehrerer Funktionen, die in der Probe enthalten sind, und Identifizieren von Merkmalen, die Instanzen eines Satzes von Steuerflussfragmenttypen entsprechen, in jeder der Funktionen beinhalten oder diese bewirken. Die identifizierten Merkmale können verwendet werden, um einen Merkmalssatz für die Probe aus den identifizierten Merkmalen zu erzeugen.
  • Diese und andere Ausführungsformen können jeweils optional eines oder mehrere der folgenden Merkmale beinhalten. Die für jede der Funktionen identifizierten Merkmale können kombiniert werden, um einen vereinigten String für die Probe zu erzeugen, und der Merkmalssatz kann aus dem vereinigten String erzeugt werden. Ein String kann für jede der Funktionen erzeugt werden, wobei jeder String die jeweiligen Merkmale beschreibt, die für die Funktion identifiziert sind. Das Kombinieren der Merkmale kann Identifizieren eines Aufrufs einer speziellen der mehreren Funktionen zu einer anderen der mehreren Funktionen und Ersetzen eines Teils des Strings derspeziellen Funktion, der auf die andere Funktion verweist, mit Inhalten des Strings der anderen Funktion beinhalten. Das Identifizieren der Merkmale kann Abstrahieren jedes der Strings der Funktionen derart beinhalten, dass nur Merkmale des Satzes von Steuerflussfragmenttypen in den Strings beschrieben sind. Der Satz von Steuerflussfragmenttypen kann Speicherzugriffe durch die Funktion und Funktionsaufrufe durch die Funktion beinhalten. Das Identifizieren der Merkmale kann Identifizieren von Instanzen von Speicherzugriffen durch jede der Funktionen und Identifizieren von Instanzen von Funktionsaufrufen durch jede der Funktionen beinhalten. Der Merkmalssatz kann jedes der Merkmale identifizieren, die für jede der Funktionen identifiziert werden. Der Merkmalssatz kann ein n-Graph sein.
  • Diese und andere Ausführungsformen können ferner jeweils optional eines oder mehrere der folgenden Merkmale beinhalten. Der Merkmalssatz kann zur Verwendung beim Klassifizieren der Probe bereitgestellt werden. Beispielsweise kann das Klassifizieren der Probe Gruppieren der Probe mit anderen Proben basierend auf entsprechenden Merkmalen der Proben beinhalten. Das Klassifizieren der Probe kann ferner Bestimmen eines Satzes von Merkmalen beinhalten, die für eine Gruppe von Proben relevant sind. Das Klassifizieren der Probe kann auch Bestimmen, ob die Probe als Malware zu klassifizieren ist, und/oder Bestimmen, ob die Probe wahrscheinlich eine oder mehrere Familien von Malware ist, beinhalten. Das Identifizieren der Merkmale kann Abstrahieren jedes der Steuerflussgraphen derart beinhalten, dass nur Merkmale des Satzes von Steuerflussfragmenttypen in den Steuerflussgraphen beschrieben sind. Mehrere Proben können empfangen werden, einschließlich der Probe. In manchen Fällen können die mehreren Proben von mehreren Quellen empfangen werden. Der Merkmalssatz kann einen Teilsatz von Merkmalen identifizieren, die in den Steuerflussgraphen der Funktionen der Probe identifiziert werden. Der Teilsatz von Merkmalen kann Speicherzugriffen und Funktionsaufrufen in dem Probencode entsprechen.
  • Während diese Spezifikation viele spezielle Implementierungsdetails enthält, sollten diese nicht als Beschränkungen des Schutzumfangs irgendwelcher Erfindungen oder dessen, was möglicherweise beansprucht wird, aufgefasst werden, sondern eher als Beschreibungen von Merkmalen, die speziell für bestimmte Ausführungsformen bestimmter Erfindungen sind. Gewisse Merkmale, die in dieser Spezifikation in dem Zusammenhang separater Ausführungsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Im Gegensatz dazu können verschiedene Merkmale, die in dem Zusammenhang einer einzigen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen separat oder in einer beliebigen geeigneten Teilkombination implementiert werden. Obwohl Merkmale oben als in gewissen Kombinationen wirkend beschrieben und selbst anfänglich als solche beansprucht sein können, können zudem ein oder mehrere Merkmale aus einer beanspruchten Kombination in manchen Fällen aus der Kombination herausgelöst werden, und die beanspruchte Kombination kann auf eine Teilkombination oder Variation einer Teilkombination verweisen.
  • Gleichermaßen sollte, obwohl Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, dies nicht so verstanden werden, dass es erforderlich ist, dass solche Operationen in der gezeigten bestimmten Reihenfolge ausgeführt werden oder dass alle veranschaulichten Operationen durchgeführt werden, um gewünschte Ergebnisse zu erreichen. Unter gewissen Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Zudem sollte die Separation verschiedener Systemkomponenten bei den oben beschriebenen Ausführungsformen nicht so verstanden werden, dass eine solche Separation bei allen Ausführungsformen erforderlich ist, und es versteht sich, dass die beschriebenen Programmkomponenten und -systeme allgemein zusammen in einem einzigen Softwareprodukt integriert werden können oder in mehrere Softwareprodukte gepackt werden können.
  • Die folgenden Beispiele betreffen Ausführungsformen gemäß mit dieser Spezifikation. Es versteht sich, dass bestimmte Beispiele bei bestimmten Ausführungsformen mit bestimmten anderen Beispielen kombiniert werden können.
  • Beispiel 1 beinhaltet eine Einrichtung, die eine Host-Steuerung zum Implementieren einer oder mehrerer Schichten eines Universal-Serial-Bus(USB)-basierten Protokolls umfasst, um ein Interconnect für mehrere Vorrichtungen bereitzustellen, wobei die Host-Steuerung ausgelegt ist zum: Überwachen von Steuerebenennachrichten auf dem Interconnect; Detektieren, in den Steuerebenennachrichten, eines Leistungszustandsänderungsbefehls für eine Vorrichtung, die mit dem Interconnect gekoppelt ist, wobei die Vorrichtungen ein getunneltes Protokoll auf dem Interconnect nutzen; und Modifizieren der Leistungsverteilung für eine oder mehrere andere Vorrichtungen des Interconnect basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  • Beispiel 2 beinhaltet den Gegenstand des Beispiels 1 und/oder eines oder mehrerer anderer Beispiele, und wobei optional die Host-Steuerung einen Verbindungsmanager (CM) implementieren soll, um die Steuerebenennachrichten zu überwachen, und der CM ein Interrupt basierend auf dem Detektieren von Leistungszustandsänderungsbefehlen erzeugen soll.
  • Beispiel 3 beinhaltet den Gegenstand des Beispiels 2 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der CM das Interrupt durch Setzen eines oder mehrerer Bits eines Statusregisters in der Host-Steuerung erzeugen soll.
  • Beispiel 4 beinhaltet den Gegenstand des Beispiels 2 und/oder eines oder mehrerer anderer Beispiele, und wobei optional die Host-Steuerung ferner einen Vorrichtungsrichtlinienmanager (DPM) implementieren soll, um Power-Delivery-Richtlinien für Vorrichtungen zu verwalten, die mit dem Interconnect gekoppelt sind, und der CM eine Indikation des Leistungszustandsänderungsbefehls an den DPM unter Verwendung eines Betriebssystem-Leistungsrichtlinienmanagers (OSPPM) bereitstellen soll.
  • Beispiel 5 beinhaltet den Gegenstand des Beispiels 1 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der Leistungszustandsänderungsbefehl ein Niedrigleistungsbefehl für eine Leistungssenkenvorrichtung ist und die Host-Steuerung Leistung auf eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, basierend auf der Detektion des Niedrigleistungsbefehls umverteilen soll.
  • Beispiel 6 beinhaltet den Gegenstand des Beispiels 1 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der Leistungszustandsänderungsbefehl ein Niedrigleistungsbefehl für eine Leistungsquellenvorrichtung ist und die Host-Steuerung basierend auf der Detektion des Niedrigleistungsbefehls bewirken soll, dass eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, in einen Niedrigleistungsmodus übergehen.
  • Beispiel 7 beinhaltet den Gegenstand des Beispiels 6 und/oder eines oder mehrerer anderer Beispiele, und wobei optional die Host-Steuerung bewirken soll, dass eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, in einen Niedrigleistungsmodus übergehen, indem sie Vorrichtungsleistungsrichtlinien für die Vorrichtungen neu verhandelt.
  • Beispiel 8 beinhaltet den Gegenstand des Beispiels 1 und/oder eines oder mehrerer anderer Beispiele, und wobei optional das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist.
  • Beispiel 9 beinhaltet den Gegenstand des Beispiels 1 und/oder eines oder mehrerer anderer Beispiele, und wobei optional das USB-Protokoll ein USB4-Protokoll ist.
  • Beispiel 10 beinhaltet ein Verfahren, das Folgendes umfasst: Überwachen von Steuerebenennachrichten auf einem Universal-Serial-Bus(USB)-basierten Interconnect; Detektieren, in den Steuerebenennachrichten, eines Leistungszustandsänderungsbefehls für eine Vorrichtung, die mit dem USB-basierten Interconnect gekoppelt ist, wobei die Vorrichtung ein getunneltes Protokoll auf dem USB-basierten Interconnect verwendet; und Modifizieren der Leistungsverteilung an eine oder mehrere andere Vorrichtungen des USB-basierten Interconnect basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  • Beispiel 11 beinhaltet den Gegenstand des Beispiels 10 und/oder eines oder mehrerer anderer Beispiele, und optional ferner umfassend Erzeugen eines Interrupt basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  • Beispiel 12 beinhaltet den Gegenstand des Beispiels 11 und/oder eines oder mehrerer anderer Beispiele, und wobei optional das Erzeugen eines Interrupt ein Setzen eines oder mehrerer Bits eines Statusregisters in einer USB-Steuerung umfasst.
  • Beispiel 13 beinhaltet den Gegenstand des Beispiels 10 und/oder eines oder mehrerer anderer Beispiele, und optional ferner umfassend Bestimmen, dass die Vorrichtung eine Leistungssenke ist, wobei das Modifizieren der Leistungsverteilung das Umverteilen von Leistung auf eine oder mehrere Vorrichtungen umfasst, die mit dem USB-basierten Interconnect gekoppelt sind.
  • Beispiel 14 beinhaltet den Gegenstand des Beispiels 10 und/oder eines oder mehrerer anderer Beispiele, und optional ferner umfassend Bestimmen, dass die Vorrichtung eine Leistungsquelle ist, wobei das Modifizieren der Leistungsverteilung das Neuverhandeln einer Vorrichtungsleistungsrichtlinie für eine oder mehrere andere Vorrichtungen, die mit dem USB-basierten Interconnect gekoppelt sind, umfasst.
  • Beispiel 15 beinhaltet den Gegenstand des Beispiels 10 und/oder eines oder mehrerer anderer Beispiele, und wobei optional das USB-basierte Interconnect ein USB4-Protokoll implementiert und das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist.
  • Beispiel 16 beinhaltet ein System, das Folgendes umfasst: eine erste Vorrichtung; eine zweite Vorrichtung, die mit der ersten Vorrichtung über ein Universal-Serial-Bus(USB)-basiertes Interconnect gekoppelt ist; eine dritte Vorrichtung, die mit der ersten und zweiten Vorrichtung über das USB-basierte Interconnect gekoppelt ist, wobei die dritte Vorrichtung mit der ersten und zweiten Vorrichtung auf dem USB-basierten Interconnect unter Verwendung eines getunnelten Protokolls kommuniziert; wobei die erste Vorrichtung eine Host-Steuerung zum Implementieren eines Verbindungsmanagers (CM) und eines Vorrichtungsrichtlinienmanagers (DPM) umfasst, wobei der CM ausgelegt ist zum: Detektieren eines Niedrigleistungsbefehls für die zweite Vorrichtung, wobei der Niedrigleistungsbefehl bewirkt, dass die zweite Vorrichtung in einen Niedrigleistungsmodus übergeht; und Bereitstellen einer Indikation des Niedrigleistungsbefehls an den DPM; wobei der DPM Leistungsverteilungsrichtlinien für die Vorrichtungen basierend auf der Indikation verwalten soll.
  • Beispiel 17 beinhaltet den Gegenstand des Beispiels 16 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der CM eine Indikation des Niedrigleistungsbefehls an den DPM unter Verwendung eines Betriebssystem-Leistungsrichtlinienmanagers (OSPPM) bereitstellen soll.
  • Beispiel 18 beinhaltet den Gegenstand des Beispiels 16 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der DPM Leistung an die zweite Vorrichtung basierend auf der Indikation umverteilen soll.
  • Beispiel 19 beinhaltet den Gegenstand des Beispiels 16 und/oder eines oder mehrerer anderer Beispiele, und wobei optional der DPM eine Vorrichtungsleistungsrichtlinie für die zweite Vorrichtung basierend auf der Indikation modifizieren soll.
  • Beispiel 20 beinhaltet den Gegenstand des Beispiels 16 und/oder eines oder mehrerer anderer Beispiele, und wobei optional das USB-basierte Interconnect ein USB4-Protokoll implementiert und das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist.
  • Dementsprechend wurden spezielle Ausführungsformen des Gegenstands beschrieben. Andere Ausführungsformen liegen innerhalb des Schutzumfangs der folgenden Ansprüche. In manchen Fällen können die in den Ansprüchen genannten Handlungen in einer unterschiedlichen Reihenfolge ausgeführt werden und immer noch wünschenswerte Ergebnisse erzielen. Außerdem erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die gezeigte spezielle Reihenfolge oder sequenzielle Reihenfolge, um gewünschte Ergebnisse zu erzielen.

Claims (20)

  1. Einrichtung, die Folgendes umfasst: eine Host-Steuerung zum Implementieren einer oder mehrerer Schichten eines Universal-Serial-Bus(USB)-basierten Protokolls, um ein Interconnect für mehrere Vorrichtungen bereitzustellen, wobei die Host-Steuerung ausgelegt ist zum: Überwachen von Steuerebenennachrichten auf dem Interconnect; Detektieren, in den Steuerebenennachrichten, eines Leistungszustandsänderungsbefehls für eine Vorrichtung, die mit dem Interconnect gekoppelt ist, wobei die Vorrichtungen ein getunneltes Protokoll auf dem Interconnect nutzen; und Modifizieren der Leistungsverteilung für eine oder mehrere andere Vorrichtungen des Interconnects basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  2. Einrichtung nach Anspruch 1, wobei die Host-Steuerung einen Verbindungsmanager (CM) implementieren soll, um die Steuerebenennachrichten zu überwachen, und der CM ein Interrupt basierend auf dem Detektieren von Leistungszustandsänderungsbefehlen erzeugen soll.
  3. Einrichtung nach Anspruch 2, wobei der CM das Interrupt durch Setzen eines oder mehrerer Bits eines Statusregisters in der Host-Steuerung erzeugen soll.
  4. Einrichtung nach Anspruch 2, wobei die Host-Steuerung ferner einen Vorrichtungsrichtlinienmanager (DPM) implementieren soll, um Power-Delivery-Rchtlinien für Vorrichtungen zu verwalten, die mit dem Interconnect gekoppelt sind, und der CM eine Indikation des Leistungszustandsänderungsbefehls an den DPM unter Verwendung eines Betriebssystem-Leistungsrichtlinienmanagers (OSPPM) bereitstellen soll.
  5. Einrichtung nach einem der Ansprüche 1-4, wobei der Leistungszustandsänderungsbefehl ein Niedrigleistungsbefehl für eine Leistungssenkenvorrichtung ist und die Host-Steuerung Leistung auf eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, basierend auf der Detektion des Niedrigleistungsbefehls umverteilen soll.
  6. Einrichtung nach einem der Ansprüche 1-4, wobei der Leistungszustandsänderungsbefehl ein Niedrigleistungsbefehl für eine Leistungsquellenvorrichtung ist und die Host-Steuerung basierend auf der Detektion des Niedrigleistungsbefehls bewirken soll, dass eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, in einen Niedrigleistungsmodus übergehen.
  7. Einrichtung nach Anspruch 6, wobei die Host-Steuerung bewirken soll, dass eine oder mehrere andere Vorrichtungen, die mit dem Interconnect gekoppelt sind, in einen Niedrigleistungsmodus übergehen, indem sie Vorrichtungsleistungsrichtlinien für die Vorrichtungen neu verhandelt.
  8. Einrichtung nach einem der Ansprüche 1-7, wobei das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist.
  9. Einrichtung nach einem der Ansprüche 1-7, wobei das USB-basierte Protokoll ein USB4-Protokoll ist.
  10. Verfahren, das Folgendes umfasst: Überwachen von Steuerebenennachrichten auf einem Universal-Serial-Bus(USB)-basierten Interconnect; Detektieren, in den Steuerebenennachrichten, eines Leistungszustandsänderungsbefehls für eine Vorrichtung, die mit dem USB-basierten Interconnect gekoppelt ist, wobei die Vorrichtung ein getunneltes Protokoll auf dem USB-basierten Interconnect verwendet; und Modifizieren der Leistungsverteilung an eine oder mehrere andere Vorrichtungen des USB-basierten Interconnect basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  11. Verfahren nach Anspruch 10, ferner umfassend Erzeugen eines Interrupt basierend auf dem Detektieren des Leistungszustandsänderungsbefehls.
  12. Verfahren nach Anspruch 11, wobei das Erzeugen eines Interrupt ein Setzen eines oder mehrerer Bits eines Statusregisters in einer USB-Steuerung umfasst.
  13. Verfahren nach einem der Ansprüche 10-12, ferner umfassend Bestimmen, dass die Vorrichtung eine Leistungssenke ist, wobei das Modifizieren der Leistungsverteilung das Umverteilen von Leistung auf eine oder mehrere Vorrichtungen umfasst, die mit dem USB-basierten Interconnect gekoppelt sind.
  14. Verfahren nach einem der Ansprüche 10-12, ferner umfassend Bestimmen, dass die Vorrichtung eine Leistungsquelle ist, wobei das Modifizieren der Leistungsverteilung das Neuverhandeln einer Vorrichtungsleistungsrichtlinie für eine oder mehrere andere Vorrichtungen, die mit dem USB-basierten Interconnect gekoppelt sind, umfasst.
  15. Verfahren nach einem der Ansprüche 10-14, wobei das USB-basierte Interconnect ein USB4-Protokoll implementiert und das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist.
  16. System, das Folgendes umfasst: eine erste Vorrichtung; eine zweite Vorrichtung, die mit der ersten Vorrichtung über ein Universal-Serial-Bus(USB)-basiertes Interconnect gekoppelt ist; eine dritte Vorrichtung, die mit der ersten und der zweiten Vorrichtung über das USB-basierte Interconnect gekoppelt ist, wobei die dritte Vorrichtung mit der ersten und der zweiten Vorrichtung auf dem USB-basierten Interconnect unter Verwendung eines getunnelten Protokolls kommuniziert; wobei die erste Vorrichtung eine Host-Steuerung zum Implementieren eines Verbindungsmanagers (CM) und eines Vorrichtungsrichtlinienmanagers (DPM) umfasst, wobei der CM ausgelegt ist zum: Detektieren eines Niedrigleistungsbefehls für die zweite Vorrichtung, wobei der Niedrigleistungsbefehl bewirken soll, dass die zweite Vorrichtung in einen Niedrigleistungsmodus übergeht; und Bereitstellen einer Indikation des Niedrigleistungsbefehls an den DPM; und wobei der DPM Leistungsverteilungsrichtlinien für die Vorrichtungen basierend auf der Indikation verwalten soll.
  17. System nach Anspruch 16, wobei der CM eine Indikation des Niedrigleistungsbefehls an den DPM unter Verwendung eines Betriebssystem-Leistungsrichtlinienmanagers (OSPPM) bereitstellen soll.
  18. System nach Anspruch 16 oder 17, wobei der DPM Leistung an die zweite Vorrichtung basierend auf der Indikation umverteilen soll.
  19. System nach Anspruch 16 oder 17, wobei der DPM eine Vorrichtungsleistungsrichtlinie für die zweite Vorrichtung basierend auf der Indikation modifizieren soll.
  20. System nach einem der Ansprüche 16-19, wobei das USB-basierte Interconnect ein USB4-Protokoll implementiert und das getunnelte Protokoll entweder ein DisplayPort-basiertes Protokoll oder ein Peripheral-Component-Interconnect-Express(PCIe)-basiertes Protokoll ist
DE102021118048.1A 2020-08-18 2021-07-13 Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports Pending DE102021118048A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/996,112 US20210055777A1 (en) 2020-08-18 2020-08-18 System power management in multi-port i/o hybrid systems
US16/996,112 2020-08-18

Publications (1)

Publication Number Publication Date
DE102021118048A1 true DE102021118048A1 (de) 2022-02-24

Family

ID=74645564

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021118048.1A Pending DE102021118048A1 (de) 2020-08-18 2021-07-13 Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports

Country Status (3)

Country Link
US (1) US20210055777A1 (de)
CN (1) CN114077563A (de)
DE (1) DE102021118048A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451067B2 (en) * 2017-12-19 2022-09-20 Intel Corporation Method, apparatus and system to enhance a device policy manager to manage devices based on battery condition
WO2021021141A1 (en) * 2019-07-30 2021-02-04 Hewlett-Packard Development Company, L.P. Power synchronizations between host devices and display devices
US20200320026A1 (en) * 2020-04-27 2020-10-08 Intel Corporation Bandwidth management allocation for displayport tunneling
US11809363B1 (en) * 2020-08-31 2023-11-07 Synopsys, Inc. Debug methodology for a USB sub-system using unique identifier (UID) approach
US20220070018A1 (en) * 2020-09-02 2022-03-03 Cypress Semiconductor Corporation Usb type-c/pd port real time monitoring and control in an automotive or industrial ecosystem
EP4318230A1 (de) 2021-05-12 2024-02-07 Samsung Electronics Co., Ltd. Elektronische vorrichtung mit usb-anschlussklemme und betriebsverfahren dafür
TWI800869B (zh) * 2021-07-14 2023-05-01 瑞昱半導體股份有限公司 顯示接口訊號輸出轉換電路及相關的方法
US20230119332A1 (en) * 2021-10-18 2023-04-20 Celerity Technologies Inc. Usb connector for fiber optic cable and related usb extender
WO2023159339A1 (en) * 2022-02-22 2023-08-31 Intel Corporation System, method and apparatus for scalable connection management of interface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201516637A (zh) * 2013-10-31 2015-05-01 Acer Inc 通用串列匯流排的集線裝置及其電力管理方法
US9829958B1 (en) * 2016-05-10 2017-11-28 Qualcomm Incorporated Power saving systems and methods for Universal Serial Bus (USB) systems
WO2018128690A1 (en) * 2016-11-03 2018-07-12 Semtech Corporation System and method to manage power for port controller based power supplies using a common power source
US11451067B2 (en) * 2017-12-19 2022-09-20 Intel Corporation Method, apparatus and system to enhance a device policy manager to manage devices based on battery condition
US20190332558A1 (en) * 2018-04-25 2019-10-31 Qualcomm Incorporated Low-power states in a multi-protocol tunneling environment
US11169589B2 (en) * 2018-12-28 2021-11-09 Intel Corporation Managing system power in USB-C/USB power delivery systems
US20200192832A1 (en) * 2020-02-21 2020-06-18 Intel Corporation Influencing processor governance based on serial bus converged io connection management

Also Published As

Publication number Publication date
CN114077563A (zh) 2022-02-22
US20210055777A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
DE102021118048A1 (de) Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports
DE112013007743B4 (de) Steuern einer physischen Verbindung von einem ersten Protokoll unter Verwendung einer erweiterten Funktionsstruktur eines zweiten Protokolls
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE112013001661B4 (de) Apparat, verfahren und system zur bereitstellung eines konsolidierten seitenband kommunikationskanal zwischen geräten
DE112013005044B4 (de) Verfahren, einrichtung, vorrichtung und system zum ausführen von eingehenden pcie-schreiboperationen in einen speicher und partnereinrichtungen per dualcast
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112013007734B4 (de) Geräte, verfahren und systeme zum identifizieren eines protokolls, das eine physikalische verbindung nutzt
DE112010001469B4 (de) Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE102019130715A1 (de) Verwaltung der systemstromversorgung in usb-c/usb-stromversorgungs-ablieferungssystemen
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE60305817T2 (de) System und Verfahren zur Optimierung von Stromverbrauch in einer mobilen Umgebung
DE102019109130A1 (de) System, verfahren und einrichtung für dvsec für eine effiziente peripheriegeräteverwaltung
DE102018005753A1 (de) Serdes link training
DE112013004026T5 (de) Vorrichtung, System und Verfahren zur geschalteten Leistungsübertragung zu einer E/A-Schnittstelle
DE112013002639T5 (de) Optimierter Verbindungstrainings- und Managementmechanismus
DE112013007724T5 (de) Gemeinsame Benutzung von Speicher und I/O-Diensten zwischen Knoten
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit