Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемНаталия Борковская
1 Использование технологии компиляции на этапе исполнения (JIT) для моделирования работы микропроцессоров. Студент 6го курса Ситало Алексей Юрьевич Научный руководитель Гурин Константин Львович
2 Пошаговый интерпретатор Плюсы: Простота реализации Гибкость (контрольная точка – в любом месте) Минусы: Низкая скорость exec 1exec 2exec N... sim decode fetch
3 Симулятор с использованием JIT. Плюсы: Высокая скорость Минусы: Сложность реализации
4 Этапы реализации симулятора с JIT. Кэш откомпилированных блоков Механизм контрольной точки Поддержка самомодифицирующегося кода Оптимизация передачи управления Средства контроля памяти Перенос часто используемых данных на регистры микропроцессора Другие особенности
5 Постановка задачи Оценить прирост производительности симулятора простейшей микропроцессорной архитектуры после применения технологии компиляции на этапе исполнения.
6 Цель исследования Определить моделируемую архитектуру и систему команд Создать программные модели: Пошаговый интерпретатор Симулятор на основе jit-компиляции Написать тесты Сравнить результаты тестирования
7 Архитектура ssim RISC, мнемоника – сокращённая SPARC v8 Команды: арифметико-логические, ld/st, jump, call/ret, int и др. Регистровый файл AX - HX, IP/NIP и др.
8 Виды программных моделей ssim Пошаговый интерпретатор (sim) Компиляция на этапе исполнения: С помощью байт кода Отсутствует кэш команд (dyngen) Присутствует кэш: hash-table (dyngen-hash) Присутствует кэш: map-tree (dyngen-tree) На основе jit-макросов библиотеки GNU lightning Отсутствует кэш (jit) Присутствует кэш: hash-table (jit-hash) Присутствует кэш: map-tree (jit-tree)
9 Этапы реализации симулятора с JIT. Кэш откомпилированных блоков Механизм контрольной точки Поддержка самомодифицирующегося кода Оптимизация передачи управления Средства контроля памяти Перенос часто используемых данных на регистры микропроцессора Другие особенности
10 Реализация кэша блоков В виде хэш-таблицы Блоки хранятся в разреженном массиве Ключ – младшая часть адреса начала блока (ip) Отражает расположение блоков в памяти Древовидно Блоки записываются в массив в порядке их появления Дополнительный ассоциированный массив хранит индексы Отражает логическую структуру программы
11 Реализация механизма контрольной точки Simulator CPU Reg_file AX BX … NIP MMU MMU_Area hi 16Mb MMU_Area lo 16Мb Контрольная точка (КТ) – возможность сохранения/восстанов ления полного состояния симулятора Реализованы функции dump() и recover() для каждого объекта КТ используется для точной обработки прерываний в JIT- модели
12 Сложности реализации декодеров simdyngenjitmacros Компиляция исполнительных функций статическиjust in-time, по блокам just in-time, по блокам Внутренний форматпара: адрес, команда Байт-код: список микрокоманд список параметров макросы, подобные по мнемонике RISC- архитектуре ТехнологияРазбор switch – конструкцией, передача управления на статическую функцию 1. Трансляция блока в байт- код 2. Генерация из байт-кода хост-кода Разбор switch- конструкцией, компиляция группой макросов хост- кода Вспомогательные инструменты нетdyngen эмулятора Qemu Библиотека GNU lightning
13 Тесты Тесты проверки корректности логики Тестирование производительности Перемножение матриц (mm) N = 64, 80…208 Сортировка массива (sort) – «сортировка выбором» Инициализация A, B, C линейной конгруэнтной последовательностью A[n+1]=(a*A[n]+c) mod m N = 1024, 2048…10240 Поиск элементов в упорядоченном массиве (search) – «бинарный поиск» Инициализация A, B, C, приращения A[i+1]-A[i] – линейная конгруэнтная последовательность N = 256, 512…2560
14 Перемножение матриц (mm)
15 Сортировка массива (sort)
16 Поиск элементов в массиве (search)
17 Оценка прироста производительности
18 Заключение Проведено исследование эффективности технологии компиляции на этапе исполнения в применении к моделированию микропроцессора: Прирост производительности симулятора от применения jit-компиляции в 2-4 раза (в зависимости от задачи) Библиотека GNU lightning на 20-30% даёт больше прирост производительности, чем byte-code Прирост производительности не зависит от способа кэширования блоков (hash-table / tree-map) Данная технология будет в дальнейшем применяться в проектах ЗАО «МЦСТ»
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.