Jump to content

Список инструкций по виртуализации x86

Расширения набора команд, добавленные к x86 набору команд для поддержки аппаратной виртуализации . Эти расширения предоставляют инструкции для входа и выхода из виртуализированного контекста выполнения, а также для загрузки структур управления виртуальной машиной (VMCS), которые хранят состояние гостя и хоста, а также поля, которые управляют поведением процессора внутри виртуальной машины.

AMD-V Инструкции

[ редактировать ]
Инструкция Код операции Инструкция Описание Используется Добавлено в
Основные инструкции SVM (безопасная виртуальная машина) [ 1 ]
INVLPGA rAX,ECX[ а ] 0F 01 DF Недействительные сопоставления TLB для виртуальной страницы, указанной в rAX, и ASID (идентификатор адресного пространства), указанного в ECX. ВММ К8 [ б ]
VMRUN rAX[ а ] 0F 01 D8 Запустите виртуальную машину, управляемую VMCB (блоком управления виртуальной машиной), указанным по физическому адресу в rAX.
VMLOAD rAX[ а ] 0F 01 DA Загрузите определенное подмножество состояния процессора из VMCB, указанного физическим адресом в регистре rAX. [ с ] Обычно ВММ [ д ]
VMSAVE rAX[ а ] 0F 01 DB Сохраните определенное подмножество состояния процессора в VMCB, указанном по физическому адресу в регистре rAX. [ с ]
STGI 0F 01 DC Установите GIF (глобальный флаг прерывания). Обычно ВММ [ и ]
CLGI 0F 01 DD Очистить GIF.
VMMCALL NFx 0F 01 D9 Вызов монитора виртуальной машины из гостя, вызвав VMEXIT. Гость
SKINIT EAX 0F 01 DE Защитите инициализацию и переход с помощью аттестации.
Инициализирует ЦП до известного состояния, назначает область памяти размером 64 Кбайт, указанную EAX, в качестве SLB («Блок безопасного загрузчика»), отправляет копию области памяти в TPM системы для проверки с использованием цифровой подписи , затем переходит в SLB.
ВММ Турион «Лев» , [ 2 ]
Оптерон «Шанхай» ,
Феном II
Безопасная зашифрованная виртуализация (SEV): инструкции зашифрованного состояния (SEV-ES)
VMGEXIT F2/F3 0F 01 D9 SEV-ES Выход в VMM.
Явная связь с VMM для виртуальных машин SEV-ES. [ ж ]
Гость Это был 1
Безопасный вложенный пейджинг (SEV-SNP): инструкции таблицы обратного отображения (RMP)
PSMASH F3 0F 01 FF Page Smash: расширяет запись RMP на странице размером 2 МБ в соответствующий набор смежных записей RMP на странице размером 4 КБ. Системный физический адрес страницы размером 2 МБ указан в регистре RAX. ВММ Это было 3
RMPUPDATE F2 0F 01 FE Напишите новую запись RMP. Системный физический адрес страницы, запись RMP которой изменена, указывается в регистре RAX. Регистр RCX предоставляет эффективный адрес 16-байтовой структуры данных, которая содержит новое состояние RMP.
PVALIDATE F2 0F 01 FF Подтвердить или отменить проверку записи RMP гостевой страницы. Гостевой виртуальный адрес указывается в операнде регистра rAX. [ а ] Гость
RMPADJUST F3 0F 01 FE Настройте разрешения RMP для гостевой страницы. Гостевой виртуальный адрес указывается в регистре RAX. Размер страницы указан в RCX[0]. Целевой VMPL (уровень привилегий виртуальной машины) и его разрешения указаны в регистре RDX.
RMPQUERY F3 0F 01 FD Считывает маску разрешений RMP для гостевой страницы. Гостевой виртуальный адрес указывается в регистре RAX. Целевой VMPL указан в RDX[7:0]. Разрешения RMP для указанного VMPL возвращаются в RDX[63:8] и регистре RCX. Гость Это было 4
RMPREAD F2 0F 01 FD Прочитайте запись RMP. Системный физический адрес страницы, запись RMP которой должна быть прочитана, указывается в регистре RAX. Регистр RCX предоставляет эффективный адрес 16-байтовой структуры данных, в которую будет записана запись RMP. ВММ ( Дзен 5 )
  1. ^ Перейти обратно: а б с д и Для аргумента rAX в VMRUN, VMLOAD, VMSAVE, INVLPGA и PVALIDATE инструкции, выбор AX/EAX/RAX зависит от размера адреса, который можно переопределить с помощью префикса 67h.
  2. ^ Поддержка AMD-V была добавлена ​​на этапе F AMD K8 и недоступна на более ранних стадиях.
  3. ^ Перейти обратно: а б The VMRUN инструкция загрузит только ограниченное подмножество состояний процессора - VMLOAD должен быть запущен раньше VMRUN для загрузки дополнительного состояния.
    Аналогично, #VMEXIT сохранит в VMCB только ограниченное количество гостевого состояния. VMSAVE необходим для хранения дополнительного состояния.
    Для простых условий перехвата, когда VMM не нужно использовать элементы состояния, обрабатываемые VMSAVE/ VMLOAD, VMM может улучшить производительность, воздерживаясь от выполнения VMSAVE/ VMLOAD перед повторным входом в виртуальную машину с помощью VMRUN.
  4. ^ На процессорах, поддерживающих виртуализацию VMLOAD/VMSAVE ( Excavator и более поздние версии), VMLOAD и VMSAVE инструкции также могут выполняться в гостевом режиме.
  5. ^ На процессорах, поддерживающих Virtual GIF ( Excavator и более поздние версии), STGI и CLGI инструкции также могут выполняться в гостевом режиме.
  6. ^ VMGEXIT выполняется как VMMCALL если не выполняется гостем SEV-ES.

Интел инструкции по виртуализации. VT-x также поддерживается некоторыми процессорами VIA и Zhaoxin.

Инструкция Код операции Инструкция Описание Используется [ а ] Добавлено в
Базовые инструкции VMX (расширения виртуальных машин)
VMXON m64[ б ] F3 0F C7 /6 Enter VMX Operation – вход в среду виртуализации, поддерживаемую аппаратным обеспечением. [ с ] ВММ Прескотт 2М ,
Иона ,
Центртон ,
Нано 3000
VMXOFF NP 0F 01 C4 Выйти из работы VMX — останавливает аппаратно поддерживаемую среду виртуализации.
VMPTRLD m64[ б ] NP 0F C7 /6 Загрузите указатель на структуру управления виртуальной машиной (VMCS) из памяти и отметьте его действительным.
VMPTRST m64[ б ] NP 0F C7 /7 Сохраните указатель на текущую VMCS в памяти.
VMCLEAR m64[ б ] 66 0F C7 /6 Сбросить данные VMCS из ЦП в область VMCS в памяти. Если указанная VMCS является текущей VMCS, то текущая VMCS помечается как недействительная.
VMLAUNCH NP 0F 01 C2 Запустите виртуальную машину, управляемую текущей VMCS.
VMRESUME NP 0F 01 C3 Возобновить работу виртуальной машины, управляемой текущей VMCS.
VMREAD r/m,reg NP 0F 78 /r Считайте указанное поле из текущей VMCS. reg аргумент указывает, какое поле читать – результат сохраняется в r/m. Обычно ВММ [ д ]
VMWRITE reg,r/m NP 0F 79 /r Запись в указанное поле текущего VMCS. reg Аргумент указывает, какое поле следует записывать, а аргумент r/m предоставляет элемент данных для записи в поле.
VMCALL NP 0F 01 C1 Вызов монитора виртуальной машины из гостя, вызвав VMEXIT. Обычно гость [ и ]
Инструкции по расширенным таблицам страниц (EPT)
INVEPT reg,m128 66 0F 38 80 /r Делает недействительными записи, производные от EPT, в TLB и кэшах структуры подкачки. reg аргумент указывает тип недействительности, аргумент памяти указывает 128-битный дескриптор. [ ж ] ВММ Нехалем ,
Центртон , [ 3 ]
ЧжанЦзян
INVVPID reg,m128 66 0F 38 81 /r Делает недействительными записи в TLB и кэшах структуры подкачки на основе VPID (идентификатор виртуального процессора). reg аргумент указывает тип недействительности, аргумент памяти указывает 128-битный дескриптор. [ г ]
VMFUNC NP 0F 01 D4 Вызов функции виртуальной машины, указанной в EAX. [ ч ] Гость Хасуэлл ,
Сильвермонт ,
ЛуЦзяЗуй
Расширения доверительного домена (TDX): инструкции по режиму безопасного арбитража (SEAM) [ 5 ]
SEAMOPS 66 0F 01 CE Вызов определенных операций SEAM. Операция, которую необходимо выполнить, указана в RAX. [ я ] ШОВ
корень
( Сапфировые пороги [ 6 ] ),
Изумрудные пороги [ 7 ]
SEAMRET 66 0F 01 CD Вернитесь к устаревшей корневой операции VMX из корневой операции SEAM VMX.
SEAMCALL 66 0F 01 CF Вызов корневой операции SEAM VMX из устаревшей корневой операции VMX. ВММ
TDCALL 66 0F 01 CC Вызов монитора виртуальной машины из гостя TD, вызвав VMEXIT. ТД Гость
  1. ^ Выполнение любой из инструкций VT-x VMM в гостевой виртуальной машине приведет к VMEXIT.
    Если операция VMX не была введена через VMXON, то все инструкции VT-x (кроме VMXON) вызовет #UD.
  2. ^ Перейти обратно: а б с д Аргумент m64 для VMPTRLD, VMPTRST, VMCLEAR и VMXON представляет собой 64-битный физический адрес.
  3. ^ Аргумент m64 для VMXON — это 64-битный физический адрес «региона VMXON», который представляет собой регион размером 4 КБ, который должен быть выровнен по 4 КБ. Эта область может использоваться процессором для поддержки работы VMX в зависимости от реализации и никогда не должна быть доступна программному обеспечению до тех пор, пока процессор не прекратит работу VMX через VMXOFF инструкция.
  4. ^ Если включено «VMCS Shadowing» (доступно на Haswell и более поздних версиях), VMREAD и VMWRITE Инструкции также могут быть выполнены гостем.
  5. ^ VMCALL Инструкция также может быть выполнена VMM — это вызовет специальный выход из виртуальной машины SMM.
  6. ^ Типы аннулирования, доступные для reg аргумент INVEPT являются:
    Ценить Функция
    1 Аннулирование одного контекста: аннулирование всех сопоставлений, связанных с указателем EPT в битах 63:0 дескриптора.
    2 Глобальная аннулирование: аннулирование всех сопоставлений, связанных со всеми указателями EPT.
  7. ^ Типы аннулирования, доступные для reg аргумент INVVPID являются:
    Ценить Функция
    0 Недопустимое сопоставление линейного адреса и VPID, указанных в дескрипторе.
    (В отличие от INVLPG, INVVPID завершится ошибкой при использовании с неканоническими адресами. [ 4 ] )
    1 Сделайте недействительными все сопоставления для VPID, указанного в дескрипторе.
    2 Недействительность всех контекстов: делает недействительными все сопоставления для всех VPID, кроме VPID 0.
    3 Сделайте недействительными все сопоставления для VPID, указанного в дескрипторе, за исключением глобальных преобразований.
  8. ^ Функции, доступные для VMFUNC в регистре EAX находятся:
    ЕАХ Функция
    0 Переключение EPTP: переключение указателя расширенной таблицы страниц на один из 512 указателей таблиц, заранее подготовленных хостом виртуальной машины.
    ECX указывает, какой из 512 указателей использовать.
    1-63 (Зарезервировано, вызовет VMEXIT)
    ≥64 Недействительно, приведет к #UD.
  9. ^ Операции, доступные для SEAMOPS в регистре RAX находятся:
    РАКС Операция
    0 (ВОЗМОЖНОСТИ) Возвращаемое растровое изображение поддерживаемых SEAMOPS уходит в RAX.
    1 (ОТЧЕТ ПО ШВАМ) Создайте структуру SEAMREPORT.

    Любое неподдерживаемое значение в RAX вызовет исключение #GP(0).

  1. ^ AMD, Технология виртуализации AMD64 под кодовым названием «Pacifica» , публикация №. 33407, ред. 3.01, май 2005 г. Архивировано 13 июня 2011 г.
  2. ^ CPU-World, CPUID для AMD Turion 64 X2 RM-75 , 05 марта 2022 г. Архивировано 19 апреля 2023 г.
  3. ^ Intel, Семейство процессоров Intel® Atom™ S1200 для микросерверов. Техническое описание, том 1 из 2 , номер для заказа. 328194-001, декабрь 2012 г., стр. 44
  4. ^ Vulners, VMX: проблема перехвата INVLPG по неканоническому адресу , 20 января 2016 г.
  5. ^ Intel, Архитектурные расширения ЦП Trust Domain , номер заказа. 343754-002, май 2021 г.
  6. ^ SecurityWeek, Intel добавляет TDX в портфель конфиденциальных вычислений с выпуском процессоров Xeon 4-го поколения , 10 января 2023 г.
  7. ^ Intel, Какие процессоры Intel Xeon поддерживают расширения домена Intel Trust (Intel TDX)? , 11 июня 2024 г. — указывает на общую доступность TDX на рынке для процессоров Emerald Rapids, но ограниченную доступность для процессоров Sapphire Rapids. Архивировано 13 июня 2024 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e0996e85e8d713789a167072cb28652c__1724094600
URL1:https://arc.ask3.ru/arc/aa/e0/2c/e0996e85e8d713789a167072cb28652c.html
Заголовок, (Title) документа по адресу, URL1:
List of x86 virtualization instructions - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)