x86 code
ARM code
ДТ
СДТ
Byte code
Executable code
JIT
Динамическая трансляция
Профильная
Информация
Уровни Оптимизации
……….
Агрессивный Оптимизатор
Быстрый Транслятор
Адрес Региона
Адрес входного кода
Код Региона
Интерпретатор
Наборщик регионов
Адрес Региона
Адрес входного кода
Драйвер трансляции
Регион - единица трансляции ДТ
Профильная информация - статистика динамического поведения программы
Код Региона
1
2
3
4
Optimization overhead
Performance
Source code
MMX code
SSE3 code
AVX code
Sandy Bridge
Intel Core
Pentium II
Модуль A
Область оптимизации
Модуль Б
Область оптимизации
Модуль A
Область оптимизации
Модуль Б
СДТ
Языковой компилятор
for ( … )
{
a[i++] = b; //store
c = *invariant_ptr; //load
}
inv_reg = *invariant_ptr; //load
for ( … )
{
a[i++] = b; //store +HW check
c = inv_reg;
}
Вынос инвариантного чтения памяти из цикла блокируется возможным пересечением с адресами записи
Специальный аппаратный контроль обращений в память и поддержка в СДТ позволяет сделать вынос чтения безопасным
Исходный код
После ДТ
Путь к новым архитектурам
Алг.широкий
x86 код
Узкий код
на исполн.
x86
CPU
New
CPU
Алг.широкий
x86 код
Широкий код
на исполн.
New
CPU
+ДТ
x86 code A
x86 code B
x86 code C
ДТ
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть