OVPsim es un emulador de plataforma multiprocesador (a menudo llamado simulador de sistema completo ) que se utiliza para ejecutar binarios de producción sin modificar del hardware objetivo. Cuenta con API públicas que permiten a los usuarios crear sus propios modelos de procesador , periférico y plataforma. Existen varios modelos disponibles como código abierto. [ 1 ] OVPsim es un componente clave de la iniciativa Open Virtual Platforms (OVP), [ 2 ] una organización creada para promover el uso de plataformas virtuales abiertas para el desarrollo de software embebido. OVPsim requiere registro en OVP para su descarga.
Licencias
OVPsim es desarrollado y mantenido por Imperas . [ 3 ] La plataforma de simulación principal es software propietario ; está disponible gratuitamente para uso no comercial. El uso comercial requiere una licencia de bajo costo de Imperas para cubrir el mantenimiento. Varios modelos de procesadores, periféricos y plataformas están disponibles como software libre bajo la Licencia Apache versión 2.0 .
Detalles
OVP consta de tres componentes principales: modelos de código abierto , el rápido simulador OVPsim y las API de modelado . Estos componentes están diseñados para facilitar el ensamblaje de plataformas multinúcleo heterogéneas u homogéneas con jerarquías de memoria complejas, sistemas de caché y capas de software embebido que pueden alcanzar cientos de MIPS en ordenadores de sobremesa estándar. OVPsim se considera preciso a nivel de instrucción , pero no a nivel de ciclo. En la página web de OVP se pueden encontrar numerosos ejemplos de componentes y plataformas virtuales completas capaces de arrancar un kernel de Linux en menos de 5 segundos.
Modelos de código abierto
Dentro de OVP existen varias categorías de modelos. Estos modelos se proporcionan tanto como código objeto precompilado como, en algunos casos, como archivos fuente. OVPsim ya no proporciona el código fuente para los modelos de procesadores ARM y MIPS. Actualmente existen modelos de procesadores ARM (procesadores que utilizan los conjuntos de instrucciones ARMv4, ARMv5, ARMv6, ARMv7, ARMv8) hasta el ARM Cortex-A72MPx4 (e incluyendo modelos ARMv8 multiclúster con GICv3), Imagination MIPS (procesadores que utilizan los conjuntos de instrucciones MIPS32 , MIPS64 , microMIPS, nanoMIPS y MIPS R6) hasta los núcleos microAptiv, interAptiv, proAptiv y Warrior, Synopsys Virage ARC600/ARC700 y la serie ARC EM, Renesas v850 , RH850, RL78 y m16c, PowerPC , Altera Nios II , Xilinx MicroBlaze , RISC-V (modelos que utilizan RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, de 32 bits, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD y subconjuntos ISA de 64 bits 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, núcleos RISC-V de la serie 1, 3, 5, 7 de Codasip , núcleo RISC-V Intel NiosV, DSP TMS320 de Texas Instruments y familias OpenRisc . El Grupo OpenHW utiliza OVPsim como referencia principal para sus núcleos RISC-V CV32E40 y CV32E20 de código abierto. También existen modelos de diversos componentes del sistema, como RAM, ROM, caché y puente. Hay modelos de periféricos como Ethernet MAC, USB, DMA, UART y FIFO. Se encuentran disponibles varias plataformas preconfiguradas, incluyendo los sistemas operativos más comunes [ 4 ] ucLinux , Linux , Android , FreeRTOS , Nucleus y Micrium.
Una de las principales aplicaciones de la infraestructura de simulación OVP es la capacidad de crear y simular modelos personalizados, ya sea desde cero o utilizando uno de los modelos de código abierto como punto de partida. Las API de OVP están diseñadas para diferentes tipos de modelos: procesadores, modelos de comportamiento de periféricos y plataformas. Hay más de 100 variantes de modelos fuente disponibles para descargar.
Simulador OVPsim
El simulador OVPsim está disponible como referencia de OVP y es gratuito para uso no comercial. El simulador utiliza tecnología de traducción binaria dinámica para lograr velocidades de simulación muy altas. Es posible simular más de mil millones de instrucciones por segundo, en algunos casos en ordenadores de sobremesa convencionales. OVPsim está disponible para sistemas Windows x86 y Linux .
OVPsim incluye una interfaz GDB RSP (Protocolo Serie Remoto) que permite depurar aplicaciones que se ejecutan en procesadores simulados con cualquier depurador estándar compatible con esta interfaz. OVPsim también incluye el depurador gráfico Imperas iGui, así como una interfaz para el IDE Eclipse y CDT.
OVPsim puede encapsularse y llamarse desde otros entornos de simulación [ 5 ] y viene de serie con archivos de interfaz para C , C++ y SystemC [ 6 ] . OVPsim incluye archivos de interfaz nativos de SystemC TLM 2.0. También es posible encapsular modelos heredados de procesadores y modelos de comportamiento para que puedan ser utilizados por OVPsim.
API de modelado
Los modelos OVP se crean utilizando las API de C / C++ . Existen tres API principales: OP, VMI y BHM/PPM.
OP
La API de OP está diseñada para controlar, conectar y supervisar plataformas. Se puede invocar desde C, C++ o SystemC. La plataforma proporciona la estructura básica del diseño y crea, conecta y configura los componentes. Además, especifica el mapeo de direcciones y el software que se carga en los procesadores. Con OP, es muy sencillo especificar plataformas complejas y completas con múltiples procesadores, memorias locales y compartidas, cachés, puentes de bus, periféricos y todos sus complejos mapas de direcciones, interrupciones, sistemas operativos y software de aplicación.
La API OP sustituyó a la API ICM durante 2016. La API ICM todavía se puede utilizar para plataformas más antiguas.
VMI
La API VMI proporciona modelado de procesadores. Estas funciones API permiten describir fácilmente el comportamiento del procesador. Un modelo de procesador escrito en C mediante VMI decodifica la instrucción objetivo que se va a simular y la traduce a instrucciones nativas x86 que se ejecutan en el PC. VMI se puede utilizar para modelar arquitecturas de 8, 16, 32 y 64 bits. Existe un mecanismo de intercepción que permite emular llamadas a funciones de las bibliotecas de tiempo de ejecución de la aplicación (como write, fstat, etc.) sin necesidad de modificar ni el modelo de procesador ni la aplicación simulada.
PPM y BHM
Los componentes de comportamiento, los periféricos y el entorno general se modelan mediante código C y llamadas a estas dos API. Estas API se basan en un mecanismo de planificación basado en eventos que permite modelar el tiempo, los eventos y la concurrencia. Los modelos de periféricos proporcionan funciones de devolución de llamada que se ejecutan cuando el software de la aplicación, que se ejecuta en los procesadores modelados en la plataforma, accede a las ubicaciones de memoria donde está habilitado el periférico.
Usuarios
OVPsim es utilizado por diversas instituciones educativas para proporcionar una infraestructura de simulación para la investigación de plataformas de computación paralela , [ 7 ] [ 8 ] codiseño de hardware/software, [ 9 ] análisis de rendimiento de sistemas embebidos, [ 10 ] y como base para el desarrollo de otras herramientas embebidas. También se utiliza en cursos educativos para que los estudiantes desarrollen y depuren software de aplicación y creen plataformas virtuales y nuevos modelos.
Varias organizaciones comerciales líderes también utilizan OVPsim como base de sus ofertas de productos. La tecnología fue licenciada por MIPS [ 11 ] Technologies para proporcionar soporte de modelado para su gama de procesadores integrados con arquitectura MIPS , características en asociación con el proveedor líder de procesadores ARM, [ 12 ] [ 13 ] y es parte de la gama de productos Europractice [ 14 ] para acceso general a universidades europeas. Una versión de OVPsim es utilizada por el Grupo de Trabajo de Cumplimiento de la Fundación RISC-V [ 15 ] como simulador de referencia. Empresas líderes de semiconductores como Renesas han utilizado el simulador para su trabajo de desarrollo de procesadores, como se divulga en publicaciones líderes de la industria electrónica. [ 16 ] Fue seleccionado por NEPHRON+, un proyecto de investigación de la UE, por su entorno de desarrollo de software y pruebas. [ 17 ] VinChip Systems Inc. de Chennai , India, utilizó OpenOCD y OVPsim para desarrollar lo que puede ser el primer procesador de 32 bits desarrollado en India. [ 18 ] Los modelos OVP y las plataformas virtuales constituyen la base de otras actividades que está llevando a cabo Imperas.
Referencias
- ↑ "Biblioteca de componentes de plataformas virtuales abiertas" . Ovpworld.org. 21 de noviembre de 2012. Consultado el 8 de mayo de 2013 .
- ↑ "Plataformas virtuales abiertas" . Ovpworld.org. 21 de noviembre de 2012. Consultado el 8 de mayo de 2013 .
- ↑ «Imperas» . Imperas. 2 de julio de 2008 . Consultado el 10 de septiembre de 2013 .
- ↑ "MIPS Linux" . Linux MIPS. 24 de noviembre de 2008. Consultado el 10 de septiembre de 2013 .
- ↑ "Cadence Zynq" . Cadence. 2 de abril de 2010. Consultado el 10 de septiembre de 2013 .
- ↑ "Podría haber valor en los modelos Imperas" . SystemC.org. 17 de febrero de 2010. Consultado el 19 de septiembre de 2013 .
- ↑ "Marco de simulación híbrido para prototipado virtual utilizando OVP, SystemC y SCMLEducation" (PDF) . vdtt.iitd.ac.in. 11 de enero de 2009. Archivado del original (PDF) el 2 de agosto de 2014. Consultado el 9 de mayo de 2013 .
- ↑ Pinto, C.; Raghav, S.; Marongiu, A.; Ruggiero, M.; Atienza, D.; Benini, L. (2011). "Simulación paralela y rápida acelerada por GPGPU de plataformas de mil núcleos". 11.º Simposio Internacional IEEE/ACM de 2011 sobre Computación en Clúster, Nube y Grid (PDF) . págs. 53–62 . doi : 10.1109/CCGrid.2011.64 . ISBN 978-1-4577-0129-0.
- ↑ Nita, I.; Lazarescu, V.; Constantinescu, R. (2009). "Un nuevo método de codiseño Hw/Sw para aplicaciones de sistemas en chip multiprocesador". Simposio Internacional de Señales, Circuitos y Sistemas de 2009. págs. 1–4 . doi : 10.1109/ISSCS.2009.5206089 . ISBN 978-1-4244-3785-6.
- ↑ "Uso de OVPsim para la estimación de potencia de plataformas complejas basadas en RISC" . www.embedded.com. 16 de diciembre de 2012. Consultado el 8 de mayo de 2013 .
- ↑ "MIPS Technologies firma un acuerdo de licencia para distribuir la versión OEM del simulador Imperas OVP" . Bloomberg.com. 24 de febrero de 2011. Consultado el 26 de junio de 2013 .
- ↑ "OVPsim de Imperas Software Ltd" . Comunidad ARM Connected. 1 de enero de 2012. Consultado el 26 de junio de 2013 .
- ↑ "Imperas prepara modelos rápidos del procesador ARM Cortex-A15" . EETimes. 8 de marzo de 2012. Consultado el 19 de septiembre de 2013 .
- ↑ "Hoja de datos de Europractice OVPsim" (PDF) . EuroPractice. 10 de noviembre de 2012. Archivado del original (PDF) el 3 de marzo de 2016. Consultado el 10 de septiembre de 2013 .
- ↑ "Grupo de trabajo de cumplimiento de RISC-V" . riscv.org. 6 de junio de 2018. Consultado el 6 de junio de 2018 .
- ↑ "Los modelos de procesador ayudan a las pruebas de software automotriz" . EETimes. 14 de octubre de 2011. Consultado el 10 de septiembre de 2013 .
- ↑ Maxfield, Clive (15 de mayo de 2012). "Plataformas virtuales abiertas seleccionadas por un proyecto de investigación de la UE". EE Times .
- ↑ "Debuta el primer procesador de 32 bits desarrollado en India. EE Times-India . 24 de junio de 2009.
... VinChip Systems Inc. ha lanzado ..., que afirma ser el primer procesador de 32 bits desarrollado en India. ... El simulador OVPsim ha proporcionado soporte para la creación de prototipos virtuales.
Enlaces externos
- Sitio web oficial

- Herramientas de depuración y perfilado multinúcleo de Impera que utilizan modelos OVP.
- OVPsim se utilizó para emular la plataforma MIPS Malta. Archivado el 5 de septiembre de 2011 en Wayback Machine.
- Europractice archivado el 4 de abril de 2013 en Wayback Machine.
- Software de virtualización
- Software de emulación de Windows