La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Scheduling dinámico Scoreboarding.

Presentaciones similares


Presentación del tema: "Scheduling dinámico Scoreboarding."— Transcripción de la presentación:

1 Scheduling dinámico Scoreboarding

2 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. Universidad de Sonora Arquitectura de Computadoras

3 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. Universidad de Sonora Arquitectura de Computadoras

4 Estructura básica Emisión (issue).
El scoreboard permite que una instrucción sea emitida si: Su unidad de ejecución está libre. 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. Universidad de Sonora Arquitectura de Computadoras

5 Estructura básica 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. Universidad de Sonora Arquitectura de Computadoras

6 Estructura básica Ejecución.
La ejecución puede proceder sin problemas. 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. Universidad de Sonora Arquitectura de Computadoras

7 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á. Universidad de Sonora Arquitectura de Computadoras

8 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. Universidad de Sonora Arquitectura de Computadoras

9 Ejemplo Considerar el siguiente código: lw r6, 8(t0) ; r6 = Mem[t0+8]
mul r1, r2, r4 ; r1 = r2 * r4 sub r8, r6, r2 ; r8 = r6 – r2 div r10, r1, r6 ; r10 = r1 / r6 add r6, r8, r2 ; r6 = r8 + r2 Universidad de Sonora Arquitectura de Computadoras

10 Ejemplo Dependencias: 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 6. Salida. Entre instrucciones 1 y 6. Antidependencias. Entre instrucciones 6 y 4; 6 y 5. Universidad de Sonora Arquitectura de Computadoras

11 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) no mul r1, r2, r4 sub r8, r6, r2 div r10, r1, r6 add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

12 Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1
¿Lst? Fte2 Ent Si lw r2 t1 -- 4 Mul mul r1 No r4 S/R sub r8 r6 Div div r10 Universidad de Sonora Arquitectura de Computadoras

13 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). Universidad de Sonora Arquitectura de Computadoras

14 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. Universidad de Sonora Arquitectura de Computadoras

15 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) mul r1, r2, r4 no sub r8, r6, r2 div r10, r1, r6 add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

16 Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1
¿Lst? Fte2 Ent No Mul Si mul r1 r2 -- r4 S/R add r6 r8 Div div r10 Universidad de Sonora Arquitectura de Computadoras

17 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. Universidad de Sonora Arquitectura de Computadoras

18 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) mul r1, r2, r4 sub r8, r6, r2 div r10, r1, r6 no add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

19 Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1
¿Lst? Fte2 Ent No Mul S/R Div Si div r10 r1 -- r6 Universidad de Sonora Arquitectura de Computadoras


Descargar ppt "Scheduling dinámico Scoreboarding."

Presentaciones similares


Anuncios Google