Está en la página 1de 4

DEPARTAMENTO DE AUTOMTICA Universidad de Alcal

Arquitectura II

Ejercicios
1.- En un procesador de frecuencia 40 MHz. se ejecuta un benchmark con la siguiente mezcla de instrucciones y ciclos: Tipo Aritmtica entera Transferencia de datos Coma flotante Transferencia de control Calcular Ic, CPI, rendimiento y tiempo de ejecucin. 2.- Considerar la ejecucin de un programa con 200.000 instrucciones en un procesador a 40 Mhz. La relacin de instrucciones y nmero de ciclos se muestra en la siguiente tabla: Tipo Aritmticas y lgicas Carga / Almacenamiento Bifurcacin Referencias a memoria Calcular CPI y rendimiento. 3.- Una estacin de trabajo usa un procesador de 15 MHz. con un rendimiento de 10 MIPS para ejecutar un programa dado. Asumir un ciclo de retardo para cada acceso a memoria. a) b) Cul es el nmero de ciclos por instruccin de este computador? Suponer que se actualiza el procesador a una frecuencia de 30 MHz. sin modificar la velocidad de memoria y consecuentemente necesitamos dos ciclos para accesos a memoria. Si el 30% de instrucciones requiere un acceso a memoria y el 5% requiere dos accesos a memoria, cul es el rendimiento del nuevo procesador? CPI 1 2 4 8 % 60 18 12 10 N Instrucciones 45.000 32.000 15.000 8.000 Ciclos 1 2 2 2

4.- El tiempo de ejecucin en segundos de 4 programas en tres computadores es el siguiente: Programa 1 2 3 4 Comp. 1 1 1000 500 100 C omp. 2 10 100 1000 800 Comp. 3 20 20 50 100

Asumir que en cada programa se ejecutan 100.000.000 instrucciones. Calcular los MIPS de cada programa en cada mquina. Analizar los resultados obtenidos. Se obtiene alguna conclusin clara relativa a los computadores? 5.- Considerar la ejecucin de un programa de 15.000 instrucciones en un procesador segmentado con una velocidad de reloj de 25 MHz. El cauce es de 5 etapas y se emite una instruccin por ciclo. a) b) Calcular la ganancia frente a un computador no segmentado. Calcular el rendimiento den MIPS del procesador.

6.- Un procesador no encauzado X tiene un reloj de 25 MHz. y una media de 4 ciclos por instruccin. Una mejora de este procesador Y consiste en un procesador encauzado de 5 etapas, pero su reloj debe reducirse por los latches a 20 MHz. a) b) Si ejecutamos un programa de 100 instrucciones, cul es la ganancia del procesador Y frente al procesador X? Calcular el rendimiento en MIPS de los dos procesadores.

DEPARTAMENTO DE AUTOMTICA Universidad de Alcal

Arquitectura II

7.- Obtener el diagrama de estados del cauce con la tabla de reserva siguiente, y calcular los ciclos que tienen latencia media mnima. F1 F2 F3 F4 T0 T1 T2 T3 T4 T5 T6 x x x x x x x

Obtener el estado de ocupacin del cauce cuando se lanzan operaciones segn el ciclo de menor latencia media. 8.- Repetir el ejercicio para las siguientes tablas de reserva: F1 F2 F3 F4 F5 F1 F2 F3 F1 F2 F3 F4 T0 T1 T2 T3 T4 T5 T6 T7 x x x x x x x x x T0 T1 T2 T3 A A B AB A B B T0 T1 T2 T3 T4 T5 A B B A B A AB A B A B

9.- El siguiente cdigo calcula el producto escalar de dos vectores: xor r1,r1,r1 xor r3,r3,r3 xor r4,r4,r4 Bucle: lw r5,vector1(r1) lw r6,vector2(r1) multw r6,r6,r5 add r3,r3,r6 add r1,r1,#4 add r4,r4,#1 slt r7,r4,#NumElementos bnez r7,Bucle sw ProdEscalar(r0),r3 a) ;pone un 0 en r1 ;otro en r3 ;otro en r4 ;se carga una componente del vector 1 ;se carga la equivalente del vector 2 ;se multiplican (suponiendo que se pudiera) ;se acumula el producto ;actualizacin del ndice ;incremento del contador ;se comprueba si se ha terminado ;repetir mientras queden componentes ;almacenar resultado

Para un cauce como el visto en clase (tema 3, transparencia 8), suponiendo que el cdigo empieza a ejecutarse en el ciclo 0, en qu ciclo se empieza a ejecutar la instruccin add r1,r1,#4 por primera vez? Explica la respuesta. b) Y la instruccin lw r5,vector1(r1) por segunda vez? c) Y si utilizamos adelantamiento de resultados (tema 3, transparencia 19)? d) Clasifica las dependencias de datos que se dan en el cdigo. e) Analiza las dependencias de control. f) Explica cmo se ejecuta el cdigo si se utiliza cada una de las 4 formas de tratar las dependencias de control vistas en el tema 3. (Puede ser necesario modificar ligeramente el cdigo al aplicar alguna de las tcnicas). g) Suponiendo latencias de 2 ciclos para las instrucciones de carga y de 1 ciclo para las de proceso, reordena el cdigo de forma que se minimice el nmero de parones que se dan en la ejecucin del ddigo.

DEPARTAMENTO DE AUTOMTICA Universidad de Alcal 10.- En el siguiente cdigo: xor r1,r1,r1 xor r3,r3,r3 xor r4,r4,r4 Bucle: Lw r5,vector1(r1) Lw r6,vector2(r1) multw r6,r6,r5 add r3,r3,r6 add r1,r1,#4 add r4,r4,#1 slt r7,r4,#NumElementos bnez r7,Bucle sw ProdEscalar(r0),r3 ;pone un 0 en r1 ;otro en r3 ;otro en r4

Arquitectura II

;se carga una componente del vector 1 ;se carga la equivalente del vector 2 ;se multiplican (suponiendo que se pudiera) ;se acumula el producto ;actualizacin del ndice ;incremento del contador ;se comprueba si se ha terminado ;repetir mientras queden componentes ;almacenar resultado

a) Aplicar un desenrollado de orden 4. b) Explicar cmo se aplica el renombrado de registros para las 3 primeras iteraciones. c) Suponiendo que se aplica el renombrado de registros y el adelantamiento de resultados, y el cauce es el del tema 3, transparencia 19, pero adaptado a un superescalar de grado 4, en qu ciclo se ejecuta la instruccin add r1,r1,#4 por primera vez? d) Y la instruccin lw r5, vector1(r1) por segunda vez? e) Suponiendo que el superescalar tiene ejecucin fuera de orden, en qu ciclo se retiran estas dos instrucciones? 11- El siguiente cdigo en ensamblador calcula el producto escalar de dos vectores: or r1,r0,r0 Bucle: ld r2,VectorA(r1) ld r3,VectorB(r1) mul r4,r2,r3 add r5,r5,r4 add r1,r1,#4 cmpe r4,r1,#FinVector bne r4,bucle Trazar la ejecucin de este cdigo en un procesador superescalar de ancho 4, con ejecucin fuera de orden. El procesador dispone de 6 registros lgicos (r0 a r5) y 12 fsicos (f1 a f12). El cauce consta de las etapas de bsqueda, decodificacin, entrada en el ROB y renombramiento, ejecucin, terminacin y retirada / almacenamiento. El ROB dispone de 10 entradas. 12.-Repetir el ejercicio anterior para el siguiente cdigo que suma dos vectores: or r1,r0,r0 Bucle: lw r2,VectorA(r1) lw r3,VectorB(r1) add r4,r2,r3 stw VectorC(r1),r4 add r1,r1,#4 sgt r4,r1,#FinVector bne r4,Bucle

DEPARTAMENTO DE AUTOMTICA Universidad de Alcal 13.-El siguiente fragmento de cdigo: xor r1,r1,r1 ;inicializar ndice xor r4,r4,r4 ;inicializar cuenta Bucle: lb r2,Texto(r1) ;carga letra seqi r3,r2,a ;compara con la a beqz r3,Seguir addi r4,r4,#1 ;si es a, incrementa contador Seguir: addi r1,r1,#1 ;siguiente letra slt r7,r1,#NumeroLetras ;comprobar fin del texto bnez r7,Bucle nop cuenta el nmero de veces que aparece la letra a en un texto.

Arquitectura II

a) Aplicar predicacin para eliminar el salto interno al bucle. b) Si el texto sobre el que trabaja es el siguiente: Qu aburrido es estudiar arquitecturas avanzadas!, suponiendo que se dispone de un predictor basado en contadores de 2 bits con valores iniciales 01, con 1024 contadores, y un BTB de 32 entradas, y que el cdigo est almacenado a partir de la direccin 1000h, cada instruccin ocupando 4 bytes, cuntos aciertos y cuntos fallos tiene el predictor en cada uno de los saltos del cdigo? 14.-Repetir el ejercicio anterior para el siguiente cdigo, que cuenta el nmero de ceros y de unos que hay en una lista de dgitos binarios: or r5,r0,r0 or r4,r0,r0 or r1,r0,r0 Bucle: lw r2,Lista(r1) beqz r2,Cero addi r4,r4,#1 j Seguir Cero: addi r5,r5,#1 Seguir: addi r1,r1,#4 seqi r6,r1,#NumeroElementos*4 beqz Bucle nop en las mismas condiciones del ejercicio anterior, para la lista: 00100101001 15.-Se quieren sumar dos vectores en un procesador vectorial. Los elementos del primer vector estn almacenados en memoria con espaciado 17 (hay 16 palabras entre cada dos elementos del vector). Los elementos del segundo vector tienen espaciado 3, y los elementos del vector resultado tienen espaciado 5. En cada ciclo, el cauce puede leer dos valores de registros vectoriales y escribir un tercero a un registro. Cuando se carga un registro vectorial desde la memoria, se necesita un ciclo para computar la direccin antes de comenzar el acceso a memoria. Cada mdulo de memoria tiene un tiempo de acceso de 16 ciclos. Suponiendo que la memoria tiene un entrelazado de inferior de orden 16, cunto se tarda en sumar los dos vectores? 16.-Disponiendo de una mquina tipo SIMD, disear el algoritmo (incluyendo la disposicin de datos) para multiplicar dos matrices cuadradas. 17.-Repetir el ejercicio anterior para una mquina vectorial.