1, 2 y 3
Transcripción
1, 2 y 3
Arquitectura de Computadores 2011/2012 (1º semestre) 2ª Prueba Parcial 21 de noviembre de 2011 Ejercicio 1 (3 puntos) Disponemos de un procesador VLIW que puede emitir instrucciones con dos operaciones de referencia a memoria, y dos operaciones aritméticas o una operación aritmética y otra de salto (es decir, una de las dos operaciones aritméticas se puede sustituir por una de salto). Este procesador no está segmentado (no tiene pipeline), y en cada ciclo se emite una instrucción VLIW. Muestra cómo se ensamblarían las instrucciones VLIW a partir del programa MIPS que aparece a continuación, de forma que se maximice el uso de las instrucciones VLIW. Tenga en cuenta los riesgos RAW que aparecen en el programa a la hora de construir las instrucciones VLIW. En cada iteración del bucle se procesan cuatro elementos del vector. Al inicio del programa el registro r1 apunta a la última dirección del vector. LOOP: lw r10,0(r1) daddi r10,r10,4 sw r10,0(r1) ; Leer elemento vector ; Sumar 4 al elemento ; Escribir nuevo valor lw r11,-4(r1) daddi r11,r11,4 sw r11,-4(r1) lw r12,-8(r1) daddi r12,r12,4 sw r12,-8(r1) lw r13,-12(r1) daddi r13,r13,4 sw r13,-12(r1) daddi r1,r1,-16 bne r1,r0,LOOP ; Actualizar índice ; Fin de vector? Ejercicio 2 (2 puntos) Las siguientes cuestiones se refieren a un predictor de saltos BPB de tipo (0,3). Para implementarlo se utiliza una tabla con búsqueda asociativa. a) ¿Cuántos estados tiene el predictor? b) ¿Cuántas veces tiene que fallar una predicción para que ésta cambie? c) ¿Cuántos Kbits son necesarios para construir la tabla de predicción con 1024 entradas? Suponer que las direcciones de memoria son de 29 bits y se guardan en su totalidad en la tabla de predicción de saltos. Ejercicio 3 (5 puntos) Rellenar la última fila de las tablas mostradas en la hoja de soluciones escribiendo los ciclos en que tendrá lugar cada una de las etapas y los riesgos que ocasionan las esperas, si es que las hay. Obsérvese que hay dos casos distintos (a y b). Cada tabla es independiente de las demás. Para la ejecución de todas las instrucciones que aparecen en cada tabla se dispone de 2 unidades funcionales de multiplicación y una de suma. La multiplicación ocupa 10 ciclos y la suma 2. Arquitectura de Computadores 2011/2012 (1º semestre) 2ª Prueba Parcial 21 de noviembre de 2011 Apellidos ..................................................................... Nombre .......................................... Ejercicio 1 (3 puntos) Instrucciones VLIW Referencia Mem. 1 Referencia Mem. 2 Ejercicio 2 a) ¿Cuántos estados tiene el predictor? b) ¿Cuántas veces tiene que fallar una predicción para que ésta cambie? c) ¿Cuántos Kbits son necesarios para construir la tabla de predicción con 1024 entradas? Suponer que las direcciones de memoria son de 29 bits y se guardan en su totalidad en la tabla de predicción de saltos. Op. Aritmética 1 Op. Arit. 2 ó Salto (2 puntos) Arquitectura de Computadores 2011/2012 (1º semestre) 2ª Prueba Parcial 21 de noviembre de 2011 Apellidos ..................................................................... Nombre .......................................... Ejercicio 3 (5 puntos) a) Suponer que se utiliza el algoritmo del marcador. Las escrituras de los registros se realizarán en el primer subciclo y las lecturas en el segundo. MUL F1,F2,F3 ADD F5,F4,F1 MUL F6,F2,F1 MUL F2,F2,F5 Emisión Lectura Ejecución Escritura 1 2 3-12 13 Emisión Lectura Ejecución Escritura 10 25 26-35 36 Emisión Lectura Ejecución Escritura ADD F1,F3,F7 15 16 17-18 19 MUL F2,F3,F3 18 19 20-29 30 ADD F6,F1,F1 Emisión Lectura Ejecución Escritura MUL F5,F2,F2 40 41 42-51 52 MUL F7,F2,F3 41 42 43-52 53 ADD F6,F5,F4 Emisión Lectura Ejecución Escritura 35 40 41-50 56 Emisión Lectura Ejecución Escritura MUL F1,F1,F3 ADD F1,F1,F2 ADD F3,F1,F9 20 21 22-23 24 MUL F8,F5,F4 21 22 23-32 33 ADD F5,F2,F4 Emisión Lectura Ejecución Escritura 10 18 19-28 35 Emisión Lectura Ejecución Escritura MUL F6,F8,F2 ADD F8,F8,F8 MUL F5,F2,F3 30 31 32-41 42 ADD F8,F1,F4 31 32 33-34 35 MUL F5,F2,F3 Emisión Lectura Ejecución Escritura ADD F1,F2,F3 ADD F4,F5,F6 20 21 22-23 24 b) Ahora se utilizará el algoritmo de Tomasulo suponiendo que cada unidad funcional tiene una estación de reserva que se libera cuando la instrucción comienza la etapa de ejecución. Tanto la lectura como la escritura ocuparán un ciclo completo. MUL F1,F2,F3 ADD F5,F4,F1 MUL F6,F2,F1 MUL F2,F2,F5 Emisión Ejecución Escritura 1 2-11 12 Emisión Ejecución Escritura 10 11-20 21 Emisión Ejecución Escritura ADD F1,F3,F7 15 16-17 18 MUL F2,F3,F3 16 17-26 27 ADD F6,F1,F1 Emisión Ejecución Escritura 20 32-33 34 Emisión Ejecución Escritura 35 36-45 46 Emisión Ejecución Escritura 10 15-16 17 Emisión Ejecución Escritura ADD F8,F5,F3 ADD F5,F2,F4 MUL F1,F1,F3 ADD F1,F1,F2 ADD F1,F8,F2 ADD F8,F6,F8 MUL F5,F2,F3 30 31-40 41 MUL F8,F1,F4 31 38-47 48 MUL F5,F2,F3 Emisión Ejecución Escritura MUL F5,F2,F2 40 41-50 51 MUL F7,F2,F3 41 42-51 52 ADD F6,F5,F4 Emisión Ejecución Escritura 20 21-22 23 ADD F1,F2,F3 ADD F4,F5,F6