Algorithme de Tomasulo

algorithme d'optimisation lors de la compilation d'un programme

L’algorithme de Tomasulo est un algorithme facilitant le parallélisme au sein des processeurs mis au point en 1967 par Robert Tomasulo. Cet algorithme, est l'une des implémentations possibles pour l'exécution dans le désordre : il trie les instructions de manière à traiter plus tard les instructions qui seraient normalement bloquées en raison de dépendances de données. Mise en place pour la première fois pour l'unité de calcul en virgule flottante de l'IBM 360 modèle 90.

Les principales innovations de l'algorithme de Tomasulo comprennent le renommage de registres hardware, les stations de réservation pour toutes les unités d’exécution et un bus de données commun (CDB) sur lequel les valeurs calculées sont diffusées à toutes les stations de réservation qui peuvent en avoir besoin. Ces développements permettent d’améliorer l’exécution parallèle d’instructions qui, autrement, se bloqueraient avec l’utilisation du scoreboarding ou d’autres algorithmes antérieurs.

Robert Tomasulo a reçu le Prix Eckert-Mauchly en 1997 pour cet algorithme.