АРМулятор
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
ARM Симулятор набора инструкций , также известный как ARMulator , — это один из инструментов разработки программного обеспечения, предоставляемый подразделением систем разработки компании ARM Limited всем пользователям чипов на базе ARM. Своим наследием он обязан ранней разработке инструкций, установленных Софи Уилсон . Часть этого наследия все еще видна в предоставлении модели Tube BBC Micro в ARMulator.
Функции
[ редактировать ]ARMulator написан на C и представляет собой нечто большее, чем просто симулятор набора команд, он предоставляет виртуальную платформу для эмуляции системы. Он готов к эмуляции процессора ARM и некоторых сопроцессоров ARM . Если процессор является частью встроенной системы , то лицензиаты могут расширить ARMulator, добавив в модель ARMulator свои собственные реализации дополнительного оборудования. ARMulator предоставляет ряд сервисов, помогающих с поведением на основе времени и планированием событий, а также поставляется с примерами отображения памяти и расширения сопроцессора. Таким образом, они могут использовать ARMulator для эмуляции всей встроенной системы . Ключевым ограничением ARMulator является то, что он может одновременно моделировать только один процессор ARM, хотя почти все ядра ARM до ARM11 доступны .
Производительность ARMulator хороша для используемой технологии: около 1000 инструкций хоста (ПК) на одну инструкцию ARM. Это означает, что эмулируемая частота 1 МГц была нормальной для ПК середины-конца 90-х. Точность тоже хорошая, хотя она классифицируется как точная по количеству циклов, а не по тактовой точности, это связано с тем, что конвейер ARM не полностью смоделирован (хотя блокировки регистров моделируются). Разрешение относится к инструкции, поэтому при одношаговом выполнении блокировки регистров игнорируются и возвращаются другие счетчики циклов, чем если бы программа просто запускалась, это было неизбежно.
Тестирование ARMulator всегда было трудоемкой задачей, поскольку использовались полные пакеты проверки архитектуры ARM. С более чем 1 миллионом строк кода на языке C это был довольно здоровенный продукт.
ARMulator позволяет выполнять отладку во время выполнения с использованием Armsd (символический отладчик ARM) или любого из графических отладчиков, которые поставлялись в SDT и более поздних продуктах ADS. ARMulator страдал тем, что был невидимым инструментом с конфигурацией текстового файла (armul.conf), настройку которого многие считали сложной.
ARMulator II лег в основу высокоточных моделей совместной проверки процессоров ARM с возможностью вызова цикла. Эти модели CoV (см. Cycle Accurate Simulator ) легли в основу многих систем совместной проверки для процессоров ARM.
Доступность
[ редактировать ]На протяжении всего своего существования ARMulator был доступен на очень широком спектре платформ, включая Mac , платформы RISC OS , DEC Alpha , HP-UX , Solaris , SunOS , Windows , Linux . В середине 1990-х годов наблюдалось нежелание поддерживать платформы Windows; до Windows 95 это была относительно сложная платформа. В конце 1990-х и начале 2000-х годов поддержка была прекращена для всех систем, кроме Solaris, Windows и Linux, хотя, несомненно, база кода по-прежнему изобилует прагмами, такими как #ifdef RISCOS.
ARMulator II поставлялся в ранних наборах инструментов ARM, а также в более поздних SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RCVT 1.0, а также отдельно как RVISS. Во время разработки процессоров выпускались специальные модели, в частности ARM9E , ARM10 и ARM11 . Эти модели помогли принять такие архитектурные решения, как Thumb-2 и TrustZone.
ARMulator постепенно выводится из эксплуатации и заменяется компиляции по принципу «точно в срок» высокопроизводительными моделями ЦП и системы на основе (см. ссылку на FastSim ниже).
ARMulator I был сделан с открытым исходным кодом и является основой GNU-версии ARMulator. Ключевые различия заключаются в интерфейсе памяти и сервисах, а также по-другому выполняется декодирование инструкций. GNU ARMulator доступен как часть отладчика GDB в инструментах ARM GNU Tools.
ARMulator II лег в основу высокоточных моделей совместной проверки процессоров ARM с возможностью вызова цикла. Эти модели CoV (см. Cycle Accurate Simulator) легли в основу многих систем совместной проверки для процессоров ARM. Компания Mentor Graphic’s Seamless предлагает ведущую на рынке систему CoV, которая поддерживает множество ядер ARM и множество других процессоров.
ARMulator II поставлялся в ранних наборах инструментов ARM, а также в более поздних SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RVCT 1.0, а также отдельно как RVISS.
Ключевыми участниками разработки ARMulator II были Майк Уильямс, Луиза Джеймсон, Чарльз Лавендер, Дональд Синклер, Крис Лэмб и Ребекка Брайан (которая работала над ARMulator как инженер, а затем как менеджер по продукту). Значительный вклад также внес Аллан Скиллман, который в то время работал над моделями ARM CoVerification.
Ключевым участником ARMulator был Дэйв Джаггар .
Во время разработки процессоров производились специальные модели, в частности ARM9E, ARM10 и ARM11. Эти модели помогли принять архитектурные решения, такие как Thumb-2 и TrustZone.
См. также
[ редактировать ]Ссылки
[ редактировать ]Внешние ссылки
[ редактировать ]- Официальная информация ARMulator
- Домашняя страница uClinux GDB ARMulator
- Руководство пользователя RVISS (ARMulator)
- Бесшовная домашняя страница Mentor
- Домашняя страница Imperas: разработчик набора встроенных программных инструментов, использующих модели виртуальной платформы ядер ARM.
- Документация по быстрым моделям ARM (FastSim)
- Эмулятор Архимеда Red Squirrel Acorn
- Список эмуляторов ARM с открытым исходным кодом
- GNU-отладчик