stringtranslate.com

ARMulador

ARM Instruction Set Simulator , también conocido como ARMulator , es una de las herramientas de desarrollo de software que ofrece la unidad de negocios de sistemas de desarrollo de ARM Limited a todos los usuarios de chips basados ​​en ARM. Debe su herencia al desarrollo temprano del conjunto de instrucciones por parte de Sophie Wilson . Parte de esta herencia aún es visible en la provisión de un modelo Tube BBC Micro en ARMulator.

Características

ARMulator está escrito en C y proporciona más que un simple simulador de conjunto de instrucciones, proporciona una plataforma virtual para la emulación del sistema. Viene listo para emular un procesador ARM y ciertos coprocesadores ARM . Si el procesador es parte de un sistema integrado , los licenciatarios pueden ampliar ARMulator para agregar sus propias implementaciones del hardware adicional al modelo ARMulator. ARMulator proporciona una serie de servicios para ayudar con el comportamiento basado en el tiempo y la programación de eventos y se envía con ejemplos de expansiones de coprocesadores y mapeados en memoria. De esta manera, pueden usar ARMulator para emular todo su sistema integrado . Una limitación clave para ARMulator es que solo puede simular una sola CPU ARM a la vez, aunque casi todos los núcleos ARM hasta ARM11 están disponibles.

El rendimiento de ARMulator es bueno para la tecnología empleada, son aproximadamente 1000 instrucciones de host (PC) por instrucción ARM. Esto significa que las velocidades emuladas de 1 MHz eran normales para las PC de mediados y fines de los 90. La precisión también es buena, aunque se clasifica como precisa en cuanto a recuento de ciclos en lugar de precisa en cuanto a ciclos, esto se debe a que la tubería ARM no está completamente modelada (aunque los enclavamientos de registro sí lo están). La resolución es para una instrucción, como consecuencia, cuando se ejecuta paso a paso, se ignoran los enclavamientos de registro y se devuelven recuentos de ciclos diferentes a los que se obtendrían si el programa simplemente se hubiera ejecutado, esto era inevitable.

Probar ARMulator siempre fue un desafío que requería mucho tiempo, ya que se utilizaban las suites completas de validación de la arquitectura ARM. Con más de un millón de líneas de código C, era un producto bastante pesado.

ARMulator permite la depuración en tiempo de ejecución mediante armsd (ARM Symbolic Debugger) o cualquiera de los depuradores gráficos que se incluyeron en SDT y los productos ADS posteriores. ARMulator tenía el problema de ser una herramienta invisible con una configuración de archivo de texto (armul.conf) que a muchos les resultaba compleja de configurar.

ARMulator II formó la base para los modelos de co-verificación de alta precisión y con ciclos invocables de los procesadores ARM; estos modelos CoV (ver Simulador de ciclo preciso ) fueron la base de muchos sistemas de CoVerificación para procesadores ARM.

Disponibilidad

ARMulator estuvo disponible en una amplia gama de plataformas a lo largo de su existencia, incluidas Mac , plataformas RISC OS , DEC Alpha , HP-UX , Solaris , SunOS , Windows y Linux . A mediados de la década de 1990, había reticencias a dar soporte a las plataformas Windows; antes de Windows 95, era una plataforma relativamente desafiante. A finales de la década de 1990 y principios de la de 2000, se eliminó el soporte para todos, excepto Solaris, Windows y Linux, aunque sin duda la base de código sigue plagada de pragmas como #ifdef RISCOS.

ARMulator II se incluía en los primeros kits de herramientas de ARM, así como en los posteriores SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RCVT 1.0 y también por separado como RVISS. Se produjeron modelos especiales durante el desarrollo de las CPU, en particular ARM9E , ARM10 y ARM11 ; estos modelos ayudaron con decisiones arquitectónicas como Thumb-2 y TrustZone.

ARMulator ha sido eliminado gradualmente y ha sido reemplazado por modelos de sistema y CPU de alto rendimiento basados ​​en compilación Just-in-time (ver el enlace FastSim a continuación).

ARMulator I se convirtió en código abierto y es la base de la versión GNU de ARMulator. Las diferencias clave están en la interfaz de memoria y los servicios, y también la decodificación de instrucciones se realiza de manera diferente. El ARMulator de GNU está disponible como parte del depurador GDB en las herramientas GNU de ARM.

ARMulator II formó la base para los modelos de co-verificación de alta precisión y con ciclos de verificación de los procesadores ARM. Estos modelos CoVs (consulte el Simulador de ciclos precisos) fueron la base de muchos sistemas CoVerification para procesadores ARM. Seamless de Mentor Graphic tiene el sistema CoVs líder en el mercado que admite muchos núcleos ARM y muchas otras CPU.

ARMulator II se incluyó en los primeros kits de herramientas ARM, así como en los posteriores SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RVCT 1.0 y también por separado como RVISS.

Entre los principales colaboradores de ARMulator II se encuentran Mike Williams, Louise Jameson, Charles Lavender, Donald Sinclair, Chris Lamb y Rebecca Bryan (que trabajó en ARMulator como ingeniero y, más tarde, como gerente de producto). Allan Skillman, que en ese momento trabajaba en los modelos de CoVerification de ARM, también realizó importantes aportes.

Un colaborador clave de ARMulator I fue Dave Jaggar .

Durante el desarrollo de las CPU se produjeron modelos especiales, en particular ARM9E, ARM10 y ARM11; estos modelos ayudaron con decisiones arquitectónicas como Thumb-2 y TrustZone.

Véase también

Referencias

Enlaces externos