1 / 19

Scheduling dinámico

Scheduling dinámico. Scoreboarding. 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.

nam
Download Presentation

Scheduling dinámico

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  9. Ejemplo • Considerar el siguiente código: • lw r6, 8(t0) ; r6 = Mem[t0+8] • lw r2, 4(t1) ; r2 = Mem[t1+4] • 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 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. Arquitectura de Computadoras

  11. Ejemplo • Después de emitir las instrucciones 1 a 5. • Status de las instrucciones: Arquitectura de Computadoras

  12. Ejemplo • Status de las unidades de ejecución: 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). 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. Arquitectura de Computadoras

  15. Ejemplo • Mas adelante. • Status de las instrucciones: Arquitectura de Computadoras

  16. Ejemplo • Status de las unidades de ejecución: 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. Arquitectura de Computadoras

  18. Ejemplo • Todas las instrucciones han terminado, excepto la 5 que no ha escrito su resultado. • Status de las instrucciones: Arquitectura de Computadoras

  19. Ejemplo • Status de las unidades de ejecución: Arquitectura de Computadoras

More Related