Keywords: archi

Next: Améliorations Up: Les aléas Previous: Aléa de données

#### Aléa de contrôle

Il concerne les instructions de modification du registre PC. Le cas trivial est l'instruction de branchement conditionnel. Jusqu'à l'exécution d'une telle instruction, il est impossible de savoir si un branchement est effectué ou non. Par exemple, pour la machine RISC, l'adresse de l'instruction suivante n'est connue qu'au niveau de l'étage EX.

cycle d'horloge | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
instruction 1 | LI | DI | EX | MEM | ER |  |  |
instruction 2 |  | LI | DI | EX | MEM | ER |  |
instruction 3 |  |  | LI | DI | EX | MEM | ER |
instruction 4 |  |  |  | LI | DI | EX |  |
instruction 5 |  |  |  |  | LI | DI |  |
instruction 6 |  |  |  |  |  | LI |  |
instruction 7 |  |  |  |  |  |  | LI | DI
instruction 8 |  |  |  |  |  |  |  | LI

! Cet aléa est le principal facteur de dégradation de performance dans une architecture pipeline.

Plusieurs solutions ont été proposées pour gérer les branchements dans une architecture pipeline :

- dupliquer l'architecture de pipeline pour traiter les deux cas du branchement (pris ou pas) ;
- précharger l'instruction (ou la suite d'instruction) correspondant à l'adresse de branchement (quitte à ne pas l'utiliser) ;
- se baser sur une prédiction des branchements
  - supposer qu'un branchement ne sera jamais/toujours pris ;
  - supposer que certains opcodes favorisent le branchement ;
  - se baser sur un historique des branchements ;
- générer des instruction NOP (No OPeration) après l'instructions de branchement le temps que le branchement puisse se conclure.

Next: Améliorations Up: Les aléas Previous: Aléa de données