49
Scheduling dinámico Algoritmo de Tomasulo

Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Embed Size (px)

Citation preview

Page 1: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Scheduling dinámicoAlgoritmo de Tomasulo

Page 2: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 2

IntroducciónDesarrollado por Robert Tomasulo para la super-

computadora IBM 360/91.Registra cuando los operandos de las instrucciones

están listos para eliminar peligros RAW.Permite la ejecución de una instrucción tan pronto

estén listos sus operandos.Renombra registros para eliminar peligros WAR y

WAW.

Page 3: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 3

Ejemplo Renombrar registros elimina peligros WAR y WAW.

1. div.d f0, f2, f4 ; f0 = f2 / f4

2. add.d f6, f0, f8 ; f6 = f0 + f8

3. s.d f6, 0(r1) ; Mem[r1] = f6

4. sub.d f8, f10, f14 ; f8 = f10 – f14

5. mul.d f6, f10, f8 ; f6 = f10 * f8

Page 4: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 4

Ejemplo Dependencias:1. Antidependencias: 2 y 4.2. Dependencia de salidas: 2 y 5.3. Dependencias de datos: 1 y 2; 2 y 3; 4 y 5;

Peligros:1. WAR: uso de f8 en 2 y 4.2. WAW: uso de f6 en 2 y 5.3. RAW: uso de f0 en 1 y 2; uso de f6 en 2 y 3; uso

de f8 en 4 y 5.

Page 5: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 5

Ejemplo Renombrando f6 y f8 se eliminan las dependencias

de nombre y los peligros. f6 en 2 y 3 a S. f8 en 4, 5 y subsecuentes a T.

1. div.d f0, f2, f4 ; f0 = f2 / f4

2. add.d S, f0, f8 ; S = f0 + f8

3. s.d S, 0(r1) ; Mem[r1] = S

4. sub.d T, f10, f14 ; T = f10 – f14

5. mul.d f6, f10, T ; f6 = f10 * T

Page 6: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 6

Estaciones de reservaReservation stations (RS).Mecanismo para renombrar registros.Guarda operandos tan pronto están disponibles.Las instrucciones pendientes designan la RS de donde

obtendrán sus operandos.Cuando hay escrituras sucesivas a un registro, solo la última

escritura se usa para actualizar el registro.Conforme las instrucciones se emiten, los registros de los

operandos pendientes son renombrados por una RS.Generalmente, hay mas RS que registros físicos.

Page 7: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 7

Unidad de punto flotante en MIPS usando el algoritmo de Tomasulo

Page 8: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 8

ExplicaciónLas instrucciones llegan de la unidad de

instrucciones y se almacenan en la cola de instrucciones de donde son emitidas en orden FIFO.

Las RS incluyen:La operación y los operandos.Información para detectar y resolver peligros.

Las RS y los buffers de load y store tienen funciones semejantes y en esta explicación solo se distinguen cuando sea necesario.

Page 9: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 9

ExplicaciónLos buffers de load tienen 3 funciones:

Guarda los componentes de la dirección efectiva hasta que es calculada.

Registrar los loads que están esperando en la memoria.

Guardar los resultados de los loads que están esperando al CDB (bus común de datos).

Page 10: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 10

ExplicaciónLos buffers de store tienen 3 funciones:

Guarda los componentes de la dirección efectiva hasta que es calculada.

Guarda las direcciones destino que están esperando al valor del dato que van a guardar.

Guardar la dirección y el valor a guardar hasta que la unidad de memoria está disponible.

Los resultados de las unidades FP o de la unidad de carga se ponen en el CDB que va al banco de registros, los buffers de store y las RS.

Page 11: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 11

Algoritmo básico Las instrucciones pasan por 3 pasos:

1. Emisión (issue). También llamado despachar (dispatch).

2. Ejecución.

3. Escribir resultados. Cada paso toma un número arbitrario de ciclos.

Page 12: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 12

Algoritmo básico1. Emisión.

Obtiene la siguiente instrucción de la cola. Si hay una RS del tipo deseado que esté vacía, se

emite la instrucción a la RS que tenga los valores de los operandos, si ya están en los registros.

Si los operandos no están en los registros, se registra la unidad funcional que va a producirlos.

Si no hay una RS vacía, se produce un peligro estructural y la instrucción se retiene (stall) hasta que se libere una RS o buffer.

Renombra registros.

Page 13: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 13

Algoritmo básico2. Ejecución.

Si uno o mas operandos no están disponibles, el CDB se monitorea mientras se espera que los operandos sean calculados.

Cuando un operandos está disponible, se coloca en la RS correspondiente.

Cuando todos los operandos están disponibles, la instrucción se ejecuta en la unidad funcional.

Esta espera elimina peligros RAW.

Page 14: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 14

Algoritmo básico Si en una unidad funcional hay mas de una

instrucción lista para ejecutarse, la selección puede ser arbitraria.

Los loads y stores se ejecutan en dos pasos:1. La dirección efectiva se calcula cuando el registro

base está listo y luego se guarda en el buffer correspondiente.

2. Los loads se ejecutan tan pronto la unidad de memoria esté lista. Los stores esperan al valor a guardar antes de enviarlo a la memoria.

Para evitar peligros los loads y stores se hacen en orden hasta el paso 1.

Page 15: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 15

Algoritmo básico3. Escribir resultado.

Cuando el resultado está listo se escribe en el CDB, y de ahí se manda a las RS y buffers de store que estén esperando el resultado.

Los stores, se quedan en el buffer de store hasta que el valor a guardar y la dirección de memoria están disponibles.

El valor se guarda tan pronto la unidad de memoria esté libre.

Page 16: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 16

Estaciones de reservaCada RS tiene 7 campos:

Op – La operación a realizar en los operandos S1 y S2.Qj, Qk – Las RS que producirán los operandos. Un 0

indica que los operandos ya están en Vj o Vk, o que son innecesarios.

Vj, Vk – El valor de los operandos. Para loads, Vk se usa para guardar el offset.

A – Guarda información de la dirección de memoria para un load o store. Inicialmente el campo inmediato se guarda aquí, después del cálculo de la dirección, la dirección efectiva se guarda en A.

Page 17: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 17

Estaciones de reservaBusy – Indica que la RS y la correspondiente unidad

funcional están ocupadas.

Además, el banco de registros tiene 1 campo:Qi – El número de RS que contiene la operación cuyo

resultado va a ser guardado en este registro. Si Qi es 0, no hay ninguna instrucción activa que vaya a guardar algo en este registro.

Page 18: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 18

EjemploEn un sistema hay 7 RS: 2 de para loads, 3 para

sumas y 2 para multiplicaciones.Mostrar el estado de las RS y del banco de registros

después de que la instrucción 1 ha terminado y escrito su resultado.

Page 19: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 19

Ejemplo Código:

1. l.d f6, 32(r2) ; f6 = Mem[r2 + 32]

2. l.d f2, 44(r3) ; f2 = Mem[r3 + 44]

3. mul.d f0, f2, f4 ; f0 = f2 * f4

4. sub.d f8, f2, f6 ; f8 = f2 – f6

5. div.d f10, f0, f6 ; f10 = f0 / f6

6. add.d f6, f8, f2 ; f6 = f8 + f2

Page 20: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 20

PeligrosRAW – Entre 1 y 4 y entre 1 y 5 por f6; entre 2 y 3,

entre 2 y 4 y entre 2 y 6 por f2.WAR – Entre 4 y 6 y entre 5 y 6 por f6.WAW – Entre 1 y 6 por f6.

Page 21: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 21

Estado de las instrucciones

Page 22: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 22

Estaciones de reserva

Page 23: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 23

Banco de registros

Page 24: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 24

Solución de peligrosLos peligros RAW se eliminaron al hacer que una

instrucción no se ejecute hasta que sus operandos están listos.

Los peligros WAR por f6 se eliminaron al copiar el resultado del load (instrucción 1) a las estaciones de reserva donde están el sub y el div (instrucciones 4 y 5).

Ahora el add (instrucción 6) puede escribir en f6 sin problema.

No hubo peligro WAW porque la instrucción 1 terminó antes que la 6.

Page 25: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 25

Ejemplo Mostrar el estado de las RS, después de que la

instrucción 3 está lista para escribir su resultado y la 5 todavía está en ejecución.

1. l.d f6, 32(r2) ; f6 = Mem[r2 + 32]

2. l.d f2, 44(r3) ; f2 = Mem[r3 + 44]

3. mul.d f0, f2, f4 ; f0 = f2 * f4

4. sub.d f8, f2, f6 ; f8 = f2 – f6

5. div.d f10, f0, f6 ; f10 = f0 / f6

6. add.d f6, f8, f2 ; f6 = f8 + f2

Page 26: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 26

Estado de las instrucciones

Page 27: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 27

Estaciones de reserva

Page 28: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 28

Banco de registros

Page 29: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 29

Especulación El algoritmo básico de Tomasulo se puede

extender para soportar especulación por hardware. La especulación permite ejecutar instrucciones

antes de saber el resultado de un brinco. La especulación por hardware combina 3 ideas:

1. Predicción dinámica de brincos.

2. Especulación para ejecutar instrucciones antes de que las dependencias de control sean resueltas y deshacer los efectos si la especulación fue incorrecta.

Page 30: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 30

Especulación3. Scheduling dinámico para seleccionar que

instrucciones se ejecutan. Se necesita pasar el resultado a otras

instrucciones antes de que la instrucción termine. Se introduce un nuevo paso llamado compromiso

(commit). Una instrucción se compromete cuando se sabe

que no es especulada. Sólo entonces se le permite escribir al banco de

registros o a la memoria.

Page 31: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 31

EspeculaciónLas instrucciones de ejecutan fuera de orden pero

se comprometen en orden.Para comprometer en orden se usa un ROB

(reorder buffer).El ROB mantiene el resultado de una instrucción

desde que termina hasta que se compromete.Como ni la memoria ni el banco de registros se

actualizan hasta que la instrucción se compromete, el ROB provee operandos a otras instrucciones durante ese tiempo.

Page 32: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 32

EspeculaciónEl buffer de store se elimina porque su función la

realiza el ROB.Los stores se realizan todavía en 2 pasos, el

segundo paso lo hace el ROB.

Page 33: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 33

Algoritmo con especulación

Page 34: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 34

Algoritmo con especulación Las instrucciones pasan por 4 etapas:

1. Emisión (issue).

2. Ejecución.

3. Escribir resultados.

4. Compromiso.

Page 35: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 35

Algoritmo con especulación1. Emisión.

Obtiene una instrucción de la cola de instrucciones. La instrucción se emite si hay una RS libre y espacio

en el ROB donde poner el resultado. Envía los operandos a la RS si están disponibles en

el banco de registros o en el ROB. Envía el número de la entrada en el ROB a la RS

para que el resultado sea etiquetado al colocarse en el CDB.

Si todas las RS están ocupadas o el ROB está lleno, la instrucción se detiene.

Page 36: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 36

Algoritmo con especulación2. Ejecución.

Si uno o mas operandos no están disponibles, el CDB se monitorea mientras se espera que los operandos sean calculados.

Este paso checa los peligros RAW. Cuando los operandos están disponibles en el RS, la

instrucción se ejecuta. Los loads requieren dos etapas igual que antes. Los stores solo necesitan que el registro base esté

libre porque solo calculan la dirección efectiva.

Page 37: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 37

Algoritmo con especulación3. Escribir resultados.

Cuando el resultado está disponible, se escribe en el CDB y de ahí al ROB y otras RS que lo requieran.

La RS se marca como libre. Los stores necesitan atención especial:

Si el valor a guardar está libre, se escribe en el ROB. Si no está disponible, el CDB se monitorea hasta que el

valor aparezca y entonces se escribe en el ROB.

Page 38: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 38

Algoritmo con especulación4. Compromiso.

Una instrucción se compromete cuando llega al frente del ROB.

Las acciones dependen del tipo de instrucción. Si es un store, la memoria se actualiza. Si es otra instrucción (excepto un brinco), el banco

de registros se actualiza. Si es un brinco mal adivinado, el ROB se limpia y la

ejecución comienza en el lugar correcto. Si es un brinco bien adivinado no pasa nada. En cualquier caso, la entrada del ROB se libera.

Page 39: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 39

Ejemplo Mostrar el status de las tablas cuando el mul.d está

listo para comprometerse.1. l.d f6, 32(r2) ; f6 = Mem[r2 + 32]

2. l.d f2, 44(r3) ; f2 = Mem[r3 + 44]

3. mul.d f0, f2, f4 ; f0 = f2 * f4

4. sub.d f8, f2, f6 ; f8 = f2 – f6

5. div.d f10, f0, f6 ; f10 = f0 / f6

6. add.d f6, f8, f2 ; f6 = f8 + f2

Page 40: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 40

ROB

Page 41: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 41

Estaciones de reserva

Page 42: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 42

Banco de registros

Page 43: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 43

Ejemplo Mostrar la ejecución del siguiente código:

1. loop: l.d f0, 0(r1) ; f0 = Mem[r1]

2. mul.d f4, f0, f2 ; f4 = f0 * f2

3. s.d f4, 0(r1) ; Mem[r1] = f4

4. daddiu r1, r1, #-8 ; r1 = r1 – 8

5. bne r1, r2, loop ; if r1 r2 goto loop

Page 44: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 44

EjemploSuponiendo que:

Se especula que el ciclo fue tomado.Se han emitido las instrucciones en el ciclo 2 veces.El l.d y mul.d de la primera iteración ya se

comprometieron y las demás instrucciones terminaron de ejecutarse.

Page 45: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 45

ROB

Page 46: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 46

Banco de registrosLas RS no se muestran porque no hay instrucciones

ejecutando.

Page 47: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 47

EjemploSuponer que el primer brinco no debió ser tomado.Las instrucciones anteriores al brinco se

comprometen.Cuando el brinco llega al frente, el ROB se limpia y

se comienzan a sacar instrucciones del camino correcto.

En la práctica, al momento de saber que se adivinó mal se limpia la parte del ROB que corresponde al camino equivocado.

Page 48: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 48

ConclusionesEl algoritmo de Tomasulo no fue usado desde la

IBM 360/91 (1960s) hasta principios de los 90s.Ahora ha sido ampliamente adoptado en los

procesadores de emisión múltiple.Consigue un gran rendimiento sin requerir que el

compilador sea adaptado para cada arquitectura.Los peligros WAW y WAR se eliminan porque las

instrucciones se comprometen en orden.Los peligros RAW se eliminan al no permitir que una

instrucción continúe hasta que sus operandos están listos.

Page 49: Scheduling dinámico Algoritmo de Tomasulo. Universidad de SonoraArquitectura de Computadoras2 Introducción Desarrollado por Robert Tomasulo para la super-

Universidad de Sonora Arquitectura de Computadoras 49

Conclusiones Los peligros RAW en la memoria se eliminan con:

1. Un load en ejecución no puede iniciar su segundo paso si en el ROB hay un store activo con la misma dirección.

2. Manteniendo el orden de programa para el cálculo de la dirección efectiva de un load con respecto a los stores anteriores.

El scheduling dinámico es la forma preferida de scheduling usada actualmente.