1 / 18

Студент 6го курса Ситало Алексей Юрьевич Научный руководитель Гурин Константин Львович

Использование технологии компиляции на этапе исполнения (JIT) для моделирования работы микропроцессоров. Студент 6го курса Ситало Алексей Юрьевич Научный руководитель Гурин Константин Львович. sim. fetch. decode. exec 1. exec 2. exec N. Пошаговый интерпретатор. Плюсы:

Download Presentation

Студент 6го курса Ситало Алексей Юрьевич Научный руководитель Гурин Константин Львович

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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. Сложности реализации декодеров

  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) Данная технология будет в дальнейшем применяться в проектах ЗАО «МЦСТ»

More Related