Arquitectura de Computadores 5 de octubre de 03 Apellidos... Nombre... Nº matrícula... EJERCICIO ( puntos) Contesta a las siguientes cuestiones (rodea con un círculo la respuesta correcta):. Cuántos tamaños de instrucción diferentes tiene el MIPS64? a) b) c) 3 d) 5. La instrucción SLT R6,R4,R a) Pone un en R6 si R4 es mayor que R. b) Pone un en R6 si R4 es menor que R. c) Si R6 es menor que R4 pone un en R d) Saltará a la dirección indicada en R6 si R4 es menor que R. 3. En la arquitectura MIPS64: a) El bus de datos y el de direcciones tienen 64 bits, las Instrucciones también ocupan 64 bits. b) El bus de datos tiene 3 bits. El bus de direcciones y las Instrucciones tienen 64 bits. c) Los buses de datos y de direcciones tienen 64 bits. Las Instrucciones ocupan 3 bits. d) Los Buses de Datos y Direcciones tienen 3 bits, mientras que las Instrucciones ocupan 64 bits. 4. En la arquitectura MIPS64 (la final) cuál de estas afirmaciones es cierta? a) No todas las instrucciones pasan por las cinco etapas del cauce. b) Los saltos se resuelven en la etapa de Memoria c) En la etapa de Fetch siempre se alimenta una instrucción y se actualiza el Contador de Programa d) La dirección efectiva de memoria de las instrucciones load/store se calcula en la etapa de Ejecución.
EJERCICIO ( puntos) Se dispone de un ordenador especializado en representaciones gráficas, cuyas instrucciones gráficas tienen una duración 5 veces mayor que el resto de las operaciones, cuya duración es ns, y en él se ejecuta un programa en el que las instrucciones gráficas suponen el 0% de todo el programa. Posteriormente se mejoran las prestaciones del procesador en lo relativo a las instrucciones gráficas, consiguiendo que su duración se reduzca a la mitad. Con la mejora de las instrucciones gráficas cuál es la mejora global obtenida en la ejecución del programa? F T!"#$%&'(" T!"!#$ 5 0, 5 0, + ( 0,8) + 0,8 0, 55,8 S F + F M 0,55 + 0,55 0,45 + 0,75, 38 0,75 Otra forma más sencilla de calcular la aceleración o mejora global es mediante el cociente entre el tiempo medio global de ejecución antiguo y el tiempo medio global de ejecución después de la mejora: S T!"#$%!"!#$#%ó!!"#$%&' T!"#$%!"!#$#%ó!!"#$% 0, 5 + (0,8 ) 0,,5 + (0,8 ),8, 38,3
Arquitectura de Computadores 5 de octubre de 03 Apellidos... Nombre... Nº matrícula... EJERCICIO 3 (4 puntos) a) Indicar las dependencias de datos RAW que hay en este programa al ejecutarse sobre un procesador MIPS..data indice:.word3 0 total:.word3 0.text lw sw r,indice(r) r,total(r) daddi r4,r0,5 daddi r3,r0,0 bucle: sw r5,total(r) fin: sw lw slt r4,indice(r) r7,total(r) r6,r3,r4 daddi r4,r4,- bnez r6,bucle
Arquitectura de Computadores 5 de octubre de 03 Apellidos... Nombre... Nº matrícula... Ejercicio 3 b) Realizar el seguimiento de la ejecución del pipeline (una sola iteración del bucle) utilizando paradas del cauce cuando sea necesario. Se considera que no hay saltos retardados. lw r,indice(r) F D E M W 3 4 5 6 7 8 9 0 sw r,total(r) F D D D E M W 3 4 5 6 7 8 9 0 3 4 5 daddi r4,r0,5 daddi r3,r0,0 F F F D E M W F D E M W bucle: sw r5,total(r) F D E M W F D E sw r4,indice(r) F D E M W F D lw r7,total(r) F D E M W F slt r6,r3,r4 F D E M W daddi r4,r4,- bnez r6,bucle F D E M W F D D E M W fin: F F
Ejercicio 3 c) Reordenar el código de este programa para que se pueda ejecutar con bifurcaciones con un hueco de retardo. Realizar un seguimiento del código reordenado de la ejecución del pipeline (una sola iteración del bucle) utilizando adelantamientos o forwarding cuando sea posible. lw r,indice(r) F D E M W 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 sw r,total(r) F D D E M W daddi r4,r0,5 daddi r3,r0,0 F F D E M W F D E M W bucle: sw r5,total(r) F D E M W F D E M sw r4,indice(r) F D E M W F D E lw r7,total(r) F D E M W F D slt r6,r3,r4 F D E M W bnez r6,bucle daddi r4,r4,- F D D E M W F F D E M W fin:
Arquitectura de Computadores 5 de octubre de 03 Apellidos... Nombre... Nº matrícula... EJERCICIO 4 ( puntos) a) Indicar cualquier tipo de dependencias de datos que pueda producirse en el siguiente fragmento de programa al ejecutarse sobre un procesador MIPS. add.d f,f,f l.d f,40(r0) mul.d f3,f,f s.d f3,30(r0) Todas las dependencias son de tipo RAW add.d f4,f,f s.d f4,40(r0)
Ejercicio 4 b) Hacer el seguimiento de ejecución del anterior fragmento de código sobre el procesador MIPS, utilizando adelantamientos o forwarding cuando sea posible. 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 add.d f,f,f F D + + +3 +4 M W l.d f,40(r0) F D E M W mul.d f3,f,f F D D D X X X3 X4 X5 X6 X7 M W s.d f3,30(ro) F F F D D D D D D D E M W add.d f4,f,f F F F F F F F D + + +3 +4 M W s.d f4,40(r0) F D D D D E M W F F F F D E M W