IOMMU

Az IOMMU ( angolul  input/output memory management unit ) egy memóriakezelő egység (MMU) az I/O műveletekhez. Csakúgy, mint a hagyományos processzor memóriakezelő egység, amely a processzor által látott virtuális címeket fizikai címekké alakítja, ez az egység a hardvereszköz által látott virtuális címeket fizikai címekké alakítja. Egyes IOMMU-k különböző I/O-korlátok beállítását is lehetővé teszik a rosszul működő eszközök elleni védelem vagy az elkülönítés érdekében, például virtualizáció használatakor (lásd: VT-d ).

Az IOMMU jelenlétében a berendezés nem csak fizikai címeken, hanem logikai (virtuális) címeken is képes DMA műveleteket végrehajtani. Ez a funkció leegyszerűsíti azokat az eszközöket, amelyeknek már nem kell törődniük a DMA-támogatással egy nem folytonos (fizikai címek) memóriaterületen (az ilyen DMA támogatása az illesztőprogramban többletköltséggel jár).

Az IOMMU használatának hátrányai a közvetlen fizikai memóriacímzéshez képest a DMA kérésekben:

Az IOMMU arra szolgál, hogy lehetővé tegye a virtualizált operációs rendszerek számára, hogy közvetlenül működjenek együtt a gazdagép rendszer hardverével. Az ilyen kombinációk IOMMU-ja javítja a biztonságot, a teljesítményt és leegyszerűsíti a virtuális gép megvalósítását. [1] IOMMU példák virtualizációhoz x86/x86_64 platformokon: Intel VT-d és AMD-Vi .

Az IOMMU-t mindig is használták Sun SPARC [2] számítógépeken az SBus buszhoz , és a DEC Alpha [2] számítógépeken is használták a PCI buszhoz .

Az IOMMU egyik változata az AGP GART (Graphics Address Remapping Table, graphic address remapping table [3] ).

A hagyományos PC-kompatibilis számítógépek általában nem rendelkeztek IOMMU-val (kivéve az AGP GART-ot). Ehelyett a 90-es évek vége óta az összes fő perifériát lánc DMA támogatással fejlesztették ki.

A virtuális gépek hipervizorainak széleskörű elterjedése azonban oda vezetett, hogy az IOMMU-támogatást beépítették a "vendég" operációs rendszerekbe, például a Windowsba (a Windows kernel API mindig is támogatta ezt a funkciót, bár ez a támogatás általában nem valósult meg).

Az ilyen támogatás jelenléte a vendég operációs rendszerben az IOMMU-eszköz virtualizálása során nagyban megkönnyíti a komplex eszközök DMA-t használó emulálását a vendég operációs rendszerben, és javítja az ilyen emuláció teljesítményét és biztonságát.

Jegyzetek

  1. QEMU - ArchWiki . Letöltve: 2018. október 16. Az eredetiből archiválva : 2018. október 16..
  2. 1 2 D Bovet. A Linux Kernel, 3. kiadás. ISBN 978-5-94157-957-0 , 13. fejezet, 702. oldal
  3. D Bovet. A Linux Kernel, 3. kiadás. ISBN 978-5-94157-957-0 , 13. fejezet, 698. oldal

Linkek