Share via


USB4 Power Management Anforderungen

USB4-Hostrouter müssen USB4-Standby sowie -Eingang und -Ausgang zuverlässig unterstützen. Die getunnelten Protokolle dürfen das Trennen der Verbindung mit den jeweiligen Tunneln am Ein- oder Ausgang vom USB4-Standby nicht elektrisch signalisieren. Darüber hinaus muss der USB4-Hostrouter das Protokoll über den entsprechenden Tunnel wiedergeben, nachdem die USB4-Domäne aus dem Standby fortgesetzt wurde.

Die getunnelten Geräteprotokolle (PCIe, USB 3.x und Display) richten Power Relations mit dem zugehörigen USB4-Hostroutergerät ein, mit dem der Verbindungs-Manager den Wechsel in Standby initiieren kann, wenn sich die getunnelten Geräte im Leerlauf befinden. Die PCIe- und USB 3.x-Gerätetreiber unterstützen ab Windows 11 das Identifizieren sowie das Power Management des zugehörigen USB4-Hostroutergeräts basierend auf der ACPI-basierten (_DSD) Portzuordnung, die in den USB4 ACPI-Anforderungen beschrieben ist.

Der Grafikstapel in Windows 11 wurde ebenfalls aktualisiert, um das Identifizieren und Power Management des USB4-Hostroutergeräts zu ermöglichen. Dies erfordert Unterstützung vom bereitgestellten IHV-Grafiktreiber, wie in den Anforderungen für Grafiktreiber beschrieben. Der USB4-Verbindungs-Manager ruft die Hostroutergeräte-ID von ACPI ab und schreibt in ADP_DP_CS_2.CM_ID in den DP-IN-Adapterkonfigurationsbereich. Wie in den ACPI-Anforderungen beschrieben, muss die Hostschnittstelleninstanz immer mit einer 3-Bit-Ziffer (0-7) enden.

Anforderungen für Grafiktreiber

Um die richtigen Power Management-Zuordnungen sicherzustellen, muss der Grafikstapel in der Lage sein, zu identifizieren, welcher USB4 DP-IN-Adapter mit dem Monitor verbunden ist. Dies wird durch die USB4-Domäneneinstellung des DPCD-Registers über den USB4 DP-IN-Adapter erreicht, den der Grafikstapel lesen kann. Diese Anforderungen werden in der Spezifikation für DisplayPort™ 2.0 (Errata) definiert.

DPCD-Feldname DPCD-Feldadresse Hinweis
USB4_Driver_ID E000Fh [3:0] Identifiziert den Hostrouter im System eindeutig. Dies wird durch den USB4-Verbindungs-Manager festgelegt, der die von ACPI abgerufene Hostroutergeräte-ID abruft und in ADP_DP_CS_2.CM_ID im DP IN-Adapter-Konfigurationsbereich schreibt.
USB4_ROUTER_TOPOLOGY_ID E001Bh - E001Fh Identifiziert das USB4-Gerät in der Hostrouterdomäne eindeutig
DP_IN_Adapter_Number E000Eh [5:0] Identifiziert den DP-IN-Adapter auf dem USB4-Gerät eindeutig
DP-Tunneling-Support E000Dh [0] Der Wert 1 gibt USB4-Tunneling an

Die Grafiktreibertreiberanforderungen lauten wie folgt:

  1. WDDM 3.0 oder höherer Treiber
  2. Treiber stellt eine neue Adapterkappe zur Angabe der USB4-Unterstützung bereit.
  3. Alle statischen Videodatennetzwerke (VidPN)-Ziele, die vom Treiber zur Verfügung gestellt werden, müssen als Power-Komponenten gemeldet werden.
  4. Jedes dynamische USB4-Ziel, das mit demselben statischen Ziel verbunden ist, muss mit demselben Hostrouter verbunden sein. Das heißt, die USB4_Driver_ID muss den gleichen Wert haben. Das Verbinden eines USB4 DisplayPort-Monitors nur mit einem Display oder mit einem indirekten Display-WDDM-Treiber wird nicht unterstützt.

USB4-Treiberfunktionen

Die SupportUsb4Targets-Funktion wurde der Struktur DXGK_DISPLAY_DRIVERCAPS_EXTENSION hinzugefügt, die zur Startzeit vom Treiber abgefragt wird. Das Festlegen dieses Werts ist nur für WDDM 3.0-Treiber gültig und sollte nur festgelegt werden, wenn der Treiber alle oben aufgeführten Anforderungen erfüllt.

Melden von USB4-Monitor-DPCD-Werten

In WDDM 3.0 gibt es ein neues DXGK_CONNECTION_CHANGE.MonitorConnect.MonitorConnectFlags-Feld mit einem Usb4DisplayPortMonitor-Flag, das vom Treiber verwendet wird, um anzugeben, dass dieser Monitor ein per USB4 verbundener Monitor ist.

typedef struct _DXGK_CONNECTION_MONITOR_CONNECT_FLAGS
{
    union
    {
        struct
        {
            UINT    Usb4DisplayPortMonitor  : 1;
            UINT    Reserved                :31;
        };
        UINT Value;
    };
} DXGK_CONNECTION_MONITOR_CONNECT_FLAGS;

typedef struct _DXGK_CONNECTION_CHANGE {
    ULONGLONG                       ConnectionChangeId;
    D3DDDI_VIDEO_PRESENT_TARGET_ID  TargetId            :24;
    DXGK_CONNECTION_STATUS          ConnectionStatus    : 4;
    UINT                            Reserved            : 4;
    union {
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY LinkTargetType;
            DXGK_CONNECTION_MONITOR_CONNECT_FLAGS MonitorConnectFlags;
        } MonitorConnect;
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY BaseTargetType;
            D3DDDI_VIDEO_PRESENT_TARGET_ID  NewTargetId;
        } TargetConnect;
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY BaseTargetType;
            D3DDDI_VIDEO_PRESENT_TARGET_ID  NewTargetId;
        } TargetJoin;
    };
} DXGK_CONNECTION_CHANGE, *PDXGK_CONNECTION_CHANGE;

typedef struct _DXGK_CONNECTION_USB4_INFO
{
    UINT Dpcd_DP_IN_Adapter_Number;
    UINT Dpcd_USB4_Driver_ID;
    BYTE Dpcd_USB4_ROUTER_TOPOLOGY_ID[5];
} DXGK_CONNECTION_USB4_INFO, *PDXGK_CONNECTION_USB4_INFO;

typedef struct _DXGKARG_QUERYCONNECTIONCHANGE
{
    DXGK_CONNECTION_CHANGE     ConnectionChange; // out: Buffer into which the oldest available change is copied by driver
    PDXGK_CONNECTION_USB4_INFO pUsb4MonitorInfo; // inout: Pointer to an operating system allocated structure driver should
                                                 //        complete if MonitorConnect.Flags.Usb4DisplayPortMonitor was set
} DXGKARG_QUERYCONNECTIONCHANGE;

Wenn ein DisplayPort-Monitor™ mit dem angegebenen VidPN-Ziel verbunden wurde und mit einem USB4 DP-IN-Adapter verbunden ist, sollte der Treiber folgende Aufgaben ausführen:

  1. DXGK_CONNECTION_CHANGE.MonitorConnect.Flags.Usb4DisplayPortMonitor festlegen
  2. Die Felder in DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo ausfüllen

Alle statischen VidPN-Ziele, die als PoFx-Komponenten gemeldet werden

Um das richtige Power Management zwischen Grafik- und USB-Stapel zu ermöglichen, müssen alle statischen VidPN-Ziele als PoFx (Power Management Framework)-Komponenten über DxgkDdiQueryAdapterInfo(DXGKQAITYPE_NUMPOWERCOMPONENTS) und DxgkDdiQueryAdapterInfo(DXGKQAITYPE_POWERCOMPONENTINFO) gemeldet werden.

Alle dynamischen Ziele, die aus demselben statischen VidPN-Ziel erstellt wurden

USB4-Monitore, die mit dynamischen VidPN-Zielen verbunden sind, werden unterstützt. Alle dynamischen USB4-VidPN-Ziele, die mit einem statischen VidPN-Ziel verbunden sind, müssen jedoch denselben USB4_Driver_ID values haben. Sie müssen mit demselben USB4-Hostrouter verbunden sein.

CLx-Zustände mit geringer Leistung

Um Strom zu sparen und die thermische Belastung zu reduzieren, ermöglicht der Verbindungs-Manager erste Tiefenlinks, um CL0s und CL1 einzugeben, sofern diese von Hardware und derzeit getunnelten Protokollen unterstützt werden. Sowohl der vorgeschaltete Port (UFP) als auch der nachgelagerte Port (DFP) muss CL0s und CL1 unterstützen, damit die Zustände mit niedriger Leistung über den Link aktiviert werden können. Wenn die TMU-Genauigkeitsanforderungen und die tunnelte Aktivität auf dem Link dies zulassen, kann der Link cl0s oder CL1 eingeben, um Energie zu sparen.

Weitere Informationen

Thunderbolt ist eine Marke der Intel Corporation oder ihrer Tochtergesellschaften.

"USB4™" ist eine Marke des USB Implementers Forum und ist nur für die Verwendung mit Produkten vorgesehen, die auf der USB4-Spezifikation™ basieren und konform sind.