Что такое iommu в биосе
Перейти к содержимому

Что такое iommu в биосе

  • автор:

Модель 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 в WDDM 2.0.

Драйвер режима ядра выражает поддержку модели 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) 8 лет назад

Тупее как результат первого значения поиска и не ожидал.
Если не понимаешь, что это обозначает, то и ссылки на одинаковые «слова» глупо присылать.

Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров 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 полезна для увеличения быстродействия виртуальных машины.

If you have installed a virtualization server and want to «pass» the graphics card or other PCI device to a virtual machine running on your hypervisor (virtualization server), you should enable IOMMU (or VT-d for Intel) in the motherboard BIOS of your server.

This technology allows you :

  • to pass a PCI device to a HVM (hardware or virtual machine hardware-assisted virtualization) virtual machine
  • isolate I/O and memory accesses to prevent DMA attacks on the physical server hardware.

IOMMU is used in particular by the «PCI passthrough» feature of XenServer.

Important : so that PCI passthrough (passing a PCI device to a VM) and GPU passthrough (same, but for graphics cards) can work correctly, we recommend that you enable the CSM module in the BIOS / UEFI firmware of your motherboard.
Indeed, without this CSM module, it happens that the PCI passthrough and/or the GPU passthrough don’t work. This is particularly the case when you try to pass a graphics card to a virtual machine on Unraid.
To do this, refer to our tutorial: Configure your computer’s BIOS to boot in LEGACY BIOS mode.

  1. Enable VT-d for Intel CPU
    1. BIOS UEFI Asus (blue)
    2. BIOS UEFI Asus (yellow/grey)
    3. MSI BIOS (American Megatrends)

    1. Enable VT-d for Intel CPU

    If you have an Intel CPU, the IOMMU technology is called «Intel VT-d».

    1.1. BIOS UEFI Asus (blue)

    To get started, enable processor virtualization (Intel-VT-x) in the advanced settings of your BIOS.
    Once in BIOS advanced mode, go to the «Advanced» section (at the top) and click on «CPU Configuration».

    Here, check that the «Intel Virtualization Technology» setting is enabled.

    Then, click on the «Back» button at the top left to return to the menu and go to : System Agent Configuration.

    Enable the «Memory Remap Feature» setting that corresponds to the Intel VT-d / IOMMU.

    1.2. Asus UEFI BIOS (color: electric blue)

    If you have an Asus WS X299 SAGE/10G motherboard or another model with visually the same BIOS, press the «Del» key on your keyboard several times when your computer starts up to enter.
    Next, enter advanced mode by clicking «Advanced Mode (F7)» (at bottom right).

    To use input/output (I/O) virtualization, you first need CPU virtualization.
    For this BIOS, refer to step «2. Asus UEFI BIOS (color: electric blue)» of our tutorial «Enable virtualization (Intel VT-x / AMD-V)».

    Once CPU virtualization (Intel VT-x) is enabled, go to the «Advanced» tab, then click «System Agent (SA) Configuration».

    Enable the «Intel® VT for Directed I/O (VT-d)» setting by selecting the «Enabled» value for this setting.

    Finally, go to the «Exit» tab and click «Save Changes & Reset».
    Confirm saving the changes by clicking OK.

    1.3. BIOS UEFI Asus (yellow/grey)

    If it is not already done, enable «Intel VT-x» virtualization feature. This is the virtualization technology that everyone knows.
    In the Asus UEFI BIOS, this feature is in «Advanced -> CPU configuration» and is named «Intel Virtualization Technology».

    Note : You can find other interfaces in our tutorial : Enable virtualization (Intel VT-x / AMD-V)

    Then, if your motherboard supports it, you will find the «VT-d» option that matches IOMMU in «Advanced -> System Agent Configuration» or «Advanced -> North Bridge».

    1.4. MSI BIOS (American Megatrends)

    If you have a fairly powerful and especially recent MSI laptop PC, it’s possible that it supports input/output virtualization (Intel VT-d).
    This is particularly the case with the «MSI GP62 6QE Leopard Pro» laptop PC.

    To enable the Intel VT-d in this BIOS, go to the «Advanced» tab, select the «VT-d» option and press Enter.

    Select «Enabled» and validate by pressing Enter.

    Note that you will probably also need to enable the «Intel Virtualization Technology» option (which corresponds to the Intel VT-x) since you need the Intel VT-d feature.

    2. Enable IOMMU for AMD CPU

    If you have an AMD CPU, the IOMMU technology will be called IOMMU.

    If it is not already done, enable the SVM virtualization.This is the virtualization technology that everyone knows.
    In the Asus UEFI BIOS, this feature is in «Advanced -> CPU configuration» and is called SVM (Secure Virtual Machine), or AMD-V or AMD Virtualization.

    Then, if your motherboard supports it, you will find the IOMMU option in : Advanced -> North Bridge.

    Finally, it is possible that an «IOMMU Mode» option is also available.

    This option is different from the «IOMMU» option and allows you (as shown in the image) to redirect 32 bits I/O to 64 bits I/O.
    If the server is a 64-bit OS and virtual machines to which you pass PCI devices are also in 64 bits, this option will not serve you. You can leave «IOMMU Mode» to disabled.

    Note : Enabling «IOMMU Mode» will take 64MB of RAM.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *