La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Scheduling dinámico Scoreboarding. Universidad de SonoraArquitectura de Computadoras2 Scheduling Scheduling. En que orden se ejecutan las instrucciones.

Presentaciones similares


Presentación del tema: "Scheduling dinámico Scoreboarding. Universidad de SonoraArquitectura de Computadoras2 Scheduling Scheduling. En que orden se ejecutan las instrucciones."— Transcripción de la presentación:

1 Scheduling dinámico Scoreboarding

2 Universidad de SonoraArquitectura de Computadoras2 Scheduling Scheduling. En que orden se ejecutan las instrucciones. Hay dos opciones: Estático, cuando el hardware no tiene control. Dinámico, cuando el hardware puede reordenar. Dos algoritmos clásicos de scheduling dinámico: Algoritmo de scoreboarding. Algoritmo de Tomasulo.

3 Universidad de SonoraArquitectura de Computadoras3 Scoreboarding Usa un scoreboard (pizarrón). Pieza de hardware. Registra el progreso de las instrucciones. Decide cuando emitir instrucciones adicionales. Resuelve las dependencias durante la ejecución. Detiene (stall) el pipeline si es necesario.

4 Universidad de SonoraArquitectura de Computadoras4 Estructura básica 1. Emisión (issue). El scoreboard permite que una instrucción sea emitida si: a) Su unidad de ejecución está libre. b) Su registro destino está libre. En otro caso el pipeline se detiene hasta que a) y b) sean verdaderas. Esto resuelve dependencias de salida que podrían producir peligros WAW.

5 Universidad de SonoraArquitectura de Computadoras5 Estructura básica 2. Leer operandos. El scoreboard permite que una instrucción lea sus operandos si no están siendo escritos por alguna instrucción en ejecución o recién emitida. En otro caso, el pipeline se detiene. Esto resuelve dependencias de datos verdaderas que podrían producir peligros RAW. Las escrituras a los operandos se completan antes de que la instrucción pueda leerlos.

6 Universidad de SonoraArquitectura de Computadoras6 Estructura básica 3. Ejecución. La ejecución puede proceder sin problemas. 4. Write back. La instrucción puede escribir su resultado si no hay instrucciones anteriores sin leer sus operandos. Esto resuelve antidependencias que podrían producir peligros WAR. La salida de instrucciones anteriores no puede ser reescrita.

7 Universidad de SonoraArquitectura de Computadoras7 Scoreboard Guarda el status de cada unidad de ejecución. Ocupada/no ocupada. Instrucción. Registro destino. Registros fuente, incluyendo si están siendo procesados en otra unidad. Guarda el status de cada registro. Ocupado/no ocupado. Guarda el status de cada instrucción. En que etapa del pipeline está.

8 Universidad de SonoraArquitectura de Computadoras8 Ejemplo Una máquina con 4 unidades de ejecución: Entera. Maneja aritmética entera, incluyendo cálculo de direcciones en operaciones carga/guarda. Multiplicación. Maneja la multiplicación de punto flotante. División. Maneja la división de punto flotante. Suma/Resta. Maneja la suma y resta de punto flotante. Las unidades de multiplicación y división son más lentas que las otras.

9 Universidad de SonoraArquitectura de Computadoras9 Ejemplo Considerar el siguiente código: 1. lw r6, 8(t0); r6 = Mem[t0+8] 2. lw r2, 4(t1); r2 = Mem[t1+4] 3. mul r1, r2, r4; r1 = r2 * r4 4. sub r8, r6, r2; r8 = r6 – r2 5. div r10, r1, r6; r10 = r1 / r6 6. add r6, r8, r2; r6 = r8 + r2

10 Universidad de SonoraArquitectura de Computadoras10 Ejemplo Dependencias: 1. Verdaderas de datos. Entre instrucciones 1 y 4; 1 y 5; 2 y 3; 2 y 4; 2 y 6; 3 y 5; 4 y Salida. Entre instrucciones 1 y Antidependencias. Entre instrucciones 6 y 4; 6 y 5.

11 Universidad de SonoraArquitectura de Computadoras11 Ejemplo Después de emitir las instrucciones 1 a 5. Status de las instrucciones: Instrucción¿Emitida?¿Operandos leídos? ¿Ejecutada?¿Resultado escrito? lw r6, 8(t0)si lw r2, 4(t1)si no mul r1, r2, r4sino sub r8, r6, r2sino div r10, r1, r6sino add r6, r8, r2no

12 Universidad de SonoraArquitectura de Computadoras12 Ejemplo Status de las unidades de ejecución: Und¿Ocup?OpDestFte1¿Lst?UndFte2¿Lst?Und EntSilwr2t1--4 MulSimulr1r2NoEntr4Si S/RSisubr8r6Sir2NoEnt DivSidivr10r1NoMulr6Si

13 Universidad de SonoraArquitectura de Computadoras13 Ejemplo r1, r2, r8 y r10 están ocupados. No se pueden emitir instrucciones que escriban en esos registros por peligros WAW. La dependencia de salida entre 1 y 6 no es un peligro porque 1 ya salió y 6 no ha sido emitida. Las instrucciones 3 (mul) y 4 (sub) están esperando a r2. r2 va a ser escrito por las instrucción 2 (lw).

14 Universidad de SonoraArquitectura de Computadoras14 Ejemplo Los peligros RAW entre las instrucciones 2 y 3 y entre 2 y 4 están deteniendo las unidades de Multiplicación y de Suma/Resta. La instrucción 2 puede seguir. No hay peligros WAR. No se puede escribir en registros cuyos operandos estén listos (Lst = si), porque todavía no han sido usados. Lst = indica que los operandos ya fueron leídos.

15 Universidad de SonoraArquitectura de Computadoras15 Ejemplo Mas adelante. Status de las instrucciones: Instrucción¿Emitida?¿Operandos leídos? ¿Ejecutada?¿Resultado escrito? lw r6, 8(t0)si lw r2, 4(t1)si mul r1, r2, r4si no sub r8, r6, r2si div r10, r1, r6sino add r6, r8, r2si no

16 Universidad de SonoraArquitectura de Computadoras16 Ejemplo Status de las unidades de ejecución: Und¿Ocup?OpDestFte1¿Lst?UndFte2¿Lst?Und EntNo MulSimulr1r2--r4-- S/RSiaddr6r8--r2-- DivSidivr10r1NoMulr6Si

17 Universidad de SonoraArquitectura de Computadoras17 Ejemplo r1, r6 y r10 están ocupados. La instrucción 5 (div) está esperando a la 3 (mul). La instrucción 6 (add) no puede escribir en r6 hasta que la instrucción 5 (div) lea sus argumentos.

18 Universidad de SonoraArquitectura de Computadoras18 Ejemplo Todas las instrucciones han terminado, excepto la 5 que no ha escrito su resultado. Status de las instrucciones: Instrucción¿Emitida?¿Operandos leídos? ¿Ejecutada?¿Resultado escrito? lw r6, 8(t0)si lw r2, 4(t1)si mul r1, r2, r4si sub r8, r6, r2si div r10, r1, r6si no add r6, r8, r2si

19 Universidad de SonoraArquitectura de Computadoras19 Ejemplo Status de las unidades de ejecución: Und¿Ocup?OpDestFte1¿Lst?UndFte2¿Lst?Und EntNo MulNo S/RNo DivSidivr10r1--r6--


Descargar ppt "Scheduling dinámico Scoreboarding. Universidad de SonoraArquitectura de Computadoras2 Scheduling Scheduling. En que orden se ejecutan las instrucciones."

Presentaciones similares


Anuncios Google