| dbpedia-owl:abstract
|
- Eine I/O Memory Mapping Unit (I/O-MMU, oder kurz IOMMU) erweitert die I/O-Schnittstelle eines Mikroprozessors um eine Adressübersetzung und Zugriffsschutz bei Direct Memory Access (DMA). Einsatz von I/O-MMUs war lange nur in High-End-Architekturen üblich, z. B. in einem PCI-Interface, welches die Firma Sun für ihre UltraSPARC-Prozessoren entworfen hat. Im Rahmen der Erweiterung der AMD64-Architektur seitens AMD um Verfahren zur Virtualisierung wurde deren I/O-Hub darum ergänzt. Dieser Artikel bezieht sich vor allem auf die IOMMU für AMD64. AMD hat angekündigt, erste Prozessoren mit IOMMU ab 2009, zusammen mit HyperTransport 3.0, auszuliefern. Das Verfahren ist prinzipiell vergleichbar mit einer Memory Management Unit (MMU) in multitaskingfähigen Mikroprozessoren. Der Unterschied liegt darin, dass die IOMMU nicht Teil der Speicheranbindung ist, sondern sich konzeptionell in der Northbridge befindet. Bei Zugriffen per DMA durch periphere Geräte werden Zieladressen im RAM dabei mit Hilfe einer von Systemsoftware kontrollierten, mehrstufigen Seitentabelle in alternative Adressen übersetzt. Die IOMMU ermöglicht folgende Funktionen bei DMA: Effektivere Nutzung von 32-Bit-Geräten in 64-Bit-Umgebungen, insbesondere Zugriff auf Speicherbereiche oberhalb von 4 GiB. Zugriffschutz beim Zugriff von Anwendungen auf bestimmte Geräte Zugriffschutz beim Zugriff von virtuellen Maschinen auf bestimmte Geräte Zugriffsschutz bedeutet, dass ohne IOMMU keine vollständige Isolation von Prozessen oder virtuellen Maschinen mehr gewährleistet werden kann, wenn direkter Zugriff auf DMA-fähige Geräte gewährt werden soll. Da DMA-Transfers praktisch auf beliebige Zieladressen im System zugreifen können, kann schädlicher Programmcode damit u. U. auch Speicherbereiche lesen oder überschreiben, die nicht Teil seines eigenen, virtuellen Adressraumes sind. Ähnliche Funktionen wie die der IOMMU finden sich auch in Prozessoren älterer Bauart. Bisher existiert in vielen Maschinen ein Graphics Aperture Remapping Table (GART) zur Adressübersetzung speziell für Grafikkarten im Accelerated Graphics Port (AGP). Die Secure-Virtual-Machine-Erweiterungen (SVM) in AMD-Prozessoren bieten auch ohne IOMMU rudimentären Zugriffsschutz durch einen Device Exclusion Vector (DEV), um Geräten den Zugang zum RAM vollständig zu verweigern. Mit passender Software-Unterstützung kann die IOMMU sowohl die Funktionen der GART als auch die des DEV ersetzen. IOMMU ist kein wesentlicher Bestandteil von AMD-V. Wenn direkter Zugriff auf I/O-Ressourcen nicht durch einen VMM, sondern unmittelbar durch Gastsysteme auf der VM erfolgen soll, bietet sie gegenüber einem klassischen Trap-and-Simulate-Verfahren jedoch erhebliche Vorteile im Hinblick auf Sicherheit und Leistung. In vielen Anwendungen klassischer Systemvirtualisierung ist ein solcher direkter Zugriff aber nicht erforderlich.
- In computing, an input/output memory management unit (IOMMU) is a memory management unit (MMU) that connects a DMA-capable I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible virtual addresses to physical addresses, the IOMMU takes care of mapping device-visible virtual addresses (also called device addresses or I/O addresses in this context) to physical addresses. Some units also provide memory protection from misbehaving devices. An example IOMMU is the Graphics Address Remapping Table (GART) used by AGP and PCI Express graphics cards. AMD has published a specification for IOMMU technology in the HyperTransport architecture. Intel has published a specification for IOMMU technology as Virtualization Technology for Directed I/O, abbreviated VT-d. Information about the Sun IOMMU has been published in the Device Virtual Memory Access (DVMA) section of the Solaris Developer Connection. The IBM Translation Control Entry (TCE) has been described in a document entitled Logical Partition Security in the IBM eServer pSeries 690. The PCI-SIG has relevant work under the terms I/O Virtualization (IOV) and Address Translation Services (ATS). I/O virtualization is not performed by the CPU, but instead by the chipset.
- IOMMU (Input/Output Memory Management Unit、IOMMU) とはDMA可能なI/Oバスと主記憶装置を接続するメモリ管理ユニット (MMU) である。MMU がCPUに見える仮想アドレスを物理アドレスに変換するように、IOMMU は周辺機器から見える仮想アドレス(デバイスアドレスとかI/Oアドレスと呼ぶ)を物理アドレスに変換する。周辺機器の誤動作からメモリを守るため、メモリ保護機能も提供する。
- IOMMU (англ. input/output memory management unit) — блок управления памятью (MMU) для операций ввода/вывода. Так же как традиционный, процессорный блок управления памятью, который переводит виртуальные адреса, видимые процессором в физические, этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса. Некоторые IOMMU также позволяют задавать различные ограничения операций ввода-вывода для защиты от неправильно работающих устройств или для изоляции, например, при использовании виртуализации. При наличии IOMMU у аппаратуры имеется возможность проводить DMA-операции не только по физическим адресам, но и по логическим (виртуальным) (в терминологии Windows Driver Kit используется термин "логический" или же "шинный", ибо данные адреса не имеют ничего общего с виртуальными адресами, которые есть значения указателей в программном коде). Такая возможность упрощает устройства, которым больше не нужно заботиться о поддержке DMA по разрывному (с точки зрения физических адресов) региону памяти (поддержка такого DMA в драйвере влечет за собой накладные расходы). Недостатками использования IOMMU по сравнению с прямой физической адресацией памяти в DMA запросах являются: Некоторое ухудшение производительности из-за необходимости транслирования адресов и расходов на управление, например, проход по иерархии таблицы страниц. Дополнительное потребление памяти для хранения таблиц отображения. Может быть уменьшен при использовании основным таблиц трансляции адресов процессора. IOMMU используется для прямой работы виртуализованных операционных систем с оборудованием основной системы. Наличие IOMMU для таких комбинаций позволяет повысить безопасность, производительность и упростить реализацию виртуальной машины. IOMMU всегда использовался на компьютерах Sun SPARC для шины SBus, также он использовался на компьютерах DEC Alpha для шины PCI. Разновидностью IOMMU является AGP GART. Как правило, обычные PC-совместимые компьютеры не имели IOMMU (кроме AGP GART). Вместо этого все главнейшее периферийное оборудование где-то с конца 90х годов разрабатывалось с поддержкой chain DMA. Тем не менее, широкое распространение гипервизоров виртуальных машин привело к включению поддержки IOMMU в "гостевые" ОС, такие, как Windows (API ядра Windows всегда поддерживал данную функцию, хотя обычно данная поддержка не реализовывалась). Наличие такой поддержки в гостевой ОС при виртуализации самого устройства IOMMU сильно облегчает задачу эмуляции в гостевой ОС сложных устройств, использующих DMA, и повышает производительность и безопасность такой эмуляции.
|
| rdfs:comment
|
- IOMMU (Input/Output Memory Management Unit、IOMMU) とはDMA可能なI/Oバスと主記憶装置を接続するメモリ管理ユニット (MMU) である。MMU がCPUに見える仮想アドレスを物理アドレスに変換するように、IOMMU は周辺機器から見える仮想アドレス(デバイスアドレスとかI/Oアドレスと呼ぶ)を物理アドレスに変換する。周辺機器の誤動作からメモリを守るため、メモリ保護機能も提供する。
- Eine I/O Memory Mapping Unit (I/O-MMU, oder kurz IOMMU) erweitert die I/O-Schnittstelle eines Mikroprozessors um eine Adressübersetzung und Zugriffsschutz bei Direct Memory Access (DMA). Einsatz von I/O-MMUs war lange nur in High-End-Architekturen üblich, z. B. in einem PCI-Interface, welches die Firma Sun für ihre UltraSPARC-Prozessoren entworfen hat. Im Rahmen der Erweiterung der AMD64-Architektur seitens AMD um Verfahren zur Virtualisierung wurde deren I/O-Hub darum ergänzt.
- In computing, an input/output memory management unit (IOMMU) is a memory management unit (MMU) that connects a DMA-capable I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible virtual addresses to physical addresses, the IOMMU takes care of mapping device-visible virtual addresses (also called device addresses or I/O addresses in this context) to physical addresses. Some units also provide memory protection from misbehaving devices.
- IOMMU (англ. input/output memory management unit) — блок управления памятью (MMU) для операций ввода/вывода. Так же как традиционный, процессорный блок управления памятью, который переводит виртуальные адреса, видимые процессором в физические, этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса.
|