Udostępnij przez


Otwór hosta procesora CPU

W przypadku 32-bitowych dyskretnych jednostek przetwarzania grafiki (GPU), które nie obsługują BAR o zmiennym rozmiarze lub gdy zmiana rozmiaru buforu ramki BAR kończy się niepowodzeniem, Model Sterownika Wyświetlania Windows (WDDM) v2 oferuje alternatywny mechanizm, dzięki któremu do VRAM dyskretnego GPU można uzyskać wydajny dostęp. W przypadku procesorów GPU, które obsługują programowalną przestrzeń adresową paska (BAR), w WDDM v2 wprowadzono nową funkcję otwarcia hosta CPU dla uproszczenia korzystania z tej funkcji.

Podczas uwidaczniania okna hosta CPU sterownik trybu jądra wypełnia nową strukturę DXGK_CPUHOSTAPERTURE caps dla każdego segmentu obsługującego okno hosta CPU. Definiuje to rozmiar obszaru pamięci hosta procesora, dzięki czemu sterownik może zarezerwować część BAR do celów wewnętrznych. Rozmiar strony jest taki sam jak strony GPU w segmencie pamięci.

Sterownik trybu jądra udostępnia następnie dwa nowe interfejsy sterowników urządzeń (DDI) do zarządzania przestrzenią adresową BAR, w szczególności DxgkDdiMapCpuHostAperture i DxgkDdiUnmapCpuHostAperture.

Pamięć dla tabeli stron, znajdującej się za aperturą hosta procesora, jest zarządzana i konfigurowana przez sterownik na wczesnym etapie inicjalizacji sterownika. Zarówno DxgkDdiMapCpuHostAperture , jak i DxgkDdiUnmapCpuHostAperture powinny działać natychmiast po wyliczeniu segmentu i są używane podczas inicjowania menedżera pamięci wideo, aby zmapować wirtualny adres CPU na katalog strony i tabelę stron procesu stronicowania systemu podczas inicjowania adaptera.

Gdy wymagany jest dostęp procesora do segmentu pamięci, menedżer pamięci wideo rezerwuje strony w przestrzeni apertury hosta procesora i mapuje strony segmentu pamięci za jego pośrednictwem. Przedstawiono to poniżej.

Diagram przedstawiający mapowanie segmentu przysłony hosta procesora CPU w segmencie pamięci procesora GPU.

W konfiguracji połączonego adaptera wyświetlacza rzeczy wyglądają podobnie, z wyjątkiem poniższych elementów.

  • Alokacja domyślna lub LinkMirrored jest zawsze mapowana na procesor GPU0.
  • Alokacje LinkInstanced mają wirtualny zakres adresów AllocationSize*NumberOfGPUInLink skojarzony z nimi, z różnymi częściami alokacji mapowanymi na różne procesory GPU.

Przedstawiono to poniżej: Diagram przedstawiający mapowanie segmentów przysłony hosta CPU dla połączonych konfiguracji kart wyświetlania.