AMD IOMMU規格 (一)
AMD IOMMU概述
IOMMU是Input/Output Memory Management Unit的縮寫,未來將針對AMD IOMMU的規格技術持續進行功能與架構的介紹。
I/O記憶體管理單元是透過增加對周邊裝置DMA傳輸的地址轉換與系統記憶體存取保護的支援來延展對AMD64系統架構的支援。
IOMMU還有助於過濾和重新映射來自周邊設備的中斷要求。
IOMMU實現了幾個重要系統層級的增強功能:
• 傳統32位元I/O裝置得以在64位元的系統上實現。
• 使用者層級的應用程式得以更安全的存取指定I/O裝置。
• 虛擬機訪客操作系統得以更安全的存取指定I/O裝置。
IOMMU可用於:
• 替換現有圖形位址重新映射表(GART)的機制。
• 為不支援64位元尋址的I/O裝置重新映射超過4GB以上的位址。
• 允許在虛擬機上運行的訪客操作系統對裝置進行直接分配的控制。
• 提供裝置對系統記憶體存取頁面的粒度控制。
• 允許裝置直接存取使用者空間I/O。
• 允許將中斷直接傳遞到訪客端操作系統。
• 過濾和重新映射中ㄇ斷要求。
• 與選定的週邊裝置共享虛擬位址空間。
• 隔離化/沙盒化裝置,以防止惡意DMA存取記憶體中安全性敏感的作業系統與用戶資料。
• 對資料存取實行作業系統安全策略。
IOMMU可以被認為是AMD64架構中所包含的兩個設備的概括:圖形位址重新映射表(GART)與裝置例外向量(Device Exclusion Vector)。
GART提供I/O裝置存取小範圍系統實體位址的地址轉換,而裝置例外向量(DEV)提供有限的I/O裝置分類與記憶體保護。
透過適當的軟體支援,IOMMU可以模擬GART或DEV的功能。 IOMMU可選地提供重新映射周邊中斷向量的功能。