Pipeline simple Daniel Etiemble de@li.f L exécution d une instuction Les étapes fondamentales Instuctions UAL Lectue instuction Incémentation CP Décodage de l instuction Lectue des opéandes Exécution Ecitue du ésultat Instuctions Mémoie Lectue instuction Incémentation CP Décodage de l instuction Calcul de l adesse mémoie Accès mémoie Rangement du ésultat Instuctions Banchement Lectue instuction Incémentation CP Décodage de l instuction Calcul de l adesse de banchement Exécution 2 1
Exécution d une instuction : les difféentes étapes Instuctions entièes /CP Instuctions flottantes /CP 1 2... Instuctions mémoie /CP CA AM Instuctions de banchement /CP DI/CAB/ 3 Pipeline 1 instuction pa cycle Pipeline R2000-R3000 Latence : 5 cycles Débit : 1 instuction pa cycle 4 2
Exécution scalaie MIPS (non pipelinée) Lectue instuction Dec. Inst. Lect.. Exécution Cal. Ad. Accès mémoie Ecit.. NCP 4 Add NCP séquentiel RS1 Zéo? MUX CP Memoy RI RS2 RD File MUX MUX Data Memoy L M D MUX Imm Sign Extend Donnée écite 5 Exécution scalaie MIPS (pipelinée) NCP Lectue instuction Déc. Inst. Lec.. Execution Calcul ad. Accès mémoie Ecit. eg 4 Add MUX NCP séq. RS1 NCP séq. Zéo? CP Mémoie Instuctions RI / RS2 Imm istes Extension signe / MUX MUX UAL / RD RD RD Mémoie données /WB MUX Donnée écite 6 3
Time (clock cycles) Aléas de données /RF WB I n s t. add 1,2,3 sub 4,1,3 O d e and 6,1,7 o 8,1,9 xo 10,1,11 7 Envoi pou évite les aléas Time (clock cycles) I n s t. add 1,2,3 sub 4,1,3 O d e and 6,1,7 o 8,1,9 xo 10,1,11 8 4
Matéiel pou l envoi NextPC istes / mux mux / Data Memoy /WR Immediate mux 9 Aléas de données incontounables Time (clock cycles) I n s t. lw 1, 0(2) sub 4,1,6 O d e and 6,1,7 o 8,1,9 10 5
Aléas de données incontounables Time (clock cycles) I n s t. O d e lw 1, 0(2) sub 4,1,6 and 6,1,7 Bubble Bubble o 8,1,9 Bubble 11 Les délais liés au pipeline DELAI DE CHARGEMENT DELAI DE BRANCHEMENT 1 cycle 1 cycle 12 6
Le poblème des banchements INSTRUCTIONS SAUT/BRANCHEMENT : possibilités Annulation pa matéiel de l instuction qui suit. Toute instuction de contôle pend 2 cycles. Insée une instuction NOP Toute instuction de contôle pend 2 cycles Saut/banchement etadé d un cycle L instuction apès le banchement est exécutée avant que le banchement ou le saut soit effectué Si le compilateu peut éodonnance les instuctions, saut et banchement en 1 cycle LD R1, (R4+8) LD R2, (R5+8) ADD R3,R1,R2 ST R3, (R6+8) BR L1 NOP...... L1 :...... LD R1, (R4+8) LD R2, (R5+8) ADD R3,R1,R2 BR L1 ST R3, (R6+8)............ L1 : 1 cycle 13 Les banchements conditionnels etadés Schémas de éodonnancement a) L instuction avant le banchement ne calcule pas la condition cond INST j b) Instuction cible Banchement tès pobablement pis (Banchement de boucle) c) Instuction apès le banchement cond INST j a) Initial cond INST x cond b) Initial c) Initial cond INST j a) Final INST j INST x cond b) Final Banchements avec annulation L instuction suivante est exécutée si le banchement est pis L instuction suivante est annulée si le banchement n est pas pis c) Final 14 7
Appoche supepipeline pipeline Tc supepipeline Tc i 1 2 DI LD1 LD2 T i+1 i+2 1 2 DI LD1 LD2 T 1 2 DI LD1 LD2 T Les étages citiques (accès cache) sont pipelinés T cs = T c /2 i+3 1 2 DI LD1 LD2 T i+4 1 2 DI LD1 LD2 T 15 Supepipelines : chagements et banchements Supepipeline MIPS R4000 i 1 2 DI LD1 LD2 T i+1 1 i+2 2 1 DI 2 3 DI LD1 2 LD2 LD1 T LD2 T i+3 1 2 DI LD1 LD2 T i+4 1 2 DI LD1 LD2 T Délai banchement Délai chagement 16 8
Pipelines Pentium III et Pentium 4 Supepipeline : technique pemettant d utilise des féquences d hologe élevée (2 à 3 GHz en 2003) Pentium III Pentium 4 17 Latences chagement/banchement Latence de chagement Pénalité de mauvaise pédiction Pentium 4 Optimisation matéielle Pédiction de banchement Optimisation pogammeu/compilateu Odonnancement des instuctions Convesion SI Utilisation des instuctions de tansfet conditionnel pou suppime des banchements conditionnels 18 9
Caactéistiques des supepipelines i 1 2 DI LD1 LD2 T Avantages Simple extension du pipeline scalaie Inconvénients féquence d hologe plus élevée cicuits d anticipation (fowading) plus complexes Délais de banchement et chagement plus élevés, Remaque La compatibilité binaie doit ête pésevée : Pb des banchements etadés (ARC, MIPS) 19 Le poblème des banchements Exemple du 21064 RF 1 2 WR Conditional banch RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR RF 1 2 WR Compotement du banchement connu à la fin de 1 20 10