IOMMU

IOMMU

IOMMU (англ. input/output memory management unit) — блок управления памятью (MMU) для операций ввода/вывода. Так же как традиционный, процессорный блок управления памятью, который переводит виртуальные адреса, видимые процессором в физические, этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса. Некоторые IOMMU также позволяют задавать различные ограничения операций ввода-вывода для защиты от неправильно работающих устройств или для изоляции, например, при использовании виртуализации (см. VT-d).

MMU and IOMMU.svg

При наличии IOMMU у аппаратуры имеется возможность проводить DMA-операции не только по физическим адресам, но и по логическим (виртуальным). Такая возможность упрощает устройства, которым больше не нужно заботиться о поддержке DMA по разрывному (с точки зрения физических адресов) региону памяти (поддержка такого DMA в драйвере влечет за собой накладные расходы).

Недостатками использования IOMMU по сравнению с прямой физической адресацией памяти в DMA запросах являются:

  • Некоторое ухудшение производительности из-за необходимости транслирования адресов и расходов на управление, например, проход по иерархии таблицы страниц.
  • Дополнительное потребление памяти для хранения таблиц отображения. Может быть уменьшен при использовании основным таблиц трансляции адресов процессора.

IOMMU используется для прямой работы виртуализованных операционных систем с оборудованием основной системы. Наличие IOMMU для таких комбинаций позволяет повысить безопасность, производительность и упростить реализацию виртуальной машины.

IOMMU всегда использовался на компьютерах Sun SPARC[1] для шины SBus, также он использовался на компьютерах DEC Alpha[1] для шины PCI.

Разновидностью IOMMU является AGP GART (Graphics Address Remapping Table, таблица преобразований графических адресов[2]).

Как правило, обычные PC-совместимые компьютеры не имели IOMMU (кроме AGP GART). Вместо этого все главнейшее периферийное оборудование где-то с конца 90х годов разрабатывалось с поддержкой chain DMA.

Тем не менее, широкое распространение гипервизоров виртуальных машин привело к включению поддержки IOMMU в "гостевые" ОС, такие, как Windows (API ядра Windows всегда поддерживал данную функцию, хотя обычно данная поддержка не реализовывалась).

Наличие такой поддержки в гостевой ОС при виртуализации самого устройства IOMMU сильно облегчает задачу эмуляции в гостевой ОС сложных устройств, использующих DMA, и повышает производительность и безопасность такой эмуляции.

Примечания

  1. 1 2 Д Бовет. Ядро Linux, 3-е издание. ISBN 978-5-94157-957-0, глава 13, стр. 702
  2. Д Бовет. Ядро Linux, 3-е издание. ISBN 978-5-94157-957-0, глава 13, стр. 698

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "IOMMU" в других словарях:

  • IOMMU — Comparison of the I/O memory management unit (IOMMU) to the memory management unit (MMU). 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… …   Wikipedia

  • IOMMU — 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… …   Deutsch Wikipedia

  • IOMMU — Input Output Memory Management Unit …   Acronyms

  • IOMMU — Input Output Memory Management Unit …   Acronyms von A bis Z

  • HP 9000 — is the name for a line of workstation and server computer systems produced by the Hewlett Packard (HP) company. The HP 9000 brand was introduced in 1984 to encompass several existing technical workstations models previously launched in the early… …   Wikipedia

  • Прямой доступ к памяти — (англ. Direct Memory Access, DMA)  режим обмена данными между устройствами или же между устройством и основной памятью (RAM) без участия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные не… …   Википедия

  • Advanced Micro Devices — Infobox Company company name=Advanced Micro Devices, Inc. company logo= company type=Public (nyse|AMD) foundation=1969 founder=W. Jerry Sanders III Edwin J. Turney Additional co founders location city=Sunnyvale, California, US key people=Derrick… …   Wikipedia

  • Comparison of AMD chipsets — Amd chipsets logo This is a comparison of chipsets sold under the brand AMD, manufactured before May 2004 by the company itself, before the adoption of open platform approach as well as chipsets manufactured by ATI Technologies (ATI) after July… …   Wikipedia

  • AMD 800 chipset series — AMD chipsets Table name= AMD 800 chipset series img w= Caption= Codename= CPU= future Opteron, Phenom, Athlon X2 and Turion Ultra processors Socket= Socket F+, Socket G34 (server) Socket AM3 (desktop) Socket FS1 (mobile) Process= Power=… …   Wikipedia

  • Udma — Прямой доступ к памяти (англ. Direct Memory Access, DMA)  режим обмена данными между устройствами или же между устройством и основной памятью (RAM), без участия Центрального Процессора. В результате скорость передачи увеличивается, так как данные …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»