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

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

В вычислениях блок управления памятью ввода-вывода (IOMMU ) представляет собой блок управления памятью (MMU), который соединяет прямой доступ к памяти - возможность ввода-вывода (с поддержкой DMA) шина к основной памяти. Подобно традиционному MMU, который преобразует CPU -visible виртуальные адреса в физические адреса, IOMMU отображает видимые для устройства виртуальные адреса (также называемые адресами устройств или I / O адресов в данном контексте) на физические адреса. Некоторые устройства также обеспечивают защиту памяти от неисправных или вредоносных устройств.

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

В архитектуре x86 до разделения функций северного моста и южного моста между ЦП и концентратором контроллера платформы (PCH), я Виртуализация / O выполнялась не ЦП, а набором микросхем .

Содержание

  • 1 Преимущества
  • 2 Недостатки
  • 3 Виртуализация
  • 4 Опубликованные спецификации
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

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

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

  • Можно выделить большие области памяти без необходимости быть непрерывным в физической памяти - IOMMU отображает непрерывные виртуальные адреса на лежащие в основе фрагментированные физические адреса. Таким образом, иногда можно избежать использования векторного ввода-вывода (списки разброса-сбора ).
  • Устройства, которые не поддерживают адреса памяти, достаточно длинные для адресации вся физическая память может адресовать всю память через IOMMU, избегая накладных расходов, связанных с копированием буферов в и из адресуемого пространства памяти периферийного устройства.
    • Например, компьютеры x86 могут адресовать более 4 гигабайт памяти с помощью функции Physical Address Extension (PAE) в процессоре x86. Тем не менее, обычное 32-битное устройство PCI просто не может адресовать память выше границы 4 ГиБ и, следовательно, не может получить к ней прямой доступ. Без IOMMU операционная система должна была бы реализовать трудоемкие буферы отказов (также известные как двойные буферы).
  • Память защищена от вредоносных устройств, которые пытаются атаки DMA и неисправные устройства, которые пытаются выполнить ошибочную передачу памяти, потому что устройство не может читать или записывать в память, которая не была явно выделена (отображена) для него. Защита памяти основана на том факте, что ОС, работающая на ЦП (см. Рисунок), исключительно управляет как MMU, так и IOMMU. Устройства физически не могут обойти или повредить настроенные таблицы управления памятью.
    • В виртуализации гостевые операционные системы могут использовать оборудование, специально не предназначенное для виртуализации. Более производительное оборудование, такое как видеокарты, использует DMA для прямого доступа к памяти; в виртуальной среде все адреса памяти повторно отображаются программным обеспечением виртуальной машины, что приводит к сбою устройств DMA. IOMMU обрабатывает это повторное отображение, позволяя использовать собственные драйверы устройств в гостевой операционной системе.
  • В некоторых архитектурах IOMMU также выполняет повторное отображение аппаратных прерываний аналогично стандартной памяти переназначение адреса.
  • Пейджинг периферийной памяти может поддерживаться IOMMU. Периферийное устройство, использующее расширение интерфейса запроса страницы (PRI) служб преобразования адресов PCI-SIG PCIe, может обнаруживать и сигнализировать о необходимости служб диспетчера памяти.

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

Недостатки

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

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

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

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

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

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

  • AMD опубликовала спецификацию технологии IOMMU.
  • Intel опубликовала спецификацию для технологии IOMMU как Virtualization Technology for Directed I / O, сокращенно VT-d.
  • Информация о Sun IOMMU была опубликована в разделе доступа к виртуальной памяти устройства (DVMA) в Solaris Developer Connection.
  • Запись IBM Translation Control (TCE) был описан в документе под названием Logical Partition Security in the IBM eServer pSeries 690.
  • PCI-SIG имеет отношение работают в соответствии с терминами Виртуализация ввода / вывода (IOV) и Службы трансляции адресов (ATS).
  • ARM определяет свою версию IOMMU как модуль управления системной памятью (SMMU), чтобы дополнить его Virtualizati по архитектуре.

См. также

Ссылки

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

Последняя правка сделана 2021-05-24 03:16:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте