Tema 5

Anuncio
TEMA 5
(ENUNCIADOS)
EJERCICIO 1
Tenemos un procesador similar a MIPS64 pero en el que la etapa ID se ha dividido en
dos: la etapa D y la etapa B, en las cuales se realizan respectivamente la decodificación y
la resolución del salto. Así pues, el nuevo procesador constará de seis etapas que se
denominarán F, D, B, E, M y W.
El 10% de las instrucciones ejecutadas en este procesador son saltos condicionales que
bifurcan el 15% de las veces. Además, supondremos que el CPI de las instrucciones que
no se ven afectadas por estos saltos es 1.
a) Calcular el CPI si no se utiliza ningún tipo de predicción.
b) Calcular el CPI si se utiliza predicción de salto no tomado.
c) Calcular el CPI si se utiliza un BTB con una probabilidad de acierto del 95% y puertos
separados para la lectura y la escritura.
d) Repetir el cálculo anterior suponiendo que hay un único puerto de acceso al BTB.
EJERCICIO 2
En un determinado salto condicional se produce la siguiente secuencia :
T, T, T, NT, T, T, T, NT, T, T, T, NT
Siendo T: Salto Tomado
NT: Salto No Tomado
a) ¿Cuántos fallos se producirán en caso de usar un predictor de un bit? Estado
Inicial: Salto No Tomado (NT).
b) ¿Cuántos fallos se producirán en el caso de usar un predictor de dos bits? Estado
Inicial: Salto Fuertemente No Tomado (00).
EJERCICIO 3
Una instrucción de salto condicional tiene el siguiente comportamiento:
SSNNNSSNSNSNSSSSSN
a) Si se utiliza predicción fija de no salto, ¿cuántas veces falla?
b) Hacer lo mismo para predicción dinámica con dos bits que inicialmente indican
"salto fuerte".
EJERCICIO 4
Un procesador similar al MIPS64 posee un predictor BTB de 2 bits. Dada la secuencia de
código mostrada, y suponiendo que el predictor está en el estado “no salto fuerte” para la
instrucción “BNEZ R1,loop”, mostrar las etapas por las que pasan las dos instrucciones
que se ejecutan inmediatamente después de este salto durante la ejecución.
ADD R1,R0,#4
loop: SUB R5,R5,R2
ADD R2,R2,#1
SUB R1,R1,#1
BNEZ R1,loop
AND R6,R5,#63
OR R6,R6,#128
EJERCICIO 5
Considerar la siguiente secuencia de código, teniendo un buffer de predicción de k
entradas:
a) Calcular el tamaño de la tabla para BPB de (0,1), (0,2), (1,1) y (1,2)
b) Calcular el tamaño de la tabla para BTB de (0,1), (0,2), (1,1) y (1,2)
Descargar