是否可以部分虚拟化物理地址空间?

是否可以部分虚拟化物理地址空间?

我目前正在研究包含 FPGA 的系统。我们有各种IP核那些支持AXI总线。与 PL 的 IP 核通信(可编程逻辑),我们需要将它们映射到PS的地址空间上(处理系统)。例如,对于广泛使用的Zynq PS地址空间如下(UG585 - 第 4.1 节:地址映射)

  • 0x0000_0000 至 0x7FFF_FFFF:映射到物理内存。外部 DDR 或片上存储器
  • 0x8000_0000 至 0xBFFF_FFFF:映射到上面解释的 PL
  • 0xE000_0000 至 0xFFFF_FFFF:芯片上的各种其他器件

正如你所看到的,只有前1GB的地址空间被保留给物理内存,其余的被PL或PS中的设备占用。因此,如果可能的话,虚拟化范围可以仅应用于前 1GB,以便通过跳过 MMU 更快地访问芯片上的设备。

我知道通过进行这样的修改,我们允许任何类型的进程访问系统的物理设备,而无需对其权限进行任何控制。所以,问题是

  • 是否可以部分虚拟化物理地址空间?
  • 如果可能的话,这样做是否合理?

相关内容