Pedro López, Salvador Petit, Sergio Sáez
El simulador del MIPS con soporte a la ejecución fuera de orden (MIPS/OOO) es capaz de aplicar planificación dinámica de instrucciones aplicando el algoritmo de Tomasulo. El simulador acepta como entrada un archivo en lenguaje ensamblador. Implementa un conjunto de instrucciones aritméticas enteras, de coma flotante de doble precisión, y de carga/almacenamiento.
El simulador es capaz de simular ciclo a ciclo la ejecución de instrucciones del MIPS/OOO, así como el avance de las mismas por la ruta de datos de la máquina.
Permite configurar el número (#Op), latencia (Tev), estaciones de reserva (#RS) y buffers de lectura/escritura (#TL/#TE) para cada tipo de operador, además de indicar si los operadores están segmentados.
Soporta procesadores superescalares con múltiples vías para las etapas de Issue (I), WriteBack (WB) y Commit (C), diversas configuraciones del predictor de saltos, incluyendo especificar el número de entradas del Branch Target Buffer (BTB), así como del Reorder Buffer (ROB). Por último, también implementa soporte a load forwarding.
Al pulsar el botón Ejecutar se ejecuta el programa en ensamblador, lo que abre una nueva página del navegador que muestra la configuración del procesador y el contenido inicial de la memoria, así como unos enlaces a otras páginas que permiten acceder al estado inicial del procesador, el estado final, el cronograma de la ejecución ciclo a ciclo y el estado de la BTB.
Operador | #Op | Tev | Segmentado? | #RS/#TL/#TE | Enteros | 8 | 1 | No | 16 |
---|---|---|---|---|
Sum/Rest | 8 | 4 | No | 16 |
Mult/Div | 8 | 7 | No | 16 |
MemDatos | 8 | 2 | No | 16+16 |
ROB | 128 entradas |
Analizar el tiempo de ejecucion y los CPI (o IPC) obtenidos. Mostrar en una gráfica dichos resultados e interpretarlos.
Configuración | |
---|---|
#Op Tev #RS Seg Sum/Rest: #Op Tev #RS Seg Mult/Div: #Op Tev #RS Seg MemDatos: #Op Tev #TL #TE Seg Vías: I WB C Predictor: BTB Otros: ROB load forwarding |
Enteros:Salida |