Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
1. Objetivo ................................................................................................................................. 2
2. Primera parte ........................................................................................................................ 2
Apartado a: ................................................................................................................................ 2
Apartado b: ............................................................................................................................... 2
Apartado c: ................................................................................................................................ 3
3. Segunda parte ....................................................................................................................... 3
Apartado a: ................................................................................................................................ 5
Apartado b: ............................................................................................................................... 5
Apartado c: ................................................................................................................................ 5
Apartado d: ............................................................................................................................... 7
1. Objetivo
Comprender el funcionamiento de las arquitecturas superescalares.
Entender el funcionamiento de las técnicas especulativas.
Familiarizarse con el simulador SIMDE.
2. Primera parte
Tras ejecutar el simulador y cargar el fichero ejemplo facilitado por el manual, llamado
bucle.pla, hemos fijado la arquitectura superescalar con los parámetros de configuración
predefinidos. A continuación, hemos inicializado los registros y la memoria con los siguientes
valores:
Apartado a:
Completa la tabla con los valores pedidos:
Grado de emisión 4
Nº entradas ROB 47
Técnica de predicción de saltos Predicción dinámica con 2 bits de
desplazamiento.
BHT de 16 entradas.
% fallos de la caché de datos 0%
Apartado b:
Ejecuta el programa paso a paso e indica el contenido del componente decodificador para
los ciclos 4 y 5. Explica los resultados obtenidos:
Apartado c:
Calcula el CPI:
𝑁º 𝑑𝑒 𝑐𝑖𝑐𝑙𝑜𝑠 72
CP I=
𝑁º 𝑑𝑒 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠
= = 0.7128
101
3. Segunda parte
En esta parte veremos en detalle el funcionamiento de las técnicas especulativas en las que se
conjuga la predicción dinámica de saltos para los saltos y la especulación con Tomasulo para
los datos.
Carga el fichero memPract5.mem para inicializar la memoria y los registros del sistema
(Configurar --> Contenido memoria/registros Cargar Mem/Reg de Ficheros).
Es una BHT de 16 entradas. Se indexan con los 4 bits menos significativos de la DIR de
salto. Si una entrada tiene el valor F es que el salto que coincide con esa dirección, por
tanto, no se toma; si vale V el salto se toma. Además de esto se muestra el valor binario
de la entrada de la tabla entre paréntesis.
Apartado b:
Calcula la tasa de aciertos del predictor.
La instrucción de salto se ejecuta 10 veces a lo largo del código PRAC5.PLA, de las cuales falla
tres veces, la primera, la segunda y la última. Por tanto, vamos a tener un porcentaje de
aciertos del 70%:
7
% 𝑑𝑒 𝑎𝑐𝑖𝑒𝑟𝑡𝑜𝑠= * 100= 70%
10
Apartado c:
Indica el contenido del componente prefetch, decodificador y reorder buffer en los ciclos 26
y 27 de ejecución del programa. Razona los resultados.
Ciclo 26:
Prefetch:
Decodificador:
Reorder Buffer:
Ciclo 27:
Prefetch:
5
6
7
8
Decodificador:
Reorder Buffer:
Entrada Instrucción Destino Valor Dir Etapa
Tras la primera iteración, llegamos a la instrucción de salto y, puesto que inicialmente el salto
lo hemos predicho como no tomado, se emiten las instrucciones siguientes a él, las dos
instrucciones SI. En este punto, el simulador ya ha hecho la pre-búsqueda de todas las
instrucciones, las cuales ya están todas decodificadas, por lo que prefetch y decodificador
están vacíos los dos.
Apartado d:
Completa la tabla siguiente con los ciclos de inicio y fin de cada etapa para todo el fragmento
de programa, considerando sólo la primera iteración. ¿Se emiten las instrucciones en orden?
¿Se ejecutan en orden?