DEPARTAMENTO DE AUTOMÁTICA Arquitectura e Ingenierı́a de Computadores Ingenierı́a Informática Tema 2 Estructuras segmentadas Problemas 1. Considérese la ejecución de un programa de 15000 instrucciones en un procesador segmentado con una velocidad de reloj de 25 Mhz. El cauce es de 5 etapas y se emite una instrucci ón por ciclo. a) Calcular la ganancia frente a un computador no segmentado. b) Calcular el rendimiento en MIPS del procesador. 2. Un procesador no encauzado X tiene un reloj de 25 Mhz y una media de 4 ciclos por instrucción. Una mejora de este procesador, Y , consiste en un procesador encauzado de 5 etapas, pero su reloj debe reducirse a 20 MHz por causa de los latches. a) Si ejecutamos un programa de 100 instrucciones, ¿cuál es la ganancia del procesador Y frente al procesador X? b) Calcular el rendimiento en MIPS de los dos procesadores. 3. Se tiene un sumador encauzado de cuatro etapas. La etapa de máximo retardo necesita 20 ns para su ejecución. a) ¿Cuál es la máxima frecuencia de operación del cauce? b) ¿Cuánto tiempo se tardará en obtener la suma de dos vectores de 100 componentes usando el mı́nimo periodo de reloj posible? c) Calcular el tiempo mı́nimo para sumar las 100 componentes de un vector suponiendo que tenemos la posibilidad de realimentar la salida a cualquiera de las dos entradas, que se puede retardar la realimentación y que estamos trabajando con el mı́nimo periodo. d) ¿Qué ganancia se obtiene en la operación del apartado anterior frente a un sumador no encauzado con un retardo de 80 ns? 4. La figura muestra la conexión entre los registros y la CPU de un computador de tipo registroregistro, con encauzamiento de instrucciones de cuatro etapas: fetch, b úsqueda de operadores, operación y almacenamiento de resultados. Todas las etapas tienen con el mismo periodo T . a) Dibujar el diagrama de la evolución del cauce en el tiempo. b) Si se quiere ejecutar el cauce? LD R2, LD R1, lazo: ADD R2, DJNZ R1, programa adjunto, ¿cómo serı́a la secuencia de ocupación del 0H 30H R1 lazo ; ; ; ; carga en R2 el valor inmediato 0H carga en R1 el valor inmediato 30H R2 = R2 + R1 (decrementa R1 y salta si no es 0) 1 Banco de registros CPU c) ¿En cuántos ciclos mejorarı́a la ejecución del programa anterior si dotamos al sistema con la posibilidad de lectura de operandos desde la propia ALU? d) Si tuviéramos la posibilidad de realizar bifurcación retardada, de modo que se pueda ejecutar una instrucción mientras se decide el salto, ¿cuál serı́a la secuencia de ejecución del programa que mejorarı́a el rendimiento? ¿En cuántos ciclos mejorarı́a la ejecución? 5. Dado el siguiente fragmento de código, supóngase que se ejecuta en un computador DLX y que el valor inicial de R3 es R2+396. Se pide: a) Mostrar la evolución de las instrucciones en el cauce suponiendo que no existe la posibilidad de realimentación de datos entre etapas (forwarding) y que, ante una instrucci ón de salto, el cauce espera a su resolución. ¿Cuántos ciclos se tardarı́a en ejecutar este bucle? b) Repetir el apartado anterior suponiendo que se dispone de realimentaci ón de datos entre etapas (forwarding) y que los saltos no son tomados. c) Suponiendo las mismas condiciones del apartado b) y que la máquina permite un delayslot, reordenar el código para obtener un mejor rendimiento y mostrar la evoluci ón de las instrucciones en el cauce. ¿Cuántos ciclos se tardarı́a en ejecutar el bucle? Loop: LW R1, 0(R2) ADDI R1, R1, #1 SW 0(R2), R1 ADDI R2, R2, #4 SUB R4, R3, R2 BNEZ R4, Loop 6. Dado el siguiente fragmento de código, supóngase que se ejecuta en un computador DLX con múltiples unidades funcionales con las caracterı́sticas explicadas en teorı́a (es decir, la latencia de la suma es 4 ciclos y la latencia de la multiplicación es 7 ciclos) y que, además, el valor inicial de R4 es R2+792. Se pide: a) Mostrar la evolución de las instrucciones en el cauce suponiendo que no existe la posibilidad de realimentación de datos entre etapas (forwarding) y que, ante una instrucci ón de salto, el cauce espera a la resolución del mismo. ¿Cuántos ciclos se tardarı́a en ejecutar este bucle? b) Repetir el apartado anterior suponiendo que se dispone de realimentaci ón de datos entre etapas (forwarding) y que los saltos no son tomados. c) Suponiendo las mismas condiciones del apartado b) y que la máquina permite un delayslot, reordenar el código para obtener un mejor rendimiento y mostrar la evoluci ón de las instrucciones en el cauce. ¿Cuántos ciclos se tardarı́a en ejecutar el bucle? 2 Loop: LD LD MULTD ADDD ADDI ADDI SUB BNEZ F0, F4, F0, F2, R2, R3, R5, R5, 0(R2) 0(R3) F0, F4 F0, F2 R2, #8 R3, #8 R4, R2 Loop 7. Supóngase que tenemos un cauce con tres etapas como muestra la tabla: ETAPA 1 2 3 FUNCIÓN Fetch Decodificación, operandos Ejecución, acceso a memoria, resolución de salto, + escritura de registros. Todas las dependencias de datos se dan entre el registro escrito en la etapa 3 de la instrucci ón i y un registro leı́do en la etapa 2 de la instrucción i + 1, antes de que la instrucción i se haya completado. La probabilidad de que esta situación se dé es p−1 . Se considera un cambio en la organización de la máquina que consistirı́a en escribir el resultado de una instrucción durante una cuarta etapa del cauce. Esto reducirı́a la duración del ciclo de reloj en d (es decir, si la duración del ciclo de reloj era T , ahora serı́a T − d). La probabilidad de una dependencia entre la instrucción i y la instrucción i+2 es p−2 . (Suponer que el valor de p−1 excluye instrucciones que causarı́an una dependencia con i+2). El salto también se resolverı́a durante la cuarta etapa. a) Supóngase que no hay hardware de forwarding para el cauce de 4 etapas. Considerando solo las dependencias de datos, se pide encontrar la cota inferior de d que hace que el cambio sea beneficioso. Supóngase que cada resultado se usa solo una vez y que el ciclo de reloj básico tiene duración T . b) Asúmase ahora que se usa forwarding en el cauce de 4 etapas para eliminar la dependencia adicional introducida por el cambio. Puede que este dise ño no merezca la pena por el impacto en las dependencias de control, pues ahora el cauce tiene cuatro etapas en lugar de tres. Supongamos que solamente la etapa 1 del cauce se puede ejecutar de forma segura antes de decidir si el salto se toma o no y que la máquina supone que el salto no se toma. Si el 60 % de los saltos condicionales son tomados, se pide encontrar el porcentaje de saltos condicionales en función de d y p que hace que el rendimiento del cauce de 4 etapas sea menor que el de 3 etapas. ¿Cuál serı́a este porcentaje si se ha reducido un 10 % el ciclo de reloj? 3