Visualizing CPU Pipelining (2024)
L'article explique le fonctionnement détaillé du pipeline CPU en se basant sur un modèle MIPS 5 étages et en s'appuyant sur des sources comme Dan Luu et Rodrigo Copetti. La phase d'instruction decoding (ID) extrait les champs d'instruction qui sont propagés via des registres entre étapes afin que chaque stade dispose des métadonnées nécessaires. L'unité de détection de hazards (HDU) compare ces métadonnées entre registres d'étapes et insère des bulles (stalls) pour éviter des dépendances qui rendraient le calcul incorrect. L'unité de forwarding (FU) peut rediriger des résultats intermédiaires vers l'étage EX pour éliminer certains stalls, mais elle doit coopérer avec la HDU, notamment pour les chargements (lw) qui exigent souvent au moins une bulle. Les aléas de contrôle sont gérés par des techniques allant du "predict not taken" et des branch delay slots à la prédiction dynamique, en utilisant BTAC pour l'adresse cible, BPU pour la prédiction et BRU pour la résolution et le flush en cas d'erreur.