Вы здесь

Система динамической двоичной трансляции х86 “Эльбрус”

Рассматривается общая схема работы двоичного транслятора, многоуровневая система оптимизаций, технологии сокращения накладных расходов на трансляцию (долговременное хранение кодов и параллельная трансляция).

При создании микропроцессорных архитектур неизменно актуальной является проблема переноса большого количества программного обеспечения, разработанного для уже выпускаемых микропроцессоров, на новую архитектурную платформу – необходимо либо портировать его, либо создавать заново, что, как правило, нереально. Если же попытаться обеспечить совместимость создаваемой архитектуры с уже существующими, то ее возможности по части внедрения новых идей будут весьма ограничены. Хорошо себя зарекомендовавшим способом решения задачи переноса программного обеспечения на новые архитектуры является технология динамической двоичной трансляции. С ее помощью была реализована совместимость с наиболее распространенной сейчас архитектурой 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. Экспериментальные результаты

Литература

 

Н.В.Воронов
В.Д.Гимпельсон
М.В.Маслов
А.А.Рыбаков
Н.С.Сюсюкалов