Лекция 7 (1124168)
Текст из файла
Имитационное моделирование в исследованиии разработке информационных системЛекция 7Эмуляторы процессоровЭмулятор(вставить определение из словаря)Акцент не на изучение, а на использование взаменэмулируемого объектаВремяКод программыцелевой (target)ЦПВходныеданные(или привязка резтов ко времени)Эмуляторинструментальный(host) ЦПэнергопотреблениеРезультаты2Характеристики• Архитектуры host и target– Для одной целевой архитектуры– Для различных архитектур (retargetable)• Точность и детальность– Без учёта времени выполнения– С потактовой точностью времени (cycleclock accurate)– С потактовой точностью (cycle accurate)• Скорость работыИнтерпретирующий эмуляторwhile (!stop()){декодировать;выполнить;обновить_состояние;выбрать следующую команду;}Simplescalar• www.simplescalar.com• доступен бесплатно для учебных иисследовательских целей (на сайтепоследняя версия 3.0 от 2003 г.)• Наборы команд:– Alpha; PISA (учебная машина); в версии4.0 заявлено ARM и x86– Возможность задавать свой наборкоманд• модели кэш-памяти• ? системные вызовы5Язык для описания наборакоманд (LISA)6Эмуляторы с двоичнойтрансляциейСтатическая трансляция• в C/C++, затем в машинный код дляхоста;• Напрямую в команды хоста;• В команды абстрактной машины.• Ускорение – до сотен раз7Динамическая двоичная трансляция• Во время выполнения программы• Кэш для результатов трансляции• Единица трансляции – как правило,линейный участок• Вопросы оптимизации, в т.ч.отображение виртуальных регистровна регистры хост-машины• (рекорд?) 1,6 раз медленнееисполнения на натурной цели [2]8Эмулятор QEMU• www.qemu.org– «full system emulator»– «user-space emulator»• одна из первых статей – 2005 г.• В составе:– эмулятор ЦП;– эмуляторы периферийных устройств• x86, PowerPC, ColdFire (m68k), SPARC,MIPS, ARM …9Двоичная трансляция в QEMUTCG (Tiny Code Generator):• Команда целевого ЦП разделяется намикрооперации;• Микрооперации реализуются на Си икомпилируются для хоста;• Двоичный транслятор склеиваетнужные реализации микрооперацийдля очередного линейного участка• Имеет место оптимизация10Усовершенствование двоичнойтрансляции• Использовать профессиональныйнабор средств для построениякомпиляторов, в частности – LLVM• Применено в эмуляторах:• Rapido• llvm-qemu• SimSoc11LLVM• www.llvm.org• Промежуточное представление(машинные операции, языково-независимаясистема типов, модульность …);• Средства глобальной оптимизации;• Средства межпроцедурной оптимизации;• C, C++, … “front-ends” (на базе GCC);• Многоцелевой генератор машинного кода;• JIT генератор кода;• …12Сравнение методовдинамической трансляцииSimSocDT0: чистая интерпретация;DT1 «простая динамическая трансляция»DT2: инструкция –> функция (статически);п-сть вызовов – динамически;DT3: генерация внутреннего представленияLLVM на основе “домашних заготовок”DT3 вдвое быстрее DT2DT2 в 5-10 раз быстрее DT013Учёт времени выполненияпри быстрой эмуляции (1)Частный случай:– входной язык C/C++;– выполняем программу на хосте, нацели не выполняем (считаем резтхост==рез-тцель);– нужна оценка времени именно длявыполнения на цели14Статико-динамический подход(1) (ЛВК)• Программа разбивается на фрагменты (какправило, линейные участки)• Получаем ассемблерный текст фрагментовдля целевого процессора• Размечаем исходный текст (обновлениесчётчика времени по прохождениифрагмента)• Получаем статически (до прогона)оценки времени выполнения фрагментов• В ходе выполнения, динамически,рассчитываем оценку времени15Статико-динамическийподход (ЛВК)(2)• 1998 г.
Цель: Motorola DSP96002• Хост: microSPARC 33 МГц, i486dx40(для эмулятора)• Погрешность: 0%;• Выигрыш во времени: 10316Модель NM6403 (ЛВК)ТестTemuМодел Emurunь NM (без учета (время свремени) точностьюдо такта)quicksort.cpp7,4 с16 c893 cprimes.cpp4,3 с11 c538 csvertka.asm28,6 с7c110 cДля текстов на asm – статическая компилируемаяэмуляция (трансляция на C++).
Хост Pentium IV 1,4(1,7) ГГцЭмулятор ARM от Fujitsu Lab• Основан на QEMU• Добавлена модель конвейера команд и кэша1 и 2 уровня• При трансляции линейного участка делаетсяоценка времени выполнения при попадании вкэш и правильном предсказании перехода• При выполнении, при необходимости,выполняется корректировка.18Статико-динамический подходFujitsu19Характеристики• Погрешность оценки времени неболее 10%• Время эмуляции в среднем в 3,37раза больше по сравнению сисходным QEMU• Время эмуляции без коррекции всреднем в 1,69 раза больше посравнению с исходным QEMU20Эмулятор с потактовой точностьюна основе QEMU и SystemC• Статья [6]• В транслированный код вставляютсявспомогательные функции,сообщающие о выборке и записи впамять, для взаимодействия скомпонентами на SystemC• 0% погрешность в числе тактов• 17 минут – загрузка ядра Linux(хост Core 2 Duo T7300 2ГГц)21В промышленностиhttp://arm.com/files/pdf/SDD_Fast_Models.pdfARM Fast ModelsHigh performance, high fidelity VirtualPlatform22Ссылки(поправить!)1.
Fast Instruction Set Simulation UsingLLVM-based Dynamic Translation 20112. An Ultra-Fast Instruction Set Simulator20023. Shade: A Fast Instruction-Set Simulatorfor Execution Profiling 19934. Fast Cycle Estimation Methodology forInstruction-Level Emulator 2012, FujitsuLab.23Ссылки (2)5. A Retargetable Framework forInstruction-Set Architecture Simulation20066. A fast cycle-accurate instruction setsimulator based on QEMU and SystemCfor SoC development 201024Спасибо за внимание!25.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.