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.

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].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
Les numéros 70 –
Les numéros
ACTIVITES Les fractions (10).
Les identités remarquables
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
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.
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 éléments de mémorisation
Introduction Par définition, dans un modèle à cycle unique, le cycle d’horloge doit avoir la même durée pour toutes les instructions. Le cycle d’horloge.
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
Sirop de Liège « industriel »
1 7 Langues niveaux débutant à avancé. 2 Allemand.
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
La méthodologie………………………………………………………….. p3 Les résultats
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
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.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
1.2 COMPOSANTES DES VECTEURS
Session 7 1 IST/VIH/SIDA.
Le Concours de Conaissance Francais I novembre 2012.
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
Comment rendre une femme heureuse…
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
1 INETOP
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.
1 10 pt 15 pt 20 pt 25 pt 5 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Les fonctions.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Aire d’une figure par encadrement
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
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.
Vous allez voir des nombres sur la diapositive suivante. Il faudra bien les observer et les garder en mémoire. Vous devrez les écrire sur l’ardoise quand.
Equation différentielle de 2ème ordre
Nom:____________ Prénom: ___________
Exercice de vérification 1 p
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:

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

Exécution de la séquence précédente Valeur de $2 1 2 3 4 5 6 7 8 9 sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) R U A L MI MD R R U A L MI MD R MI R U A L MD R MI R U A L MD R MI R U A L MD R

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

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

Disparition des aléas de données Insertion de nop : solution simple, dégrade le temps 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 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

Insertion de suspension dans le pipeline sub $2,$1,$3 suspension and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R B B B B MI MI B B B B B B B B MI MI R MD U A L MI R MD U A L MI R MD U A L MI R MD U A L

Disparition des aléas de données 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 $25,$5,$23 sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) 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) 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

Traitement 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

Le 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

Exemple CC1 lw $10,9($1) Extraction Instruction M 1 C R.Adr P Mémoire M 1 EI/DI DI/EX EX/MEM MEM/ER Registre lecture1 lecture2 écriture Donnée à écrire C P R.Adr Donnée lue 1 lue 2 Adresse Lecture écrire Donnée à écrire Mémoire I Donnée lue M 1 1 M E S M 1 11

Exemple CC2 sub $11,$2,$3 lw $10,9($1) 10 EI/DI.RegistreLecture Extraction Instruction Décodage Ins M 1 EI/DI DI/EX EX/MEM MEM/ER Registre lecture1 lecture2 écriture Donnée à écrire C P R.Adr Donnée lue 1 lue 2 Adresse Lecture écrire Donnée à écrire Mémoire I Donnée lue M 1 1 M E S 10 M 1 EI/DI.RegistreLecture 12

Exemple CC3 Si x=10 problème sub $11,$2,$3 lw $10,9($1) X 10 Décodage Ins Exécution M 1 EI/DI DI/EX EX/MEM MEM/ER Si x=10 problème Registre lecture1 lecture2 écriture Donnée à écrire C P R.Adr X Donnée lue 1 lue 2 Adresse Lecture écrire Donnée à écrire Mémoire I Donnée lue M 1 1 M E S 10 M 1 DI/EX.RegistreEcriture 13

Exemple CC4 Si x=10 problème sub $11,$2,$3 lw $10,9($1) X 10 Exécution Mémoire M 1 EI/DI DI/EX EX/MEM MEM/ER Si x=10 problème Registre lecture1 lecture2 écriture Donnée à écrire C P R.Adr X Donnée lue 1 lue 2 Adresse Lecture écrire Donnée à écrire Mémoire I Donnée lue M 1 1 M E S M 1 10 EX/MEM.RegistreEcriture 14

Exemple CC5 Si x=10 problème sub $11,$2,$3 lw $10,9($1) X 10 Mémoire Ecriture Résultat M 1 EI/DI DI/EX EX/MEM MEM/ER Registre lecture1 lecture2 écriture Donnée à écrire C P R.Adr Donnée lue 1 lue 2 Adresse Lecture écrire Donnée à écrire Mémoire I Donnée lue M 1 1 M Si x=10 problème E S X M 1 10 MEM/ER.RegistreEcriture 15

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

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

L’unité de détection d’aléas Unité détection aléas MEM/ER.EcrireReg EX/MEM.EcrireReg DI/EX DI/EX.EcrireReg ER M EX Contrôle EX/MEM EcritureEI/DI M 1 ER M MEM/ER DI/EX.RegDest ER EI/DI EcritureREG EcrtureCP Registres Mémoire Données Mémoire Instructions CP 1 M M 1 DI/EX.RegistreEcritutureRt DI/EX.RegistreEcritureRd EX/MEM.RegistreEcriture MEM/ER.RegistreEcriture

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

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

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

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

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

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

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

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

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R Dernier moment U A L MI R MD R U A L MI R MD R MI R U A L MD R R U A L MI MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R U A L MI R MD R Dernier moment U A L MI R MD R MI R U A L MD R R U A L MI MD R

Réduire les aléas de données : l’envoi 1 10 x 2 10 x 3 10 x 4 10 -20 x 5 -20 x 6 -20 x 7 -20 x 8 -20 x 9 -20 x Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R Attention MI R U A L MD R U A L MI R MD R MI R U A L MD R MI R U A L MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R R U A L MI MD R U A L MI R MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R MI R U A L MD R U A L MI R MD R Dernier moment R U A L MI MD R MI R U A L MD R

Réduire les aléas de données : l’envoi 1 10 x 2 3 4 -20 5 6 7 8 9 Valeur de $2 Valeur de EX/MEM Valeur de MEM/ER sub $2,$1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) MI R U A L MD R U A L MI R MD R Bilan : Gain de 3 NOP U A L MI R MD R MI R U A L MD R R U A L MI MD R

Réalisation matériel DI/EX EX/MEM MEM/ER M Mémoire Données M

L ’envoi au niveau EX/MEM DI/EX EX/MEM MEM/ER M Mémoire Données M

L ’envoi au niveau MEM/ER DI/EX EX/MEM MEM/ER M Mémoire Données M

L'envoi pour les chargements lw $2,100($1) and $12,$2,$5 MI R U A L MD R R U A L MI MD R L’unité de détection des aléas doit provoquer une suspension pour cette combinaison. lw $2,100($1) Suspension and $12,$2,$5 U A L MI R MD R MI MI R MD U A L

L'envoi pour les chargements lw $2,100($1) and $12,$2,$5 MI R U A L MD R U A L MI R MD R lw $2,100($1) and $12,$2,$5 MI DI EX M ER MI DI Nop EX M ER

Attention Erreurs fréquente lw $2,100($1) and $12,$2,$5 lw $2,100($1) MI R U A L MD R U A L MI R MD R Attention lw $2,100($1) and $12,$2,$5 MI DI EX M ER MI DI Nop EX M ER

Exemple : Pipeline ss envois lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MI DI EX M ER

Exemple 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 No

Exemple : pipline avec envoi lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MI DI EX M ER

Exemple lw $1,100($2) sub $4,$1,$5 add $6,$1,$7 Or $8,$1,$6 MI DI EX M ER ER M EX DI MI Nop

Les 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 MD U A L beq $1,$10,30 MI R U A L MD R MI R U A L MD R R U A L MI MD R U A L MI R MD

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.

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

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

Conclusion Chemin de données Chemin de données multicycle pipeliné Plus lent Plus rapide Fréquence d’horloge chemin de données à un cycle Plus lent Plus rapide Débit d’instructions (1/CPI)

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.

Développements récents Machines superpipelinés Extrac inst Extrac inst Décod inst Exéc Mém don Mém don Mém don Ecrit resul Extrac inst Extrac inst Décod inst Exéc Mém don Mém don Mém don Ecrit resul Superscalaire Extraction inst Décodage instruc Exécution Mémoire données Ecriture résult Extraction inst Décodage instruc Exécution Mémoire données Ecriture résult