Модель IoMmu
На этой странице описывается модель IoMmu, представленная в WDDM 2.0. Последние обновления IOMMU см. в разделе Изоляция GPU на основе IOMMU и переназначение IOMMU DMA .
Общие сведения
Модуль управления памятью Input-Output (IOMMU) — это компонент MMU, который подключает шину ввода-вывода с поддержкой DMA к системной памяти. Он сопоставляет виртуальные адреса, видимые для устройства, с физическими адресами, что делает их полезными при виртуализации.
В модели IoMmu WDDM 2.0 каждый процесс имеет одно виртуальное адресное пространство, которое совместно используется ЦП и GPU и управляется диспетчером памяти ОС.
Для доступа к памяти GPU отправляет запрос данных в совместимый IOMMU. Запрос включает общий виртуальный адрес и идентификатор адресного пространства процесса (PASID). IOMMU выполняет преобразование адресов с помощью таблицы общих страниц. Следующая диаграмма иллюстрирует эту схему.

Драйвер режима ядра выражает поддержку модели IoMmu , устанавливая ограничения DXGK_VIDMMCAPS::IoMmuSupported . Если этот флаг установлен, диспетчер видеопамяти автоматически регистрирует любой процесс, использующий GPU, в IOMMU и получает ИДЕНТИФИКАТОР PASID для этого адресного пространства процесса. PASID передается драйверу во время создания устройства.
Основные выделения сопоставляются диспетчером видеопамяти с сегментом диафрагмы перед отображением, гарантируя, что контроллер дисплея имеет физический доступ к этим выделениям.
В модели IoMmu драйвер пользовательского режима продолжает выделять видеопамять для GPU с помощью службы Allocate диспетчера видеопаметь. Это позволяет драйверу пользовательского режима:
- Следуйте модели места жительства.
- Поддержка модели общего доступа к ресурсам Microsoft DirectX.
- Убедитесь, что основные поверхности видны ядру и сопоставлены с диафрагмой перед отображением.
Первый уровень преобразования (адрес ресурса плитки в общий адрес ЦП или GPU) полностью управляется в пользовательском режиме с помощью драйвера пользовательского режима.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Windows driver documentation
В BIOS функция «IOMMU Controller»(в режиме Disable), для чего она нужна?
IOMMU включают если какое-либо устройство не работает. Например USB 2 или сетевая карта не работает в Linux 64bit. IOMMU заменяет DMA и система не заморачивается выдачей адреса.
Остальные ответы
GoodЗнаток (310) 7 лет назад
Тупее как результат первого значения поиска и не ожидал.
Если не понимаешь, что это обозначает, то и ссылки на одинаковые «слова» глупо присылать.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Что такое AMD IOMMU в BIOS
Виртуальные машины используются для тестирования ПО, запуска несовместимых с основной операционной системой программ, тестирования операционных систем и для безопасного запуска не вызывающих доверия программ. Однако производительность виртуальной машины зачастую оставляет желать лучшего. Она даже и близко не приближается к производительности основной рабочей среды ОС.
Для того, чтобы устранить эту разницу в производительности и сделать использование виртуальных машин более приятным, комфортным, была разработана технология IOMMU. Сначала её поддержка в материнских платах появилась для процессоров Intel, затем уже и для процессоров AMD. В этой статье пойдёт речь о том, как работает IOMMU, где применяется и как настроить работу этой технологии на своём компьютере.
Что такое AMD IOMMU в BIOS?
Технология IOMMU (расшифровывается как «input/output memory management unit») для процессоров AMD в материнских платах появилась относительно недавно — в 2009-м году. Она разрабатывалась для увеличения быстродействия виртуальных машин посредством возможности взаимодействия с физическим оборудованием напрямую. Если говорить обычным языком, IOMMU даёт виртуальной машине возможность пользоваться возможностями аппаратуры безо всяких посредников, таким образом и повышая её производительность. Это может быть полезно для развёртывания локального сервера либо в случае необходимости запуска программ, не поддерживающихся основной операционной системой или непротестированных и потенциально опасных.
С включённой технологией IOMMU виртуальная машина не сможет использовать все доступные ресурсы компьютера, но в целом всё будет работать намного лучше. Устройства в этой технологии разделяются на группы. Компьютер сам решает, какие устройства можно использовать для виртуальной машины, а какие нельзя. Так, для оптимальной работы потребуется два GPU: один для основной системы, второй для гостевой (так называется ОС виртуальной машины).
Настройка AMD IOMMU
Рассмотрим настройку AMD IOMMU для Ryzen. Поддержка этой технологии реализована не во всех материнских платах. Если плата поддерживает AMD IOMMU, настроить этот параметр можно следующим образом:
Загрузите программу настройки BIOS. Выполните переход по пути: Advanced \ AMD CBS \ NBIO Common Options \ NB Configuration \ IOMMU.

Для того, чтобы включить AMD IOMMU, активируйте контекстное меню с помощью кнопки и выберите значение Enabled (по умолчанию установлено Disabled). Значение Auto даёт возможность компьютеру самому решать нужно ли использовать IOMMU в какой-то конкретный момент.

Настройка AMD IOMMU произведена. Теперь виртуальная машина может использовать подключённое к материнской плате оборудование в полной мере (видеокарту, USB-накопители, жёсткие диски и т. д.). Производительность виртуальной машины повышается в разы.
Выводы
В этой статье мы рассмотрели параметр AMD IOMMU и дали ответ на вопрос: «AMD IOMMU — что это в биосе материнских плат для процессоров Ryzen?». Обобщая всё вышенаписанное, можно сделать следующий вывод: AMD IOMMU полезна для увеличения быстродействия виртуальных машины.
Iommu

Странности с IOMMU группами
От чего бывают подобные проблемы с материнскими платами?
amd gigabyte iommu
IOMMU уже работает на последних ядрах?
Хочу освоить gdb, но мануальники читать лень.
debian debug gdb
AMD vs. Intel: дешёвая система с IOMMU (и SSSE3, SSE4.2)
amd intel iommu
Про поддержку Intel IOMMU (VT-d) со стороны материнской платы
Будет ли работать dpdk на этой сборке
cpu iommu linux
iommu проброс видеокарты я познаю мир

emu10k1 + IOMMU == не работает MIDI синтезатор на звуковухе
emu10k1 iommu виртуализация