Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parZoé Carriere Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.