Device的IOMMU類似於CPU的MMU。
對IOMMU的支持主要有兩個原因,一個是對老設備的支持,另外一個是對scatter/gather的支持。
要在64位系統上支持32位設備,比如說網卡,如果沒有IOMMU,就需要在物理記憶體底端,也就是32位設備能夠訪問到的地方設定一個叫做"bounce buffers"的東西,如果設備要訪問高端記憶體,作業系統就要在高端記憶體和"bounce buffers"之間做一個拷貝。帶來的性能影響顯而易見。如果有了IOMMU,這個問題就迎刃而解了。在設備驅動做DMA邦定的時候,系統返回給驅動的不再是物理地址,而是核心空間的某個地址(有的書上叫做匯流排地址),傳輸的時候,這個核心空間地址會經由IOMMU單元,IOMMU將這個地址轉換為物理地址。
scatter/gather並不會帶來性能上的好處,但是會簡化設備驅動程式。例如網卡驅動在傳送包的時候,DMA邦定後,系統可能會返回給設備驅動多個不連續的物理地址,Solaris叫做cookie。這樣的話,每一個cookie都需要占用一個傳送描述符。如果系統支持IOMMU的話,系統只會返回給設備驅動一個cookie。當然了有專家提醒,因為這個原因,如果設備驅動是在沒有IOMMU的情況下開發的,在支持IOMMU的系統上是沒有問題的。但反之不然。
IOMMU除了上述功能外還加入了對虛擬化的支持。簡單來說有兩個功能,一個DMA Remapping, 另外一個是Interrupt Remapping。
IOMMU在源於SUN公司的SPARC平台,現在Intel平台及AMD平台也支持這一技術。
相關詞條
-
虛擬化技術
原理虛擬機是對真實計算環境的抽象和模擬,VMM需要為每個虛擬機分配一套數據結構來管理它們狀態,包括虛擬處理器的全套暫存器,物理內...
原理 挑戰 遷移技術 認證 物理環境 -
VT
VT是及物動詞,後面直接加名詞,如play basketball,與之相對還有VI是不及物動詞後面不能直接跟名詞,需要加一個to...
VT業務 心動過速 挑戰信息 及物動詞 概括 -
64位
與設備相符的記憶體限制,或者使用 IOMMU。超越直至 2007年,64位...
架構影響 優缺點 數據模型 超越 圖像 -
酷睿微架構
for ISA/PCI 設備 (IOMMU), 因此一個單執行緒無法簡單地訪問大於...
Yonah 技術規格 優缺點 運作速度 主條目 -
Qubes系統
Linux的輕量級虛擬機)中,彼此隔離。而聯網代碼使用 IOMMU...
-
Linux核心精髓
客戶端作業系統的性能166HACK #33 使用IOMMU提高客戶端作業系統運行速度173HACK #34 使用IOMMU+SR-IOV提高...
內容介紹 作者介紹 作品目錄 -
硬體虛擬化
Vanderpool)IOMMU 由AMD和Intel共同開發。Power...
簡介 虛擬化的原因 完全虛擬化 硬體輔助虛擬化 部分虛擬化