ARMulator - ARMulator

РУКА Симулятор набора инструкций, ARMulator, является одним из инструментов разработки программного обеспечения, предоставляемых бизнес-подразделением систем разработки ARM Limited всем пользователям чипов на базе ARM. Он обязан своим наследием раннему развитию инструкций, установленных Софи Уилсон. Часть этого наследия все еще видна в предоставлении Трубка 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 позволяет выполнять отладку во время выполнения с использованием либо armd (символический отладчик ARM), либо любого из графических отладчиков, которые поставлялись в SDT и более поздних продуктах ADS. ARMulator пострадал от того, что был невидимым инструментом с конфигурацией текстового файла (armul.conf), которую многие сочли сложной для настройки.

ARMulator II лег в основу высокоточных, вызываемых циклом моделей совместной верификации процессоров ARM, этих моделей CoV (см. Цикл точный симулятор ) были основой многих систем CoVerification для процессоров ARM.

Доступность

ARMulator был доступен на очень широком спектре платформ на протяжении всей своей жизни, включая Mac, ОС RISC платформы, DEC Alpha, HP-UX, Солярис, 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) легли в основу многих систем CoVerification для процессоров 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.

Смотрите также

внешние ссылки