Modelo IoMmu
Esta página descreve o modelo IoMmu introduzido no WDDM 2.0. Confira Isolamento de GPU baseado em IOMMU e Remapeamento de DMA IOMMU para obter atualizações mais recentes de IOMMU.
Visão geral
Uma IOMMU (Unidade de Gerenciamento de Memória Input-Output) é um componente MMU que conecta um barramento de E/S compatível com DMA à memória do sistema. Ele mapeia endereços virtuais visíveis do dispositivo para endereços físicos, tornando-os úteis na virtualização.
No modelo IoMmu do WDDM 2.0, cada processo tem um único espaço de endereço virtual compartilhado entre a CPU e a GPU e é gerenciado pelo gerenciador de memória do sistema operacional.
Para acessar a memória, a GPU envia uma solicitação de dados para uma IOMMU compatível. A solicitação inclui um endereço virtual compartilhado e um PASID ( identificador de espaço de endereço do processo ). O IOMMU executa a tradução de endereço usando a tabela de página compartilhada. Isso é ilustrado no diagrama a seguir.
O driver de modo kernel expressa suporte para o modelo IoMmu definindo os limites DXGK_VIDMMCAPS::IoMmuSupported . Quando esses sinalizadores estiverem definidos, o gerenciador de memória de vídeo registrará automaticamente qualquer processo usando a GPU com a IOMMU e obterá um PASID para esse espaço de endereço do processo. O PASID é passado para o driver durante a criação do dispositivo.
As alocações primárias são mapeadas pelo gerenciador de memória de vídeo para o segmento de abertura antes de serem exibidas, garantindo que o controlador de exibição tenha acesso físico a essas alocações.
No modelo IoMmu, o driver de modo de usuário continua alocando memória de vídeo para a GPU usando o serviço Allocate do gerenciador de memória de vídeo. Isso permite que o driver de modo de usuário:
- Siga o modelo de residência.
- Suporte ao modelo de compartilhamento de recursos do Microsoft DirectX.
- Verifique se as superfícies primárias estão visíveis para o kernel e são mapeadas em abertura antes de serem exibidas.
O primeiro nível de tradução (endereço de recurso de bloco para endereço CPU/GPU compartilhado) é totalmente gerenciado no modo de usuário pelo driver de modo de usuário.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de