
IOMMU:input/output memory management unit。
Device的IOMMU类似于CPU的MMU。
- 中文名 IOMMU
- 外文名 input/output memory management unit
- 类似于 CPU的MMU
- 原因 一个是对老设备的支持,
简介
对I来自OMMU的支持主360百科要有两个原因,一个是对想吸触易制优转掌顺演得老设备的支持,另外一个是对scatter/gather的支持。
配置要求
要在64位系统上支持32位设备,比如说网卡,如果没有IOMMU,就需要在物理内存底端,也就是32位设备能够访问到的紧常阶感矿地方设置一个叫做"bounce buffers"的东西,如果设备要访问高端内存,操作系统就要在高端内存台么片迅兰雨粉章映入液和"bounce buffers"之间做一个拷贝。带来的性能影响显而易见。如果有了IOMMU,这个问题就迎刃而解了。在设备驱动做DMA绑定的时候,系统返回给驱动的不再是物理地址,而是内核空间的某个地址(有的离开建封书上叫做总线地址),传输的时候,这个内核空间地址会经由IOMMU单元,IOMMU将这个地址转换为物理地址。
scatter/gather并不会带来性能上的好处,但是会简化余收换厚站设备驱动程序。例如网卡驱动在发送包的时候,DMA欢离呢皇令石剧金绑定后,系统可能会返回给设备驱围她动多个不连续的物理地址,S基口核留轴粒南olaris叫做cookie。这样的话,每一个cookie都需要占用一个发送描述符。如果系钟冷湖文钢伤统支持IOMMU的话,系统只会返回给设备驱动一个cookie。当然了有专家提醒,因为这个原因,如果设备驱动是在没有IOMMU的情况下开发的,送在支持IOMMU的系统上是没有消告问题的。但反之不然。
IOMMU除了上述功能外还加入了对虚拟化的支持。简单来说有两个功能,一个DMA R者远言后院青味如emapping, 另外督一个是Interrupt Remapping。
IOMMU在源非伯鸡类半已重刻就兵益于SUN公司的SPARC平台,现在In结罗思客友若婷内国间离tel平台及AMD平台也支持这一技术。