CPU 主機光圈
對於 32 位 OS 離散圖形處理單位 (GPU) ,不支援可重設大小的 BAR,或調整框架緩衝區列的大小失敗時,Windows Display Driver Model (WDDM) v2 會提供替代機制,讓離散 GPU VRAM 可以有效率地存取。 針對支援可程式化 BAR 位址空間的 GPU,WDDM v2 中引進了新的 CPU 主機 Aperture 功能,以抽象化該功能。
公開 CPU 主機光圈時,核心模式驅動程式會針對支援 CPU 主機光圈的每個區段填入新的 DXGK_CPUHOSTAPERTURE 上限結構。 這會定義 CPU 主機光圈的大小,這可讓驅動程式保留部分 BAR 以供內部使用。 頁面大小與記憶體區段的 GPU 頁面相同。
然後,核心模式驅動程式會公開兩個新的設備驅動器介面, (DDI) 來管理 BAR 位址空間,特別是 DxgkDdiMapCpuHostAperture 和 DxgkDdiUnmapCpuHostAperture。
CPU 主機光圈背後的分頁表記憶體是由驅動程式管理,並在驅動程式初始化期間早期設定。 DxgkDdiMapCpuHostAperture 和 DxgkDdiUnmapCpuHostAperture 預期會在區段列舉之後立即運作,並在視訊記憶體管理員初始化期間使用,將 CPU 虛擬位址對應至系統分頁程式的頁面目錄和頁面數據表在配接器初始化期間。
需要記憶體區段的CPU存取權時,視訊記憶體管理員會保留CPU主機光圈中的頁面,並透過它對應記憶體區段頁面。 請見下圖說明。
在鏈接的顯示配接器組態中,除了下列專案之外,看起來類似。
- 默認 或 LinkMirrored 配置一律對應至 GPU0。
- LinkInstanced 配置具有與配置對應至不同 GPU 之各種部分相關聯的 AllocationSize*NumberOfGPUInLink 虛擬地址範圍。
下圖顯示