Преобразование адресов второго уровня

редактировать

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

AMD поддерживает SLAT с помощью технологии Rapid Virtualization Indexing (RVI) с момента появления процессоров Opteron третьего поколения ( кодовое название Барселона). Реализация SLAT от Intel, известная как Extended Page Table (EPT), была представлена ​​в микроархитектуре Nehalem, обнаруженной в некоторых Core i7, Core Процессоры i5 и Core i3. Расширения виртуализации

ARM поддерживают SLAT, известный как таблицы страниц Stage-2, предоставляемые Stage-2 MMU. Гость использует MMU Stage-1. Поддержка была добавлена ​​как необязательная в архитектуре ARMv7ve, а также поддерживается в архитектурах ARMv8 (32-разрядная и 64-разрядная).

Содержание
  • 1 Обзор
  • 2 Реализации
    • 2.1 Индексирование быстрой виртуализации
    • 2.2 Расширенные таблицы страниц
    • 2.3 Таблицы страниц второго этапа
  • 3 Поддержка программного обеспечения
  • 4 См. также
  • 5 Ссылки
  • 6 Внешние ссылки
Обзор

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

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

При использовании SLAT и многоуровневых таблиц страниц количество уровней, которые необходимо пройти для поиска трансляции, удваивается, когда гостевой физический адрес имеет тот же размер, что и гостевой виртуальный адрес, и используются страницы того же размера. Это увеличивает важность кэширования значений из промежуточных уровней таблиц хоста и гостевых страниц. Также полезно использовать большие страницы в таблицах страниц хоста, чтобы уменьшить количество уровней (например, в x86-64 использование страниц 2 МБ удаляет один уровень в таблице страниц). Поскольку память обычно выделяется виртуальным машинам с грубой степенью детализации, использование больших страниц для гостевой физической трансляции является очевидной оптимизацией, уменьшающей глубину поиска и память, необходимую для таблиц страниц хоста.

Реализации

Rapid Virtualization Indexing

Rapid Virtualization Indexing (RVI), известный как Nested Page Tables (NPT) во время разработки, является AMD технология аппаратной виртуализации второго поколения для процессора блок управления памятью (MMU).

A В исследовательском документе VMware установлено, что RVI обеспечивает прирост производительности до 42% по сравнению с с программной реализацией (таблица теневых страниц). Тесты, проведенные Red Hat, показали удвоение производительности в тестах OLTP.

RVI был представлен в третьем поколении процессоров Opteron, кодовое имя Barcelona.

Таблицы расширенных страниц

Таблицы расширенных страниц (EPT) - это технология виртуализации Intel x86 второго поколения для блока управления памятью ( MMU). Поддержка EPT присутствует, в частности, в процессорах Intel Core i3, Core i5, Core i7 и Core i9. Он также встречается в некоторых новых процессорах VIA.

EPT требуется для запуска логического процессора непосредственно в реальном режиме, функции, называемой «неограниченный гость» на жаргоне Intel и представленной в микроархитектуре Westmere.

Согласно оценочному документу VMware: «EPT обеспечивает прирост производительности до 48% для тестов с интенсивным использованием MMU и до 600% для микротестов с интенсивным использованием MMU», хотя в некоторых случаях это может привести к тому, что код будет работать медленнее, чем реализация программного обеспечения. 91>угловые случаи.

таблицы страниц этапа 2

поддержка таблиц страниц этапа 2 присутствует в процессорах ARM, которые реализуют уровень исключения 2 (EL2).

Поддержка программного обеспечения

Гипервизоры, поддерживающие SLAT, включают следующее:

  • Hyper-V для Windows Server 2008 R2, Windows 8 и позже. Hyper-V для Windows 8 (и более поздних версий Microsoft Windows) фактически требует SLAT.
  • Hypervisor.framework, собственный гипервизор macOS, доступный с macOS 10.10
  • KVM, поскольку версия 2.6.26 основной ветки ядра Linux
  • Parallels Desktop для Mac, начиная с версии 5
  • VirtualBox, начиная с версии 2.0.0
  • VMware ESX, начиная с версии 3.5
  • Рабочая станция VMware. VMware Workstation 14 (и более поздняя версия VMware Workstation) фактически требует SLAT.
  • Xen, начиная с версии 3.2.0
  • Qubes OS - SLAT обязательный
  • bhyve - SLAT обязательный и запланированный оставаться обязательным
  • vmm, собственный гипервизор на OpenBSD - SLAT обязательный

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

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-07 08:04:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте