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.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
[number 1-100].
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
11 Bienvenue Entrez le nom du groupe ou projet ici mardi, 17 novembre 2009.
Les numéros 70 –
Les numéros
ACTIVITES Les fractions (10).
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Demande globale, élasticités et équilibre de marché
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Les 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.
Ctlpipeline1 Le contrôle pipeline Pour spécifier le contrôle nous avons quà positionner les valeurs de contrôle à chacun des étages. Pour positionner le.
Mémoire d'instructions adresse à lire Reg.lect.1 R.D.1 R.D.2 Reg.lect.2 Reg.Ecr. Don.à lire Ins 31-0 Ins Ins Ins Ins
Calcul mental 3ème 2 Septembre 2010
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
COTE DIVOIRE IMAGES DES ATROCITES COMMISES PAR ALASSANE DRAMANE OUATARA, SORO GUILAUMES ET LEURS HOMMES 1.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
La méthodologie………………………………………………………….. p3 Les résultats
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Écrit, animé et illustré par Sheila CartwrightTraduit par
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
Cours de physique générale I Ph 11
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Session 7 1 IST/VIH/SIDA.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Influenza: le modèle épidémiologique belge 29 Mai 2009
Aire d’une figure par encadrement
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
Annexe Résultats provinciaux comparés à la moyenne canadienne
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Pipeline 1 Amélioration des performances par la technique du pipeline.
Pipeline 1 Amélioration des performances par la technique du pipeline.
Transcription de la présentation:

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.

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

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 $ Décodage de $5 et $2

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 $ Décodage de $5 et $2

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 $ Décodage de $6 et $2

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 $

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

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.

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

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

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

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)

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

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)

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

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

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

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

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)

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

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

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

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

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

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

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

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

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.

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

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,$ $1 $

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,$ $2 $ $1 $3 2 A

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 $2 $ $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

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,$ $2 $ A Bulle 1

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,$ $2 $ A 1 Bulle 2 Bulle 1

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 $2 $ Bulle 3 Bulle 2 Bulle 1

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 $2 $ $2 $5 4 Bulle 2 Bulle 3

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.

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 x 5 10 x x x x 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

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 x 5 10 x x x x 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

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 x 5 10 x x x x 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

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 x 5 10 x x x x 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

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 x x x x x 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

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 x x x x x 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

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 x x x x x 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

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 x x x x x 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

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 x 5 10 x x x x 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

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 x 5 10 x x x x 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

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 x 5 10 x x x x 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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é.

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.

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

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.

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