Использование технологии компиляции на этапе исполнения (JIT) для моделирования работы микропроцессоров. Студент 6го курса Ситало Алексей Юрьевич Научный.

Презентация:



Advertisements
Похожие презентации
Выпускная квалификационная работа Исследование аппаратной предвыборки данных в кэш второго уровня микропроцессора Студент: Гребенкин А.П., 816 гр. Научный.
Advertisements

Введение в теорию компиляции Основные принципы построения трансляторов.
ЛАБОРАТОРНАЯ РАБОТА 1 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ТРАНСЛЯТОРЕ Рейн Т. С.
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде Куделевский Евгений Валерьевич, 545 группа Научный руководитель:
Лекция 6. Способы адресации в микропроцессорных системах.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Выполнил: Желнин С.В. Научный руководитель: Фельдман В.М.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Реализация индексного анализа для деревьев циклов любого вида сложности Выполнил : студент 818 гр. Юдин Павел Научный руководитель : к. т. н. Муханов Л.
Механизмы поиска в БД Структуры индексов. Основные виды индексов Простые индексы для упорядоченных файлов Вторичные индексы для неупорядоченных файлов.
Виртуальная машина для работы с деревьями 3м Автор: Ханов А.Р. Научный руководитель: Зеленчук И.В.
ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем Алгоритмы поиска Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных.
Механизмы поиска в БД Структуры индексов. Основные виды индексов Простые индексы для упорядоченных файлов Вторичные индексы для неупорядоченных файлов.
АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ Лекции для студентов-заочников 2 курса, специальность (Прикладная информатика)
МГУ имени Ломоносова, механико-математический факультет, кафедра вычислительной математики Исследование проблемы переполнения буферов в программах Пучков.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ФИЗИКО - ТЕХНИЧЕСКИЙ ИНСТИТУТ (государственный университет) Устройство управления вещественного.
Принципы адаптации вычислительных алгоритмов под параллельную архитектуру графических акселераторов С.М.Вишняков научный руководитель: д.т.н. А.В.Бухановский.
1 Диаграммы реализации (implementation diagrams).
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Введение в параллельную обработку. Уровни параллелизма в процессорах Параллелизм данных (DLP – Data Level Parallelism) Параллелизм команд (ILP – Instruction.
Транксрипт:

Использование технологии компиляции на этапе исполнения (JIT) для моделирования работы микропроцессоров. Студент 6го курса Ситало Алексей Юрьевич Научный руководитель Гурин Константин Львович

Пошаговый интерпретатор Плюсы: Простота реализации Гибкость (контрольная точка – в любом месте) Минусы: Низкая скорость exec 1exec 2exec N... sim decode fetch

Симулятор с использованием JIT. Плюсы: Высокая скорость Минусы: Сложность реализации

Этапы реализации симулятора с JIT. Кэш откомпилированных блоков Механизм контрольной точки Поддержка самомодифицирующегося кода Оптимизация передачи управления Средства контроля памяти Перенос часто используемых данных на регистры микропроцессора Другие особенности

Постановка задачи Оценить прирост производительности симулятора простейшей микропроцессорной архитектуры после применения технологии компиляции на этапе исполнения.

Цель исследования Определить моделируемую архитектуру и систему команд Создать программные модели: Пошаговый интерпретатор Симулятор на основе jit-компиляции Написать тесты Сравнить результаты тестирования

Архитектура ssim RISC, мнемоника – сокращённая SPARC v8 Команды: арифметико-логические, ld/st, jump, call/ret, int и др. Регистровый файл AX - HX, IP/NIP и др.

Виды программных моделей ssim Пошаговый интерпретатор (sim) Компиляция на этапе исполнения: С помощью байт кода Отсутствует кэш команд (dyngen) Присутствует кэш: hash-table (dyngen-hash) Присутствует кэш: map-tree (dyngen-tree) На основе jit-макросов библиотеки GNU lightning Отсутствует кэш (jit) Присутствует кэш: hash-table (jit-hash) Присутствует кэш: map-tree (jit-tree)

Этапы реализации симулятора с JIT. Кэш откомпилированных блоков Механизм контрольной точки Поддержка самомодифицирующегося кода Оптимизация передачи управления Средства контроля памяти Перенос часто используемых данных на регистры микропроцессора Другие особенности

Реализация кэша блоков В виде хэш-таблицы Блоки хранятся в разреженном массиве Ключ – младшая часть адреса начала блока (ip) Отражает расположение блоков в памяти Древовидно Блоки записываются в массив в порядке их появления Дополнительный ассоциированный массив хранит индексы Отражает логическую структуру программы

Реализация механизма контрольной точки Simulator CPU Reg_file AX BX … NIP MMU MMU_Area hi 16Mb MMU_Area lo 16Мb Контрольная точка (КТ) – возможность сохранения/восстанов ления полного состояния симулятора Реализованы функции dump() и recover() для каждого объекта КТ используется для точной обработки прерываний в JIT- модели

Сложности реализации декодеров simdyngenjitmacros Компиляция исполнительных функций статическиjust in-time, по блокам just in-time, по блокам Внутренний форматпара: адрес, команда Байт-код: список микрокоманд список параметров макросы, подобные по мнемонике RISC- архитектуре ТехнологияРазбор switch – конструкцией, передача управления на статическую функцию 1. Трансляция блока в байт- код 2. Генерация из байт-кода хост-кода Разбор switch- конструкцией, компиляция группой макросов хост- кода Вспомогательные инструменты нетdyngen эмулятора Qemu Библиотека GNU lightning

Тесты Тесты проверки корректности логики Тестирование производительности Перемножение матриц (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

Перемножение матриц (mm)

Сортировка массива (sort)

Поиск элементов в массиве (search)

Оценка прироста производительности

Заключение Проведено исследование эффективности технологии компиляции на этапе исполнения в применении к моделированию микропроцессора: Прирост производительности симулятора от применения jit-компиляции в 2-4 раза (в зависимости от задачи) Библиотека GNU lightning на 20-30% даёт больше прирост производительности, чем byte-code Прирост производительности не зависит от способа кэширования блоков (hash-table / tree-map) Данная технология будет в дальнейшем применяться в проектах ЗАО «МЦСТ»