Experiencias con MIPsim
Primer contacto
- Ejecuto el programa.
- Aparece una ventana dividida en dos partes. En la de la izquierda aparecen las instrucciones que hay introducidas, que ahora mismo son todas NOP. En la de la derecha aparece un esquema del camino de datos dividido en segmentos, todo en gris.
- Pulso la tecla del triángulo verde (Start simulation).
- Los cables que conectan los diferentes componentes se van "llenando" de las instrucciones (NOP). Se puede ver cómo las instrucciones van atravesando los distintos segmentos a la vez que van entrando otras.
- En la barra de arriba, que indica los segmentos, se puede ver qué instrucción hay en cada segmento y en el mismo color que los cables.
- Pulso el botón de Pause Simulation para poder ver bien.
- El flujo se congela. Incluso las instrucciones se quedan a mitad de los cables.
- La barra de estado (abajo) me advierte: Drünken sie F1, um Hilfe zu erhalten.
- Le hago caso y pulso F1.
- Aparece la ayuda.
- La cierro.
- Pulso el botón Simulation slow mode.
- El programa funciona igual que antes pero más despacio.
- Pulso el botón Simulation fast mode.
- El programa funciona algo más rápido que en el modo normal.
- Pulso el botón Simulation single step.
- El programa se para, esta vez justo cuando cada cable es de un sólo color.
- Cada vez que vuelvo a pulsar el botón la simulación avanza hasta el siguiente paso.
- Pulso el botón Assembler window.
- Aparece la ventana del ensamblador (la experimentaremos en el siguiente contacto).
- Cierro la ventana del ensamblador y pulso Register window.
- Aparece la ventana de registros.
- Compruebo que puedo cambiarlos y grabarlos a disco..
- Pulso Data memory window.
- Aparece la ventana con las posiciones de memoria y su contenido.
- Se puede editar el contenido y grabarlo a disco.
- Cierro el programa
Usando MIPSim bajo GNU/Linux
Ya que es nuestro entorno de trabajo habitual, vamos a ver si es posible usar el simulador de MIPS en el sistema operativo GNU/Linux con la ayuda del programa llamado wine. Éste es algo parecido a un emulador que permite ejecutar en GNU/Linux aplicaciones nativas de Windows. Desgraciadamente la API de Windows no es abierta, por lo que la emulación no es perfecta. Algunos programas funcionan perfectamente, otros tienen problemas y otros directamente no se pueden ejecutar.
Tras el tiempo de carga, aparece la ventana de MIPSim. Lo primero que podemos apreciar es que los botones que hay bajo la barra de menús no se dibujan correctamente: los dibujos de los botones no caben en ellos y se mezclan (añadir captura).
Probamos las funciones de simulación (empezar simulación, pausar, simular rápido, simular lento, etc). Funcionan correctamente aunque más despacio que en Windows.
Probamos la ventana de de ensamblador. Funciona todo correctamente: la ventana aparece, se puede cambiar, se puede grabar, cargar y resetear.
La ventana de registros funciona correctamente y se actualiza tanto por el usuario como por resultado de la operación del programa.
De la misma forma, la ventana de memoria también funciona.
Introducimos un pequeño programa en ensamblador y lo simulamos. La simulación es perfecta y los resultados son los esperados.
Pulsamos sobre el botón y nos aparece un diálogo que nos dice: Die Hilfe konnte nicht aufgerufen werden., que suponemos que quiere indicarnos que la ayuda no se encuentra. Lo mismo ocurre cuando intentamos acceder a la ayuda desde el menú.
Probamos a visualizar el contenido de los buses y elementos del camino de datos durante la simulación. Actúa correctamente.
Conclusión: es totalmente factible utilizar el simulador de MIPS en GNU/Linux usando wine. La única pega real es la velocidad.