Рассматривается общая схема работы двоичного транслятора, многоуровневая система оптимизаций, технологии сокращения накладных расходов на трансляцию (долговременное хранение кодов и параллельная трансляция).
При создании микропроцессорных архитектур неизменно актуальной является проблема переноса большого количества программного обеспечения, разработанного для уже выпускаемых микропроцессоров, на новую архитектурную платформу – необходимо либо портировать его, либо создавать заново, что, как правило, нереально. Если же попытаться обеспечить совместимость создаваемой архитектуры с уже существующими, то ее возможности по части внедрения новых идей будут весьма ограничены. Хорошо себя зарекомендовавшим способом решения задачи переноса программного обеспечения на новые архитектуры является технология динамической двоичной трансляции. С ее помощью была реализована совместимость с наиболее распространенной сейчас архитектурой Intel x86 следующих платформ: Itanium фирмы Intel (с помощью программного продукта IA-32 Execution Layer [1]), «Crusoe» и «Efficeon» фирмы Transmeta (с помощью Code Morphing Software, CMS [2]), PowerPC фирмы IBM (с помощью PowerVM Lx86 [3]).
Статья посвящена системе динамической двоичной трансляции из кодов архитектуры x86 в коды архитектуры «Эльбрус» (е2к) [4, 5], описаны общая схема ее работы, различные уровни оптимизаций, реализованных в системе, методы уменьшения накладных расходов на трансляцию. Приведены результаты сравнения производительности микропроцессора «Эльбрус», работающего под управлением системы двоичной трансляции x86 → «Эльбрус», с несколькими микропроцессорами архитектуры x86.
Подробнее... Загрузить файл
Содержание:
Введение
1. Общая структура системы двоичной трансляции
1.1. Общая схема работы
1.2. Трансляторы уровня всей системы и уровня приложений
2. Многоуровневая система оптимизаций
2.1. Мотивация
2.2. Интерпретатор
2.3. Шаблонный транслятор
2.4. Быстрый регионный компилятор
2.5. Оптимизирующий регионный компилятор
2.6. Механизм связывания трансляций
2.7. Показатели производительности и времени трансляции для различных уровней системы
3. Методы уменьшения накладных расходов на трансляцию
3.1. База кодов
3.2. Трансляция в параллельном потоке
4. Экспериментальные результаты
Литература