Remove ads
来自维基百科,自由的百科全书
在計算機領域,輸入輸出內存管理單元(英語:input–output memory management unit,縮寫IOMMU)是一種內存管理單元(MMU),它將具有直接記憶體存取能力(可以DMA)的I/O總線連接至主內存。如傳統的MMU(將CPU可見的虛擬地址轉換為物理地址)一樣,IOMMU將設備可見的虛擬地址(在此上下文中也稱設備地址或I/O地址)映射到物理地址。部分單元還提供內存保護功能,防止故障或惡意的設備。
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
IOMMU的一個例子是Intel架構和AMD計算機上使用的AGP和PCI Express顯卡所使用的圖形地址映射表(GART)。
在x86架構將CPU與平台路徑控制器(PCH)的北橋和南橋拆分前,I/O虛擬化不是由CPU而是由芯片組執行。[1][2]
與內存的直接物理尋址相比,擁有IOMMU的優勢包括[來源請求]:
對於端口I/O的地址空間與內存的內存地址空間不同的系統架構,CPU與設備通過I/O端口通信時不使用。如果端口I/O與內存的地址空間被映射到一個合適的空間,則可以用IOMMU轉換I/O訪問。
與內存的直接物理尋址相比,IOMMU的缺點包括:[4]
當操作系統在虛擬機器內運行時(包括使用半虛擬化的系統,例如Xen),其通常不知道它要訪問的內存的主機物理地址。這使其難以直接訪問計算機硬件,因為如果客戶機系統嘗試用客戶機的物理地址進行直接記憶體存取(DMA)來吩咐硬件,其可能損壞內存數據,因為硬件不知道給定虛擬機客戶機物理地址與主機物理地址之間的映射關係。而由管理程序或主機操作系統介入I/O操作來應用翻譯則可以避免損壞,但會增加此I/O操作的延遲。
IOMMU可以依靠將客戶機物理地址映射到主機物理地址的相同或兼容轉換表重映射硬件訪問地址,從而解決延遲問題。[5]
Intel和AMD的IOMMU虛擬化需要晶片組和CPU支援IOMMU虛擬化。Intel的IOMMU虛擬化稱為VT-d。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.