1 什么是SMMU(IOMMU)
1.1什么是SMMU(IOMMU)
- MMU
MMU(Memory Management Unit):处理CPU访问内存的计算机硬件,实现CPU虚拟地址到物理地址的映射 - SMMU
SMMU(System Memory Management Unit):处理IO Device DMA访问内存的计算机硬件,实现dma addr到物理地址的映射
SMMU&DMA
DMA: IO设备不通过CPU而直接与内存交换数据的接口技术
DMA不能像CPU一样通过MMU操作虚拟地址。
DMA可以访问两种形式的内存:
1.预留连续的物理地址供DMA使用(浪费内存)
2.通过SMMU将buffer里不连续的物理地址和dma addr映射,IO设备使用dma addr就可以实现IO设备DMA访问不连续物理内存的功能
1.2 SMMU如何工作
IOMMU 将设备可见的虚拟地址 (IOVA) 映射到物理内存地址。不同的硬件体系结构有不同的 IOMMU 实现,ARM 平台的 IOMMU 是 SMMU (System Memory Management)。
2条通路有什么区别?