概述

IOMMU(Input-output memory management unit)

输入输出管理单元(IOMMU)是一个内存管理单元(MMU),和MMU作用差不多,区别在于IOMMU管理的对象是设备,而MMU管理的对象是CPU

优势

和直接物理寻址内存(DMA)相比,优势在于:

  1. 可以分配大块内存,而无需在物理内存中连续,得益于虚拟地址转换到物理地址的特性。
  2. 支持访问更大的内存,和多级页表类似,支持访问更大范围内存。
  3. 内存受到保护,以防止恶意设备试图进行直接内存访问(DMA)攻击和故障设备试图进行错误的内存传输,因为设备无法读入或写入未明确分配(映射)给它的内存。

缺点

  1. 翻译和管理成本
  2. 翻译页额外消耗内存

参考资料

https://en.wikipedia.org/wiki/Input–output_memory_management_unit

https://blog.csdn.net/liyucheng987/article/details/109303949