V-comp

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

 
 
 












Регионы Host Save Area и VMCB

Технология AMD SVM определяет следующие две специальные области памяти.


Host Save Area

Этот регион используется для сохранения состояния гипервизора при запуске "гостевой" программы и восстановления этого ранее сохраненного состояния при возврате из "гостевой" программы в гипервизор. Предположительно, размер этого блока не превышает 4KB (к сожалению, в документации AMD точное значение размера не указано). Его 64-битный физический адрес находится в регистре VM_HSAVE_PA MSR (MSR с адресом C0010117h). Адрес должен быть выровнен на 4KB, и находиться в пределах максимального физического адреса, поддерживаемого процессором. Регион Host Save Area аппаратно используется процессором, и программные обращения к этому региону не рекомендуются по двум причинам: его форматирование может различаться в зависимости от модели процессора, его содержимое кэшируется во внутренних буферах процессора, при этом не гарантируется когерентность содержимого этих буферов и региона памяти. Отметим, что у Intel аналогичная ситуация с регионом VMXON.

VMCB (Virtual Machine Control Block)

Этот регион используется для управления виртуальной машиной и работающей на ней "гостевой" программой. Его размер - 4 KB, а базовый физический адрес указывается в регистре EAX (для 32-битного режима) или RAX (для 64-битного режима) при выполнении инструкции VMRUN. Эта инструкция запускает виртуальную машину. Требования к базовому физическому адресу такие же, как для региона Host Save Area. В отличие от региона Host Save Area и в отличие от региона VMCS у Intel, форматирование региона VMCB документировано. Он состоит из двух логических групп:
1) Control Area используется для управления работой виртуальной машины и задания списков системных ресурсов и машинных инструкций, использование которых запрещено "гостю". При обращении последнего к этим ресурсам, его работа прерывается, и управление передается в гипервизор для эмуляции или генерации сообщения об ошибке. Здесь также находятся статусные поля, аппаратно обновляемые процессором при завершении работы виртуальной машины. По их содержимому гипервизор может определить причину завершения "гостя".
2) State Save Area используется для загрузки состояния "гостя" при его запуске и сохранения его состояния при возврате в гипервизор.


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

Рейтинг@Mail.ru

Copyright 2010 V-comp