Arquitectura e Ingeniería de Computadores (Ingeniería Informática)

Unidad de Instrucción Segmentada

Pedro López, Salvador Petit, Sergio Sáez

Introducción

En el diseño de procesadores segmentados, existen diversas opciones de implementación que permiten resolver los riesgos o conflictos derivados de la ejecución de varias instrucciones en el mismo ciclo del procesador. Estas opciones pueden ofrecer mayores o menores prestaciones (medidas en Ciclos Por Instrucción o CPI) y pueden afectar a la arquitectura del juego de instrucciones desde el punto de vista del programador o del compilador.

En este laboratorio, se presenta un simulador que permite modelar el comportamiento de un procesador segmentado ejecutando un programa arbitrario. El simulador permite probar diversas opciones de implementación relacionadas con la resolución de conflictos de datos (que ocurren entre instrucciones al pasarse los datos a través de los registros) y de control (que ocurren con las instrucciones cuya ejecución depende del resultado de una instrucción de salto previa).

El simulador es capaz de simular ciclo a ciclo la ejecución de instrucciones del MIPS, así como el avance de las mismas por la ruta de datos de la máquina.

Soporta un subconjunto de las instrucciones del MIPS que operan sobre el banco de registros entero. Tiene cache de instrucciones y de datos separadas (arquitectura Harvard). Los registros se escriben y leen en el primer y segundo semiciclo de reloj, respectivamente.

Los riesgos de datos pueden resolverse insertando Stalls (ciclos de parada) o con Cortocircuitos.

Los riesgos de control pueden resolverse aplicando diversas estrategias: Stalls, Predict Not Taken y Delay Slot, con tres posibilidades de latencia de salto (1, 2, o 3).

Nótese que la ruta de datos simulada cambia en función de las estrategias empleadas para resolver los riesgos.

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 navegar por los resultados:

Navegando por las páginas de estado podemos observar el avance de las instrucciones a lo largo de la unidad de instrucción segmentada así como la inserción de ciclos de parada cuando se detectan riesgos. En la página FINAL se pueden obtener los resultados finales de prestaciones así como analizar el contenido de los registros y la memoria para comprobar la correcta ejecución del programa.

Objetivos

Instrucciones de Uso

Simulador

Configuración Salida

En el código ensamblador
Riesgos de datos:

Riesgos de control:

Latencia de salto:

Latencia operadores de coma flotante:
ADD CMP LS MUL