1919
5 étages5 étages
Fetch/ Decode/ Fetch OP/ Execute/ Store Fetch/ Decode/ Fetch OP/ Execute/ Store
1 IFIF IDID FOFO EXEX SOSO
2 IFIF IDID FOFO EXEX SOSO
3 IFIF IDID FOFO EXEX SOSO
4 IFIF IDID FOFO EXEX SOSO
5 IFIF IDID FOFO EXEX SOSO
5 actions
en parallèle 2020
Exemple le MIPS
Fetch/ Decode/ Execute/ Memory/ Register
1 IFIF IDID EXEX MEMMEM REGREG
2 IFIF IDID EXEX MEMMEM REGREG
3 IFIF IDID EXEX MEMMEM REGREG
4 IFIF IDID EXEX MEMMEM REGREG
5 IFIF IDID EXEX MEMMEM REGREG
5 actions
en parallèle
ID : Decode + fetch operands
Mem : write back cache + mem
Reg : store ALU into register
2121
Le pipeLe pipe--line du 80486line du 80486
FetchFetch: : Instructions depuis le cache ou la mémoire Instructions depuis le cache ou la mémoire
vers 2 buffers de prefetch. Chaque buffer contient en vers 2 buffers de prefetch. Chaque buffer contient en
moyenne 5 instructions. Remplissage dès que moyenne 5 instructions. Remplissage dès que
possible des buffers.possible des buffers.
Decode stage 1Decode stage 1: Décode le code opération et les : Décode le code opération et les
modes d’adressagemodes d’adressage
Decode stage 2Decode stage 2: Génère les signaux pour l’ALU. : Génère les signaux pour l’ALU.
Réalise les adressages plus complexesRéalise les adressages plus complexes
ExecuteExecute: Opérations ALU, Accès cache, registres: Opérations ALU, Accès cache, registres
Write BackWrite Back: Maj des flags, écriture des résultats sur : Maj des flags, écriture des résultats sur
le cache et le buffer de l’interface du Busle cache et le buffer de l’interface du Bus 2222
Efficacité
Soit tile temps de traversée de
l'étage i.
Le temps d'exécution d'une
instruction est: instinst
Le délai entre 2 instructions
successives est MaxMax
est appelé cycle du pipeline
2323
Rupture de pipelineRupture de pipeline
Instructions de branchement Instructions de branchement
Data dépendanceData dépendance
Défauts de cacheDéfauts de cache
Conflits hardware (mémoire)Conflits hardware (mémoire)
2424
Instructions de BranchementInstructions de Branchement
Lors de l'exécution d'un JUMPLors de l'exécution d'un JUMP
La prochaine instruction est la La prochaine instruction est la
suivante suivante
OKOK
Ce n'est pas la suivante Ce n'est pas la suivante
Vidage du pipeVidage du pipe--lineline
Remplissage du pipe avec les Remplissage du pipe avec les
bonnes instructionsbonnes instructions