Scheduling dinámico Scoreboarding. Universidad de SonoraArquitectura de Computadoras2 Scheduling...

19
Scheduling dinámico Scoreboarding

Transcript of Scheduling dinámico Scoreboarding. Universidad de SonoraArquitectura de Computadoras2 Scheduling...

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

Scheduling dinámicoScoreboarding

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

Universidad de Sonora Arquitectura de Computadoras 2

SchedulingScheduling. 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.

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

Universidad de Sonora Arquitectura de Computadoras 3

ScoreboardingUsa 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.

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

Universidad de Sonora Arquitectura de Computadoras 4

Estructura básica1. 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.

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

Universidad de Sonora Arquitectura de Computadoras 5

Estructura básica2. 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.

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

Universidad de Sonora Arquitectura de Computadoras 6

Estructura básica3. 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.

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

Universidad de Sonora Arquitectura de Computadoras 7

ScoreboardGuarda 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á.

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

Universidad de Sonora Arquitectura de Computadoras 8

EjemploUna 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.

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

Universidad de Sonora Arquitectura de Computadoras 9

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

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

Universidad de Sonora Arquitectura de Computadoras 10

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 6.

2. Salida.

Entre instrucciones 1 y 6.

3. Antidependencias.

Entre instrucciones 6 y 4; 6 y 5.

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

Universidad de Sonora Arquitectura de Computadoras 11

EjemploDespué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 si si si

lw r2, 4(t1) si si si no

mul r1, r2, r4 si no no no

sub r8, r6, r2 si no no no

div r10, r1, r6 si no no no

add r6, r8, r2 no no no no

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

Universidad de Sonora Arquitectura de Computadoras 12

EjemploStatus de las unidades de ejecución:

Und ¿Ocup? Op Dest Fte1 ¿Lst? Und Fte2 ¿Lst? Und

Ent Si lw r2 t1 -- 4 --

Mul Si mul r1 r2 No Ent r4 Si

S/R Si sub r8 r6 Si r2 No Ent

Div Si div r10 r1 No Mul r6 Si

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

Universidad de Sonora Arquitectura de Computadoras 13

Ejemplor1, 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).

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

Universidad de Sonora Arquitectura de Computadoras 14

EjemploLos 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.

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

Universidad de Sonora Arquitectura de Computadoras 15

EjemploMas adelante.Status de las instrucciones:

Instrucción ¿Emitida? ¿Operandos leídos?

¿Ejecutada? ¿Resultado escrito?

lw r6, 8(t0) si si si si

lw r2, 4(t1) si si si si

mul r1, r2, r4 si si si no

sub r8, r6, r2 si si si si

div r10, r1, r6

si no no no

add r6, r8, r2 si si si no

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

Universidad de Sonora Arquitectura de Computadoras 16

EjemploStatus de las unidades de ejecución:

Und ¿Ocup? Op Dest Fte1 ¿Lst? Und Fte2 ¿Lst? Und

Ent No

Mul Si mul r1 r2 -- r4 --

S/R Si add r6 r8 -- r2 --

Div Si div r10 r1 No Mul r6 Si

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

Universidad de Sonora Arquitectura de Computadoras 17

Ejemplor1, 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.

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

Universidad de Sonora Arquitectura de Computadoras 18

EjemploTodas 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 si si si

lw r2, 4(t1) si si si si

mul r1, r2, r4 si si si si

sub r8, r6, r2 si si si si

div r10, r1, r6

si si si no

add r6, r8, r2 si si si si

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

Universidad de Sonora Arquitectura de Computadoras 19

EjemploStatus de las unidades de ejecución:

Und ¿Ocup? Op Dest Fte1 ¿Lst? Und Fte2 ¿Lst? Und

Ent No

Mul No

S/R No

Div Si div r10 r1 -- r6 --