Aller au contenu

Prédicteur de cible de branchement

Un article de Wikipédia, l'encyclopédie libre.

En architecture informatique, un prédicteur de cible de branchement est la partie d’un processeur qui prédit la cible, c’est-à-dire l’adresse de l’instruction qui est exécutée après une instruction de branchement conditionnel pris ou de branchement inconditionnel avant que la cible de l'instruction de branchement ne soit calculée par l’unité d’exécution du processeur.

La prédiction de cible de branchement n’est pas la même chose que la prédiction de branchement qui tente de prévoir si un branchement conditionnel sera pris ou non (choix binaire).

Dans les conceptions de processeurs parallèles, à mesure que la latence du cache d'instructions s’allonge et que la largeur d’extraction s’élargit, l’extraction de cibles de branchement devient un goulot d’étranglement. La récurrence est la suivante :

  • Le cache d’instructions récupère un bloc d’instructions
  • Les instructions du bloc sont analysées pour identifier les branchements
  • Le premier branchement pris prévu est identifié
  • La cible de ce branchement est calculée
  • La récupération des instructions redémarre au niveau de la cible de branchement

Dans les machines où cette récurrence prend deux cycles, la machine perd un cycle complet de récupération après chaque branchement pris prévu. Comme les branchements prédits se produisent toutes les 10 instructions environ, cela peut entraîner une baisse substantielle de la bande passante de récupération. Certaines machines avec des latences de cache d’instructions plus longues auraient une perte encore plus importante. Pour atténuer la perte, certaines machines implémentent la prédiction de cible de branchement : étant donnée l’adresse d’un branchement, elles prédisent la cible de ce branchement. Un raffinement de l’idée prédit le début d’une série séquentielle d’instructions à partir de l’adresse du début de la série séquentielle précédente d’instructions.

Ce prédicteur réduit la récurrence ci-dessus à :

  • Hacher l’adresse de la première instruction d’une exécution
  • Récupérer la prédiction pour les adresses des cibles de branchement dans cette série d’instructions
  • Sélectionner l’adresse correspondant du branchement pris prévu

Comme la RAM du prédicteur peut représenter 5 à 10 % de la taille du cache d’instructions, la récupération se produit beaucoup plus rapidement que la récupération du cache d’instructions, et donc cette récurrence est beaucoup plus rapide. Si elle n’était pas assez rapide, elle pourrait être parallélisée, en prédisant les adresses cibles des branchements cibles.

Liens externes

[modifier | modifier le code]