CPU et architecture

Dans un pipeline, lorsqu'une instruction utilise immédiatement le résultat de la précédente (aléa de données), quelle technique transmet directement le résultat du calcul à l'instruction suivante sans attendre l'écriture dans le registre ?

  1. AForwarding (bypass)
  2. BMémoire virtuelle
  3. CPrédiction de branchement
Afficher la réponse et l'explication

Réponse : A. Forwarding (bypass)

Le forwarding (bypass) achemine directement la sortie de l'unité de calcul vers l'entrée de l'instruction suivante, sans attendre son écriture dans le registre. Par exemple, même si « r4 = r1 × 2 » suit immédiatement « r1 = r2 + r3 », l'exécution se fait sans arrêt (stall) de plusieurs cycles. En revanche, lorsque le résultat d'un chargement depuis la mémoire est utilisé immédiatement, la donnée n'étant pas encore arrivée, un arrêt d'environ un cycle subsiste (aléa load-use).

Pipeline à 5 étages et bulle due à un aléa load-use Temps (cycles) 1 2 3 4 5 6 7 8 9 Instruction lw x1, 0(x2) IF ID EX MEM WB add x3, x1, x4 IF ID Bulle EX MEM WB sub x5, x6, x7 IF ID EX MEM WB or x8, x9, x10 IF ID EX MEM WB add utilise aussitôt le x1 chargé par lw (aléa load-use) Même avec le forwarding (flèches), 1 cycle de bulle reste Sans blocage, une instruction se termine à chaque cycle IF lecture de l'instruction · ID décodage, lecture registres EX exécution · MEM accès mémoire · WB réécriture
Pipeline à 5 étages et bulle due à un aléa load-use · Voir dans les schémas
S'entraîner sur ce thème Retour au thème

Autres questions sur CPU et architecture

  1. Quelle description du petit-boutiste (little-endian) est correcte ?
  2. Quelle technique permet à un seul cœur de traiter simultanément les instructions de plusieurs threads afin d'utiliser efficacement ses unités d'exécution ?
  3. Dans les microcontrôleurs notamment, quelle méthode attribue aux registres des périphériques des adresses dans le même espace que la mémoire et les manipule avec les instructions ordinaires de lecture et d'écriture mémoire ?
  4. Quel est le rôle du chien de garde (watchdog timer) intégré à un microcontrôleur ?
  5. Quelle zone est généralement utilisée pour sauvegarder temporairement l'adresse de retour, entre autres, lors de l'appel d'un sous-programme (fonction) ?

Comparatifs sur ce thème