E. U. de Informática – U. P. M. Departamento de Informática Aplicada 2ª Prueba Parcial de Arquitectura de Computadores EJERCICIO 1 13 de diciembre de 2013 SOLUCIÓN Instrucción l.d f1,0(r1) l.d f3,0(r3) add.d f2,f1,f3 add.d f5,f6,f7 mul.d f8,f2,f3 s.d f8,10(r1) sub.d f8,f8,f3 Emisión Ejecución/Mem 1 2 3 4 5 6 7 11(re) 14(re) 25(re) addi.d f5,f8,3 mul.d f5,f5,f2 s.d f5,10(r3) 2-5 6-9(re) 11-12(raw) 5-6 14-23(raw) 25-28(raw) 25-26(raw) 28-29(raw) 31-40(raw) 42-45(raw) Escritura 6 10 13 7 24 27 30 41 - Unidades funcionales y de acceso a memoria, con sus correspondientes estaciones de reserva y buffers de carga y almacenamiento. ER1 ER2 UF +- ER1 UF Mult/Div 4 7-24 11-12 5-6 25-26 28-29 5-13 14-30 14-23 31-40 3-10 11-27 Buffer de carga Lectura de memoria Buffer de almacenamiento Escritura en memoria 1 2-5 2-5 6-9 6-24 25-41 25-28 42-45 E. U. de Informática – U. P. M. Departamento de Informática Aplicada 2ª Prueba Parcial de Arquitectura de Computadores EJERCICIO 2 13 de diciembre de 2013 SOLUCIÓN Sobre un procesador MIPS, en un determinado salto condicional de un programa, se produce la siguiente secuencia: T – T – NT – T – T – NT – T – T – T – NT – NT – NT Siendo T: Salto Tomado NT: Salto No Tomado a) Porcentaje de fallos en el caso de un predictor de un bit. Estado Inicial: Salto No Tomado (NT). T F T A NT F T F T A NT F T F T A T A NT F NT A NT A Con un predictor de un bit se tienen dos estados posibles. Para cambiar de estado basta con un fallo en la predicción. Instrucciones ejecutadas: 12; Fallos: 6; Porcentaje de fallos: 6/12 = 50% b) Porcentaje de fallos en el caso de un predictor de dos bits. Estado Inicial: Salto Fuertemente No Tomado (00). T F T F NT F T A T A NT F T A T A T A NT F NT F NT A Con un predictor de dos bits se tienen cuatro estados posibles. Para cambiar de estado se requieren dos fallos consecutivos en la predicción. Instrucciones ejecutadas: 12; Fallos: 6; Porcentaje de fallos: 6/12 = 50% c) ¿Cuántos Kbits son necesarios para construir la tabla de destino de saltos con 1024 entradas, en el caso del predictor de dos bits? Suponer que las direcciones de memoria son de 31 bits. En una tabla de destinos de saltos (BTB) se debe mantener la dirección de cada instrucción de salto y la dirección de destino de dicho salto. En caso de tener dos bits de predicción, también son necesarios los dos bits. Dir. instrucción de salto 31 Dir. de destino del salto 31 Estado de la predicción 2 Como la tabla tiene 1024 entradas, el tamaño de la tabla será: 1024 (31+31+2) = 1024 x 64 = 64 Kbits E. U. de Informática – U. P. M. Departamento de Informática Aplicada 2ª Prueba Parcial de Arquitectura de Computadores EJERCICIO 3 13 de diciembre de 2013 SOLUCIÓN Responder Verdadero o Falso a las siguientes afirmaciones justificando de manera adecuada la respuesta. (0,4 puntos por respuesta correcta). a) La consistencia fuerte de memoria es la solución más ventajosa en el rendimiento de los procesadores superescalares. Falso. La tendencia actual es la consistencia de memoria débil ya que permite aprovechar los grandes lapsos de tiempo que supone el acceso a memoria, arrancando la ejecución de otras instrucciones posteriores sin haber iniciado o finalizado las primeras. b) La forma más ventajosa de emitir las instrucciones es alineada y fuera de orden. Falso. El máximo rendimiento en la emisión se obtiene con emisión no alineada y desordenada, ya que pueden emitirse todas las instrucciones que dispongan de sus operandos y de una unidad funcional del tipo apropiado. c) Para evitar la inconsistencia del procesador, superescalares, existe un buffer de reordenamiento. en los procesadores Verdadero. La consistencia se mantiene porque solo las instrucciones que se retiran del ROB (es decir, las que completan su procesamiento) escriben en los registros del procesador, y esas instrucciones se retiran en el orden en que aparecen en el programa. d) En las BTB (Branch Target Buffer) de las arquitecturas MIPS no es necesario guardar la dirección destino. Falso. En MIPS se necesita la dirección de destino para poder alimentar la instrucción de destino del salto, pues si no habría que esperar a la etapa de Decodificación, con el correspondiente retardo. e) Una Tabla de Destinos de Saltos (BTB) con 8 estados, en una arquitectura con 64 bits de dirección, necesitaría tener 64+3 bits por cada entrada de la tabla. Falso, ya que en la tabla de destinos de saltos debe estar la dirección de la propia instrucción de salto, la de destino del salto y los bits que representan el estado de la predicción. Así, en este caso se necesitarían 64+64+3 bits por entrada.