輸入/輸出記憶體管理單元
IOMMU是「Input/Output Memory Management Unit」的縮寫,即輸入/輸出記憶體管理單元。
IOMMU是一種硬體或軟體機制,用於管理I/O設備對系統記憶體的訪問。它的主要功能是將設備(如網卡、顯示卡等)可見的虛擬地址轉換成物理地址,從而允許這些設備直接訪問系統記憶體。這樣做不僅提高了系統性能和效率,還增強了系統的安全性。通過提供虛擬記憶體層,IOMMU可以防止設備錯誤地或惡意地訪問記憶體,保護系統免受數據損壞或潛在攻擊。
此外,IOMMU特別有助於在64位系統上支持32位設備,因為它可以在不使用效率較低的「bounce buffers」的情況下,允許設備訪問高端記憶體。在設備驅動進行DMA(直接記憶體訪問)綁定時,系統返回給驅動的不再是物理地址,而是核心空間的地址(在某些系統中稱為「cookie」),這個地址隨後由IOMMU轉換為物理地址。
IOMMU最初源於SUN公司的SPARC平台,但現在Intel和AMD平台也支持這一技術。