Phases du cycle
Fetch → Decode → Execute → Write-back
-
FETCH
Prélever l'instruction depuis la mémoire -
DECODE
Décoder l'instruction et identifier les opérandes -
EXECUTE
Effectuer l'opération demandée -
WRITE-BACK
Stocker le résultat dans un registre ou la mémoire
Pipeline d'instructions
Fetch
→
Decode
→
Execute
→
Write-back
Registres CPU
PC : Compteur de programme
IR : Registre d'instruction
ACC : Accumulateur
SP : Pointeur de pile
Exemples d'instructions
ADD R1, R2 : Additionne R1 et R2
LOAD R1, [adresse] : Charge valeur en mémoire
STORE R1, [adresse] : Sauvegarde R1 en mémoire
JMP adresse : Saut inconditionnel
CMP R1, R2 : Compare deux registres
JEQ adresse : Saut si égal
Avantages du pipeline
Parallélisme :
Plusieurs instructions traitées simultanément
Chaque étape peut être active en même temps
Chaque étape peut être active en même temps
Performance :
Meilleur débit d'instructions
Moins de cycles d'attente
Moins de cycles d'attente
Exemple de cycle complet
Instruction : LOAD R1, [1000] :
Fetch : PC → adresse mémoire, instruction → IR
Decode : Décoder "LOAD", identifier R1 et [1000]
Execute : Accéder à la mémoire à l'adresse 1000
Write-back : Charger la valeur dans R1
Decode : Décoder "LOAD", identifier R1 et [1000]
Execute : Accéder à la mémoire à l'adresse 1000
Write-back : Charger la valeur dans R1
Instruction : ADD R1, R2 :
Fetch : Charger l'instruction ADD dans IR
Decode : Identifier les registres R1 et R2
Execute : Additionner les valeurs de R1 et R2
Write-back : Stocker le résultat dans R1
Decode : Identifier les registres R1 et R2
Execute : Additionner les valeurs de R1 et R2
Write-back : Stocker le résultat dans R1
Formules et concepts
Temps exécution = Σ(temps phases)
Débit = Instructions / Temps
Pipeline : n instructions en n+3 cycles
Horloge : synchronise chaque phase