OVPsim - OVPsim

OVPsim
Разработчики)Imperas
Стабильный выпуск
20200630.0 / 30 июня 2020 г.; 5 месяцев назад (2020-06-30)
Операционная системаWindows, Linux
ТипЭмулятор
ЛицензияПроприетарный, Лицензия Apache версия 2.0 для моделей
Интернет сайтwww.ovpworld.org

OVPsim это мультипроцессор Платформа эмулятор (часто называемый полносистемный симулятор ) используется для запуска неизмененных производственных двоичных файлов целевого оборудования. Имеет общественные API позволяя пользователям создавать свои собственные процессор, периферийный и платформенные модели. Различные модели доступны с открытым исходным кодом.[1] OVPsim - ключевой компонент инициативы Open Virtual Platforms (OVP),[2] организация, созданная для продвижения использования открытых виртуальных платформ для разработки встроенного программного обеспечения. OVPSim требует регистрации OVP для загрузки.

Лицензирование

OVPsim разработан и поддерживается Imperas.[3] Основная платформа моделирования проприетарное программное обеспечение; он доступен бесплатно для некоммерческого использования. Для коммерческого использования требуется недорогая лицензия от Imperas на техническое обслуживание. периферийный и модели платформы доступны как бесплатно программное обеспечение под Лицензия Apache версии 2.0.

Подробности

OVP состоит из трех основных компонентов: модели с открытым исходным кодом, быстрый симулятор OVPsim и моделирование API. Эти компоненты предназначены для упрощения сборки многоядерных разнородных или однородных платформ со сложной иерархией памяти, системами кэширования и уровнями встроенного программного обеспечения, которые могут работать со скоростью сотни операций в секунду на стандартных настольных ПК. инструкция точная, но не с точностью до цикла. Существует множество примеров компонентов и полных виртуальных платформ, которые могут загружать Linux Ядро менее чем за 5 секунд на домашней странице OVP.

Модели с открытым исходным кодом

В OVP есть несколько различных категорий моделей. Эти модели предоставляются как в виде предварительно скомпилированного объектного кода, так и в некоторых случаях в виде исходных файлов. OVPsim больше не предоставляет исходный код для моделей процессоров ARM и MIPS. В настоящее время существуют модели процессоров РУКА (процессоры, использующие наборы инструкций ARMv4, ARMv5, ARMv6, ARMv7, ARMv8) до ARM Cortex-A72MPx4 (включая мультикластерные модели ARMv8 с GICv3), Воображение MIPS (процессоры, использующие MIPS32, MIPS64, наборы инструкций microMIPS, nanoMIPS и MIPS R6) до ядер microAptiv, interAptiv, proAptiv и Warrior, Synopsys Вираж ARC600 / ARC700 и ARC серии EM, Renesas v850, RH850, RL78 и m16c, PowerPC, Альтера Ниос II, Xilinx MicroBlaze, RISC-V (модели, использующие 32-битные RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD и RV32IMAFD и 64-битные RVMGV64, RVMV64V64, RVMAF64, RVMV64V64, RVMV64V64 , RV64GCN, RV64IMAFD подмножества ISA), Andes Technology N25 / NX25, N25F / NX25F, A25 / AX25, A25F / AX25F, Microsemi CoreRISCV / MiV-RV32IMA, SiFive E31, E51, U54, U54-MC, Freedom U540 и OpenRisc семьи. OpenHW Group использует OVPsim как золотой эталон для своих ядер RISC-V CV32E40 с открытым исходным кодом. Существуют также модели различных типов системных компонентов, включая RAM, ROM, кэш и мост. Существуют периферийные модели, такие как Ethernet MAC, USB, DMA, UART и FIFO. Доступно несколько различных готовых платформ, включая наиболее распространенные операционные системы.[4] ucLinux, Linux, Android, FreeRTOS, Ядро, Микриум.

Одно из основных применений инфраструктуры моделирования OVP - это возможность создавать и моделировать модели, построенные на заказ, либо с нуля, либо с использованием одной из моделей с открытым исходным кодом в качестве отправной точки. API-интерфейсы OVP адаптированы к различным типам моделей: процессорам, поведенческим моделям периферийных устройств и платформ. Для загрузки доступно более 100 вариантов исходных моделей.

Симулятор OVPsim

Симулятор OVPsim доступен как справочник по OVP и бесплатен для некоммерческого использования. В симуляторе используется динамический двоичная трансляция технология для достижения очень высоких скоростей моделирования. Возможно выполнение более миллиарда смоделированных инструкций в секунду, в некоторых случаях на обычных настольных компьютерах. OVPsim доступен для x86 Окна и Linux хосты.

OVPsim поставляется с GDB Интерфейс RSP (Remote Serial Protocol), позволяющий выполнять отладку приложений, работающих на моделируемых процессорах, с помощью любого стандартного отладчика, поддерживающего этот интерфейс GDB RSP. OVPsim поставляется с графическим отладчиком Imperas iGui, а также с Eclipse IDE и интерфейсом CDT.

OVPsim можно инкапсулировать и вызывать из других сред моделирования.[5] и поставляется в стандартной комплектации с интерфейсными файлами для C, C ++, и SystemC.[6] OVPsim включает собственный SystemC TLM 2.0 файлы интерфейса. Также возможно инкапсулировать устаревшие модели процессоров и поведенческие модели, чтобы они могли использоваться OVPsim.

API моделирования

Модели OVP создаются с использованием C /C ++ API. Существует три основных API: OP, VMI, BHM / PPM.

OP

OP API предназначен для управления, подключения и наблюдения за платформами. Этот API можно вызывать из C, C ++ или SystemC. Платформа обеспечивает базовую структуру проекта и создает, соединяет и настраивает компоненты. Платформа также определяет отображение адресов и программное обеспечение, загружаемое на процессоры. С OP очень легко определять очень сложные и полные платформы множества различных процессоров, локальной и общей памяти, кэшей, шинных мостов, периферийных устройств и всех их сложных карт адресов, прерываний, операционных систем и прикладного программного обеспечения.

OP API заменил ICM API в 2016 году. ICM API все еще можно использовать для старых платформ.

VMI

Моделирование процессора обеспечивается VMI API. Эти функции API предоставляют возможность легко описывать поведение процессора. Модель процессора, написанная на C с использованием VMI, декодирует целевую инструкцию, которая должна быть смоделирована, и переводит ее в собственные инструкции x86, которые затем выполняются на ПК. VMI можно использовать для моделирования 8-, 16-, 32- и 64-разрядных архитектур. Существует механизм перехвата, позволяющий эмулировать вызовы функций в библиотеках времени выполнения приложения (например, write, fstat и т. Д.), Не требуя модификации модели процессора или моделируемого приложения.

PPM и BHM

Поведенческие компоненты, периферийные устройства и общая среда моделируются с использованием кода C и вызовов этих двух API. В основе этих API лежит механизм планирования на основе событий, позволяющий моделировать время, события и параллелизм. Периферийные модели обеспечивают обратные вызовы, которые вызываются, когда прикладное программное обеспечение, работающее на процессорах, смоделированных в тех ячейках памяти платформы, где задействовано периферийное устройство.

Кто пользуется OVPsim

OVPsim используется несколькими образовательными учреждениями для создания инфраструктуры моделирования для исследования платформ параллельных вычислений,[7][8] совместная разработка аппаратного и программного обеспечения,[9] анализ производительности встроенных систем,[10] и в качестве основы для других разработок встроенных инструментов.[нужна цитата ] Он также используется в учебных курсах, чтобы студенты могли разрабатывать и отлаживать прикладное программное обеспечение, а также создавать виртуальные платформы и новые модели.

Ряд ведущих коммерческих организаций также используют OVPSim в качестве основы для своих продуктовых предложений. Технология лицензирована MIPS.[11] Технологии, обеспечивающие поддержку моделирования для своих Архитектура MIPS линейка встроенных процессоров, функции в партнерстве с ведущим поставщиком процессоров ARM,[12][13] и является частью Europractice[14] ассортимент продуктов для общего доступа к европейским университетам. Версия OVPsim используется RISC-V Рабочая группа Фонда по соответствию[15] как эталонный тренажер. Ведущие компании-производители полупроводников, такие как Renesas, использовали симулятор для разработки своих процессоров, о чем сообщалось в ведущих публикациях электронной промышленности.[16] Он был выбран NEPHRON +, исследовательским проектом ЕС, для среды разработки программного обеспечения и тестов.[17]VinChip Systems Inc. из Ченнаи, Индия использовала OpenOCD и OVPsim для разработки, возможно, первого 32-разрядного процессора, разработанного в Индии.[18]Модели OVP и виртуальные платформы формируют основу для других мероприятий, предпринимаемых Imperas.

Рекомендации

  1. ^ «Открытая библиотека компонентов виртуальных платформ». Ovpworld.org. 21 ноября 2012 г.. Получено 8 мая 2013.
  2. ^ «Открытые виртуальные платформы». Ovpworld.org. 21 ноября 2012 г.. Получено 8 мая 2013.
  3. ^ "Имперас". Имперас. 2 июля 2008 г.. Получено 10 сентября 2013.
  4. ^ «MIPS Linux». Linux MIPS. 24 ноября 2008 г.. Получено 10 сентября 2013.
  5. ^ "Каденс Зинк". Каденция. 2 апреля 2010 г.. Получено 10 сентября 2013.
  6. ^ "Модели Imperas могли бы иметь ценность". SystemC.org. 17 февраля 2010 г.. Получено 19 сентября 2013.
  7. ^ «Платформа гибридного моделирования для виртуального прототипирования с использованием OVP, SystemC и SCMLEducation» (PDF). vdtt.iitd.ac.in. 11 января 2009 г.. Получено 9 мая 2013.
  8. ^ Pinto, C .; Raghav, S .; Marongiu, A .; Ruggiero, M .; Atienza, D .; Бенини, Л. (2011). «Ускоренное параллельное и быстрое моделирование тысячиядерных платформ с помощью GPGPU». 2011 11-й международный симпозиум IEEE / ACM по кластерам, облачным и сетевым вычислениям (PDF). С. 53–62. Дои:10.1109 / CCGrid.2011.64. ISBN  978-1-4577-0129-0.
  9. ^ Нита, I .; Lazarescu, V .; Константинеску, Р. (2009). «Новый метод совместной разработки аппаратного и программного обеспечения для многопроцессорных систем на кристалле». 2009 Международный симпозиум по сигналам, схемам и системам. С. 1–4. Дои:10.1109 / ISSCS.2009.5206089. ISBN  978-1-4244-3785-6.
  10. ^ «Использование OVPSim для оценки мощности сложных платформ на базе RISC». www.embedded.com. 16 декабря 2012 г.. Получено 8 мая 2013.
  11. ^ «MIPS Technologies подписывает лицензию на распространение OEM-версии симулятора Imperas OVP». Bloomberg.com. 24 февраля 2011 г.. Получено 26 июн 2013.
  12. ^ "OVPsim by Imperas Software Ltd". ARM Connected Сообщество. 1 января 2012 г.. Получено 26 июн 2013.
  13. ^ «Imperas готовит быстрые модели процессора ARM Cortex-A15». EETimes. 8 марта 2012 г.. Получено 19 сентября 2013.
  14. ^ "Europractice OVPsim Datasheet" (PDF). EuroPractice. 10 ноября 2012 г.. Получено 10 сентября 2013.
  15. ^ «Рабочая группа по соответствию RISC-V». riscv.org. 6 июн 2018. Получено 6 июн 2018.
  16. ^ «Модели процессоров для тестирования автомобильного программного обеспечения». EETimes. 14 октября 2011 г.. Получено 10 сентября 2013.
  17. ^ Максфилд, Клайв (15 мая 2012 г.). «Открытые виртуальные платформы, выбранные исследовательским проектом ЕС». EE Times.
  18. ^ "'Дебют первого 32-разрядного процессора, разработанного в Индии ». EE Times-Индия. 24 июня 2009 г. ... VinChip Systems Inc. выпустила ..., который, по ее утверждению, является первым 32-разрядным процессором, разработанным в Индии. ... Поддержка виртуального прототипирования обеспечивается ... симулятором OVPsim ...

внешняя ссылка