Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve o modelo gpuMmu , que foi introduzido no Windows 10 (WDDM 2.0).
No modelo gpuMmu, a GPU tem sua própria unidade de gerenciamento de memória (MMU) que converte endereços virtuais de GPU por processo em endereços físicos.
Cada processo tem espaços de endereço virtuais de CPU e GPU separados que usam tabelas de página distintas. O VidMm (gerenciador de memória de vídeo) gerencia o espaço de endereço virtual da GPU de todos os processos. O VidMm também é responsável por alocar, expandir, atualizar, garantir a permanência e liberar tabelas de página. O formato de hardware das tabelas de página usadas pelo MMU de GPU é desconhecido para o VidMm e é abstraído por meio de DDIs (interfaces de driver de dispositivo). A abstração dá suporte a uma tradução em nível multinível, incluindo uma tabela de página de tamanho fixo e uma tabela de página raiz redimensionável.
Embora o VidMm seja responsável por gerenciar o espaço de endereço virtual da GPU e suas tabelas de páginas subjacentes, o VidMm não atribui automaticamente endereços virtuais de GPU a alocações. Essa responsabilidade recai sobre o driver de modo de usuário (UMD).
O VidMm oferece dois serviços principais para o UMD:
Alocação e desalocação de memória. O UMD pode alocar memória de vídeo por meio do retorno de chamada Allocate existente e liberar essa memória por meio do retorno de chamada Desalocar existente. Alocar retorna um identificador para uma alocação de VidMm para o UMD. Um mecanismo de GPU pode operar nesse identificador. Essa alocação refere-se especificamente à memória de vídeo física, que um mecanismo de GPU pode acessar e processar por meio de uma lista de alocação.
Gerenciamento de espaço de endereço virtual de GPU. Para mecanismos em execução no modo virtual, um endereço virtual de GPU precisa ser atribuído explicitamente a uma alocação antes que ele possa ser acessado virtualmente. Para essa finalidade, o VidMm oferece os serviços UMD para reservar ou liberar endereços virtuais de GPU e mapear intervalos de alocação específicos para o espaço de endereço virtual da GPU de um processo. Esses serviços são flexíveis e permitem o controle granular da UMD sobre o espaço de endereço virtual de GPU do processo. O UMD pode decidir atribuir um endereço virtual de GPU específico a uma alocação ou permitir que o VidMm escolha automaticamente um disponível, possivelmente especificando algumas restrições de endereço virtual de GPU mínimas e máximas. Uma única alocação pode ter vários mapeamentos de endereço virtual de GPU associados a ela e os serviços são fornecidos ao UMD para implementar o contrato de Tile Resource.
Da mesma forma, em uma configuração de adaptador de exibição vinculada, o UMD pode mapear explicitamente endereços virtuais de GPU para instâncias de alocação específicas. Para cada mapeamento, a UMD pode escolher se o mapeamento deve ser para ela mesma ou para uma GPU peer específica. Nesse modelo, os endereços virtuais de CPU e GPU atribuídos a uma alocação são independentes. Uma UMD pode decidir mantê-los iguais em ambos os espaços de endereço ou mantê-los independentes.
Os endereços virtuais de GPU são gerenciados logicamente em uma granularidade de página fixa de 4 KB por meio da interface DDI. Os endereços virtuais de GPU podem referenciar alocações residentes em um segmento de memória ou na memória do sistema. A memória do sistema é gerenciada com granularidade física de 4 KB, enquanto os segmentos de memória são gerenciados a 4 KB ou 64 KB à escolha do driver. Todas as alocações VidMm são alinhadas e dimensionadas para serem um múltiplo do tamanho da página escolhido pelo driver.
O acesso a um intervalo inválido de endereços virtuais de GPU resulta em uma violação de acesso e encerramento do contexto e/ou dispositivo que causou a falha de acesso. Para se recuperar de tal falha, o VidMm iniciará uma redefinição do mecanismo que, se não tiver êxito, será promovida a uma recuperação de detecção de tempo limite (TDR) por todo o adaptador.
O modelo gpuMmu é ilustrado no seguinte diagrama: