stringtranslate.com

ОВПсим

OVPsim — это эмулятор многопроцессорной платформы (часто называемый полносистемным симулятором ), используемый для запуска неизмененных производственных двоичных файлов целевого оборудования. Он имеет общедоступные API , позволяющие пользователям создавать свои собственные модели процессоров , периферийных устройств и платформ. Различные модели доступны с открытым исходным кодом. [1] OVPsim является ключевым компонентом инициативы «Открытые виртуальные платформы» (OVP), [2] организации, созданной для продвижения использования открытых виртуальных платформ для разработки встроенного программного обеспечения. Для загрузки OVPsim требуется регистрация OVP.

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

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

Подробности

Существует три основных компонента OVP: модели с открытым исходным кодом , быстрый симулятор OVPsim и API моделирования . Эти компоненты предназначены для облегчения сборки многоядерных гетерогенных или однородных платформ со сложной иерархией памяти, системами кэширования и уровнями встроенного программного обеспечения, которые могут работать со скоростью сотни MIPS на стандартных настольных ПК. 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 и Warrior, серий 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 и 64-битные RV64I, RV64 М, РВ64ИМАК, РВ64Ф, РВ64Д, РВ64К , RV64G, RV64GC, 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 , Codasip Series 1, 3, 5, 7 ядер RISC-V, ядро ​​Intel NiosV RISC-V, семейства Texas Instruments TMS320 DSP и OpenRisc . Группа OpenHW использует OVPsim в качестве эталона для своих ядер RISC-V CV32E40 и CV32E20 с открытым исходным кодом. Существуют также модели различных типов системных компонентов, включая ОЗУ, ПЗУ, кэш и мост. Существуют периферийные модели, такие как Ethernet MAC, USB, DMA, UART и FIFO. Доступно несколько различных готовых платформ, включая наиболее распространенные операционные системы [4] ucLinux , Linux , Android , FreeRTOS , Nucleus , Micrium.

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

OVPсимулятор

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

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

ДМС

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

ППМ и БХМ

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

Пользователи

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

Ряд ведущих коммерческих организаций также используют OVPsim в качестве основы своих продуктов. Эта технология была лицензирована компанией MIPS [11] Technologies для обеспечения поддержки моделирования для линейки встраиваемых процессоров с архитектурой 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. ^ «МИПС 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. ^ Пинто, К.; Рагхав, С.; Маронгиу, А.; Руджеро, М.; Атьенца, Д.; Бенини, Л. (2011). «Параллельное и быстрое моделирование тысячядерных платформ с ускорением GPGPU». 11-й Международный симпозиум IEEE/ACM по кластерным, облачным и грид-вычислениям, 2011 г. (PDF) . стр. 53–62. дои : 10.1109/CCGrid.2011.64. ISBN 978-1-4577-0129-0.
  9. ^ Нита, И.; Лазареску, В.; Константинеску, Р. (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 от Imperas Software Ltd" . Сообщество ARM Connected. 1 января 2012 года . Проверено 26 июня 2013 г.
  13. ^ «Imperas готовит быстрые модели процессора ARM Cortex-A15» . ЭТаймс. 8 марта 2012 года . Проверено 19 сентября 2013 г.
  14. ^ "Информационный листок Europractice OVPsim" (PDF) . ЕвроПрактика. 10 ноября 2012 года . Проверено 10 сентября 2013 г.
  15. ^ «Рабочая группа по обеспечению соответствия RISC-V» . riscv.org. 6 июня 2018 года . Проверено 6 июня 2018 г.
  16. ^ «Модели процессоров помогают тестировать автомобильное программное обеспечение» . ЭТаймс. 14 октября 2011 года . Проверено 10 сентября 2013 г.
  17. Максфилд, Клайв (15 мая 2012 г.). «Открытые виртуальные платформы, выбранные исследовательским проектом ЕС». ЭЭ Таймс .
  18. ^ "Дебют «первого» 32-битного процессора, разработанного в Индии». EE Times-India . 24 июня 2009 г. ... VinChip Systems Inc. выпустила ..., который, по ее утверждению, является первым 32-битным процессором, разработанным в Индии. ...Поддержку виртуального прототипирования обеспечил...симулятор OVPsim...

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