stringtranslate.com

Блок управления памятью ввода-вывода

Сравнение блока управления памятью ввода-вывода (IOMMU) с блоком управления памятью (MMU).

В вычислительной технике блок управления памятью ввода-вывода ( IOMMU ) — это блок управления памятью (MMU), соединяющий шину ввода-вывода с возможностью прямого доступа к памяти (DMA-capable) с основной памятью . Как и традиционный MMU, который транслирует виртуальные адреса, видимые процессором, в физические адреса , IOMMU сопоставляет виртуальные адреса, видимые устройством (в данном контексте также называемые адресами устройств или адресами ввода-вывода, отображенными в памяти ) с физическими адресами. Некоторые блоки также обеспечивают защиту памяти от неисправных или вредоносных устройств.

Примером IOMMU является таблица переназначения графических адресов (GART), используемая графическими картами AGP и PCI Express на компьютерах с архитектурой Intel и AMD.

В архитектуре x86, до разделения функциональности северного и южного мостов между ЦП и контроллером платформы (PCH), виртуализация ввода-вывода выполнялась не ЦП, а чипсетом . [ 1] [2]

Преимущества

Преимущества использования IOMMU по сравнению с прямой физической адресацией памяти (DMA) включают в себя [ необходима ссылка ] :

Для системных архитектур, в которых порт ввода-вывода является отдельным адресным пространством от адресного пространства памяти, IOMMU не используется, когда ЦП взаимодействует с устройствами через порты ввода-вывода . В системных архитектурах, в которых порт ввода-вывода и память отображаются в подходящее адресное пространство, IOMMU может транслировать доступы к порту ввода-вывода.

Недостатки

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

Виртуализация

Когда операционная система работает внутри виртуальной машины , включая системы, использующие паравиртуализацию , такие как Xen и KVM , она обычно не знает хост-физические адреса памяти, к которым она обращается. Это затрудняет предоставление прямого доступа к оборудованию компьютера, поскольку если гостевая ОС попытается дать указание оборудованию выполнить прямой доступ к памяти (DMA) с использованием гостевых физических адресов, это, скорее всего, повредит память, поскольку оборудование не знает о сопоставлении гостевых физических и хост-физических адресов для данной виртуальной машины. Повреждения можно избежать, если гипервизор или хост-ОС вмешаются в операцию ввода-вывода для применения трансляций. Однако этот подход влечет задержку в операции ввода-вывода.

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

Опубликованные спецификации

Смотрите также

Ссылки

  1. ^ "Поддержка аппаратного обеспечения платформы Intel для виртуализации ввода-вывода". intel.com. 2006-08-10. Архивировано из оригинала 2007-01-20 . Получено 2014-06-07 .
  2. ^ "Системные платы для настольных ПК: совместимость с технологией виртуализации Intel (Intel VT)". intel.com. 2014-02-14 . Получено 2014-06-07 .
  3. ^ "Расширение физического адреса — память PAE и Windows". Microsoft Windows Hardware Development Central. 2005. Получено 2008-04-07 .
  4. ^ Мули Бен-Йехуда; Джими Ксенидис; Михал Островски (2007-06-27). "Цена безопасности: оценка производительности IOMMU" (PDF) . Труды симпозиума Linux 2007. Оттава, Онтарио, Канада: IBM Research . Получено 28.02.2013 .
  5. ^ "Xen FAQ: как использовать 3D-графику в DomU". Архивировано из оригинала 2005-04-23 . Получено 2006-12-12 .
  6. ^ "Спецификация технологии виртуализации ввода-вывода AMD (IOMMU), версия 2.0" (PDF) . amd.com. 2011-03-24 . Получено 2014-01-11 .
  7. ^ "Спецификация технологии виртуализации ввода-вывода AMD (IOMMU)" (PDF) . amd.com . Получено 2020-07-09 .
  8. ^ IBM 4300 Processors Principles of Operation for ECPS:VSE Mode (PDF) (Первое издание). IBM. Январь 1979. SA22-7070-0. Архивировано из оригинала (PDF) 2012-03-14 . Получено 2021-06-30 .
  9. ^ "Спецификация архитектуры технологии виртуализации Intel для направленного ввода-вывода (VT-d)" (PDF) . Получено 2020-07-09 .
  10. ^ "Ресурсы DVMA и переводы IOMMU" . Получено 2007-04-30 .
  11. ^ "Безопасность логических разделов в IBM eServer pSeries 690". Архивировано из оригинала 10 марта 2007 г. Получено 2007-04-30 .
  12. ^ "PCI Express Base Specification" . Получено 2023-01-18 .
  13. ^ "ARM SMMU" . Получено 2013-05-13 .
  14. ^ "ARM Virtualization Extensions". Архивировано из оригинала 2013-05-03 . Получено 2013-05-13 .

Внешние ссылки