Está en la página 1de 3

EJERCICIOS DEL TEMA 3

EJERCICIO 1
Dado el siguiente cdigo de MIPS64:
DADDI
Etq: LD
DADD
SD
DADDI
BNEZ
HALT

R1,R0,16
R2,10(R1)
R2,R2,R2
R2,10(R1)
R1,R1,-8
R1,Etq

1) Hacer un seguimiento de su ejecucin utilizando la tcnica de parada del cauce.


2) Repetir el seguimiento utilizando adelantamiento.
3) Si la frecuencia del procesador es de 2 GHz, calcular los tiempos de ejecucin en
ambos casos y el speedup obtenido.

EJERCICIO 2
Sobre un procesador MIPS64 se va a ejecutar el siguiente cdigo:
Etq: LD
LD
DADD
SD
DADDI
BNE
HALT

R1,1000(R3)
R2,2000(R3)
R1,R1,R2
R1,3000(R3)
R3,R3,8
R4,R3,Etq

Los valores iniciales de los registros R3 y R4 son 0 y 400 respectivamente. Si por causa
de un riesgo de control comienza la ejecucin de una instruccin que posteriormente se
descubre que no es la que debera ejecutarse, sta se aborta.
1) Indique las dependencias de datos existentes en el cdigo.
2) Muestre el diagrama temporal de la primera iteracin del programa cuando se utiliza
nicamente la tcnica de detencin del cauce.
3) Vuelva a mostrar el diagrama de la primera iteracin pero aadiendo adelantamiento
de datos (data forwarding) e indicando mediante flechas aquellos que se produzcan.
Ponga el origen de la flecha en la etapa donde se obtiene el operando y el final en la
etapa destino.

4) En esta mquina siempre se produce el mismo nmero de huecos de retardo tras una
instruccin de salto condicional. Indique cul es ese nmero y su causa.
5) Reordene el cdigo para utilizar la tcnica de bifurcacin retardada junto con el
adelantamiento de datos y muestre el nuevo diagrama temporal.
6) Calcule el tiempo (ciclos) total de ejecucin del programa utilizando adelantamiento de
datos y la reordenacin de cdigo del apartado anterior.

EJERCICIO 3
Calcular el tiempo de ejecucin del siguiente programa de MIPS64 suponiendo que el
cuerpo del bucle se ejecuta 3 veces.
Etq:

LD
LD
DADD
DADD
SD
SD
BNE
DADDI
HALT

R1,100(R5)
R2,200(R5)
R1,R1,R1
R2,R2,R2
R1,200(R5)
R2,100(R5)
R1,R2,etq
R5,R5,8

EJERCICIO 4
Tenemos un computador, con modelo de ejecucin registro-registro (LOAD, STORE), con
las fases tpicas de ejecucin de una instruccin, que se indican seguidamente, junto a los
tiempos empleados en cada una de ellas:
F
D
E
M
W

bsqueda de la instruccin e incremento de PC


decodificacin y lectura de los registros
ejecucin, clculo de direcciones y resolucin del salto
acceso a memoria
escritura de resultado en registros

10ns
8ns
10ns
10ns
7ns

Tenemos otro computador con el mismo juego de instrucciones pero con un pipeline de 5
etapas, correspondientes a las 5 fases anteriores. La inclusin de registros de desacoplo
necesarios entre las etapas del pipeline introduce un retardo de 1ns en el paso de una
etapa a la siguiente. Adems, utiliza prediccin esttica de no salto y adelantamiento de
datos (forwarding).
SE PIDE:
1) Calcular el tiempo medio de ejecucin por instruccin para un programa completo
en ambos computadores, as como la mejora en la capacidad de procesamiento
(speedup) del computador con pipeline respecto al que no lo tiene. Sabemos que
las instrucciones ejecutadas en estos computadores tienen la siguiente distribucin:
40%

aritmticas o lgicas (OR, ADD, CMP...)

20%
20%
20%

bifurcaciones (BGT, BLT, BEQ...)


instrucciones de carga desde memoria (LD)
instrucciones de almacenamiento en memoria (ST)

2) Sobre el computador con pipeline se ha ejecutado el siguiente programa:


lnea 1:
lnea 2:
lnea 3:
lnea 4:
lnea 5:
lnea 6:
lnea 7:
lnea 8:
lnea 9:
lnea 10:
lnea 11:
lnea 12:
lnea 13:
lnea 14:
lnea 15:
lnea 16:

S1:
S2:

OR
OR
OR
OR
ADD
LD
ADD
ST
ADD
CMP
BGT
ADD
CMP
BLT
OR
OR

R1, R0, #16


R2, R0, #0
R4, R0, #5000
R3, R0, #0
R6, R3, R4
R7, (R6)
R7, R7, #1
R7, (R6)
R3, R3, #1
R3, #4092
S1
R2, R2, #1
R2, #257
S2
R1, R0, #0
R4, R0, #0

; R0 inicializado a 0

; bifurcar si mayor

; bifurcar si menor

a) Indica las dependencias de datos existen en este programa.


b) Muestra la situacin del pipeline durante los primeros 21 ciclos de ejecucin.

EJERCICIO 5
Dado el siguiente cdigo de MIPS64:
L.D
L.D
MUL.D
S.D
ADD.D
S.D
HALT

F0,100(R0)
F1,200(R0)
F2,F0,F0
F2,100(R0)
F2,F1,F1
F2,200(R0)

1) Hacer un seguimiento de su ejecucin utilizando la tcnica de parada del cauce.


2) Repetirlo con parada de cauce pero eliminando la primera instruccin S.D.
3) Repetir el seguimiento eliminando la misma instruccin pero con forwarding.

También podría gustarte