Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемНаталия Пашанина
1 Имитационное моделирование в исследовании и разработке информационных систем Лекция 7 Эмуляторы процессоров
2 Эмулятор (вставить определение из словаря) 2 Акцент не на изучение, а на использование взамен эмулируемого объекта Код программы Входные данные Эмулятор Результаты Время (или привязка рез- тов ко времени) целевой (target) ЦП инструментальный (host) ЦП энергопотребление
3 Характеристики Архитектуры host и target –Для одной целевой архитектуры –Для различных архитектур (retargetable) Точность и детальность –Без учёта времени выполнения –С потактовой точностью времени (cycle clock accurate) –С потактовой точностью (cycle accurate) Скорость работы
4 Интерпретирующий эмулятор while (!stop()) { декодировать; выполнить; обновить_состояние; выбрать следующую команду; }
5 Simplescalar доступен бесплатно для учебных и исследовательских целей (на сайте последняя версия 3.0 от 2003 г.) Наборы команд: –Alpha; PISA (учебная машина); в версии 4.0 заявлено ARM и x86 –Возможность задавать свой набор команд модели кэш-памяти ? системные вызовы 5
6 Язык для описания набора команд (LISA) 6
7 Эмуляторы с двоичной трансляцией Статическая трансляция в C/C++, затем в машинный код для хоста; Напрямую в команды хоста; В команды абстрактной машины. Ускорение – до сотен раз 7
8 Динамическая двоичная трансляция Во время выполнения программы Кэш для результатов трансляции Единица трансляции – как правило, линейный участок Вопросы оптимизации, в т.ч. отображение виртуальных регистров на регистры хост-машины (рекорд?) 1,6 раз медленнее исполнения на натурной цели [2] 8
9 Эмулятор QEMU –«full system emulator» –«user-space emulator» одна из первых статей – 2005 г. В составе: –эмулятор ЦП; –эмуляторы периферийных устройств x86, PowerPC, ColdFire (m68k), SPARC, MIPS, ARM … 9
10 Двоичная трансляция в QEMU TCG (Tiny Code Generator): Команда целевого ЦП разделяется на микрооперации; Микрооперации реализуются на Си и компилируются для хоста; Двоичный транслятор склеивает нужные реализации микроопераций для очередного линейного участка Имеет место оптимизация 10
11 Усовершенствование двоичной трансляции Использовать профессиональный набор средств для построения компиляторов, в частности – LLVM Применено в эмуляторах: Rapido llvm-qemu SimSoc 11
12 LLVM Промежуточное представление (машинные операции, языково-независимая система типов, модульность …); Средства глобальной оптимизации; Средства меж процедурной оптимизации; C, C++, … front-ends (на базе GCC); Многоцелевой генератор машинного кода; JIT генератор кода; … 12
13 Сравнение методов динамической трансляции SimSoc DT0: чистая интерпретация; DT1 «простая динамическая трансляция» DT2: инструкция –> функция (статически); пусть вызовов – динамически; DT3: генерация внутреннего представления LLVM на основе домашних заготовок DT3 вдвое быстрее DT2 DT2 в 5-10 раз быстрее DT0 13
14 Учёт времени выполнения при быстрой эмуляции (1) Частный случай: –входной язык C/C++; –выполняем программу на хосте, на цели не выполняем (считаем рез- т хост ==рез-т цель ); –нужна оценка времени именно для выполнения на цели 14
15 Статико-динамический подход (1) (ЛВК) Программа разбивается на фрагменты (как правило, линейные участки) Получаем ассемблерный текст фрагментов для целевого процессора Размечаем исходный текст (обновление счётчика времени по прохождении фрагмента) Получаем статически (до прогона) оценки времени выполнения фрагментов В ходе выполнения, динамически, рассчитываем оценку времени 15
16 Статико-динамический подход (ЛВК)(2) 1998 г. Цель: Motorola DSP96002 Хост: microSPARC 33 МГц, i486dx40 (для эмулятора) Погрешность: 0%; Выигрыш во времени:
17 Модель 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) ГГц
18 Эмулятор ARM от Fujitsu Lab 18 Основан на QEMU Добавлена модель конвейера команд и кэша 1 и 2 уровня При трансляции линейного участка делается оценка времени выполнения при попадании в кэш и правильном предсказании перехода При выполнении, при необходимости, выполняется корректировка.
19 Статико-динамический подход Fujitsu 19
20 Характеристики Погрешность оценки времени не более 10% Время эмуляции в среднем в 3,37 раза больше по сравнению с исходным QEMU Время эмуляции без коррекции в среднем в 1,69 раза больше по сравнению с исходным QEMU 20
21 Эмулятор с потактовой точностью на основе QEMU и SystemC Статья [6] В транслированный код вставляются вспомогательные функции, сообщающие о выборке и записи в память, для взаимодействия с компонентами на SystemC 0% погрешность в числе тактов 17 минут – загрузка ядра Linux (хост Core 2 Duo T7300 2ГГц) 21
22 В промышленности s.pdf ARM Fast Models High performance, high fidelity Virtual Platform 22
23 Ссылки (поправить!) 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
24 Ссылки (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 25 Спасибо за внимание!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.