Articulo de referencia

MicroSim

MikroSim es un programa informático educativo que explica, sin especificar el hardware, el funcionamiento general de un procesador virtual que se ejecuta en el sistema operativo...

MikroSim es un programa informático educativo que explica, sin especificar el hardware, el funcionamiento general de un procesador virtual que se ejecuta en el sistema operativo Microsoft Windows . Dispositivos como calculadoras miniaturizadas , microcontroladores , microprocesadores y ordenadores pueden explicarse mediante código de instrucciones desarrollado a medida a nivel de transferencia de registros, controlado por secuencias de microinstrucciones ( microcódigo ). A partir de esto, es posible desarrollar un conjunto de instrucciones para controlar una placa de aplicación virtual con un nivel de abstracción superior.

General

Inicialmente, MikroSim se desarrolló como un software de simulación de procesadores ampliamente disponible en el ámbito educativo. Su funcionamiento se basa en el desarrollo de microcódigo, definido como una secuencia de microinstrucciones para una unidad de control virtual . El objetivo del software es ofrecer un simulador de microcódigo con diversos niveles de abstracción, incluyendo la capacidad de los simuladores de CPU y los emuladores de conjuntos de instrucciones. En la versión actual del software, es posible que una aplicación virtual controlada por microcódigo opere con sus propios conjuntos de instrucciones codificados. MikroSim aborda de forma general conceptos típicos y conocidos de la ingeniería informática , como la arquitectura de computadoras y la arquitectura de conjuntos de instrucciones , conceptos establecidos desde los inicios de la era de la información y que siguen vigentes. De esta manera, el software de simulación ofrece un beneficio didáctico gratuito y atemporal, sin estar limitado a desarrollos específicos del pasado ni del futuro. La documentación detallada y la interfaz gráfica de usuario ( GUI ) bilingüe de la aplicación están escritas tanto en alemán como en inglés, además de ser compatibles con versiones anteriores, gracias en cierta medida al sistema operativo Windows de Microsoft. [ 1 ]

Historia del desarrollo

El software se basa en una versión escrita en Turbo Pascal compilada para sistemas operativos MS-DOS , que se utilizó con fines educativos en ingeniería informática e informática en la Universidad de Marburgo , Alemania, hasta 1992. [ 2 ] Martin Perner retomó el concepto en el verano de 1992, lo revisó y lo convirtió en una aplicación para Windows compilada con Microsoft Visual Basic y que se ejecutaba en Windows 3.1x . [ 3 ] De esta manera, surgió un simulador con mejoras conceptuales al aprovechar la funcionalidad y la utilización de la interfaz gráfica de usuario (GUI) de MS Windows para apoyar la composición de microcódigo y la trazabilidad de su influencia didáctica. Las mejoras de la herramienta de aprendizaje electrónico para Windows fueron apoyadas y promovidas por el Departamento de Matemáticas/Informática de la Universidad de Marburgo por Heinz-Peter Gumm hasta finales de 1995.

El simulador fue galardonado con el Premio Europeo de Software Académico 1994 en la categoría de ciencias de la computación en Heidelberg (Alemania) en noviembre de 1994. En marzo de 1995, el simulador se presentó en la feria de informática CeBIT '95 en Hannover en el stand de las Universidades de Hesse. Entre 1995 y 2000, el simulador se publicó como Mikrocodesimulator MikroSim 1.2 sin mejoras significativas. En ese momento, la herramienta recibió un premio de 1000 ECU de la Unión Europea en el marco del Año Europeo del Aprendizaje Permanente 1996. En 1997, el software se presentó en el concurso Multimedia Transfer'97 en el marco de la exposición LearnTec'97. [ 4 ] En su penúltima revisión, el simulador se publicó como Mikrocodesimulator MikroSim2000 , optimizado para el funcionamiento de 32 bits de MS Windows 95 .

Entre 2008 y 2009, el concepto del simulador fue revisado, reelaborado y ampliado cuidadosamente. De esta manera, recibió mejoras y extensiones de amplio alcance sin afectar los exitosos aspectos conceptuales de las capacidades de simulación de microcódigo en su núcleo. Para ello, se aprovecha el rendimiento de los sistemas informáticos actuales, determinado por el sistema operativo y la potencia de cálculo subyacente, para extender las posibilidades de simulación de MikroSim hasta la etapa de una placa de aplicación virtual. MikroSim se compila y optimiza para lograr una compatibilidad sin restricciones y la distribución más amplia posible para MS Windows XP como una versión de 32 bits. El programa se ejecuta en todos los sistemas operativos de 32 y 64 bits de MS Windows Vista y MS Windows 7. Por lo tanto, no se necesita un modo de compatibilidad especial para XP. Desde enero de 2010, el simulador se distribuye como Mikrocodesimulator MikroSim 2010 por 0/1-SimWare.

Funcionalidad

La aplicación para Windows permite el establecimiento gradual de una aplicación virtual predeterminada y, como tal, inmutable en su funcionalidad.

En el modo de exploración, se puede evaluar el principio de funcionamiento y el control de los componentes recién añadidos, influenciados por una instrucción de microcódigo dentro de un ciclo. El ancho de las microinstrucciones de MikroSim es de 49 bits. Una sola microinstrucción se ejecuta en tres fases de un reloj de tres fases. Estas fases parciales se denominan "GET", "CALCULATE" y "PUT", y consisten en obtener un valor de registro, realizar un cálculo de 32 bits y, finalmente, almacenar el resultado del cálculo en un registro interno de la CPU.

En el modo de simulación, las microinstrucciones ejecutadas controlan la unidad central de procesamiento del simulador en ciclos posteriores. Por lo tanto, la capacidad intrínseca de una microinstrucción se utiliza para acceder a la siguiente microinstrucción en la memoria de control . Esta memoria, que contiene el conjunto de microinstrucciones (conocido comúnmente como "microcódigo"), consta de 1024 palabras de microinstrucciones, cada una de 49 bits.

El uso de las funcionalidades de la memoria de control para la programación del microcódigo y la implementación de un intérprete de código máquina de funcionamiento cíclico , programado en microcódigo, permite la implementación de secuencias de microoperaciones individuales . El microcódigo puede considerarse como el firmware de MikroSim, que puede modificarse, almacenarse y recargarse desde un archivo ROM de microcódigo.

Dentro de un ciclo de ejecución de microinstrucciones, la CPU y un controlador de entrada/salida se conectan a una  memoria RAM externa de 16 KB. Mediante el controlador de entrada/salida, se admite la comunicación con dispositivos virtuales de entrada y salida a través del modo de acceso directo a memoria (DMA), la conexión entre circuitos integrados (I2C) y la funcionalidad de solicitud de interrupción (IRQ). Un puerto de salida, una pantalla, un temporizador, un disparador de eventos, un convertidor digital-analógico, un teclado y un canal de entrada/salida de datos se proporcionan como circuitos integrados virtuales para explicar didácticamente la comunicación con dispositivos externos.

El simulador de microcódigo utiliza ocho registros de libre uso, cada uno de 32 bits, conectados a una unidad aritmético-lógica (ALU) de 32 bits. [ 5 ] El contenido de los registros puede considerarse como valores enteros con o sin signo, o como números de coma flotante de 32 bits . El contenido de los registros puede visualizarse, interpretarse y modificarse bit a bit en un editor de números de sistema integrado.

La ALU de 32 bits es la unidad clave de la unidad central de procesamiento. Admite 128 operaciones aritméticas básicas diferentes para operaciones con números enteros, control de interrupciones y aritmética de punto flotante.

El enfoque didáctico para los cálculos de punto flotante fue introducido de forma similar a principios de la década de 1940 por Konrad Zuse . En este contexto, se introdujo mediante el uso de operaciones elementales de subnivel para el exponente y la mantisa involucradas en las operaciones clave de suma/resta y multiplicación/división. Se proporciona un conjunto de comandos aritméticos de punto flotante de 32 bits en mantisa y exponente para las operaciones básicas y funciones analíticas elementales, tal como se implementan en los coprocesadores matemáticos actuales. Aquí, en la simulación con MikroSim, se asume idealmente que la ejecución de cada operación aritmética de la ALU admitida requiere solo un tiempo de cálculo distinto, independiente de la complejidad del circuito que se requiere en la práctica.

La ejecución de microinstrucciones puede realizarse en varios niveles de simulación con diferente resolución temporal:

  • En el nivel de simulación más bajo, el simulador admite la ejecución por fases de GET, CALCULATE y PUT. El procesamiento de las fases parciales es posible con un retardo ajustable para una mejor trazabilidad.
  • En la siguiente capa de control, cada microinstrucción se ejecuta dentro de un único ciclo de reloj completo de tres fases. Varios ciclos de tres fases pueden ejecutarse consecutivamente dentro del ciclo denominado "Carga, Incremento y Ejecución" (LIE). El ciclo LIE es un intérprete microcodificado que recupera repetidamente bytes de instrucción de la RAM externa, incrementa el contador de programa y salta a la subrutina microcodificada asociada con el código de operación recuperado. Una vez finalizada la subrutina, el control regresa al ciclo LIE para recuperar la siguiente instrucción de máquina.
  • Un nivel de ejecución superior permite ejecutar una secuencia de varias instrucciones de máquina hasta alcanzar un punto de interrupción definido por el usuario, el cual se ubica en la secuencia de código máquina. Es posible medir los tiempos de ejecución entre puntos de interrupción, lo que permite evaluar el rendimiento de la ejecución tanto a nivel de máquina como de microcódigo.
  • En el nivel de simulación más avanzado, el simulador de microcódigo ejecuta continuamente microinstrucciones sin interrupciones. En este nivel, las instrucciones de máquina se cargan una a una. De esta forma, es posible centrarse en la interacción de la CPU con los dispositivos externos.

Con diversas opciones adicionales, se pueden suprimir las actividades visuales de la CPU para aumentar la velocidad de procesamiento cuando se prioriza el control de la aplicación mediante programación. El monitor de rendimiento incluido con el simulador permite al usuario comparar el rendimiento de procesamiento de MikroSim con la potencia de cálculo del hardware del simulador, medida en operaciones de coma flotante por segundo ( FLOPS ) e instrucciones por segundo (IPS).

Con la herramienta básica de ensamblaje para MikroSim (MikroBAT), se pueden desarrollar programas sencillos en lenguaje ensamblador . En este caso, todos los mnemónicos compatibles con el lenguaje ensamblador se determinan a nivel de microinstrucciones mediante el conjunto de instrucciones de la máquina creada por el usuario. Esta herramienta adicional permite traducir el programa en lenguaje ensamblador a código máquina y datos, y transferir el código binario a la RAM externa para simulaciones posteriores. Junto con MikroBAT, el simulador de microcódigo MikroSim facilita la introducción didáctica de aspectos de la enseñanza de la informática técnica, desde una máquina de cálculo controlada por interruptores hasta una aplicación programable en ensamblador.

Véase también

Citas

Literatura

  • Gumm, Heinz Peter; Sommer, Manfred (2010). "5.6". Einführung in die Informatik (en alemán). Walter de Gruyter. págs. 470–485 . ISBN  978-3-486-70458-7.

Referencias

  1. Praxis der Mathematik: Monatsschrift der reinen und der angewandten Mathematik im Unterricht (en alemán). Deubner. 1997. pág. 284. 
  2. Control automático y ciencias de la computación . Allerton Press, Incorporated. 1988. pág. 32. 
  3. Gumm, Heinz-Peter; Sommer, Manfred (2017). Rechnerarchitektur, Betriebssysteme, Rechnernetze (en alemán). Walter de Gruyter GmbH & Co KG. pag. 74.ISBN  978-3-11-044236-6.
  4. Mikrocodesimulator – Premios y distinciones , DE : MikroSim , consultado el 5 de diciembre de 2010.
  5. Valdez, Gustavo García (2013). "Una descripción genérica y simulación de arquitecturas basadas en microarquitecturas" . Lume Home . Recuperado el 26 de noviembre de 2025 .
  • Logotipo de Wikimedia CommonsContenido multimedia relacionado con MikroSim en Wikimedia Commons
  • Sitio web oficial