V-comp

Последовательные асинхронные порты
в терминальных и платежных системах

 
 
 












Инструкции AMD SVM

Технология AMD SVM определяет следующие процессорные инструкции.


VMRUN

Эту инструкцию использует гипервизор для запуска "гостя" на виртуальной машине. В регистре EAX (для 32-битного режима) или RAX (для 64-битного режима) находится базовый физический адрес блока VMCB, который будет использоваться запускаемой виртуальной машиной. Контекст гипервизора, сохраняется в блоке Host Save Area. Контекст "гостя" загружается из блока VMCB. Выполнение "гостя" на виртуальной машине продолжается до тех пор, пока не возникнет одно из событий, подлежащих перехвату гипервизором. Список таких событий зависит от содержимого Control Area в блоке VMCB. Когда перехватываемое событие возникает, выполняется операция #VMEXIT. Выполнение "гостя" прерывается, его контекст сохраняется в State Save Area в блоке VMCB. Контекст гипервизора загружается из блока Host Save Area. Начинает выполняться гипервизор. По содержимому статусных полей в блоке VMCB, гипервизор может определить причину завершения "гостя".


VMMCALL

Эту инструкцию использует "гость" для явной передачи управления гипервизору. Она инициирует операцию #VMEXIT, описанную выше. Отметим, что для правильного функционирования инструкции VMMCALL, бит Intercept VMMCALL Instruction в блоке VMCB должен быть установлен в "1".


VMSAVE

Сохраняет в блоке VMCB ряд дополнительных параметров контекста процессора для "гостевой" программы, которые не сохраняются автоматически при выполнении операции #VMEXIT. Базовый физический адрес используемого блока VMCB находится в регистре EAX (для 32-битного режима) или RAX (для 64-битного режима). Список сохраняемых параметров следующий: регистры FS, GS, TR, LDTR, model-specific регистры KernelGSbase, STAR, LSTAR, CSTAR, SFMAS, SYSENTER_CS, SYSENTER_EIP, SYSENTER_ESP.


VMLOAD

Загружает из блока VMCB ряд дополнительных параметров контекста процессора для "гостевой" программы, которые не загружаются автоматически при выполнении инструкции VMRUN. Базовый физический адрес используемого блока VMCB находится в регистре EAX (для 32-битного режима) или RAX (для 64-битного режима). Список загружаемых параметров такой же, как в инструкции VMSAVE.


CLGI

Обнуляет глобальный флаг разрешения прерываний (GIF). Если GIF=0, запрещены все виды аппаратных прерываний (NMI, SMI, INTR), запрещено восприятие сигнала "мягкого" сброса INIT, управление линией A20 и ряд других операций.


STGI

Устанавливает глобальный флаг разрешения прерываний (GIF). См. комментарий к инструкции CLGI.


INVLPGA

Объявляет недостоверными заданные элементы буфера страничной трансляции (TLB). Инструкция принимает в регистре EAX (для 32-битного режима) или RAX (для 64-битного режима) линейный адрес ячейки памяти. Очищаются те элементы TLB, которые участвуют в трансляции этого адреса. Инструкция также принимает в регистре ECX номер виртуального адресного пространства (ASID - Address Space Identifier) для которого выполняется операция.


SKINIT

Secure Init and Jump with Attestation. Обеспечивает аппаратную поддержку защиты программных модулей от несанкционированной модификации. Использует внешнее устройство Trusted Platform Module (TPM). Процессор инициализируется для выполнения защищенного фрагмента (Secure Loader), регион памяти, содержащий заданный модуль, защищается от внешнего доступа, его содержимое верифицируется с применением TPM, затем на этот программный модуль передается управление. Инструкция принимает в регистре EAX базовый физический адрес защищаемого модуля Secure Loader, адрес должен быть выровнен на 64 KB. Размер модуля 64 KB.


Рейтинг@Mail.ru

Copyright 2010 V-comp