WikiDer > 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 TLM2.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 ...

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