stringtranslate.com

OVPsim

OVPsim — это эмулятор многопроцессорной платформы (часто называемый полносистемным симулятором ), используемый для запуска неизмененных производственных двоичных файлов целевого оборудования. Он имеет общедоступные API, позволяющие пользователям создавать собственные модели процессоров , периферийных устройств и платформ. Различные модели доступны с открытым исходным кодом. [1] OVPsim — это ключевой компонент инициативы Open Virtual Platforms (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-битные подмножества ISA RV64I, RV64M, RV64IMAC, RV64F, RV64D, RV64C, RV64G, RV64GC, RV64GCN, RV64IMAFD), 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. Существуют также модели многих различных типов системных компонентов, включая 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.

ОП

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

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

ДМС

Моделирование процессора обеспечивается 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 Foundation [15] в качестве эталонного симулятора. Ведущие компании-производители полупроводников, такие как Renesas, использовали симулятор для своей работы по разработке процессоров, как раскрыто в ведущих публикациях электронной промышленности. [16] Он был выбран NEPHRON+, исследовательским проектом ЕС, для своей среды разработки программного обеспечения и тестов. [17] VinChip Systems Inc. из Ченнаи , Индия, использовала OpenOCD и OVPsim для разработки, возможно, первого 32-битного процессора, разработанного в Индии. [18] Модели OVP и виртуальные платформы формируют основу для других видов деятельности, осуществляемых Imperas.

Ссылки

  1. ^ "Библиотека компонентов Open Virtual Platforms". 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. ^ "Cadence Zynq". Cadence. 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.; Benini, L. (2011). «GPGPU-ускоренное параллельное и быстрое моделирование тысячеядерных платформ». 2011 11-й Международный симпозиум IEEE/ACM по кластерным, облачным и грид-вычислениям (PDF) . стр. 53–62. doi :10.1109/CCGrid.2011.64. ISBN 978-1-4577-0129-0.
  9. ^ Нита, И.; Лазареску, В.; Константинеску, Р. (2009). «Новый метод совместного проектирования Hw/Sw для многопроцессорных систем на кристалле». Международный симпозиум по сигналам, схемам и системам 2009 г. С. 1–4. doi :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 Community. 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 Compliance Working Group". riscv.org. 6 июня 2018 г. Получено 6 июня 2018 г.
  16. ^ "Модели процессоров помогают тестировать автомобильное программное обеспечение". EETimes. 14 октября 2011 г. Получено 10 сентября 2013 г.
  17. ^ Максфилд, Клайв (15 мая 2012 г.). «Открытые виртуальные платформы, выбранные исследовательским проектом ЕС». EE Times .
  18. ^ "Дебютирует «первый» 32-разрядный процессор, разработанный в Индии». EE Times-India . 24 июня 2009 г. ... VinChip Systems Inc. выпустила ..., который, по ее словам, является первым 32-разрядным процессором, разработанным в Индии. ... Поддержка виртуального прототипирования была предоставлена ​​... симулятором OVPsim ...

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