CPU 호스트 조리개
크기 조정 가능한 BAR를 지원하지 않거나 프레임 버퍼 BAR 크기를 조정하지 못하는 32비트 OS GPU(불연속 그래픽 처리 장치)의 경우 WDDM(Windows 디스플레이 드라이버 모델) v2는 불연속 GPU VRAM에 효율적으로 액세스할 수 있는 대체 메커니즘을 제공합니다. 프로그래밍 가능한 BAR 주소 공간을 지원하는 GPU의 경우 해당 기능을 추상화하기 위해 WDDM v2에 새로운 CPU 호스트 조리개 기능이 도입되었습니다.
CPU 호스트 조리개를 노출할 때 커널 모드 드라이버는 CPU 호스트 조리개를 지원하는 모든 세그먼트에 대해 새로운 DXGK_CPUHOSTAPERTURE 대문자 구조를 채웁니다. 이는 CPU 호스트 조리개의 크기를 정의합니다. 이를 통해 드라이버는 내부 목적으로 일부 BAR를 예약할 수 있습니다. 페이지 크기는 메모리 세그먼트의 GPU 페이지와 동일합니다.
그런 다음 커널 모드 드라이버는 BAR 주소 공간, 특히 DxgkDdiMapCpuHostAperture 및 DxgkDdiUnmapCpuHostAperture 를 관리하기 위해 두 개의 새로운 DDI(디바이스 드라이버 인터페이스)를 노출합니다.
CPU 호스트 조리개 뒤에 있는 페이지 테이블의 메모리는 드라이버에서 관리하고 드라이버 초기화 중에 설치합니다. DxgkDdiMapCpuHostAperture와 DxgkDdiUnmapCpuHostAperture는 모두 세그먼트 열거 후 즉시 작동해야 하며 비디오 메모리 관리자 초기화 중에 CPU 가상 주소를 어댑터 초기화 중에 시스템 페이징 프로세스의 페이지 디렉터리 및 페이지 테이블에 매핑하는 데 사용됩니다.
메모리 세그먼트에 대한 CPU 액세스가 필요한 경우 비디오 메모리 관리자는 CPU 호스트 조리개에서 페이지를 예약하고 이를 통해 메모리 세그먼트 페이지를 매핑합니다. 이 내용은 아래에 나와 있습니다.
연결된 디스플레이 어댑터 구성에서는 다음을 제외하고 유사하게 표시됩니다.
- 기본 또는 LinkMirrored 할당은 항상 GPU0에 매핑됩니다.
- LinkInstanced 할당에는 할당의 다양한 부분과 연결된 AllocationSize*NumberOfGPUInLink 의 가상 주소 범위가 서로 다른 GPU에 매핑됩니다.
다음은