El
algoritmo de Tomasulo es un
algoritmo de planificación dinámica desarrollado por
Robert Tomasulo, de
IBM. Se diseñó para permitir a un
procesador ejecutar
instrucciones fuera de orden. Este algoritmo difiere del
algoritmo de marcador (Scoreboard) en que este último no dispone de renombrado de
registros. En su lugar, el algoritmo de Scoreboard (scoreboarding) resuelve los riesgos Escritura Después de Escritura (EDE o WAW) y Escritura Después de Lectura (EDL o WAR) deteniendo la ejecución, mientras que el algoritmo de Tomasulo permite el lanzamiento de dichas instrucciones. Además, el algoritmo de Tomasulo utiliza un
bus de datos común en el que los valores calculados son enviados a todas las estaciones de reserva que los necesiten. Esto permite mejorar la ejecución paralela de instrucciones en situaciones en las que el scoreboarding fallaría y provocaría la parada.