Partager via


Ouverture du processeur hôte

Pour les unités de traitement graphique discrètes des systèmes d’exploitation 32 bits, qui ne prennent pas en charge la barre redimensionnable ou lorsque le redimensionnement de la barre de mémoire tampon d’images échoue, le modèle de pilote d’affichage Windows (WDDM) v2 offre un autre mécanisme par lequel la VRAM d'un GPU discret peut être efficacement accessible. Pour les GPU, qui prennent en charge un espace d’adressage BAR programmable, une nouvelle fonctionnalité Cpu Host Aperture est introduite dans WDDM v2 pour abstraction de cette fonctionnalité.

Lors de l’exposition d’une aperture hôte de CPU, le pilote en mode noyau remplit une nouvelle structure caps de DXGK_CPUHOSTAPERTURE pour chaque segment prenant en charge une aperture hôte de CPU. Cela définit la taille de la fenêtre hôte du CPU, ce qui permet au pilote de réserver une partie du BAR à des fins internes. La taille de la page est identique aux pages GPU du segment de mémoire.

Le pilote en mode noyau expose ensuite deux nouvelles interfaces de pilote de périphérique (DDIs) pour gérer l’espace d’adressage BAR, en particulier DxgkDdiMapCpuHostAperture et DxgkDdiUnmapCpuHostAperture.

La mémoire de la table de pages derrière l'aperture de l'hôte CPU est gérée par le pilote et configurée tôt lors de l'initialisation du pilote. DxgkDdiMapCpuHostAperture et DxgkDdiUnmapCpuHostAperture sont censés être opérationnels immédiatement après l’énumération de segment et sont utilisés pendant l’initialisation du gestionnaire de mémoire vidéo pour mapper l’adresse virtuelle de l’UC au répertoire de pages et à la table de pages du processus de pagination système lors de l’initialisation de l’adaptateur.

Lorsque l'accès du processeur à un segment de mémoire est requis, le gestionnaire de mémoire vidéo réserve des pages dans la fenêtre d'hôte du processeur et mappe les pages du segment de mémoire à travers celle-ci. Ceci est illustré ci-dessous.

Diagramme montrant le mappage de segments d’ouverture de l’hôte processeur dans un segment de mémoire GPU.

Dans la configuration de l’adaptateur d’affichage lié, les éléments ressemblent, à l’exception des éléments suivants.

  • L’allocation par défaut ou LinkMirrored est toujours mappée au GPU0.
  • L’allocation LinkInstanced a une plage d’adresses virtuelles d’AllocationSize*NumberOfGPUInLink associée à différentes parties de l’allocation mappée à différents GPU.

Ceci est illustré ci-dessous : diagramme montrant le mappage de segments d’ouverture de l’hôte du processeur pour les configurations d’adaptateurs d’affichage liées.