Преобразование адресов второго уровня (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-разрядная).
Современные процессоры используют концепции физической памяти и виртуальной памяти ; запущенные процессы используют виртуальные адреса, и когда инструкция запрашивает доступ к памяти, процессор преобразует виртуальный адрес в физический адрес, используя таблицу страниц или резервный буфер трансляции (TLB). При запуске виртуальной системы она выделяет виртуальную память хост-системы, которая служит физической памятью для гостевой системы, и такой же процесс преобразования адресов выполняется также в гостевой системе. Это увеличивает стоимость доступа к памяти, поскольку преобразование адресов необходимо выполнять дважды - один раз внутри гостевой системы (с использованием программной эмуляции таблицы теневых страниц ) и один раз внутри хост-системы (с использованием аппаратной таблицы страниц)..
Чтобы сделать этот перевод более эффективным, поставщики процессоров внедрили технологии, обычно называемые SLAT. Рассматривая каждый гостевой физический адрес как виртуальный адрес хоста, небольшое расширение оборудования, используемого для обхода невиртуализированной таблицы страниц (теперь таблица гостевых страниц), может обходить таблицу страниц хоста. С помощью многоуровневых таблиц страниц таблица хост-страниц может концептуально рассматриваться как вложенная в таблицу гостевых страниц. Аппаратный обходчик таблиц страниц может обрабатывать дополнительный уровень преобразования почти как добавление уровней в таблицу страниц.
При использовании SLAT и многоуровневых таблиц страниц количество уровней, которые необходимо пройти для поиска трансляции, удваивается, когда гостевой физический адрес имеет тот же размер, что и гостевой виртуальный адрес, и используются страницы того же размера. Это увеличивает важность кэширования значений из промежуточных уровней таблиц хоста и гостевых страниц. Также полезно использовать большие страницы в таблицах страниц хоста, чтобы уменьшить количество уровней (например, в x86-64 использование страниц 2 МБ удаляет один уровень в таблице страниц). Поскольку память обычно выделяется виртуальным машинам с грубой степенью детализации, использование больших страниц для гостевой физической трансляции является очевидной оптимизацией, уменьшающей глубину поиска и память, необходимую для таблиц страниц хоста.
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 присутствует в процессорах ARM, которые реализуют уровень исключения 2 (EL2).
Гипервизоры, поддерживающие SLAT, включают следующее:
Некоторым из вышеперечисленных гипервизоров фактически требуется SLAT для того, чтобы работать вообще (а не только быстрее), как они не реализовывать программную таблицу теневых страниц; список не полностью обновлен, чтобы отразить это.