Введение
Конфигурация в вычислительной технике В вычислительной технике блок управления памятью ввода-вывода (IOMMU) - это блок управления памятью (MMU), соединяющий шину ввода-вывода (I/O) с возможностью прямого доступа к памяти (DMA) с основной памятью. Как и традиционный MMU, который переводит виртуальные адреса CPU в физические адреса, IOMMU отображает виртуальные адреса устройств (также называемые адреса устройств или адреса ввода-вывода с отображением памяти в этом контексте) в физические адреса. Некоторые устройства также обеспечивают защиту памяти от неисправных или вредоносных устройств. Примером IOMMU является таблица ремапинга графических адресов (GART), используемая графическими картами AGP и PCI Express на компьютерах Intel Architecture и AMD. На архитектуре x86, до разделения функциональности northbridge и southbridge между CPU и Platform Controller Hub (PCH), виртуализация ввода-вывода выполнялась не CPU, а чипсетом.
In computing, an input–output memory management unit (IOMMU) is a memory management unit (MMU) connecting a direct memory access–capable (DMA capable) I/O bus to the main memory. Like a traditional MMU, which translates CPU visible virtual addresses to physical addresses, the IOMMU maps device visible virtual addresses (also called device addresses or memory mapped I/O addresses in this context) to physical addresses. Some units also provide memory protection from faulty or malicious devices. An example IOMMU is the graphics address remapping table (GART) used by AGP and PCI Express graphics cards on Intel Architecture and AMD computers. On the x86 architecture, prior to splitting the functionality of northbridge and southbridge between the CPU and Platform Controller Hub (PCH), I/O virtualization was not performed by the CPU but instead by the chipset.
Виртуализация
Когда операционная система работает внутри виртуальной машины, включая системы, использующие паравиртуализацию, такие как Xen и KVM, она обычно не знает физические адреса хоста памяти, к которой она имеет доступ. Это затрудняет обеспечение прямого доступа к компьютерному оборудованию, потому что если гостевая ОС попытается инструктировать аппаратное обеспечение выполнять прямой доступ к памяти (DMA) с использованием физических адресов гостя, это, вероятно, повредит память, поскольку аппаратное обеспечение не знает о сопоставлении между физическими адресами гостя и хоста для данной виртуальной машины. Коррупции можно избежать, если гипервизор или хост ОС вмешивается в операцию ввода/вывода для применения переводов. Однако этот подход приводит к задержке ввода/вывода. IOMMU решает эту проблему, пересматривая адреса, доступ к которым имеет аппаратное обеспечение, в соответствии с той же (или совместимой) таблицей перевода, которая используется для отображения физического адреса гостя на физические адреса хоста.
Опубликованные спецификации
AMD опубликовала спецификацию технологии IOMMU, названную AMD Vi. IBM предлагала расширенную поддержку программ управления: виртуальный режим хранения (ECPS: VSE) на своей линии 43xx; программы канала использовали виртуальные адреса. Intel опубликовала спецификацию технологии IOMMU как Технология виртуализации для направленных вводов и выводов, сокращенно VT d. Информация о Sun IOMMU была опубликована в разделе Доступ к виртуальной памяти устройства (DVMA) в Solaris Developer Connection. IBM Translation Control Entry (TCE) описан в документе под названием Logical Partition Security в IBM eServer pSeries 690. В PCI SIG есть соответствующая работа в рамках терминов Single Root I/O Virtualization (SR IOV) и Address Translation Services (ATS). Раньше они были охвачены отдельными спецификациями, но с PCI Express 5.0 были переведены в базовую спецификацию PCI Express. ARM определяет свою версию IOMMU как System Memory Management Unit (SMMU) для дополнения своей архитектуры виртуализации.
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 Single Root I/O Virtualization (SR IOV) and Address Translation Services (ATS). These were formerly covered in distinct specifications, but as of PCI Express 5.0 have been moved to the PCI Express Base Specification. ARM defines its version of IOMMU as System Memory Management Unit (SMMU) to complement its Virtualization architecture.