Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ;...
-
Upload
zoe-carriere -
Category
Documents
-
view
106 -
download
0
Transcript of Aléas 1 Les aléas de données Jusquà présent toutes les instructions étaient indépendantes ;...
![Page 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/1.jpg)
Aléas 1
Les aléas de donnéesLes aléas de données
• Jusqu’à présent toutes les instructions étaient indépendantes ; aucune d’entre elles n’utilisaient 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 suband $12,$2,$5 # 1er opérande ($2) dépend de subor $13,$6,$2 # 2nd opérande ($2) dépend de subadd $14,$2,$2 # 1er ($2) & 2nd ($2) dépendent de subsw $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.
![Page 2: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/2.jpg)
Aléas 2
Exécution Idéale de la séquence précédenteExé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 R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
1 2 3 4 5 6 7 8 9
![Page 3: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/3.jpg)
Aléas 3
Exécution de la séquence précédenteExé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 R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Valeur de $2 1 2 3 4 5 6 7 8 9
Décodage de $5 et $2
![Page 4: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/4.jpg)
Aléas 4
Autre exemple : $6Autre exemple : $6
sub $6,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Valeur de $6 1 2 3 4 5 6 7 8 9
Décodage de $5 et $2
![Page 5: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/5.jpg)
Aléas 5
Autre exemple : $6Autre exemple : $6
sub $6,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Valeur de $6 1 2 3 4 5 6 7 8 9
Décodage de $6 et $2
![Page 6: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/6.jpg)
Aléas 6
Exécution de la séquence précédenteExé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 R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Valeur de $2 110
210
310
410
510
6-20
7-20
8-20
9-20
110
210
3-20
4-20
5-20
6-20
7-20
8-20
9-20
![Page 7: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/7.jpg)
Aléas 7
Les aléasLes aléas
Logiciel Matériel
Problème d’aléas
![Page 8: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/8.jpg)
Aléas 8
Les aléas de donnéesLes 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– s’il ne peut pas en trouver il insère des instructions
dont l’indé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.
![Page 9: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/9.jpg)
Aléas 9
Disparition des aléas de donnéesDisparition des aléas de données
sub $2,$1,$3and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)add $20,$20,$21sw $29,100($25)add $25,$5,$23
![Page 10: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/10.jpg)
Aléas 10
Disparition des aléas de donnéesDisparition des aléas de données
sub $2,$1,$3nopnopnopand $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)add $20,$20,$21sw $29,100($25)add $25,$5,$23
![Page 11: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/11.jpg)
Aléas 11
Insertion de suspension dans le pipelineInsertion de suspension dans le pipeline
MI R MDUAL R
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 12: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/12.jpg)
Aléas 12
Insertion de suspension dans le pipelineInsertion de suspension dans le pipeline
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI B B B B
MI B B B B
MI B B B B
sub $2,$1,$3
suspension
suspension
suspension
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
![Page 13: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/13.jpg)
Aléas 13
Disparition des aléas de donnéesDisparition des aléas de données
sub $2,$1,$3nopnopnopand $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)add $20,$20,$21sw $29,100($25)add $25,$5,$23
Opérations candidates au Réordonnancement
![Page 14: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/14.jpg)
Aléas 14
Disparition des aléas de donnéesDisparition des aléas de données
sub $2,$1,$3add $20,$20,$21sw $29,100($25)add $25,$5,$23and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)
![Page 15: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/15.jpg)
Aléas 15
Disparition des aléas de donnéesDisparition des aléas de données
sub $2,$1,$3and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)add $20,$20,$21sw $29,100($25)add $25,$5,$23
sub $2,$1,$3add $20,$20,$21sw $29,100($25)add $5,$25,$23and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)
•Réordonnancement des taches : solution très difficile, donne les meilleurs performances
sub $2,$1,$3and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)add $20,$20,$21sw $29,100($25)add $5,$25,$23
Recherche de 3 opérationsindépendantes
Attention à nepas recréer des aléas
![Page 16: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/16.jpg)
Aléas 16
Les aléasLes aléas
Logiciel MatérielMatériel
Problème d’aléas
Réordonnancement
![Page 17: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/17.jpg)
Aléas 17
Traitement des aléas au niveau matérielTraitement des aléas au niveau matériel
• Conditions pour détecter un aléas de données• Création d’une unité de détection des aléas
![Page 18: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/18.jpg)
Aléas 18
Le contrôle des aléasLe contrôle des aléas• Retour sur l’exécution d’une instruction lw $10,9($1)
Nous allons suivre la valeur 10 dans les différents bancs de registres
![Page 19: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/19.jpg)
Aléas 19
Exemple CC1Exemple CC1
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Extraction Instructionlw $10,9($1)
![Page 20: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/20.jpg)
Aléas 20
Exemple CC2Exemple CC2
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Extraction Instruction Décodage Inssub $11,$2,$3 lw $10,9($1)
10
EI/DI.RegistreLectureEI/DI.RegistreLecture
![Page 21: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/21.jpg)
Aléas 21
Exemple CC3Exemple CC3
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Décodage Ins Exécutionsub $11,$2,$3 lw $10,9($1)
DI/EX.RegistreEcritureDI/EX.RegistreEcriture
10
X
Si x=10 ProblèmeIci x=2 et x=3
![Page 22: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/22.jpg)
Aléas 22
Exemple CC3Exemple CC3
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Décodage Ins Exécutionsub $11,$2,$3 lw $10,9($1)
DI/EX.RegistreEcritureDI/EX.RegistreEcriture
10
X
Si x=10 ProblèmeIci x=2 et x=3
EI/DI.RegistreLecture1 = DI/EX.RegistreEcritureEI/DI.RegistreLecture1 = DI/EX.RegistreEcriture
![Page 23: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/23.jpg)
Aléas 23
Exemple CC4Exemple CC4
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Exécution Mémoiresub $11,$2,$3lw $10,9($1)
EX/MEM.RegistreEcritureEX/MEM.RegistreEcriture
10
X
Si x=10 problème
![Page 24: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/24.jpg)
Aléas 24
Exemple CC4Exemple CC4
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Exécution Mémoiresub $11,$2,$3lw $10,9($1)
EX/MEM.RegistreEcritureEX/MEM.RegistreEcriture
10
X
Si x=10 problème
EI/DI.RegistreLecture1 = EX/MEM.RegistreEcritureEI/DI.RegistreLecture1 = EX/MEM.RegistreEcriture
![Page 25: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/25.jpg)
Aléas 25
Exemple CC5Exemple CC5
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Mémoire Ecriture Résultatsub $11,$2,$3lw $10,9($1)
MEM/ER.RegistreEcritureMEM/ER.RegistreEcriture
10
X
Si x=10 problème
![Page 26: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/26.jpg)
Aléas 26
Exemple CC5Exemple CC5
Registrelecture1Registrelecture2
RegistreécritureDonnée àécrire
0M1
0M1
ES
0M1
CP
R.Adr
MémoireI
Donnéelue 1
Donnéelue 2
AdresseLecture
AdresseécrireDonnéeà écrire
Donnéelue 1
M0
EI/DI DI/EX EX/MEM MEM/ER
Mémoire Ecriture Résultatsub $11,$2,$3lw $10,9($1)
MEM/ER.RegistreEcritureMEM/ER.RegistreEcriture
10
X
Si x=10 problème
EI/DI.RegistreLecture1 = MEM/ER.RegistreEcritureEI/DI.RegistreLecture1 = MEM/ER.RegistreEcriture
![Page 27: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/27.jpg)
Aléas 27
Le contrôle pour les aléas de données : les suspensionsLe 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,$3and $12,$2,$5
EI/DI.RegistreLecture1 = DI/EX.RegistreEcriture=2
sub $2,$1,$3Or $i,$j,$kand $12,$2,$5
EI/DI.RegistreLecture1 = EX/MEM.RegistreEcriture=2
![Page 28: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/28.jpg)
Aléas 28
Unité de détection des aléasUnité de détection des aléas
• L’unité de détection d’alé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 lorsqu’elle détecte un aléas.
![Page 29: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/29.jpg)
Aléas 29
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
EI/DI
DI/EX
EX/MEM
MEM/ER
DI/EX.RegistreEcritutureRt
DI/EX.RegistreEcritureRd
EX/MEM.RegistreEcriture
MEM/ER.RegistreEcriture
![Page 30: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/30.jpg)
Aléas 30
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 1 010
000
1100
$1
$3
2
1
3
![Page 31: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/31.jpg)
Aléas 31
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 0 100
000
0000
$2
$5
4
1
10000
$1
$3
2
A
![Page 32: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/32.jpg)
Aléas 32
MémoireInstructionsCP
Registres
0
M
1
Contrôle
0
M
1
ER
M
EX
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
EI/DI
DI/EX
DI/EX.RegistreEcritutureRt
DI/EX.RegistreEcritureRd
0 0 100
000
0000
$2
$5
4
1
10000
$1
$3
2
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireDonnées 1
M
0
ER
M ER
EX/MEM.EcrireRegMEM/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
Conditionsd’aléas
![Page 33: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/33.jpg)
Aléas 33
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 sub $2,$1,$3
0 0 100
000
0000
$2
$5
4
000000
2
1
10
A
Bulle 1Bulle 1
![Page 34: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/34.jpg)
Aléas 34
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 0 100
000
0000
$2
$5
4
000000
2
0
00
A
1
Bulle 2Bulle 2 Bulle 1Bulle 1
![Page 35: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/35.jpg)
Aléas 35
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 1 010
000
1100
$2
$5
4
000000
0
00
0
Bulle 3Bulle 3 Bulle 2Bulle 2Bulle 1Bulle 1
![Page 36: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/36.jpg)
Aléas 36
L’unité de détection d’aléasL’unité de détection d’aléas
MémoireInstructionsCP
Registres
0
M
1
MémoireDonnées 1
M
0
Unité détectionaléas
Contrôle
0
M
1
ER
M
EX
ER
M ER
EcritureREG
0 DI/EX.RegDest
DI/EX.EcrireReg
EX/MEM.EcrireRegMEM/ER.EcrireReg
Ecr
iture
EI/
DI
Ecr
ture
CP
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 1 010
000
1100
$2
$6
8
110000
0
00
0
$2
$5
4
Bulle 2Bulle 2Bulle 3Bulle 3
![Page 37: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/37.jpg)
Aléas 37
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
• L’idée est simple, les entrées de l’UAL peuvent être prises dans n’importe quels registres et non pas seulement dans le registre DI/EX.
• Autrement dit, on utilise les résultats temporaires plutôt que d’attendre que les registres soient écrits. Cette technique s’appelle l’envoi ou dérivation.
![Page 38: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/38.jpg)
Aléas 38
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 39: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/39.jpg)
Aléas 39
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 40: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/40.jpg)
Aléas 40
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 41: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/41.jpg)
Aléas 41
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 42: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/42.jpg)
Aléas 42
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
5-20x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Dernier moment
![Page 43: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/43.jpg)
Aléas 43
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
5-20x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 44: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/44.jpg)
Aléas 44
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
5-20x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Dernier moment
![Page 45: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/45.jpg)
Aléas 45
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20
x
5-20x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
AttentionAttention
![Page 46: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/46.jpg)
Aléas 46
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
![Page 47: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/47.jpg)
Aléas 47
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Dernier moment
![Page 48: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/48.jpg)
Aléas 48
Réduire les aléas de données : l’envoiRéduire les aléas de données : l’envoi
Valeur de $2Valeur de EX/MEMValeur de MEM/ER
110xx
210xx
310xx
410-20x
510x-20
6-20xx
7-20xx
8-20xx
9-20xx
sub $2,$1,$3
and $12,$2,$5
or $13,$6,$2
add $14,$2,$2
sw $15,100($2)
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
Bilan : Gain de 3 NOPBilan : Gain de 3 NOP
![Page 49: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/49.jpg)
Aléas 49
Réalisation matérielRéalisation matériel
MémoireDonnées
MémoireDonnées
MM
MM
DI/EX EX/MEM MEM/ER
![Page 50: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/50.jpg)
Aléas 50
L ’envoi au niveau EX/MEML ’envoi au niveau EX/MEM
MémoireDonnées
MémoireDonnées
MM
MM
DI/EX EX/MEM MEM/ER
![Page 51: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/51.jpg)
Aléas 51
L ’envoi au niveau MEM/ERL ’envoi au niveau MEM/ER
MémoireDonnées
MémoireDonnées
MM
MM
DI/EX EX/MEM MEM/ER
![Page 52: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/52.jpg)
Aléas 52
L'envoi pour les chargementsL'envoi pour les chargements
lw $2,100($1)
and $12,$2,$5
MI R MDUAL R
MI R MDUAL R
L’unité de détection des aléas doit provoquer une suspensionpour cette combinaison.
lw $2,100($1)
Suspension
and $12,$2,$5
MI R MDUAL R
MI R MDUAL R
MI
![Page 53: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/53.jpg)
Aléas 53
L'envoi pour les chargementsL'envoi pour les chargements
lw $2,100($1)
and $12,$2,$5
MI R MDUAL R
MI R MDUAL R
lw $2,100($1)
and $12,$2,$5
MI DI EX M ER
MI DI Nop EX M ER
![Page 54: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/54.jpg)
Aléas 54
Erreurs fréquenteErreurs fréquente
lw $2,100($1)
and $12,$2,$5
MI R MDUAL R
MI R MDUAL R
lw $2,100($1)
and $12,$2,$5
MI DI EX M ER
MI DI Nop EX M ER
AttentionAttention
![Page 55: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/55.jpg)
Aléas 55
Exemple : Pipeline ss envoisExemple : 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
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
![Page 56: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/56.jpg)
Aléas 56
ExempleExemple
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
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI No No No EX M ER
MI No No No DI EX M ER
No No No MI DI No No No EX M ER
![Page 57: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/57.jpg)
Aléas 57
ExempleExemple
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
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI No No EX M ER
MI No No DI No No No EX M ER
![Page 58: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/58.jpg)
Aléas 58
Exemple : pipline avec envoiExemple : 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
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
![Page 59: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/59.jpg)
Aléas 59
ExempleExemple
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
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
MI DI EX M ER
ERMEXDIMINop
ERMEXDINopMI
ERMEXNopDIMI
ERMEXDIMI
![Page 60: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/60.jpg)
Aléas 60
Les Aléas de BranchementLes Aléas de Branchement
• Lors d’une instruction de branchement, la décision concernant un branchement éventuel ne survient qu’à l’étage MEM du pipeline.
• Ce délai pour déterminer l’instruction correcte à extraire est appelé un aléas de contrôle ou aléas de branchement.
MI R MDUAL Rbeq $1,$10,30
MI R MDUAL R
MI R MDUAL R
MI R MDUAL R
MI R MDUAL
![Page 61: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/61.jpg)
Aléas 61
Solutions Solutions
• Toujours suspendre. – Du temps est perdu si le branchement ne doit pas s'effectuer.
• Supposer que le branchement n’est 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
![Page 62: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/62.jpg)
Aléas 62
Relation compilateur/matérielRelation 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 s’appuie ou non sur le compilateur pour résoudre les dépendances des aléas afin d’assurer 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é.
![Page 63: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/63.jpg)
Aléas 63
Illusions et piègesIllusions et pièges
• Piège : une absence de réflexion approfondie lors de la conception du jeu d’instructions 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.
![Page 64: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/64.jpg)
Aléas 64
ConclusionConclusion
Chemin de donnéesmulticycle
Chemin de donnéespipeliné
chemin de donnéesà un cycle
Plus lent Plus rapide
Débit d’instructions (1/CPI)
Fréq
uen
ce d
’horl
og
e
Plu
s le
nt
Plu
s r
ap
ide
![Page 65: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/65.jpg)
Aléas 65
RésuméRésumé
• Le pipeline améliore le débit mais pas le temps par instruction : il faut toujours cinq cycles à une instruction d’un pipeline à cinq étages pour s’exé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 d’une 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.
![Page 66: 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.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d8c497959293b8c0d5a/html5/thumbnails/66.jpg)
Aléas 66
Développements récentsDéveloppements récents
Machines superpipelinés
Extracinst
Extracinst
Décodinst
Exéc Mém don
Mém don
Mémdon
Ecritresul
Extracinst
Extracinst
Décodinst
Exéc Mém don
Mém don
Mémdon
Ecritresul
Superscalaire
Extractioninst
Décodage instruc
Exécution Mémoiredonnées
Ecriturerésult
Extractioninst
Décodage instruc
Exécution Mémoiredonnées
Ecriturerésult