Instrucción Emisión Lectura Opdos Ejecución/Mem Escritura
Transcripción
Instrucción Emisión Lectura Opdos Ejecución/Mem Escritura
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DE SISTEMAS INFORMÁTICOS- UPM 2ª Prueba Parcial de Arquitectura de Computadores 11 de diciembre de 2014 Apellidos…………………………………………………………………………………………………… Nombre ………………………………………..Nºmatrícula .. .......................................................... EJERCICIO 1 (4 puntos) Se dispone de un procesador con una arquitectura similar a la de MIPS64 que, utilizando el Algoritmo de Marcador, dispone de las siguientes unidades funcionales en punto flotante: 1 unidades funcional de suma/resta de 1 ciclo 1 unidad funcional de división/multiplicación de 10 ciclos 1 unidad funcional de lectura de memoria de 4 ciclos 1 unidad funcional de escritura en memoria de 4 ciclos Las escrituras de los registros se realizarán en el primer subciclo y las lecturas en el segundo. Sobre este procesador se ejecuta el programa siguiente: l.d f1,10(r3) l.d f4,20(r2) add.d f2,f1,f4 add.d f8,f6,f7 mul.d f3,f1,f2 sub.d f3,f3,f4 add.d f8,f3,f10 mul.d f8,f8,f2 s.d f8,30(r4) a) Mostrar en qué ciclos tiene lugar cada etapa, indicando también en cada caso el tipo de riesgo que se produce. (2,5 ptos) Instrucción l.d l.d add.d add.d mul.d sub.d add.d mul.d s.d Emisión Lectura Opdos 1 7(re) 8 15(re) 16 29(waw) 32(re) 36(waw) 37 2 8 13(raw) 16 17 30 33 37 48(raw) f1,10(r3) f4,20(r2) f2,f1,f4 f8,f6,f7 f3,f1,f2 f3,f3,f4 f8,f3,f10 f8,f8,f2 f8,30(r4) Ejecución/Mem Escritura 3-6 9-12 14 17 18-27 31 34 38-47 49-52 7 13 15 18 28 32 35 48 - b) Escribe la tabla de estado de los registros de resultado en el ciclo 8(1,5 ptos) Registros F1 Un. Func. F2 add F3 F4 load F5 F6 F7 F8 EJERCICIO 2 (4 puntos) En un procesador con arquitectura MIPS64, se considera que el 15% de las instrucciones ejecutadas son saltos condicionales que bifurcan el 10% de las veces. Suponemos que el CPI del resto de las instrucciones es 1. a) Calcula el CPI si no hubiera ningún tipo de predicción (0,5 ptos) CPI=0,85x1 + 0,15x2 = 1,15; El salto se resuelve en el MIPS64 en la fase de decodificación b) Calcula el CPI si hubiera predicción estática de salto no tomado (0,5 ptos) CPI=0,85x1 + 0,15 (0,1x2 + 0,9x1) = 1,015 c) Calcula el CPI si se utiliza un BTB con una probabilidad de acierto del 90% y puertos separados para la lectura y la escritura. (0,5 ptos) CPI=0,85x1 + 0,15 (0,90x1 + 0,1x2) = 1,015 d) Si se utiliza el BTB citado, para el siguiente fragmento de código (las direcciones son de 64 bits, se indican los 32 de menor peso): 0x01000008 ciclo1: daddi r4,r5,3 0x0100000C slt r6,r4,r2 0x01000010 beqz r6, ciclo1 0x01000014 ciclo2: dmul r1, r2, r3 0x01000018 dsub r4, r5, r6 0x0100001C slt r7, r1, r4 0x01000020 bnez r7, ciclo2 ¿Cuál sería el menor número de entradas (direcciones) posibles para dicho BTB, teniendo en cuenta sólo el fragmento de código? (1 pto). Como mínimo se necesitaran 5 bits porque las direcciones de las instrucciones de salto son: 0x01000010 y 0x01000020, para que no haya colisiones (dos saltos que apunten a la misma posición en la BTB), se necesitan los 5 bits de menor peso, por lo tanto el número mínimo de entradas a la BTB sería 25=32 e) Si el número total de entradas en la BTB es de 1024, indica el tamaño de dicho BTB en Kb en los siguientes casos de predicción global (Nota: en el BTB se encuentran las direcciones de la instrucción de salto y las de destino del salto) : (1,5 ptos) BTB (0,1) BTB (0,2) BTB (1,1) BTB (1,2) 1kx(64+64+1) ó 1kx(64+64)=129Kb ó 128Kb 1kx(64+64+2)/1k ó (64+64+1)=130Kb ó 129Kb 1kx(64+64+2x1)=130Kb 1kx(64+64+2x2)=132Kb ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DE SISTEMAS INFORMÁTICOS- UPM 2ª Prueba Parcial de Arquitectura de Computadores 11 de diciembre de 2014 Apellidos…………………………………………………………………………………………………… Nombre ……………………………………… Nº matrícula .. .......................................................... EJERCICIO 3 (2 puntos) Contesta a las siguientes cuestiones (poner una X en la respuesta correcta). Las preguntas contestadas con una respuesta errónea tienen una penalización de 0,17 puntos.: 1. En los procesadores superescalares la emisión es alineada cuando o Sigue el orden del programa X No pueden entrar instrucciones nuevas a la ventana de instrucciones hasta que ésta no se vacie o Las instrucciones que entran en la ventana de instrucciones entran en desorden o La emisión nunca es alineada 2. ¿Para qué sirve el Búffer de Reordenamiento (ROB) en los procesadores superescalares? o Para conseguir la consistencia débil del procesador o Para que la ejecución siempre sea ordenada o Para que la emisión sea múltiple X Para conseguir la escritura en orden de los registros del procesador 3. En una arquitectura VLIW, se dispone de 6 unidades funcionales más 2 unidades de acceso a memoria (carga y almacenamiento), las cuales ejecutan todas las instrucciones en 2 ciclos. ¿Cuántas instrucciones podrían ejecutarse en 24 ciclos, si no hubiera dependencia de datos, ni de control ejecutándose el mayor número de instrucciones posibles? o 24 X 96 o 192 o 8 4. En la siguiente tabla se muestra como se ensamblarían las instrucciones de un fragmento de programa en una arquitectura VLIW, ¿cuál es el valor de CPI y cuántos ciclos consume la ejecución de la instrucción aritmética de punto flotante?. Instrucciones VLIW Ciclo Referen. Mem. Op.Arit. Entera 1 daddi r2,r0,5 Op. Arit. Op. Arit. Entera 2 Flotante daddi r4,r0,4 2 l.d f0,0(r4) daddi r3,r0,7 daddi r5,r2,3 3 l.d f1,0(r2) dadd r3,r5,r3 dadd r4,r4,r5 daddi r2,r2,1 daddi r3,r3,1 1 4 5 6 7 add.d f1,f1,0 8 9 10 11 s.d f1,0(r3) o 2,2 ciclos por instrucción y 2 ciclos de retardo o 1,5 ciclos por instrucción y 1 ciclo de retardo X 0,92 ciclos por instrucción y 4 ciclos de retardo o 0,7 ciclos por instrucción y no hay retardo