Благодаря пакету FX32 корпорации Digital Alpha-системы способны выполнять 32-разрядные приложения Windows почти с той же скоростью, что и ПК с Pentium Pro

 

Не вызывает сомнений, что процессоры Alpha корпорации Digital превосходят в производительности процессоры X86 корпорации Intel, однако до сих пор существенным препятствием для роста популярности Alpha-систем было недостаточное число предназначенных для них бизнес-приложений.

 

Разработанный в Digital эмуляционный пакет FX32 не только позволяет использовать на Alpha-системах широкий спектр 32-разрядных Windows-приложений, созданных для ПК с процессорами X86, но и обеспечивает скорость их выполнения, близкую к той, которую демонстрируют системы с Pentium Pro.

 

Распространяемый свободно с Web-узла Digital (http: //www.digital.com) пакет FX32 работает на любой Alpha-системе. Реализованная в нем технология эмуляции позволяет преобразовать 32-разрядный Windows-код, написанный для процессоров X86, в Alpha-совместимые двоичные файлы.

 

Каков же результат? В ходе испытаний, проведенных в Тестовом центре PC Week Labs, одна из новейших рабочих станций Digital, оснащенная 433 МГц процессором Alpha и выполнявшая собственные приложения с обычной скоростью, при запуске приложений для X86 продемонстрировала производительность, близкую к производительности рабочих станций с 200 МГц процессором Pentium Pro (описание и схема тестирования приведены ниже).

 

Это означает, что пользователи специализированных приложений типа САПР с повышенными требованиями к производительности аппаратной платформы могут работать с Alpha-системами и не думать о том, что для бизнес-приложений им придется использовать другой компьютер или смириться с медленным выполнением этих приложений в режиме эмуляции для Alpha-процессора.

 

Быстрое выполнение приложений для X86 обеспечивают три компонента пакета FX32  -  сервер “прозрачной” среды, исполнительные среда и эмулятор и фоновый оптимизатор. С их помощью приложения преобразуются в двоичные коды процессора Alpha (см. схему).

 

При запуске приложения для X86 на Alpha-системе сервер “прозрачной” среды пакета FX32 определяет, было ли оно преобразовано. Если нет, сервер передает программу исполнительному эмулятору, который и выполняет программу в режиме эмуляции.

 

Поскольку эмулятор обрабатывает код, написанный исключительно для Win32 API, он легко может следить за выполнением программы, отслеживая вызовы системы NT. Эмулятор регистрирует эмулированные части приложения в профиле программы для дальнейшего использования в фазе трансляции.

 

После остановки выполнения приложения в фоновом режиме начинает работать оптимизатор FX32, обеспечивая трансляцию исполняемых файлов приложения и DLL-файлов (DLL  -  динамически подключаемые библиотеки) на основе записей в профиле программы.

 

Код, транслированный в двоичные файлы для процессора Alpha, FX32 сохраняет в виде DLL.

 

При повторном выполнении того же приложения сервер “прозрачной” среды пакета FX32 проверяет файл регистрации и вместо исходного кода для X86 запускает транслированные DLL-файлы, минуя исполнительный эмулятор. При вызове пользователем функций приложения, требующих исполнения ранее не использовавшихся файлов и DLL-модулей, процедура эмуляции и последующей трансляции возобновляется.

 

         Майкл Кейтон (PC Week Labs)

 

ИСПОЛЬЗУЕМАЯ В FX32 СХЕМА ПРЕОБРАЗОВАНИЯ КОДА ПРОЦЕССОРА INTEL X86 ДЛЯ ИСПОЛНЕНИЯ НА ALPHA-СИСТЕМАХ

 

Технология Digital обеспечивает максимальное использование ранее оттранслированного кода

 

Приложения для X86

 

Сервер “прозрачной” среды

 

При загрузке приложений для X86 сервер “прозрачной” среды пакета FX32 по записям в профиле программы определяет, выполнялся ли код ранее. Если нет, код выполняется в режиме эмуляции, и сервер вносит регистрационную запись в профиль программы.

 

Исполнительные среда и эмулятор

 

Исполнительный эмулятор работает с кодом, генерированным фоновым оптимизатором. Собственные коды выполняются в обычном режиме, а коды для X86  -  в режиме эмуляции.

 

Фоновый оптимизатор

 

После выгрузки приложения оптимизатор проверяет профиль программы. Если в нем появились новые записи, оптимизатор транслирует двоичные коды процессора X86 в Alpha-совместимые.

 

Профиль программы

 

Двоичные файлы для Alpha