
Сегодня в индустрии программного обеспечения важное место занимают разнообразные фреймворки и абстракции, скрывающие от разработчика особенности программно-аппаратной среды. Вопреки такой тенденции, предлагаем вниманию энтузиастов исследования вычислительных платформ, и просто «истинным музыкантам, которые в состоянии за полчаса разобрать и собрать пианино» небольшой обзор функциональности эмулятора AMD SimNow в скрин-шотах.
В описанном опыте SimNow установлен на виртуальной машине Oracle Virtual Box, работающей на ноутбуке ASUS N750JK с процессором Intel Haswell. Таким образом, имеет место вложенная виртуализация, кроме того, хост-платформа и эмулируемая система авторства конкурирующих компаний, тем не менее, это работает.
Однопроцессорная платформа
Архитектуру виртуальной машины можно создавать, просматривать и редактировать на уровне блок-схемы. В этом примере платформа на основе системной логики ATI, содержащая один процессор, чипсет из двух микросхем, подсистему памяти, видеоадаптер, Super IO, и Firmware ROM (Memory Device #4). Подчеркнем степень подробности описания: подсистема памяти (DIMM Bank #3) имеет два подключения: к контроллеру памяти в составе процессора и к южному мосту ATI-SB600 для доступа к микросхемам SPD (Serial Presence Detect) модулей оперативной памяти по шине SMBus (System Management Bus).
Четырехпроцессорная NUMA-платформа
Эта более сложная виртуальная машина является четырехпроцессорной NUMA-системой. Режим редактирования свойств компонентов и связей между ними, в сочетании с гибкостью шины Hyper-Transport, позволяет отключать процессоры и модули памяти, динамически изменяя NUMA-топологию и наблюдая реакцию программного обеспечения. Эмулятор проверяет физическую реализуемость спроектированной системы, но не защищает исследователя от самого себя: задавая некоторые нетипичные конфигурации можно вызвать сбой firmware платформы. Отметим, что наличие библиотеки из 15 готовых конфигураций поможет начать работу с продуктом не имея опыта проектирования мультипроцессорных систем. Диалоговое окно в правом нижнем углу скрин-шота, позволяет задать файл образа Firmware и тип микросхемы Flash ROM. В данном случае установлено значение Not Present для опции Flash Part, запрещающее обновление firmware виртуальной платформы.
Фотографируем экран Phoenix BIOS POST
Виртуальную машину можно в любой момент остановить, сделать снимок состояния системы или образ экрана, затем продолжить выполнение. Хотя замечено, что если сохранение и восстановление выполнить в момент работы BIOS Setup, работа эмулятора может нарушиться.
Особенности Phoenix BIOS Setup
Незаслуженно забытая опция Node Memory Interleave в Phoenix BIOS Setup в свое время помогала при необходимости сконфигурировать мультипроцессорную платформу для работы под управлением устаревшей операционной системы, не поддерживающей NUMA-топологию. При включении этой опции, страницы памяти, относящиеся к различным доменам (процессорам) будут равномерно перетасованы в адресном пространстве, при этом ACPI-таблица SRAT (System/Static Resource Affinity Table) не генерируется firmware. Комментарий из Item Specific Help подтверждает данный тезис.
Операционная система на виртуальной машине
На виртуальную машину можно установить операционную систему. В нашем варианте это Windows XP x64. Перечислим уровни вложенности в этом примере.
- Уровень 1: Хостовая ОС Windows 8.1 работает на платформе: ноутбук ASUS N750JK (Intel Haswell).
- Уровень 2: Виртуальная машина Oracle Virtual Box.
- Уровень 3: Гостевая ОС Windows 7 под гипервизором Oracle Virtual Box
- Уровень 4: Эмулятор AMD SimNow под гостевой ОС Windows 7
- Уровень 5: Гостевая ОС Windows XP x64 под эмулятором AMD SimNow
Хост-платформа не имеет аппаратной поддержки вложенной виртуализации. Поэтому логично предположить, что в описываемой многоуровневой «пирамиде», возможностями технологий акселерации виртуальных машин Intel VT-x и Intel VT-d пользуется только Oracle Virtual Box. На производительности это, увы, отразилось.
Замеченные недостатки
К сожалению, дисциплина совместного использования клавиатуры и мыши в системе с таким количеством ОС и виртуализаторов, иногда «хромает», а установка более современных гостевых ОС, например Windows 7, приводит к аварийному завершению работы эмулятора, либо инсталлятора гостевой ОС (в зависимости от типа виртуальной машины). Кроме того, в эмуляторе отсутствует поддержка UEFI. Хотелось бы надеяться на выход обновленной версии столь функционального продукта.
Где скачать?
Эмулятор доступен для загрузки на сайте поддержки разработчиков AMD. В нашем эксперименте использовались ОС Microsoft. Поддерживается и Linux, причем как в качестве хостовой, так и гостевой ОС.