Блок управления памятью ввода–вывода
-
Определение и функции IOMMU
- IOMMU — это блок управления памятью, который соединяет шину ввода-вывода с основной памятью.
- Он преобразует виртуальные адреса устройств в физические адреса, аналогично традиционному MMU.
- Некоторые устройства используют IOMMU для защиты памяти от вредоносных устройств.
-
Примеры и архитектура
- IOMMU используется в графических картах AGP и PCI Express для преобразования адресов устройств в память.
- В архитектуре x86 до разделения функций северного и южного мостов IOMMU выполняла виртуализацию ввода-вывода.
-
Преимущества IOMMU
- Позволяет выделять большие области памяти без необходимости их смежности в физической памяти.
- Предотвращает использование векторных списков ввода-вывода и позволяет обрабатывать большие объемы памяти.
- Обеспечивает возможность использования гостевыми операционными системами неподходящего оборудования для виртуализации.
- Позволяет обрабатывать аппаратные прерывания и поддерживает подкачку периферийной памяти.
-
Недостатки IOMMU
- Может привести к снижению производительности из-за накладных расходов на перевод и управление.
- Потребляет дополнительную физическую память для таблиц страниц ввода-вывода.
- Сложности с распределением памяти могут привести к снижению производительности драйверов устройств.
-
Виртуализация и IOMMU
- В виртуальных машинах IOMMU решает проблему доступа к оборудованию, повторно сопоставляя адреса.
- AMD, IBM, Intel и другие компании опубликовали спецификации для технологии IOMMU.
-
Технические характеристики и поддержка
- AMD опубликовала спецификацию AMD-Vi для технологии IOMMU.
- IBM и Intel также предлагают свои версии IOMMU для виртуализации.
- PCI-SIG и ARM также внесли свой вклад в разработку и поддержку IOMMU.
-
Дополнительные ресурсы
- Ссылки на внешние ресурсы и конференции для изучения API-интерфейсов DMA и IOMMU.