OVPsim es un emulador de plataforma multiprocesador (a menudo llamado simulador de sistema completo ) que se utiliza para ejecutar binarios de producción sin cambios del hardware de destino. Tiene API públicas que permiten a los usuarios crear sus propios modelos de procesador , periférico y plataforma. Hay 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 integrado. OVPSim requiere el registro OVP para descargar.
Desarrollador (es) | Imperas |
---|---|
Lanzamiento estable | 20210408.0 / 8 de abril de 2021 |
Sistema operativo | Windows , Linux |
Tipo | Emulador |
Licencia | Propietario , licencia Apache versión 2.0 para modelos |
Sitio web | www |
Licencia
OVPsim es desarrollado y mantenido por Imperas . [3] La plataforma de simulación central es software propietario ; está disponible de forma gratuita 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 gratuito bajo la licencia Apache versión 2.0 .
Detalles
Hay tres componentes principales de OVP: modelos de código abierto , simulador rápido de OVPsim y API de modelado . Estos componentes están diseñados para facilitar el ensamblaje de plataformas heterogéneas u homogéneas de múltiples núcleos con jerarquías de memoria complejas, sistemas de caché y capas de software integrado que pueden ejecutarse en cientos de MIPS en PC de escritorio estándar. OVPSim se considera instrucción precisa , pero no precisa de ciclo. Hay muchos ejemplos de componentes y plataformas virtuales completas que pueden arrancar un kernel de Linux en menos de 5 segundos en la página de inicio de OVP.
Modelos de código abierto
Dentro de OVP hay varias categorías de modelos diferentes. Estos modelos se proporcionan como código objeto precompilado y, en algunos casos, como archivos fuente. OVPsim ya no proporciona código fuente para los modelos de procesador ARM y MIPS. Actualmente existen modelos de procesador de ARM (procesadores que usan los conjuntos de instrucciones ARMv4, ARMv5, ARMv6, ARMv7, ARMv8) hasta ARM Cortex-A72MPx4 (e incluyen modelos ARMv8 de múltiples clústeres con GICv3), Imagination MIPS (procesadores que usan MIPS32 , MIPS64 , microMIPS, nanoMIPS y conjuntos de instrucciones MIPS R6) hasta los núcleos microAptiv, interAptiv, proAptiv y Warrior, Synopsys Virage ARC600 / ARC700 y ARC EM series, 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, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD, RV32GCN, RV32IMAFD y RV64I, RV64M, RV64IMAC, RV64 , RV64G, RV64GC, RV64GCN, RV64IMAFD subconjuntos ISA), Andes Technology N25 / NX25, N25F / NX25F, A25 / AX25, A25F / AX25F, Microsemi CoreRISCV / MiV-RV32IMA, SiFive E31, E51, U54, U540-MC, Freedom y familias OpenRisc . OpenHW Group utiliza OVPsim como referencia de oro para sus núcleos RISC-V CV32E40 de código abierto. También hay modelos de muchos tipos diferentes de componentes del sistema, incluidos RAM, ROM, caché y puente. Hay modelos de periféricos como Ethernet MAC, USB, DMA, UART y FIFO. Se encuentran disponibles varias plataformas preconstruidas diferentes, incluidos los sistemas operativos más comunes [4] ucLinux , Linux , Android , FreeRTOS , Nucleus , Micrium.
Uno de los principales usos de la infraestructura de simulación de 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 se adaptan a 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 de OVPsim
El simulador OVPsim está disponible como referencia 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 obtener más de mil millones de instrucciones simuladas por segundo, en algunos casos en equipos de PC de escritorio normales. OVPsim está disponible para hosts x86 Windows y Linux .
OVPsim viene con una interfaz GDB RSP (Remote Serial Protocol) para permitir que las aplicaciones que se ejecutan en procesadores simulados se depuren con cualquier depurador estándar que admita esta interfaz GDB RSP. OVPsim viene con el depurador gráfico Imperas iGui y también una interfaz Eclipse IDE y CDT.
OVPsim se puede encapsular y llamar 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 SystemC TLM 2.0 nativos . También es posible encapsular modelos heredados de procesadores y modelos de comportamiento para que OVPsim los pueda utilizar.
API de modelado
Los modelos OVP se crean utilizando API C / C ++ . Hay tres API principales: OP, VMI, BHM / PPM.
OP
La API OP está diseñada para controlar, conectar y observar plataformas. Esta API se puede llamar desde C, C ++ o SystemC. La plataforma proporciona la estructura básica del diseño y crea, conecta y configura los componentes. La plataforma también especifica la asignación de direcciones y el software que se carga en los procesadores. Es muy fácil con OP especificar plataformas muy complejas y completas de muchos procesadores diferentes, memorias locales y compartidas, cachés, puentes de bus, periféricos y todos sus mapas de direcciones complejos, interrupciones y sistemas operativos y software de aplicación.
La API de OP reemplazó a la API de ICM durante 2016. La API de ICM todavía se puede utilizar para plataformas más antiguas.
VMI
La API de VMI proporciona el modelado del procesador. Estas funciones de API brindan la capacidad de describir fácilmente el comportamiento del procesador. Un modelo de procesador escrito en C que usa el VMI decodifica la instrucción de destino que se va a simular y la traduce a instrucciones x86 nativas que luego se ejecutan en la PC. VMI se puede utilizar para modelar arquitecturas de 8, 16, 32 y 64 bits. Existe un mecanismo de interceptación que permite la emulación de llamadas a funciones en las bibliotecas de tiempo de ejecución de la aplicación (como write, fstat, etc.) sin necesidad de modificar el modelo del procesador o la aplicación simulada.
PPM y BHM
Los componentes de comportamiento, los periféricos y el entorno general se modelan utilizando código C y llamadas a estas dos API. Detrás de estas API hay un mecanismo de programación basado en eventos para permitir el modelado de tiempo, eventos y simultaneidad. Los modelos de periféricos proporcionan devoluciones de llamada que se solicitan cuando el software de la aplicación que se ejecuta en procesadores modelados en la plataforma accede a las ubicaciones de memoria donde el periférico está habilitado.
Usuarios
OVPsim está siendo utilizado por múltiples establecimientos educativos para proporcionar una infraestructura de simulación para la investigación de plataformas informáticas paralelas, [7] [8] codiseño de hardware / software, [9] análisis de desempeño de sistemas integrados, [10] y como base de otros desarrollos de herramientas integradas. [ cita requerida ] También se aprovecha para los cursos educativos para permitir a los estudiantes desarrollar y depurar software de aplicación y crear 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 de arquitectura MIPS , características en una 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 las universidades europeas. El Grupo de Trabajo de Cumplimiento de la Fundación RISC-V [15] utiliza una versión de OVPsim como simulador de referencia. Las principales empresas de semiconductores como Renesas han utilizado el simulador para su trabajo de desarrollo de procesadores, como se revela en las principales publicaciones 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 podría ser el primer procesador de 32 bits desarrollado en India. [18] Los modelos de OVP y las plataformas virtuales constituyen la base para otras actividades que lleva 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" . MIPS de Linux. 24 de noviembre de 2008 . Consultado el 10 de septiembre de 2013 .
- ^ "Cadencia Zynq" . Cadencia. 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 la creación de prototipos virtuales utilizando OVP, SystemC y SCMLEducation" (PDF) . vdtt.iitd.ac.in. 11 de enero de 2009 . Consultado el 9 de mayo de 2013 .
- ^ Pinto, C .; Raghav, S .; Marongiu, A .; Ruggiero, M .; Atienza, D .; Benini, L. (2011). "Simulación rápida y paralela acelerada por GPGPU de plataformas de mil núcleos". 2011 XI Simposio Internacional IEEE / ACM sobre Computación en Cluster, Cloud 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 sistema multiprocesador en aplicaciones de chip". 2009 Simposio Internacional de Señales, Circuitos y Sistemas . 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 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 conectada ARM. 1 de enero de 2012 . Consultado el 26 de junio de 2013 .
- ^ "Imperas prepara modelos rápidos de procesador ARM Cortex-A15" . EETimes. 8 de marzo de 2012 . Consultado el 19 de septiembre de 2013 .
- ^ "Ficha técnica de Europractice OVPsim" (PDF) . EuroPractice. 10 de noviembre de 2012 . Consultado el 10 de septiembre de 2013 .
- ^ "Grupo de Trabajo de Cumplimiento RISC-V" . riscv.org. 6 de junio de 2018 . Consultado el 6 de junio de 2018 .
- ^ "Modelos de procesador ayudan a 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 proyecto de investigación de la UE". EE Times .
- ^ " Debutó el ' primer' procesador de 32 bits desarrollado en India". EE Times-India . 24 de junio de 2009.
... VinChip Systems Inc. ha lanzado ..., que afirma es el primer procesador de 32 bits desarrollado en India. ... El simulador ... OVPsim ha proporcionado soporte para la creación de prototipos virtuales ...
enlaces externos
- Página web oficial
- Herramientas de creación de perfiles y depuración de múltiples núcleos de Imperas que utilizan modelos OVP
- OVPsim utilizado en la emulación de MIPS Malta Platform
- Europractice