IOMMU

IOMMU

IOMMU在 計算 輸入-輸出記憶體管理單元 (IOMMU)是a 記憶體管理單元 (MMU)連線a DMA-可勝任的輸入/輸出 公共汽車 對 主存儲器. 象傳統MMU,那翻譯 CPU-可看見 虛擬地址 物理地址IOMMU照料映射設備可看見的虛擬地址(也叫 設備地址 或 輸入/輸出地址 在這上下文)到物理地址。 有些單位也提供 記憶體保護 從行為不端的設備。例子IOMMU是 圖表地址Remapping表 (GART)使用 AGP 並且 PCI明確 圖形卡。

IOMMU:input/output memory management unit。
Device的IOMMU類似於CPU的MMU。
IOMMU/MMU

IOMMU/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平台也支持這一技術。

相關詞條

相關搜尋

熱門詞條

聯絡我們