Qu'est-ce que Prédiction de branchement ?

Technique qui prédit le résultat d'un branchement conditionnel avant son exécution afin de traiter les instructions suivantes sans arrêter le pipeline. En cas d'erreur, le traitement est repris.

Nom japonais: 分岐予測

« Prédiction de branchement » apparaît dans 14 questions d'entraînement réparties sur 6 thèmes, dont CPU et architecture, Analyse des performances, ISA et assembleur.

Domaine: CPU et architecture

S'entraîner : questions sur Prédiction de branchement

Quel est l'objectif de la prédiction de branchement d'un processeur ?

  1. APrédire le résultat des branchements pour exécuter les instructions suivantes à l'avance et réduire les arrêts du pipeline
  2. BPrédire la consommation pour piloter l'alimentation
  3. CPrédire la capacité de la mémoire principale
Afficher la réponse et l'explication

Réponse : A. Prédire le résultat des branchements pour exécuter les instructions suivantes à l'avance et réduire les arrêts du pipeline

Dans un pipeline, l'instruction suivante n'est connue qu'une fois le résultat du branchement déterminé, et le traitement s'arrête. La prédiction de branchement estime la destination à partir de l'historique et poursuit l'exécution, en ne recommençant qu'en cas d'erreur. Environ une instruction sur cinq étant un branchement, l'impact est important ; les processeurs hautes performances actuels prédisent avec une précision supérieure à 95 %. Chaque erreur de prédiction coûte une dizaine à une vingtaine de cycles ; même un léger gain de précision améliore les performances.

Les compteurs de performance révèlent un très grand nombre d'erreurs de prédiction de branchement. Quelle méthode d'amélioration convient ?

  1. AAjouter davantage de branchements dans la boucle
  2. BTrier les données pour rendre l'issue des branchements plus prévisible, ou supprimer les branchements eux-mêmes par sélection conditionnelle ou calcul
  3. CRéduire la capacité du cache
Afficher la réponse et l'explication

Réponse : B. Trier les données pour rendre l'issue des branchements plus prévisible, ou supprimer les branchements eux-mêmes par sélection conditionnelle ou calcul

En cas d'erreur de prédiction de branchement, le CPU abandonne les instructions exécutées de manière spéculative et recommence, perdant à chaque fois une dizaine de cycles ou plus. Avec des données aléatoires, l'issue d'un branchement du type « si la valeur est supérieure ou égale à 128 » est imprévisible. Trier les données au préalable regroupe les issues et rend la prédiction juste, tandis qu'une écriture avec instructions de sélection conditionnelle ou opérations bit à bit supprime le branchement. On peut aussi inciter le compilateur à effectuer ces transformations.

« Prédiction de branchement » dans les explications

Questions mentionnant « Prédiction de branchement » (14)

  1. Quel est l'objectif de la prédiction de branchement d'un processeur ?
  2. Les compteurs de performance révèlent un très grand nombre d'erreurs de prédiction de branchement. Quelle méthode d'amélioration convient ?
  3. Quel est le principal objectif du traitement en pipeline d'un processeur ?
  4. Quel indicateur exprime le nombre d'instructions exécutées par cycle d'horloge ?
  5. Dans un processeur à exécution dans le désordre, quel mécanisme valide (retire) dans l'ordre original du programme les résultats des instructions exécutées dans le désordre ?
  6. Quelle affirmation concernant deux CPU adoptant la même architecture de jeu d'instructions (ISA) est correcte ?
  7. Quel est l'avantage d'utiliser l'adressage relatif au PC pour les branchements et sauts ?
  8. Quelle affirmation concernant le delay slot de branchement des anciens MIPS notamment (règle selon laquelle l'instruction suivant immédiatement un branchement est exécutée que le branchement soit pris ou non) est correcte ?
  9. Quelle est la différence de philosophie de conception entre CPU et GPU ?
  10. Quelle est la principale raison pour laquelle le NPU d'un SoC de smartphone est plus efficace énergétiquement que le CPU pour l'inférence d'IA ?
  11. Une modification de conception du CPU multiplie la fréquence d'horloge par 1,5, mais aussi le CPI par 1,2 (nombre d'instructions inchangé). Par combien la vitesse d'exécution est-elle multipliée ?
  12. Quel exemple de grandeurs comptées par les compteurs de performance intégrés au CPU (PMU) est correct ?
  13. Quel est le principe de la vulnérabilité d'exécution spéculative appelée Spectre ?
  14. Quel énoncé est généralement correct au sujet des contre-mesures aux vulnérabilités d'exécution spéculative ?

Termes associés

Pipeline Exécution dans le désordre (out-of-order) Débit (throughput) IPC CPI Architecture du jeu d'instructions (ISA) Exécution spéculative Superscalaire Adressage relatif au PC Code indépendant de la position

Retour au glossaire