Departament d Informàtica Sistemes i Computadors ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS La ruta datos propuesta en todos los problemas presentados es la l microprocesador MIPS R2000 (que es la misma que la l procesador segmentado DLX las prácticas), ambos arquitectura RISC y segmentados en las cinco etapas que se muestran en la Fig. 1. Para la acuada resolución los problemas, se sugieren las siguientes propuestas (sobre el código fuente en ensamblador que también se presenta en la Fig. 3): Etapa 1 instrucción Etapa 2 y codificación Etapa 3 Ejecución y cálculo dirección salto Etapa 4 Acceso a memoria Etapa 5 Escritura l resultado en el buffer entrada instrucciones (lectura) UAL datos (escritura) Fig. 1. Esquema simplificado la ruta datos l microprocesador MIPS R2000 junto con los segmentación. En la última etapa (etapa 5, Write Back) se proce a la escritura l resultado en el banco y su anticipación en el buffer entrada la etapa ejecución (UAL). Fig. 2. Ruta datos l DLX. Tal y como se pue apreciar, en la etapa 4 se proce a la escritura los valores en la memoria datos, mientras que en la etapa 5 se anticipan los resultados sobre el buffer entrada la etapa ejecución. Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 1
Departament d Informàtica Sistemes i Computadors a:.word 33 b:.word 2355 I1 lw r1, a(r0) I2 lw r2, b(r0) I3 loop: I4 add r6, r6, r1 I5 sub r2, r2, #1 I6 bnez r2, loop I7 nop I8 nop I9 nop I10 add r10, r6,r0 trap #0 Fig. 3. Código fuente en ensamblador l programa que se va a utilizar en los ejemplos y que presenta la multiplicación los números a y b, almacenando el resultado final en r10. Riesgos por penncia datos (tención la segmentación): cuando se tecta un riesgo este tipo se be tener en cuenta que, como el valor correcto no se obtiene hasta la 5ª etapa (s don el valor calculado se anticipa al buffer entrada la etapa ejecución) y, como los operandos las instrucciones anteriores no se leen hasta la 2ª etapa, únicamente se verán implicadas en el riesgo las 3 instrucciones siguientes a la analizada (la 4ª se encuentra en la 1ª etapa don sólo se busca la instrucción a partir l PC). Así pues, para el análisis la penncia datos sobre la instrucción I1 (lw r1,a(r0)), comprobaremos el riesgo sobre las tres instrucciones siguientes. Como aparece una penncia en el registro R1 con la instrucción I3 (add r6,r6,r1), ésta última be esperarse en la etapa codificación y búsqueda operandos hasta que el valor R1 sea el correcto. Esto suce en t4 (don I1 escribe el valor correcto R1) por lo que, en t5, I3 ya lee el valor correcto R1 y pue proseguir su ejecución. En este caso la segmentación se ha tenido en una etapa para resolver un riesgo entre dos instrucciones no consecutivas (Fig. 4). Fig. 4. La instrucción add se tiene 1 ciclo en la etapa codificación (en t5) ya que presenta penncia datos en R1 con la instrucción lw. Lo mismo suce en R2 con la instrucción bnez que queda tenida en la etapa 2 hasta que se escriba el resultado correcto en R2 (en t9). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 2
Departament d Informàtica Sistemes i Computadors Riesgos por penncia datos (anticipación en la ALU): en este caso, el resultado correcto se obtiene al final la 3ª etapa (cálculo en la ALU) y pue ser anticipado: 1. s la 5ª etapa al registro entrada la ALU (WB to EX) Fig. 5. Don s la etapa write back se anticipa la información a los la etapa codificación y a los la etapa ejecución (ver path en rojo). Amás los resultados anticipados aparecen en las etapas rotuladas en blanco. Por este motivo, si existe penncia entre las instrucciones I1 e I3, esta queda automáticamente resuelta mediante el método anticipación pues, aunque I3 ha leído los operandos incorrectos en la etapa 2 (codificiación y búsqueda operandos), estos valores incorrectos que se cargan en el registro temporal la ALU, son automáticamente machacados por el valor correcto los operandos que se acaba calcular a la salida la ALU en la etapa 3 y que viene por la vía (path) anticipación hasta el mismo registro temporal entrada en la ALU. Por lo tanto no será necesaria la inserción ninguna burbuja en este caso ( Error! No se encuentra el origen la referencia.). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 3
Departament d Informàtica Sistemes i Computadors 2. s la 4ª etapa al registro entrada la ALU (MEM to EX) Fig. 6. Don s la 4ª etapa ( memory write ) se anticipa la información a los la etapa ejecución y al multiplexor entrada para el caso salto condicional (ver path en morado). Amás los resultados anticipados aparecen en las etapas rotuladas en blanco. Riesgos control (tención la segmentación): por un lado, la dirección salto no se conoce hasta el final la 3ª etapa mientras que, por otro lado, el riesgo control no se tecta hasta el principio la 2ª etapa (cuando se codifica la instrucción). Por este motivo, ante una instrucción control, se tiene la segmentación y no entra ninguna instrucción nueva, hasta que se resuelva la dirección salto (en la etapa 3). En el caso l simulador l DLX (Fig. 7), la segmentación se tiene hasta que se escribe el valor correcto l salto en los (en el PC, 4ª etapa). Fig. 7. En este caso la instrucción add no se empieza a ejecutar hasta que la instrucción control ( bnez ) ha resuelto la dirección salto y la ha escrito en el PC (al terminar la 4ª etapa, en t12). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 4
Departament d Informàtica Sistemes i Computadors Riesgos control (anticipación en la ALU): se podría cir que el hecho anticipar resultados por parte la ALU, no resuelve más rápidamente los riesgos control (Fig. 8). Fig. 8. En este caso la anticipación resultados en la ALU no influye en la ejecución la instrucción salto condicional (ni es terminante en la resolución l riesgo control) ya que, la dirección salto continúa sin resolverse hasta su carga en el PC, una vez se ejecuta la instrucción control en la 4ª etapa (escritura en ). Riesgos control (ejecución especulativa): en el caso resolver los riesgos control mediante ejecución especulativa se supone que las siguientes instrucciones a la control entran en el micro (se especula con que su ejecución es correcta) y, una vez se resuelve la dirección salto y se escribe en el PC (cuando la instrucción control termina en la etapa 4), se ci si las instrucciones ejecutadas son o no las correctas (sechándolas o no). Esto significa que en ejecución especulativa siempre se van a colar las TRES instrucciones siguientes a la control (Fig. 9). Fig. 9. En este caso, tras la instrucción salto ( bnez ) se han colado tres instrucciones nop, que son automáticamente sechadas en t12 cuando se resuelve que la dirección salto correcta supone la ejecución la instrucción add. Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 5
Departament d Informàtica Sistemes i Computadors Riesgos control (predicción l salto): para el mismo ejemplo que en el punto anterior y suponiendo que la BTB (Branch Target Buffer) contenga la estimación correcta l salto a ejecutar (esto significa que, en alguna iteración anterior, ya se ha producido el mismo salto), el riesgo control presentado por la instrucción bnez no se intifica hasta la etapa codificación la instrucción (2ª etapa) por lo que se habrá colado en la 1ª etapa una sola instrucción que, pendiendo l valor almacenado en la BTB (para bnez ), será la siguiente instrucción a ejecutar (si el salto llevaba a ella) o no (en cuyo caso la instrucción colada se marca como no válida y se secha). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 6
PROBLEMA 1 Departament d Informàtica Sistemes i Computadors Dada la siguiente secuencia instrucciones que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Enumera los tipos riesgos que puen aparecer en un procesador segmentado. b) En el procesador la figura y para el programa ensamblador propuesto: cuáles los riesgos anteriores aparecen? por qué? c) En el procesador la figura y para el programa ensamblador propuesto: cuáles los riesgos anteriores NO aparecen? por qué? d) Soluciona los riesgos scritos anteriormente mediante la técnica inserción burbujas la forma más eficiente posible (mínimo nº burbujas posible colocadas forma que se ralentice al mínimo la ejecución l programa). Presenta la traza la ejecución. e) Suponiendo que, en este caso, el procesador utiliza la técnica la anticipación s la ALU, qué riesgos se solucionarían?, persistiría alguno ellos? Justifica la respuesta. Presenta la traza la ejecución. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 I1 etiq: ADD R2, R2, R1 // Resta R1 y R2 y guarda el resultado en R2 I2 SUB R2, R2, R3 // Resta R2 y R3 y guarda el resultado en R2 I3 SUB R3, R3, R4 // Resta R3 y R4 y guarda el resultado en R3 I4 XOR R2, R1, R4 // Operación XOR entre R1 y R4 guardando el resultado en R2 I5 BEQ R5, R0, etiq // El PC salta a la posición etiq si R5 = R0 I6 LW R6, R2 // Carga en R6 el contenido la posición memoria indicada en R2 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 7
Departament d Informàtica Sistemes i Computadors PROBLEMA 2 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Lista los posibles riesgos que puen aparecer en un procesador segmentado y justifica, tanto si aparecen como si no, en el procesador segmentado presentado. b) Suponiendo una CPU programada para resolver riesgos por penncia datos y control mediante la técnica la tención automática la segmentación: resuelve el programa para las dos primeras pasadas l bucle (8 instrucciones) en este caso, y presenta la traza correspondiente. c) Repite el apartado anterior (b) en el caso que los riesgos por penncia datos se resuelvan por scoreboarding y los control mediante la técnica ejecución especulativa. Justifica la actuación la CPU en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. d) Repite el apartado anterior (c) para las dos últimas pasadas l bucle. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 a:.word 33 // Primero los operandos a multiplicar b:.word 55 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 (33) I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 (55) I3 loop: add r6, r6, r1 // Suma r1 y r6 (suponemos inicialmente a 0) y guarda en r6 I4 sub r2, r2, #1 // Resta al contenido r2 una unidad y guarda resultado en r2 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 I6 add r10, r6,r0 // Almacena el resultado final I7 nop // Burbuja (No Opera) insertada por software I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 8
Departament d Informàtica Sistemes i Computadors PROBLEMA 3 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Suponiendo que la duración la intrucción carga (lw) es 5 ciclos y la duración l resto instrucciones es 4 ciclos, calcula la mejora (aceleración) que supone la ejecución l programa propuesto en el procesador segmentado (ciclos ejecutados=10050; instrucciones ejecutadas=3770; ciclos parada=6276), respecto su ejecución en un procesador no segmentado. b) Suponiendo una CPU programada para resolver riesgos por penncia datos mediante la técnica la tención automática la segmentación y los control mediante la predicción los saltos (se presupone tención la segmentación si hay fallo en la BTB): resuelve el programa para las dos primeras pasadas l bucle (8 instrucciones) en este caso, y presenta la traza correspondiente. c) Del apartado anterior, qué significa que ha habido un fallo en la BTB (branch target buffer)? qué suce en este caso? d) Repite el apartado (b) en el caso que los riesgos por penncia datos se resuelvan por anticipación en la ALU. Justifica la actuación la CPU para los riesgos control, en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 a:.word 48 // Primero los operandos a multiplicar b:.word 1255 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 I3 loop: add r6, r6, r1 I4 sub r2, r2, #1 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 // es cir, ejecuta el bucle 1255 veces I6 add r10, r6,r0 // Almacena el resultado final I7 nop I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 9
Departament d Informàtica Sistemes i Computadors PROBLEMA 4 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se ejecuta en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Suponiendo que la duración la instrucción carga (lw) es 5 ciclos y la duración l resto instrucciones es 4 ciclos, calcula la mejora (aceleración) que supone la ejecución l programa propuesto en el procesador segmentado (ciclos ejecutados=80; instrucciones ejecutadas=34; ciclos parada=42; y valores iniciales las variables -> a=2; b=10), respecto su ejecución en un procesador no segmentado. (NOTA: los valores a y b especificados sólo aplican al presente apartado). b) Suponiendo una CPU programada para resolver riesgos por penncia datos mediante la técnica la tención automática la segmentación y los control mediante la predicción los saltos (se presupone tención la segmentación si hay fallo en la BTB): presenta la traza correspondiente a la ejecución l programa completo. c) Repite el apartado (b) en el caso que los riesgos por penncia datos se resuelvan por anticipación en la ALU, y los control por ejecución especulativa. Justifica la actuación la CPU para los riesgos control, en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. d) Calcula la mejora obtenida en el apartado c) respecto la ejecución l programa según los parámetros establecidos en el apartado b) (Mejora = CPI b /CPI c ). NOTA 1: no hay que tener en cuenta la instrucción trap #0 para el cálculo la duración l programa. NOTA 2: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2. a:.word 10 // Primero los operandos a multiplicar b:.word 2 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 I3 loop: add r6, r6, r1 // Suma el contenido r1 + r6 y guarda en r6 I4 sub r2, r2, #1 // Realiza la resta l contenido r2-1 y guarda en r2 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 I6 add r10, r6,r0 // Almacena el resultado final en r10 I7 nop // No opera I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 10