异构硬件如何进行内存的共享?

phrase-20230109141609

例如 CPU 和 GPU 共享内存这样的场景下,CPU 和 GPU 都是有 MMU 的设备,那么可以使用虚拟地址。

  • 做系统固件的工程师,会维护一张表划分物理地址空间。例如,将 PCIE 上的 VRAM 空间映射到的物理地址空间区域是 IOMEM 空间。
  • 做内核驱动的工程师,驱动建立页表将物理地址空间映射为虚拟地址。例如,对于共享内存(CPU和GPU都能访问的地址空间),假设 CPU 和 GPU 用各自的页表,如果页表内容是 GPU 地址,那么这个页表是 GPU 的页表; 如果页表内容是 CPU 地址,那么这个页表是 CPU 的页表。
  • 做设备固件的工程师,启动阶段初始化 MMU 使得 GPU 使用虚拟地址。例如 GPU 设备的固件,设置 MMU 对应 GPU域 的页表根地址寄存器,这样 GPU 就能通过页表访问 GPU域的地址空间了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hinzer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值