Имитационное моделирование в исследовании и разработке информационных систем Лекция 7 Эмуляторы процессоров.

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



Advertisements
Похожие презентации
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Advertisements

АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 6: Уровень архитектуры набора команд ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв.
Имитационное моделирование в исследовании и разработке информационных систем Лекция 9 Имитационное моделирование аппаратных и программных средств вычислительных.
Введение в параллельную обработку. Уровни параллелизма в процессорах Параллелизм данных (DLP – Data Level Parallelism) Параллелизм команд (ILP – Instruction.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
1 Карагандинский государственный технический университет Лекция 4-1. Особенности задач оптимизации. «Разработка средств механизации для устройства «Разработка.
Процессор – это блок, предназначенный для автоматического считывания команд программы, их расшифровки и выполнения.
АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 5: Уровень микроархитектуры ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв Л.Н.,
АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 2: Типовое устройство компьютера ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Процессоры Типы процессоров и их характеристики. Регистры общего назначения Запись данных для хранения Чтение данных Изменение данных Использование в.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx в IDE Code Composer Studio Часть I. Основные возможности среды разработки CCS.
RISC-архитектуры ( Reduced Instruction Set Computer)
Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования Алгоритмизация и программирование. Языки программирования.
Процессоры Устройство центрального процессора Задачи процессора: вызов команд, определение их типа и выполнение. Основные компоненты: устройство управления,
Использование языка Си для программирования ЦСП TMS320C67x.
АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 7: Уровень операционной системы. Уровень ассемблера. ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор,
Транксрипт:

Имитационное моделирование в исследовании и разработке информационных систем Лекция 7 Эмуляторы процессоров

Эмулятор (вставить определение из словаря) 2 Акцент не на изучение, а на использование взамен эмулируемого объекта Код программы Входные данные Эмулятор Результаты Время (или привязка рез- тов ко времени) целевой (target) ЦП инструментальный (host) ЦП энергопотребление

Характеристики Архитектуры host и target –Для одной целевой архитектуры –Для различных архитектур (retargetable) Точность и детальность –Без учёта времени выполнения –С потактовой точностью времени (cycle clock accurate) –С потактовой точностью (cycle accurate) Скорость работы

Интерпретирующий эмулятор while (!stop()) { декодировать; выполнить; обновить_состояние; выбрать следующую команду; }

Simplescalar доступен бесплатно для учебных и исследовательских целей (на сайте последняя версия 3.0 от 2003 г.) Наборы команд: –Alpha; PISA (учебная машина); в версии 4.0 заявлено ARM и x86 –Возможность задавать свой набор команд модели кэш-памяти ? системные вызовы 5

Язык для описания набора команд (LISA) 6

Эмуляторы с двоичной трансляцией Статическая трансляция в C/C++, затем в машинный код для хоста; Напрямую в команды хоста; В команды абстрактной машины. Ускорение – до сотен раз 7

Динамическая двоичная трансляция Во время выполнения программы Кэш для результатов трансляции Единица трансляции – как правило, линейный участок Вопросы оптимизации, в т.ч. отображение виртуальных регистров на регистры хост-машины (рекорд?) 1,6 раз медленнее исполнения на натурной цели [2] 8

Эмулятор QEMU –«full system emulator» –«user-space emulator» одна из первых статей – 2005 г. В составе: –эмулятор ЦП; –эмуляторы периферийных устройств x86, PowerPC, ColdFire (m68k), SPARC, MIPS, ARM … 9

Двоичная трансляция в QEMU TCG (Tiny Code Generator): Команда целевого ЦП разделяется на микрооперации; Микрооперации реализуются на Си и компилируются для хоста; Двоичный транслятор склеивает нужные реализации микроопераций для очередного линейного участка Имеет место оптимизация 10

Усовершенствование двоичной трансляции Использовать профессиональный набор средств для построения компиляторов, в частности – LLVM Применено в эмуляторах: Rapido llvm-qemu SimSoc 11

LLVM Промежуточное представление (машинные операции, языково-независимая система типов, модульность …); Средства глобальной оптимизации; Средства меж процедурной оптимизации; C, C++, … front-ends (на базе GCC); Многоцелевой генератор машинного кода; JIT генератор кода; … 12

Сравнение методов динамической трансляции SimSoc DT0: чистая интерпретация; DT1 «простая динамическая трансляция» DT2: инструкция –> функция (статически); пусть вызовов – динамически; DT3: генерация внутреннего представления LLVM на основе домашних заготовок DT3 вдвое быстрее DT2 DT2 в 5-10 раз быстрее DT0 13

Учёт времени выполнения при быстрой эмуляции (1) Частный случай: –входной язык C/C++; –выполняем программу на хосте, на цели не выполняем (считаем рез- т хост ==рез-т цель ); –нужна оценка времени именно для выполнения на цели 14

Статико-динамический подход (1) (ЛВК) Программа разбивается на фрагменты (как правило, линейные участки) Получаем ассемблерный текст фрагментов для целевого процессора Размечаем исходный текст (обновление счётчика времени по прохождении фрагмента) Получаем статически (до прогона) оценки времени выполнения фрагментов В ходе выполнения, динамически, рассчитываем оценку времени 15

Статико-динамический подход (ЛВК)(2) 1998 г. Цель: Motorola DSP96002 Хост: microSPARC 33 МГц, i486dx40 (для эмулятора) Погрешность: 0%; Выигрыш во времени:

Модель NM6403 (ЛВК) 538 c 11 c 4,3 сprimes.cpp 893 c 16 c 7,4 сquicksort.cpp 110 c 7 c 28,6 сsvertka.asm Temu (время с точностью до такта) Emurun (без учета времени) Модел ь NM Тест Для текстов на asm – статическая компилируемая эмуляция (трансляция на C++). Хост Pentium IV 1,4 (1,7) ГГц

Эмулятор ARM от Fujitsu Lab 18 Основан на QEMU Добавлена модель конвейера команд и кэша 1 и 2 уровня При трансляции линейного участка делается оценка времени выполнения при попадании в кэш и правильном предсказании перехода При выполнении, при необходимости, выполняется корректировка.

Статико-динамический подход Fujitsu 19

Характеристики Погрешность оценки времени не более 10% Время эмуляции в среднем в 3,37 раза больше по сравнению с исходным QEMU Время эмуляции без коррекции в среднем в 1,69 раза больше по сравнению с исходным QEMU 20

Эмулятор с потактовой точностью на основе QEMU и SystemC Статья [6] В транслированный код вставляются вспомогательные функции, сообщающие о выборке и записи в память, для взаимодействия с компонентами на SystemC 0% погрешность в числе тактов 17 минут – загрузка ядра Linux (хост Core 2 Duo T7300 2ГГц) 21

В промышленности s.pdf ARM Fast Models High performance, high fidelity Virtual Platform 22

Ссылки (поправить!) 1. Fast Instruction Set Simulation Using LLVM-based Dynamic Translation An Ultra-Fast Instruction Set Simulator Shade: A Fast Instruction-Set Simulator for Execution Profiling Fast Cycle Estimation Methodology for Instruction-Level Emulator 2012, Fujitsu Lab. 23

Ссылки (2) 5. A Retargetable Framework for Instruction-Set Architecture Simulation A fast cycle-accurate instruction set simulator based on QEMU and SystemC for SoC development

25 Спасибо за внимание!