Departamento de Ingeniería de Sistemas Arquitectura de Computadores y Laboratorio 2018-2 Taller No. 3 Diseño del procesador – Jerarquía de memoria 1. Suponga que dispone de las unidades funcionales necesarias para implementar un procesador MIPS capaz de ejecutar instrucciones ALU, load, store, branch equal y jump, como el de la Figura 1. Las latencias de las unidades funcionales disponibles son las siguientes: Unidad funcional Latencia (ps) Memoria de datos (lectura/escritura) 150 Memoria de instrucciones 200 ALU 60 Sumador 40 Banco de registros (lectura/escritura) 200 Multiplexores 20 Desplazador de bits 15 La latencia de los demás elementos, incluidos los cables, se desprecia. ¿Cuál de las siguientes implementaciones será más rápida, y cuánto más? Una implementación en la que cada instrucción se ejecuta en un ciclo de reloj de longitud fija. Una implementación con ciclo de reloj variable en la que cada instrucción se ejecuta justo en el tiempo que ella requiere. Para comparar el rendimiento asuma un benchmark con la siguiente frecuencia relativa de instrucciones: Categoría de instrucciones Frecuencia relativa (%) Load 26 Store 16 Branch equal 12 Jump 3 ALU 43 -1- Figura 1. Implementación monociclo de la arquitectura MIPS capaz de ejecutar instrucciones lw, sw, add, sub, and, or, nor, slt, beq y jump. 2. Asuma que los componentes de hardware necesarios para implementar una ruta de datos MIPS monociclo como la mostrada en la Figura 1 tienen las siguientes latencias: I-Mem Add Mux ALU Regs D-Mem Sign extend Shift left 2 ALU control 300 ps 80 ps 30 ps 100 ps 220 ps 250 ps 30 ps 30 ps 50 ps a) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción or, indicando el valor que adquieren las señales de control. b) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción lw, indicando el valor que adquieren las señales de control. c) Señale y calcule la latencia del flujo de información cuando se ejecuta la instrucción beq, indicando el valor que adquieren las señales de control. Considere la siguiente tabla para determinar los valores de las señales de control. Asuma que la latencia de los demás elementos, incluidos los cables, se desprecia. -2- Opcode ALUOp Operación ALU Operation lw 00 load word 0010 sw 00 store word 0010 beq 01 branch equal 0110 add 0010 subtract 0110 AND 0000 Tipo R 10 OR 0001 set-on-less-than 0111 NOR 1100 3. Tomando como punto de partida la implementación MIPS monociclo ilustrada en la Figura 1, añada los elementos de hardware, cables y señales de control necesarios (especificando cómo se generan las señales de control) que permitan realizar una programación estructurada del procesador. Documente ampliamente la solución desarrollada. 4. Todas las preguntas de este ejercicio se refieren al procesador MIPS monociclo ilustrado en la Figura 1. a) ¿En cuáles instrucciones se emplea la unidad “Shif left 2”? b) ¿Para cuáles instrucciones es necesaria la unidad “Sign extend”? c) ¿Cuáles instrucciones requieren de la ALU para su ejecución? d) ¿Cuáles son las instrucciones que emplean la señal “Zero” de la ALU? e) ¿Para cuáles instrucciones es útil la memoria de datos? f) Suponga que la señal de control “MemWrite” siempre tiene el valor cero. Indique cuáles instrucciones no se ejecutarían de manera correcta. g) Suponga que la señal de control “MemtoReg” siempre tiene el valor cero. Indique cuáles instrucciones no se ejecutarían de manera correcta. h) Suponga que la señal de control “ALUSrc” siempre tiene el valor uno. Indique cuáles instrucciones no se ejecutarían de manera correcta. 5. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de instrucciones: lw $t0, -16($t0) sw $t0, -16($t0) add $t0, $t0, $t0 a) Asuma que no hay adelantamiento en el pipeline. Emplee una representación gráfica para la ejecución de las instrucciones en el pipeline y señale los riesgos de datos existentes y -3- agregue burbujas para eliminarlos. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de instrucciones? b) Ahora, asuma que hay adelantamiento en el pipeline. Emplee una representación gráfica para la ejecución de las instrucciones en el pipeline e indique los riesgos de datos que persisten y agregue burbujas para eliminarlos. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de instrucciones? c) Si el tiempo de ciclo de reloj es 300 ps cuando no hay adelantamiento y 400 ps con adelantamiento, ¿cuál es el tiempo de ejecución de la secuencia sin adelantamiento y con adelantamiento, y cuál es el speedup obtenido después de agregar adelantamiento a un pipeline que no lo tenía? 6. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de instrucciones: add $s1, $s5, $s3 sw $s1, 0($s2) lw $s1, 4($s2) add $s5, $s5, $s1 sw $s1, 0($s2) a) Asuma que no hay adelantamiento en el pipeline. Emplee una representación gráfica para la ejecución de las instrucciones en el pipeline agregando burbujas para garantizar su correcta ejecución. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de instrucciones? b) Si no hay adelantamiento, garantice una ejecución correcta del código, pero esta vez insertando burbujas sólo cuando no sea posible reorganizarlo. Puede usar el registro $t0 para almacenar valores temporales en el código modificado. ¿Cuál es el número de ciclos de ejecución del código reorganizado? 7. Considere la ejecución en el pipeline de cinco etapas del MIPS de la siguiente secuencia de instrucciones: lw $at, 40($a2) beq $v0, $zero, Label add $v0, $v1, $a0 sw $v1,50($a0) # Asuma $v0 ≠ 0 a) Asuma que no se emplea la técnica del hueco de retardo del salto, que los saltos se predicen sin equivocación y que solo hay una memoria para instrucciones y datos, de manera que ocurre un riesgo estructural cuando se intenta buscar una instrucción en el mismo ciclo que otra instrucción intenta acceder a un dato. Para resolver el riesgo estructural se da prelación a la instrucción que accede a un dato. ¿Cuántos ciclos de reloj toma ejecutar la secuencia de instrucciones? -4- b) Se sabe que los riesgos de datos pueden ser eliminados agregando instrucciones nop al código. ¿Es posible hacer lo mismo para resolver los riesgos estructurales? Elabore su respuesta. c) Ahora, asuma que se no se emplea el hueco de retardo del salto sino la técnica stall on branch. ¿Cuál es el speedup logrado si los saltos se resuelven en la etapa ID en lugar de la ejecución con los saltos resueltos en la etapa EX? ¿Cómo se explica el resultado? 8. Considere la siguiente traza de referencias a memoria de un procesador MIPS expresadas como direcciones de palabra: 6, 214, 175, 214, 6, 84, 65, 174, 64, 105, 85, 215 a) Para cada una de las referencias, escriba la dirección en binario e identifique la etiqueta y el índice, dada una memoria cache de emplazamiento directo con 16 bloques de una palabra cada uno. Señale, también, si cada referencia es un acierto o un fallo, asumiendo que la caché está inicialmente vacía. Calcule, finalmente, la tasa de aciertos. b) Para cada una de las referencias, escriba la dirección en binario e identifique la etiqueta y el índice, dada una memoria cache de emplazamiento directo con 8 bloques de dos palabras cada uno. Señale, también, si cada referencia es un acierto o un fallo, asumiendo que la caché está inicialmente vacía. Calcule, finalmente, la tasa de aciertos. c) Su labor, ahora, consiste es optimizar la caché para las referencias dadas. Existen tres alternativas posibles de diseño de la cache de emplazamiento directo (C1, C2 y C3), todas con un tamaño de 8 palabras, como se muestra en la siguiente tabla: Diseño de caché Tamaño de bloque (palabras) Tiempo de acceso (ciclos) C1 1 2 C2 2 3 C3 4 5 En términos de tasa de fallos, ¿cuál es el mejor diseño de la caché? Si la penalización de fallo es de 25 ciclos, ¿cuál es el mejor diseño de la caché? d) Asuma una caché asociativa por conjuntos de 2 vías con bloques de dos palabras y un tamaño total de 16 bloques, con política de reemplazo LRU. Para cada una de las referencias, identifique la etiqueta, el índice y el offset de bloque, y si ocurre un acierto o un fallo. La caché está inicialmente vacía. e) Asuma una cache completamente asociativa con bloques de cuatro palabras y un tamaño total de cuatro bloques, con política de reemplazo LRU. Para cada una de las referencias, identifique la etiqueta y el offset de bloque, y si ocurre un acierto o un fallo. La caché está inicialmente vacía. 9. Las aplicaciones que reproducen audio o video se catalogan como aplicaciones de tipo streaming, las cuales procesan una gran cantidad de datos pero con escasa reutilización de los -5- mismos. Considere una aplicación de video que accede secuencialmente a un conjunto de datos de 512 KB con el siguiente flujo de direcciones de byte: 0, 4, 8, 12, 16, 20, 24, 28, 32, … a) Asuma una cache de emplazamiento directo de 64 KB con un tamaño de bloque de 32 bytes. ¿Cuál es la tasa de fallos para este flujo de direcciones? ¿De qué manera depende la tasa de fallos del tamaño de la caché o del tamaño del conjunto de datos al que accede la aplicación? b) Calcule la tasa de fallos si el tamaño de bloque es de 16 bytes, 64 bytes y 128 bytes. ¿Qué tipo de localidad exhibe este conjunto de datos? 10. Considere un computador con una caché de dos niveles. Por cada 1000 accesos a memoria generados por el procesador, 60 de ellos fallan en L-1 y 25 en L-2. Los tiempos de acierto en L1 y L-2 son 1 y 8 ciclos, respectivamente. Por su parte, la penalización de un fallo en L-2 es de 120 ciclos. ¿Cuál es el tiempo medio de acceso a memoria? 11. Suponga un sistema de memoria virtual que tiene una tabla de página (PT) con 8 entradas, un TLB completamente asociativo de 2 entradas y una memoria física de 4 marcos de página. La PT emplea como política de reemplazo LRU (la misma que determinará los reemplazos en memoria física), mientras que los reemplazos en el TLB siguen un esquema FIFO (First in, first out). Inicialmente no hay traducciones de páginas virtuales ni en el TLB ni en la PT. Para cada uno de los accesos virtuales de la secuencia mostrada más abajo, indique el contenido de la PT, el TLB y la memoria física, y la demás información solicitada, usando la siguiente plantilla de solución: Secuencia de accesos virtuales (expresados como VPN): 2 (lectura), 4 (escritura), 3 (lectura), 4 (lectura), 2 (escritura) Asuma que el tiempo de acceso al TLB es 1 ciclo, que el tiempo de acceso a memoria es 100 ciclos, y que el tiempo para procesar un fallo de página es de 2000 ciclos. El tiempo para -6- procesar el fallo de página incluye las actualizaciones de memoria física, TLB y PT. Suponga que cuando ocurre un fallo de página, después de procesarlo, el acceso se repite directamente sobre memoria para suministrar el dato al procesador. Para actualizar el campo LRU en la PT emplee números enteros positivos y consecutivos, usando cero para señalar el acceso actual (más reciente), mientras que para las demás entradas válidas este campo se ajusta de manera que la más antigua tenga el entero más alto. -7-