Résumé
En architecture des ordinateurs, on appelle renommage de registres le fait qu'une microarchitecture alloue dynamiquement les registres architecturaux à un ensemble plus vaste de registres physiques au cours de l'exécution d'un programme. Une architecture externe de processeur définit un ensemble de registres, dits architecturaux, que peuvent manipuler les programmes en langage machine. Dans une microarchitecture superscalaire, le processeur essaie d'exécuter en parallèle plusieurs instructions. Il analyse donc localement le programme afin d'y déceler les dépendances entre instructions, et réordonne ces dernières en conséquence, de façon à tirer parti du parallélisme tout en n'introduisant pas d'erreur. Or les dépendances entre instructions machine limitent les performances de l'exécution dans le désordre, car il arrive régulièrement que plusieurs instructions soient en compétition pour l'utilisation du même registre en raison du parallélisme qui a été introduit. Il faut alors bloquer l'une des instructions en attendant que la ressource se libère. Cependant, dans de nombreux cas, ces dépendances n'apparaissent qu'au niveau des registres, mais ne reflètent pas de réelles dépendances dans les flux de données traités par le programme. Ce problème est d'ailleurs d'autant plus prégnant que le compilateur a effectué des optimisations basées sur l'utilisation des registres. Une solution consiste donc à dupliquer les ressources : les registres architecturaux ne correspondent plus à des registres physiques dans la microarchitecture, mais sont alloués dynamiquement à un ensemble plus grand de registres physiques, ce qui permet d'éliminer une partie des dépendances introduites artificiellement par le nombre restreint de registres. Par exemple, l'architecture IA-32 définit 16 registres architecturaux. Le Pentium dispose de 128 registres physiques et effectue du renommage de registres. Considérons par exemple le code suivant :
  1. R1 ← mem[1]
  2. R1 ← R1 + 1
  3. mem[1] ← R1
  4. R1 ← mem[10]
  5. R1 ← R1 + 4
À 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.