다음을 통해 공유


CPU 호스트 조리개

크기 조정 가능한 BAR를 지원하지 않거나 프레임 버퍼 BAR 크기를 조정하지 못하는 32비트 OS 불연속 GPU(그래픽 처리 장치)의 경우 WDDM(Windows Display Driver Model) v2는 개별 GPU VRAM에 효율적으로 액세스할 수 있는 대체 메커니즘을 제공합니다. 프로그래밍 가능한 BAR 주소 공간을 지원하는 GPU의 경우 해당 기능을 추상화하기 위해 WDDM v2에 새로운 CPU 호스트 조리개 기능이 도입되었습니다.

CPU 호스트 조리개를 노출할 때 커널 모드 드라이버는 CPU 호스트 조리개를 지원하는 모든 세그먼트에 대해 새로운 DXGK_CPUHOSTAPERTURE 캡 구조를 채웁니다. 이는 CPU 호스트 조리개 크기를 정의하며, 이를 통해 드라이버는 내부 용도로 일부 BAR를 예약할 수 있습니다. 페이지 크기는 메모리 세그먼트의 GPU 페이지와 동일합니다.

그런 다음 커널 모드 드라이버는 BAR 주소 공간을 관리하기 위해 두 개의 새로운 디바이스 드라이버 인터페이스(DDI), 특히 DxgkDdiMapCpuHostApertureDxgkDdiUnmapCpuHostAperture를 노출합니다.

CPU 호스트 조리개 뒤에 있는 페이지 테이블의 메모리는 드라이버에서 관리하며 드라이버 초기화 중 초기에 설치됩니다. DxgkDdiMapCpuHostApertureDxgkDdiUnmapCpuHostAperture는 모두 세그먼트 열거 직후에 작동할 것으로 예상되며, 비디오 메모리 관리자 초기화 중에 CPU 가상 주소를 어댑터 초기화 중에 시스템 페이징 프로세스의 페이지 디렉터리 및 페이지 테이블에 매핑하는 데 사용됩니다.

CPU가 메모리 세그먼트에 접근해야 할 때, 비디오 메모리 관리자는 CPU 호스트 어퍼처에서 페이지를 예약하고, 그를 통해 메모리 세그먼트 페이지를 매핑합니다. 아래에 설명되어 있습니다.

GPU 메모리 세그먼트의 CPU 호스트 조리개 세그먼트 매핑을 보여 주는 다이어그램.

연결된 디스플레이 어댑터 구성에서는 다음을 제외하고 유사하게 표시됩니다.

  • 기본 또는 LinkMirrored 할당은 항상 GPU0에 매핑됩니다.
  • LinkInstanced 할당은 할당의 다양한 부분이 다른 GPU에 매핑되는 AllocationSize*NumberOfGPUInLink와 관련된 가상 주소 범위를 가지고 있습니다.

다음은 연결된 디스플레이 어댑터 구성에 대한 CPU 호스트 조리개 세그먼트 매핑을 보여 주는 다이어그램입니다.