Pipeline 1 Amélioration des performances par la technique du pipeline
Pipeline 2 Amélioration des performances par la technique du pipeline temps
Pipeline 3 Amélioration des performances par la technique du pipeline temps
Pipeline 4 Amélioration des performances par la technique du pipeline temps
Pipeline 5 Amélioration des performances par la technique du pipeline temps
Pipeline 6 Amélioration des performances par la technique du pipeline temps
Pipeline 7 Amélioration des performances par la technique du pipeline temps
Pipeline 8 Amélioration des performances par la technique du pipeline
Pipeline 9 Amélioration des performances par la technique du pipeline CPI = 1 tps cycle = faible CPI = 1 tps cycle = faible Objectifs :
Pipeline 10 Plan Introduction Un chemin de données pipeliné Le contrôle pipeliné Les aléas de données Le contrôle pour les aléas de données : les suspensions Illusions et piège
Pipeline 11 Introduction La technique du pipeline est une technique de mise en oeuvre qui permet à plusieurs instructions de se chevaucher pendant l'exécution. Une instruction est découpée dans un pipeline en petits morceaux appelés étage de pipeline. La technique du pipeline améliore le débit des instructions plutôt que le temps d'exécution de chaque instruction. La technique du pipeline exploite le parallélisme entre instructions d’un flot séquentiel d’instructions. Elle présente l’avantage de pouvoir, contrairement à d'autres techniques d'accélération, être rendue invisible du programmeur.
Pipeline 12 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 13 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 14 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 15 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 16 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 17 Introduction temps Ordre d'exécution des instructions lw $1,100($0) Extrac Inst RUAL Extrac Donnée R 40 NS
Pipeline 18 Introduction temps Ordre d'exécution des instructions lw $1,100($0) lw $2,200($0) lw $3,300($0) Extrac Inst RUAL Extrac Donnée R 40 NS Extrac Inst RUAL Extrac Donnée R 40 NS Extrac Inst
Pipeline 19 Introduction temps Ordre d'exécution des instructions lw $1,100($0) lw $2,200($0) lw $3,300($0) Extrac Inst RUAL Extrac Donnée R 40 NS Extrac Inst RUAL Extrac Donnée R 40 NS Extrac Inst lw $1,100($0) lw $2,200($0) lw $3,300($0) Extrac Inst RUAL Extrac Donnée R 10ns R Extrac Donnée Extrac Inst RUAL Extrac Donnée R 10ns R Extrac Donnée Extrac Inst RUAL Extrac Donnée R 10 NS R Extrac Donnée
Pipeline 20 Un chemin de données pipeline La décomposition en cinq étages d’une instruction conduit à un pipeline à cinq étages, ce qui signifie que cinq instructions seront en cours d'exécution à chaque cycle d’horloge. Le chemin de données est divisé en cinq étages –EI : Extraction d’instruction –DI : Décodage d’instruction et extraction de registre –EX : Exécution et calcul d’adresse effective –MEM :Accès mémoire –ER : Écriture du résultat Chaque étage est séparé par des registres pipeline. Ils stockent toutes les données qui traversent les étages.
Pipeline 21 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Le pipeline Extraction Instruction Décodage Ins/ Extraction registre Exécution/ calcul adr Accès Mémoire Ecriture Résultat
Pipeline 22 Une vue simplifiée MI RegReg MD UALUAL RegReg
Pipeline 23 une vue simplifiée du pipeline MI R eg MD UALUAL R eg Ordre d'exécution des instructions lw $1,100($0) lw $2,200($0) lw $3,300($0) MI R eg MD UALUAL R eg MI R eg MD UALUAL R eg temps en cycle d’horloge cc1 cc2 cc3 cc4 cc5 cc6 cc7
Pipeline 24 une vue simplifiée du pipeline MI R eg MD UALUAL R eg lw $1,100($0) lw $2,200($0) lw $3,300($0) MI R eg MD UALUAL R eg MI R eg MD UALUAL R eg MI R eg MD UALUAL R eg MI R eg MD UALUAL R eg
Pipeline 25 Exemple lw $10,9($1) sub $11,$2,$3
Pipeline 26 Exemple Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Extraction InstructionDécodage Ins Exécution MémoireEcriture Résultat
Pipeline 27 Exemple CC1 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Extraction Instruction lw $10,9($1)
Pipeline 28 Exemple CC2 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Extraction InstructionDécodage Ins sub $11,$2,$3lw $10,9($1)
Pipeline 29 Exemple CC3 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Décodage Ins Exécution sub $11,$2,$3lw $10,9($1)
Pipeline 30 Exemple CC4 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Exécution Mémoire sub $11,$2,$3lw $10,9($1)
Pipeline 31 Exemple CC5 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER MémoireEcriture Résultat sub $11,$2,$3lw $10,9($1)
Pipeline 32 Exemple CC6 Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Ecriture Résultat sub $11,$2,$3
Pipeline 33 FIN Registre lecture1 Registre lecture2 Registre écriture Donnée à écrire 0M10M1 0M10M1 ESES 0M10M1 CPCP R.Adr Mémoire I Donnée lue 1 Donnée lue 2 Adresse Lecture Adresse écrire Donnée à écrire Donnée lue 1M01M0 EI/DI DI/EX EX/MEM MEM/ER Extraction InstructionDécodage Ins Exécution MémoireEcriture Résultat