martes, 27 de mayo de 2008

SIMULADORES DE ARQUITECTURA



SIMULADORES

Los simuladores de microprocesadores son bastante comunes en la docencia de Arquitectura de Computadores: la experiencia demuestra que es una buena herramienta, y que su uso proporciona la práctica que requieren los conocimientos teóricos. Podemos encontrar simuladores de una amplia variedad de microprocesadores, tales como el Intel 8085, el Motorola 68000 o el MIPS.
En este apartado, y con el fin de potenciar el carácter docente de esta página web, queremos dar a conocer los simuladores de arquitecturas MIPS más conocidos. Resulta interesante saber que algunos de estos simuladores han sido desarrollados por profesores o estudiantes universitarios, y que este tipo de herramientas suele ser la alternativa que se utiliza en las prácticas de Arquitectura de Computadores cuando se decide que el diseño del procesador desde cero escapa a los objetivos docentes de las asignaturas.
WebMIPS
WebMIPS es un novedoso simulador, que facilita el proceso de aprendizaje de código ensamblador, segmentación, control, y diseño de la ruta de datos. Sin embargo, su mayor ventaja es la accesibilidad inmediata para los estudiantes, sin ningún tipo de instalación previa, y la posibilidad de monitorizar su actividad a través de la web. Creado por Irina Branovic, Roberto Giorgi, Enrico Martinelli (Universdad de Siena, Italia).
El nombre "WebMIPS" indica que este simulador ha sido diseñado para su uso en la web: efectivamente, está escrito en lenguaje ASP, y puede ser arrancado abriendo la página web del simulador. Otra ventaja del servicio web es que el usuario no requiere tener instalado ningún sistema operativo concreto para poder acceder a este software. WebMIPS todavía no soporta el conjunto de instrucciones MIPS completo; el usuario que quiera escribir programas en ensamblador propios, debería consultar la lista de instrucciones soportadas para poder simular el código.
El usuario puede cargar (copiar + pegar) un archivo con ensamblador MIPS o usar uno de los ejemplos incluídos para seguir su ejecución en el simulador. WebMIPS no es un ensamblador real; sin embargo, es capaz de reconocer si hay errores en el código proporcionado, y marcar la línea que contiene el error. También es capaz de mostrar la ejecución del programa paso a paso o todo a la vez.

Figura 1: Captura del simulador WebMIPS

En el modo paso a paso, el usuario puede seguir el avance de las instrucciones en cada etapa del cauce, y haciendo click en los elementos que componen el cauce pueden ver los valores correspondientes, señales de entrada y salida en cada ciclo de reloj. WebMIPS siempre tiene la técnica de adelantamiento activada, resuelve los riesgos del cauce y muestra los contenidos de la detección de riesgos y unidades de adelantamiento en el cauce.

SPIM

SPIM es un simulador autocontenido que puede ejecutar programas escritos en código ensamblador de MIPS32, aunque no ejecuta código binario. También proporciona un depurador sencillo y un conjunto mínimo de servicios del sistema operativo. Su autor es James Larus, investigador senior de Microsoft (antiguamente Profesor del departamento de Informática en la Universidad de Wisconsin-Madison).
Este simulador implementa casi todo el repertorio de ensamblador extendido MIPS32: omite la mayor parte de comparaciones de coma flotante, y las tablas de paginación de la memoria del sistema. La arquitectura MIPS implementada tiene algunos cambios; por ejemplo, la arquitectura MIPS64 soporta enteros y direcciones de 64 bits, con lo que SPIM no podrá ejecutar programas compilados para todo tipo de procesadores MIPS. Los compiladores de MIPS también generan ciertas directivas de ensamblado, que SPIM no puede procesar: estas directivas pueden ser borradas sin ningún problema.



Figura 2: Captura del simulador SPIM

MIPSim

Se trata de un simulador segmentado para el microprocesador MIPS. Este microprocesador es modelado a nivel de organización, y posee unidades funcionales visibles, tales como archivos de registros, registros de segmentación, ALU, multiplexores, flujo de control y de datos, etc.
El usuario puede escribir pequeños programas (ahora mismo solo hay implementado un subconjunto del repertorio de instrucciones del MIPS), y ver como trabaja el cauce segmentado, modificar el programa, el contenido de la memoria de datos y el archivo de registros instantáneamente, para así simular y poder ver los efectos. Actualmente MIPSim modela un sencillo cauce segmentado, sin detección de riesgos ni unidades de adelantamiento.

Figura 3: Captura del simulador MIPSim

No hay comentarios: