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)