La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ; aucune dentre elles nutilisaient les résultats calculés par.

Présentations similaires


Présentation au sujet: "Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ; aucune dentre elles nutilisaient les résultats calculés par."— Transcription de la présentation:

1 Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ; aucune dentre elles nutilisaient les résultats calculés par une autre. Regardons se qui se passe dans un programme réel. sub $2,$1,$3# Registre $2 écrit par sub and $12,$2,$5# 1er opérande ($2) dépend de sub or $13,$6,$2 # 2nd opérande ($2) dépend de sub add $14,$2,$2 # 1er ($2) & 2nd ($2) dépendent de sub sw $15,100($2)# index ($2) dépend de sub Les quatre dernières instructions sont toutes dépendantes du résultat que la première instruction écrit dans le registre $2.

2 Aléas 2 Exécution Idéale de la séquence précédente sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R 123456789

3 Aléas 3 Exécution de la séquence précédente sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Valeur de $2123456789 Décodage de $5 et $2

4 Aléas 4 Autre exemple : $6 sub $6,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Valeur de $6123456789 Décodage de $5 et $2

5 Aléas 5 Autre exemple : $6 sub $6,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Valeur de $6123456789 Décodage de $6 et $2

6 Aléas 6 Exécution de la séquence précédente sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Valeur de $21 10 2 10 3 10 4 10 5 10 6 -20 7 -20 8 -20 9 -20 1 10 2 10 3 -20 4 -20 5 -20 6 -20 7 -20 8 -20 9 -20

7 Aléas 7 Les aléas LogicielMatériel Problème daléas

8 Aléas 8 Les aléas de données Les dépendances de données sont appelées des aléas de données. Ils constituent une des raisons pour lesquelles les pipelines sont difficiles à concevoir au niveau logiciel et matériel. Pour résoudre ce problème, le compilateur introduit soit : –des instructions indépendantes –sil ne peut pas en trouver il insère des instructions dont lindépendance est assurée : des instructions nop (no opération). Cette solution pénalise les performances, puisque chaque opération nop utilise un cycle sans réaliser de travail utile.

9 Aléas 9 Disparition des aléas de données sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) add $20,$20,$21 sw $29,100($25) add $25,$5,$23

10 Aléas 10 Disparition des aléas de données sub $2,$1,$3 nop and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) add $20,$20,$21 sw $29,100($25) add $25,$5,$23

11 Aléas 11 Insertion de suspension dans le pipeline MI RMD UALUAL R sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

12 Aléas 12 Insertion de suspension dans le pipeline MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI BBBB BBBB BBBB sub $2,$1,$3 suspension and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2)

13 Aléas 13 Disparition des aléas de données sub $2,$1,$3 nop and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) add $20,$20,$21 sw $29,100($25) add $25,$5,$23 Opérations candidates au Réordonnancement

14 Aléas 14 Disparition des aléas de données sub $2,$1,$3 add $20,$20,$21 sw $29,100($25) add $25,$5,$23 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2)

15 Aléas 15 Disparition des aléas de données sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) add $20,$20,$21 sw $29,100($25) add $25,$5,$23 sub $2,$1,$3 add $20,$20,$21 sw $29,100($25) add $5,$25,$23 and $12,$2, $5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) Réordonnancement des taches : solution très difficile, donne les meilleurs performances sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) add $20,$20,$21 sw $29,100($25) add $5,$25,$23 Recherche de 3 opérations indépendantes Attention à ne pas recréer des aléas

16 Aléas 16 Les aléas Logiciel Matériel Problème daléas Réordonnancement

17 Aléas 17 Traitement des aléas au niveau matériel Conditions pour détecter un aléas de données Création dune unité de détection des aléas

18 Aléas 18 Le contrôle des aléas Retour sur lexécution dune instruction lw $10,9($1) Nous allons suivre la valeur 10 dans les différents bancs de registres

19 Aléas 19 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)

20 Aléas 20 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) 10 EI/DI.RegistreLecture

21 Aléas 21 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) DI/EX.RegistreEcriture 10 X Si x=10 Problème Ici x=2 et x=3

22 Aléas 22 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) DI/EX.RegistreEcriture 10 X Si x=10 Problème Ici x=2 et x=3 EI/DI.RegistreLecture1 = DI/EX.RegistreEcriture

23 Aléas 23 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) EX/MEM.RegistreEcriture 10 X Si x=10 problème

24 Aléas 24 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) EX/MEM.RegistreEcriture 10 X Si x=10 problème EI/DI.RegistreLecture1 = EX/MEM.RegistreEcriture

25 Aléas 25 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) MEM/ER.RegistreEcriture 10 X Si x=10 problème

26 Aléas 26 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) MEM/ER.RegistreEcriture 10 X Si x=10 problème EI/DI.RegistreLecture1 = MEM/ER.RegistreEcriture

27 Aléas 27 Le contrôle pour les aléas de données : les suspensions Conditions pour détecter un aléas de données : 1a- EI/DI.RegistreLecture1 = DI/EX.RegistreEcriture 2a- EI/DI.RegistreLecture1 = EX/MEM.RegistreEcriture 3a- EI/DI.RegistreLecture1 = MEM/ER.RegistreEcriture 1b- EI/DI.RegistreLectur2 = DI/EX.RegistreEcriture 2b- EI/DI.RegistreLecture2 = EX/MEM.RegistreEcriture 3b- EI/DI.RegistreLecture2 = MEM/ER.RegistreEcriture Exemple : sub $2,$1,$3 and $12,$2,$5 EI/DI.RegistreLecture1 = DI/EX.RegistreEcriture=2 sub $2,$1,$3 Or $i,$j,$k and $12,$2,$5 EI/DI.RegistreLecture1 = EX/MEM.RegistreEcriture=2

28 Aléas 28 Unité de détection des aléas Lunité de détection daléas stoppe lécriture dans le CP et le registre pipeline EI/DI et choisit des 0 pour les valeurs de contrôle dans le registre pipeline DI/EX lorsquelle détecte un aléas.

29 Aléas 29 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture

30 Aléas 30 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture and $4,$2,$5 sub $2,$1,$3 1 0 10 000 1100 $1 $3 2 1313

31 Aléas 31 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture or $8,$2,$6 and $4,$2,$5 sub $2,$1,$3 0 1 00 000 0000 $2 $5 4 1 10 000 $1 $3 2 A

32 Aléas 32 Mémoire Instructions CP Registres 0M10M1 Contrôle 0M10M1 ER M EX EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd 0 1 00 000 0000 $2 $5 4 1 10 000 $1 $3 2 Lunité de détection daléas Mémoire Données 1M01M0 ER M ER EX/MEM.EcrireReg MEM/ER.EcrireReg EX/MEM MEM/ER EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture or $8,$2,$6 and $4,$2,$5 sub $2,$1,$3 A Conditions daléas

33 Aléas 33 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture or $8,$2,$6 and $4,$2,$5 bullesub $2,$1,$3 0 1 00 000 0000 $2 $5 4 0 00 000 2 1 10 A Bulle 1

34 Aléas 34 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture or $8,$2,$6 and $4,$2,$5 bulle bulle sub $2,$1,$3 0 1 00 000 0000 $2 $5 4 0 00 000 2 0 00 A 1 Bulle 2 Bulle 1

35 Aléas 35 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture or $8,$2,$6 and $4,$2,$5 bulle bulle bulle 1 0 10 000 1100 $2 $5 4 0 00 000 0 00 0 Bulle 3 Bulle 2 Bulle 1

36 Aléas 36 Lunité de détection daléas Mémoire Instructions CP Registres 0M10M1 Mémoire Données 1M01M0 Unité détection aléas Contrôle 0M10M1 ER M EX ER M ER EcritureREG 0 DI/EX.RegDest DI/EX.EcrireReg EX/MEM.EcrireReg MEM/ER.EcrireReg EcritureEI/DI EcrtureCP EI/DI DI/EX EX/MEM MEM/ER DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture and $9,$4,$2 or $8,$2,$6 and $4,$2,$5 bulle bulle 1 0 10 000 1100 $2 $6 8 1 10 000 0 00 0 $2 $5 4 Bulle 2 Bulle 3

37 Aléas 37 Réduire les aléas de données : lenvoi Lidée est simple, les entrées de lUAL peuvent être prises dans nimporte quels registres et non pas seulement dans le registre DI/EX. Autrement dit, on utilise les résultats temporaires plutôt que dattendre que les registres soient écrits. Cette technique sappelle lenvoi ou dérivation.

38 Aléas 38 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

39 Aléas 39 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

40 Aléas 40 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

41 Aléas 41 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

42 Aléas 42 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 -20 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Dernier moment

43 Aléas 43 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 -20 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

44 Aléas 44 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 -20 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Dernier moment

45 Aléas 45 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 -20 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Attention

46 Aléas 46 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R

47 Aléas 47 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Dernier moment

48 Aléas 48 Réduire les aléas de données : lenvoi Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 10 x -20 6 -20 x 7 -20 x 8 -20 x 9 -20 x sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R MI RMD UALUAL R Bilan : Gain de 3 NOP Bilan : Gain de 3 NOP

49 Aléas 49 Réalisation matériel Mémoire Données Mémoire Données M M M M DI/EXEX/MEMMEM/ER

50 Aléas 50 L envoi au niveau EX/MEM Mémoire Données Mémoire Données M M M M DI/EXEX/MEMMEM/ER

51 Aléas 51 L envoi au niveau MEM/ER Mémoire Données Mémoire Données M M M M DI/EXEX/MEMMEM/ER

52 Aléas 52 L'envoi pour les chargements lw $2,100($1) and $12,$2,$5 MI RMD UALUAL R MI RMD UALUAL R Lunité de détection des aléas doit provoquer une suspension pour cette combinaison. lw $2,100($1) Suspension and $12,$2,$5 MI RMD UALUAL R MI RMD UALUAL R MI

53 Aléas 53 L'envoi pour les chargements lw $2,100($1) and $12,$2,$5 MI RMD UALUAL R MI RMD UALUAL R lw $2,100($1) and $12,$2,$5 MIDI EX M ER MIDI Nop EX M ER

54 Aléas 54 Erreurs fréquente lw $2,100($1) and $12,$2,$5 MI RMD UALUAL R MI RMD UALUAL R lw $2,100($1) and $12,$2,$5 MIDI EX M ER MIDI Nop EX M ER Attention

55 Aléas 55 Exemple : Pipeline ss envois lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER

56 Aléas 56Exemple lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MIDINo EXMER MINo DIEXMER No MIDINo EXMER

57 Aléas 57Exemple lw $1,100($2) sub $4,$7,$5 add $6,$1,$7 Or $8,$1,$6 lw $1,100($2) sub $4,$7,$5 add $6,$1,$7 Or $8,$1,$6 MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MIDINo EXMER MINo DINo EXMER

58 Aléas 58 Exemple : pipline avec envoi lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER

59 Aléas 59Exemple lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MIDIEXMER MIDIEXMER MIDIEXMER MIDIEXMER MEXDIMINop ERMEXDINopMI ERMEXNopDIMI ERMEXDIMI

60 Aléas 60 Les Aléas de Branchement Lors dune instruction de branchement, la décision concernant un branchement éventuel ne survient quà létage MEM du pipeline. Ce délai pour déterminer linstruction correcte à extraire est appelé un aléas de contrôle ou aléas de branchement. MI R MD UALUAL R beq $1,$10,30 MI R MD UALUAL R MI R MD UALUAL R MI R MD UALUAL R MI R MD UALUAL

61 Aléas 61Solutions Toujours suspendre. –Du temps est perdu si le branchement ne doit pas s'effectuer. Supposer que le branchement nest pas effectué. – Si le branchement est effectué, les instructions extraites et décodées seront laissées de côté en remplaçant simplement les signaux de contrôle originaux des étages EI, DI et EX par des 0. –Voir cours sur les prédictions de branchement

62 Aléas 62 Relation compilateur/matériel Un autre exemple de compromis entre compilateurs et complexité du matériel, les premiers processeurs MIPS évitaient que le matériel suspende le pipeline en imposant au logiciel une instruction indépendante du chargement après celui-ci. Que le matériel sappuie ou non sur le compilateur pour résoudre les dépendances des aléas afin dassurer une exécution correcte, le compilateur doit comprendre le pipeline pour obtenir les meilleurs performances. Sinon, des suspensions inattendues réduiront les performances du code compilé.

63 Aléas 63 Illusions et pièges Piège : une absence de réflexion approfondie lors de la conception du jeu dinstructions peut avoir un impact défavorable sur le pipeline. Illusion : accroître la profondeur du pipeline améliore toujours les performances. Illusion : la technique du pipeline est simple.

64 Aléas 64Conclusion Chemin de données multicycle Chemin de données pipeliné chemin de données à un cycle Plus lentPlus rapide Débit dinstructions (1/CPI) Fréquence dhorloge Plus lent Plus rapide

65 Aléas 65Résumé Le pipeline améliore le débit mais pas le temps par instruction : il faut toujours cinq cycles à une instruction dun pipeline à cinq étages pour sexécuter. Les dépendances de données et de contrôle dans les programmes imposent une limite supérieure au gain que peut générer le pipeline car le processeur doit parfois attendre la fin dune instruction pour que les dépendances soit résolues. On peut élever cette limite, mais pas léliminer, en réduisant les aléas de contrôle par des optimisations, et les aléas de données par un ordonnancement des instructions par le compilateur.

66 Aléas 66 Développements récents Machines superpipelinés Extrac inst Extrac inst Décod inst ExécMém don Mém don Mém don Ecrit resul Extrac inst Extrac inst Décod inst ExécMém don Mém don Mém don Ecrit resul Superscalaire Extraction inst Décodage instruc ExécutionMémoire données Ecriture résult Extraction inst Décodage instruc ExécutionMémoire données Ecriture résult


Télécharger ppt "Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ; aucune dentre elles nutilisaient les résultats calculés par."

Présentations similaires


Annonces Google