Résumé
L'exécution dans le désordre ( en anglais) consiste à réorganiser l'ordre dans lequel les instructions vont s'exécuter dans le processeur. Ces instructions ne sont alors pas forcément exécutées dans l'ordre dans lequel elles apparaissent dans le programme. Cela permet de mieux exploiter les ressources d'un processeur et ainsi de gagner du temps de calcul par rapport à l'exécution dans l'ordre () qui consiste à exécuter les instructions dans l'ordre prévu par le compilateur. Cette dernière permet cependant de diminuer les coûts et la consommation d'énergie en simplifiant le processeur. C'est par exemple le cas dans les processeurs Intel Atom (excepté depuis fin 2013) et une partie des ARM. L'exécution dans le désordre évite l'insertion de bulles dans le pipeline lorsque deux instructions ayant une dépendance de données sont chargées dans le pipeline. Par dépendances de données, on veut dire qu'une des instructions va aller lire ou écrire à la même adresse, ou dans le même registre d'une façon qui impose un ordre d’exécution strict pour nos instructions. Il existe trois types de dépendances de données. Ces dépendances imposent un certain ordre d’exécution pour les instructions. L'ordre d’exécution des lectures et des écritures ne doit pas changer, sous peine de modifier le résultat du programme. Or, sur les processeurs dotés de pipeline, il se peut que les lectures et écritures changent d'ordre : les lectures et écritures dans les registres ne se font pas aux mêmes étages, et une instruction peut donc lire une donnée pas encore écrite, etc. Cela arrive lors de l’exécution d'instructions multicycles, ou en l'absence de réseau de forwarding. Dans ces conditions, le processeur insère des bulles dans le pipeline pour maintenir l'ordre des lectures/écritures tel que spécifié par le programmeur. L'exécution dans le désordre consiste à remplacer ces bulles par les instructions suivant l'instruction bloquée. Les algorithmes d’exécution dans le désordre les plus simples changent uniquement l'ordre d’exécution des instructions, ainsi que l'ordre dans lequel les résultats sont disponibles en sortie de l'unité de calcul.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.