Grado en Ingeniería Informática
Arquitectura de Computadores – Prácticas Curso 2012-13
Arquitectura de Computadores – Prácticas Curso 2012-13
Practica 7: WinDLXV
Para la
realización de esta práctica emplearemos el simulador WinDLXV con objeto de
identificar las posibles detenciones del pipeline y observar las etapas por las
que pasa una instrucción.
REALIZACIÓN
DE LA PRÁCTICA.
En esta práctica analizaremos 4
conjuntos de instrucciones y contestaremos a una serie de cuestiones. Para
estos 4 ejemplos las condiciones de partida son:
- Unidad de
suma: latencia 2 ciclos
- Unidad de
multiplicación: latencia 5 ciclos
- Unidad de
división: latencia 19 ciclos
- Unidades
funcionales sin segmentar
- Adelantamiento de resultados:
desactivado
Ejemplo 1: dependencias de datos tipo RAW
Cargamos
el programa del ejemplo 1.
Cuestiones:
·
¿Cuál es en este cauce la latencia de
emisión de las instrucciones aritmético-lógicas?
Con latencia de emisión nos referimos a los ciclos que
existen entre una instrucción y la siguiente. En este caso hay 2 ciclos entre
instrucciones aritmético-lógicas.
·
¿La escritura y la lectura de los
operandos en el banco de registros se realizan en el mismo o en distinto ciclo?
Se realizan en un mismo ciclo, una operación en el flanco de
subida y otra en el de bajada.
a) Número total
de ciclos de ejecución : 29
Ciclos.
CPI: 1933 Ciclos/Inst.
b) Número (de
ciclos) y distribución de las detenciones (stalls): Se producen 10 detenciones de tipo RAW.
c) Aplicando el
adelantamiento de resultado se obtienen los siguientes resultados:
Número total de ciclos de ejecución: 19 Ciclos.
CPI: 1267 Ciclos/Inst.
Número (de ciclos) y distribución
de las detenciones y ganancia del rendimiento al emplear adelantamiento de
resultados (data forwarding) :
Ninguna
detención. Al emplear adelantamiento de resultados se produce una mejora en el
número de ciclos de ejecución y de reloj.
Ejemplo
2: dependencias de datos tipo RAW
Cargamos el programa del ejemplo 2 modificando los registros y las
posiciones de memoria pedidos.
ADD
r1,r2,r3 r1 = 1002 + 6
= 0x1008
LW r4, 0(r1) r4 = 0x20
SUB r5,r4,r3 r5 = r4 – r3 = 0x1a
SW 14(r2),r5
almacena 1a en la posición 0x1010
de memoria.
LW r1, 2(r2) r1 = 0x1f
SUB r4,r1,r5 r4 = 0x5
AND r6, r1, r5 r6 = 0x1a
OR r8,r1,r5 r8 = 0x1f
Cuestiones
·
¿Cuál es en este cauce la latencia de emisión
de las instrucciones aritmético-lógicas?
La latencia de las
instrucciones Aritmético-lógicas es de 1 ciclo.
¿Y para las instrucciones de
carga?
La latencia de
las instrucciones de carga es de 3
ciclos.
a) Número total
de ciclos de ejecución: 25 ciclos.
CPI: 1923 Ciclos/Inst.
b) Número (de
ciclos) y distribución de las detenciones:
Se producen 8 detenciones de tipo
RAW.
c) Aplicando el
adelantamiento de resultado se obtienen los siguientes resultados:
Número total de ciclos de ejecución: 19 ciclos.
CPI: 1462 Ciclos/Inst.
Número (de ciclos) y distribución de las
detenciones: 2
detenciones tipo RAW.
Ganancia del rendimiento al emplear
adelantamiento de resultados: 7 ciclos
menos, 6 RAW menos.
d) Al emplear
adelantamiento de resultados, ¿cuáles serían las latencias de emisión para las
instrucciones aritmético-lógicas y para las instrucciones de carga?
Con adelantamiento de resultado, la latencia de las
instrucciones aritmético-lógicas es de 1 ciclo y la de las instrucciones de
carga es de 2 ciclos.
Ejemplo 3:
dependencias de tipo estructural
Cargamos
el programa del ejemplo 3.
Cuestiones
a) Número total
de ciclos de ejecución: 18 ciclos.
CPI: 3
Ciclos/Inst.
b) Número (de
ciclos) y distribución de las detenciones :
No existen detenciones.
c)
Ganancia del rendimiento al
segmentar las unidades funcionales de punto flotante:
15 Ciclos de
ejecución.
CPI: 2.5
ciclos/instrucción.
Mejora el
rendimiento al disminuir los ciclos de
ejecución y los ciclos de reloj.
Ejemplo 4:
reordenación de datos
Cargamos
el programa del ejemplo 4 modificando la latencia de las instrucciones señaladas.
Cuestiones
a) Número total
de ciclos de ejecución: 86 ciclos.
CPI del programa inicial: 7167 Ciclos/Inst.
b) Número de
ciclos perdidos por dependencias tipo RAW en el programa inicial:
35 detenciones tipo RAW.
c) Ganancia del
rendimiento al reordenar las instrucciones:
Se produce una mejora del rendimiento porque el número de
ciclos de ejecución disminuye de 86 a 73, el número de ciclos por instrucción
de 7.167 a 6.083 y el número de
detenciones de 35 a 17.
No hay comentarios:
Publicar un comentario