USB4 電源管理需求
USB4 主機路由器必須可靠地支援 USB4 睡眠和進入和結束。 通道通訊協定不得在進入或離開 USB4 睡眠時,以電子方式發出與其個別通道的連線。 此外,USB4 主機路由器必須在 USB4 網域從睡眠恢復之後,透過適當的通道重新執行通訊協定喚醒。
通道裝置通訊協定 (PCIe、USB 3.x,並顯示) 與相關聯的 USB4 主機路由器裝置建立電源關聯,讓連線管理員在通道裝置閒置時起始睡眠專案。 從 Windows 11 開始的 PCIe 和 USB 3.x 設備磁碟機支援,根據 USB4 ACPI 需求中所述的 ACPI 型 (_DSD) 埠對應,識別及電源管理相關聯的 USB4 主機路由器裝置。
Windows 11中的圖形堆疊也已更新,以識別 USB4 主機路由器裝置,以及電源管理 USB4 主機路由器裝置。 這需要 IHV 提供的圖形驅動程式支援,如 圖形驅動程式需求中所述。 USB4 連線管理員會從 ACPI 取得主機路由器裝置識別碼,並在 DP-IN 配接器設定空間中寫入 ADP_DP_CS_2.CM_ID。 如 ACPI 需求中所述,主機介面實例必須一律以 3 位數位結尾, (0-7) 。
圖形驅動程式需求
為了確保正確的電源管理關聯,圖形堆疊必須能夠識別監視器所連接的 USB4 DP-IN 介面卡。 這是透過圖形堆疊可讀取的 USB4 DP-IN 配接器,透過 DPCD 暫存器設定 DPCD 暫存器來達成此目的。 這些需求定義于 DisplayPort™ 2.0 規格中, (Errata) 。
DPCD 功能變數名稱 | DPCD 欄位位址 | 注意 |
---|---|---|
USB4_Driver_ID | E000Fh [3:0] | 可唯一識別系統中的主機路由器。 這是由 USB4 連線管理員所設定,以取得從 ACPI 取得的主機路由器裝置識別碼,並將其寫入 DP IN 配接器組態空間中的 ADP_DP_CS_2.CM_ID。 |
USB4_ROUTER_TOPOLOGY_ID | E001Bh - E001Fh | 唯一識別主機路由器網域中的 USB4 裝置 |
DP_IN_Adapter_Number | E000Eh [5:0] | 唯一識別 USB4 裝置上的 DP-IN 配接器 |
DP 通道支援 | E000Dh [0] | 值為 1 表示 USB4 通道 |
圖形驅動程式需求如下:
- WDDM 3.0 或更新版本驅動程式
- 驅動程式會公開新的介面卡端點,以指出 USB4 支援
- 驅動程式公開的所有靜態視訊 (VidPN) 目標,都必須回報為電源元件
- 每個連線到相同靜態目標的 USB4 動態目標都必須連線到相同的主機路由器。 也就是說,USB4_Driver_ID必須具有相同的值。 不支援將 USB4 DisplayPort 監視器連接到僅顯示或間接顯示 WDDM 驅動程式。
USB4 驅動程式功能
此功能 SupportUsb4Targets
已新增至在開始時間從驅動程式查詢的 DXGK_DISPLAY_DRIVERCAPS_EXTENSION 結構。 設定此值僅適用于 WDDM 3.0 驅動程式,而且只有在驅動程式符合上述所有需求時才應設定。
報告 USB4 監視 DPCD 值
在 WDDM 3.0 中,有新的 DXGK_CONNECTION_CHANGE.MonitorConnect.MonitorConnectFlags
欄位具有 Usb4DisplayPortMonitor
旗標,驅動程式用來指出此監視器是 USB4 連線的監視器。
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;
當 DisplayPort™ 監視器已連線到指定的視訊簡報網路 (VidPN) 目標,且連線到 USB4 DP-IN 介面卡時,驅動程式應該:
- 設置
DXGK_CONNECTION_CHANGE.MonitorConnect.Flags.Usb4DisplayPortMonitor
- 完成 中的欄位
DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo
所有要回報為 PoFx 元件的靜態 VidPN 目標
若要在圖形和 USB 堆疊之間啟用正確的電源管理,所有靜態 VidPN 目標都必須回報為電源管理架構, (PoFx 透過 和 DxgkDdiQueryAdapterInfo(DXGKQAITYPE_POWERCOMPONENTINFO)
) 元件 DxgkDdiQueryAdapterInfo(DXGKQAITYPE_NUMPOWERCOMPONENTS)
。
從相同的靜態 VidPN 目標建立的所有動態目標
支援連線到動態 VidPN 目標的 USB4 監視器。 但所有連線至靜態 VidPN 目標的 USB4 動態 VidPN 目標都必須具有相同的 USB4_Driver_ID values
,它們必須連線到相同的 USB4 主機路由器。
CLx 低電源狀態
為了節省電源並減少熱負載,如果硬體和目前通道通訊協定支援,連線管理員會啟用第一個深度連結來輸入 CL0s 和 CL1。 上游對向埠 (UFP) 和下游面向埠 (DFP) 必須支援 CL0s 和 CL1,才能在連結上啟用低電源狀態。 接著,如果連結上的 TMU 精確度需求和通道活動允許,連結可能會進入 CL0s 或 CL1 以節省電源。
另請參閱
其為 Intel Corporation 或其子公司的商標。
「USB4™」 是 USB 實作者論壇的商標,僅適用于以 USB4™ 規格為基礎且符合規範的產品。