OVPsim - это эмулятор многопроцессорной платформы (часто называемый симулятором всей системы ), используемый для запуска неизмененных производственных двоичных файлов целевого оборудования. Он имеет общедоступные API-интерфейсы, позволяющие пользователям создавать свои собственные модели процессоров , периферийных устройств и платформ. Доступны различные модели с открытым исходным кодом. [1] OVPsim является ключевым компонентом инициативы Open Virtual Platforms (OVP) [2] , организации, созданной для продвижения использования открытых виртуальных платформ для разработки встроенного программного обеспечения. OVPSim требует регистрации OVP для загрузки.
Разработчики) | Имперас |
---|---|
Стабильный выпуск | 20210408.0 / 8 апреля 2021 г . |
Операционная система | Windows , Linux |
Тип | Эмулятор |
Лицензия | Фирменная , Apache License версии 2.0 для моделей |
Веб-сайт | www |
Лицензирование
OVPsim разработан и поддерживается Imperas . [3] Основная платформа моделирования - это проприетарное программное обеспечение ; он доступен бесплатно для некоммерческого использования. Для коммерческого использования требуется недорогая лицензия от Imperas на обслуживание. Различные модели процессоров, периферийных устройств и платформ доступны как бесплатное программное обеспечение по лицензии Apache License версии 2.0 .
Подробности
OVP состоит из трех основных компонентов: модели с открытым исходным кодом , быстрый симулятор OVPsim и API моделирования . Эти компоненты призваны упростить сборку многоядерных разнородных или однородных платформ со сложной иерархией памяти, системами кэширования и уровнями встроенного программного обеспечения, которые могут работать со скоростью сотни операций в секунду на стандартных настольных ПК. OVPSim считается точным по инструкции , но не с точностью до цикла. На домашней странице OVP есть множество примеров компонентов и законченных виртуальных платформ, которые могут загружать ядро Linux менее чем за 5 секунд.
Модели с открытым исходным кодом
В рамках OVP существует несколько различных категорий моделей. Эти модели предоставляются как в виде предварительно скомпилированного объектного кода, так и в некоторых случаях в виде исходных файлов. OVPsim больше не предоставляет исходный код для моделей процессоров ARM и MIPS. В настоящее время существуют модели процессоров ARM (процессоры, использующие наборы инструкций ARMv4, ARMv5, ARMv6, ARMv7, ARMv8) до ARM Cortex-A72MPx4 (включая мультикластерные модели ARMv8 с GICv3), Imagination MIPS (процессоры, использующие MIPS32 , MIPS64 , microMIPS, nanoMIPS и наборы инструкций MIPS , R6) до microAptiv, interAptiv, proAptiv и сердечников воин, Synopsys Virage ARC600 / ARC700 и серии ARC EM, Renesas v850 , RH850, RL78 и групы M16C, PowerPC , Altera Nios II , Xilinx MicroBlaze , RISC-V (модели с 32-битными RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD, RV32GCN, RV32IMAFD, RV32GCN, RV32IMAFD, 64bit , RV64G, RV64GC, RV64GCN, RV64IMAFD подмножества ISA), Andes Technology N25 / NX25, N25F / NX25F, A25 / AX25, A25F / AX25F, Microsemi CoreRISCV / MiV-RV32IMA, SiFive E31, U540, U54 , U54 , и семейства OpenRisc . OpenHW Group использует OVPsim как золотой эталон для своих ядер RISC-V CV32E40 с открытым исходным кодом. Существуют также модели различных типов системных компонентов, включая RAM, ROM, кэш и мост. Существуют периферийные модели, такие как Ethernet MAC, USB, DMA, UART и FIFO. Доступно несколько различных готовых платформ, включая наиболее распространенные операционные системы [4] ucLinux , Linux , Android , FreeRTOS , Nucleus , Micrium.
Одно из основных применений инфраструктуры моделирования OVP - это возможность создавать и моделировать созданные пользователем модели - либо с нуля, либо используя одну из моделей с открытым исходным кодом в качестве отправной точки. API-интерфейсы OVP адаптированы к различным типам моделей: процессорам, поведенческим моделям периферийных устройств и платформ. Для загрузки доступно более 100 вариантов исходных моделей.
Симулятор OVPsim
Симулятор OVPsim доступен как справочник по OVP и бесплатен для некоммерческого использования. Симулятор использует технологию динамической двоичной трансляции для достижения очень высоких скоростей симуляции. Возможно выполнение более миллиарда смоделированных инструкций в секунду, в некоторых случаях на обычных настольных компьютерах. OVPsim доступен для хостов x86 Windows и 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 создаются с использованием API C / C ++ . Существует три основных 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 используется несколькими учебными заведениями для обеспечения инфраструктуры моделирования для исследования платформ параллельных вычислений, [7] [8] совместного проектирования аппаратного и программного обеспечения, [9] анализа производительности встроенных систем [10] и в качестве основы других разработок встроенных инструментов. [ необходима цитата ] Он также используется в учебных курсах, чтобы позволить студентам разрабатывать и отлаживать прикладное программное обеспечение, а также создавать виртуальные платформы и новые модели.
Ряд ведущих коммерческих организаций также используют OVPSim в качестве основы для своих продуктовых предложений. Технология была лицензирована MIPS [11] Technologies для обеспечения поддержки моделирования для их линейки встроенных процессоров с архитектурой MIPS , функций в партнерстве с ведущим поставщиком процессоров ARM, [12] [13] и является частью линейки продуктов Europractice [14] для общий доступ к европейским университетам. Версия OVPsim используется Рабочей группой по соответствию RISC-V Foundation [15] в качестве эталонного симулятора. Ведущие полупроводниковые компании, такие как Renesas, использовали симулятор для разработки своих процессоров, о чем говорится в ведущих публикациях электронной промышленности. [16] Он был выбран NEPHRON +, исследовательским проектом ЕС, в качестве среды разработки программного обеспечения и тестов. [17] VinChip Systems Inc. из Ченнаи , Индия, использовала OpenOCD и OVPsim для разработки, возможно, первого 32-разрядного процессора, разработанного в Индии. [18] Модели OVP и виртуальные платформы формируют основу для других видов деятельности, предпринимаемых Imperas.
Рекомендации
- ^ «Открытая библиотека компонентов виртуальных платформ» . Ovpworld.org. 21 ноября 2012 . Проверено 8 мая 2013 года .
- ^ «Открытые виртуальные платформы» . Ovpworld.org. 21 ноября 2012 . Проверено 8 мая 2013 года .
- ^ «Имперас» . Имперас. 2 июля 2008 . Проверено 10 сентября 2013 года .
- ^ «MIPS Linux» . Linux MIPS. 24 ноября 2008 . Проверено 10 сентября 2013 года .
- ^ «Каденс Зинк» . Каденция. 2 апреля 2010 . Проверено 10 сентября 2013 года .
- ^ «Модели Imperas могут иметь ценность» . SystemC.org. 17 февраля 2010 . Проверено 19 сентября 2013 года .
- ^ «Платформа гибридного моделирования для виртуального прототипирования с использованием OVP, SystemC и SCMLEducation» (PDF) . vdtt.iitd.ac.in. 11 января 2009 . Дата обращения 9 мая 2013 .
- ^ Pinto, C .; Raghav, S .; Marongiu, A .; Ruggiero, M .; Atienza, D .; Бенини, Л. (2011). «Ускоренное параллельное и быстрое моделирование тысячеядерных платформ с помощью GPGPU». 2011 11-й Международный симпозиум IEEE / ACM по кластерам, облачным и сетевым вычислениям (PDF) . С. 53–62. DOI : 10.1109 / CCGrid.2011.64 . ISBN 978-1-4577-0129-0.
- ^ Нита, I .; Lazarescu, V .; Константинеску, Р. (2009). «Новый метод совместного проектирования аппаратных и программных средств для многопроцессорных систем на кристалле». 2009 Международный симпозиум по сигналам, схемам и системам . С. 1–4. DOI : 10.1109 / ISSCS.2009.5206089 . ISBN 978-1-4244-3785-6.
- ^ «Использование OVPSim для оценки мощности сложных платформ на базе RISC» . www.embedded.com. 16 декабря 2012 . Проверено 8 мая 2013 года .
- ^ «MIPS Technologies подписывает лицензию на распространение OEM-версии симулятора Imperas OVP» . Bloomberg.com. 24 февраля 2011 . Проверено 26 июня 2013 года .
- ^ «OVPsim от Imperas Software Ltd» . ARM Connected Сообщество. 1 января 2012 . Проверено 26 июня 2013 года .
- ^ «Imperas готовит быстрые модели процессора ARM Cortex-A15» . EETimes. 8 марта 2012 . Проверено 19 сентября 2013 года .
- ^ "Europractice OVPsim Datasheet" (PDF) . EuroPractice. 10 ноября 2012 . Проверено 10 сентября 2013 года .
- ^ «Рабочая группа по соответствию RISC-V» . riscv.org. 6 июня 2018 . Проверено 6 июня 2018 .
- ^ «Модели процессоров для тестирования автомобильного программного обеспечения» . EETimes. 14 октября 2011 . Проверено 10 сентября 2013 года .
- ^ Максфилд, Клайв (15 мая 2012 г.). «Открытые виртуальные платформы, выбранные исследовательским проектом ЕС». EE Times .
- ^ « Дебют первого 32-битного процессора, разработанного в Индии». EE Times-Индия . 24 июня 2009 г.
... VinChip Systems Inc. выпустила ..., который, по ее утверждению, является первым 32-разрядным процессором, разработанным в Индии. ... Поддержка виртуального прототипирования обеспечивается ... симулятором OVPsim ...
Внешние ссылки
- Официальный веб-сайт
- Многоядерные инструменты отладки и профилирования Imperas, использующие модели OVP
- OVPsim используется в эмуляции платформы MIPS Malta
- Europractice