CPU host aperture(MSDN翻译)

CPU host aperture

对于32位的独立GPU,其并不支持大小可变的BAR,当改变Frame Buffer BAR的大小时会失败。WDDM v2将提供一种替代机制,通过这种机制独立GPU的VRAM也能够被有效的访问。而对于支持可编程BAR地址空间的GPU,一种新的CPU Host Aperture功能被引入到WDDM v2中,进一步的抽象了这个特性。

暴露一个CPU host aperture时,KMD给每一个段填充新的DXGK_CPUHOSTAPERTURE 能力结构体用来支持CPU host aperture,这个结构体定义了CPU host aperture的大小,这点允许驱动保留一些BAR用作内部使用。页面大小和内存Segment的GPU页面大小相同。

KMD暴露了两个新的DDI接口来管理BAR的地址空间, DxgkDdiMapCpuHostAperture 和 DxgkDdiUnmapCpuHostAperture

CPU host aperture背后的页面内存被驱动管理以及在驱动初始化的初期阶段建立。 DxgkDdiMapCpuHostAperture 和 DxgkDdiUnmapCpuHostAperture 这两个接口被期望在枚举段之后马上就能执行,并且在VMM初始化期间被用于将CPU虚拟地址映射到页面目录以及在适配器初始化期间映射CPU虚拟地址到系统换页进程页表。

当CPU需要访问内存段时,VMM会预留在CPU host aperture中的页面,并且同通过CPU host aperture映射内存段。这个过程如下图所示:

 

cpu host aperture segment mapping

在LDA的配置下,这个结构除了下面几点不同外,其他与上面介绍的基本类似。

  • Default 或 LinkMirrored 资源永远都被映射到GPU0上。
  • linkInstanced 资源拥有的虚拟地址的范围是AllocationSize*NumberOfGPUInLink。这段地址关联到资源的不同的部分,并且被映射到不同的GPU上。

如下所示:

cpu host aperture segment mapping for linked display adapter configuration

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值