Ch 5 : La Prédiction des Branchements

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Page 1 Retour sur le e- tourisme. Page 2 Quelques chiffres…
17 B. Goossens D. Defour17 B. Goossens D. Defour Prédiction des retours Le prédicteur adresse une pile (mémoire à 2 ports)
Distance inter-locuteur
Proposition de recherches sur ABI (Pro Quest) Lise Herzhaft (Urfist de Lyon) et MH Prévoteau (Bibliothèque Université Paris 2) Mise en forme par Nolwenn.
Architecture des processeurs généralistes haute performance
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Calculs de complexité d'algorithmes
Les numéros
ACTIVITES Les fractions (10).
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Sud Ouest Est Nord Individuel 36 joueurs
Les identités remarquables
GEF 435 Principes des systèmes d’exploitation
Formation Technique 6èmepartie.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Chapitre2 La technique du Pipeline
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Les éléments de mémorisation
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Exécution en ordre partiel Une fois les instructions renommées, les seules dépendances qui subsistent entre instructions registre-registre sont les dépendances.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Commission Règlement Arbitrage Organisation – Présidente : Framboise Leclerc 3, rue Jacques Cartier – Montigny le Bretonneux –
Sélection automatique d’index et de vues matérialisées
Exercice Trame Ethernet
Améliorer les performances du chiffrage à flot SYND
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Voici 36 bonnes raisons de preferer la biere à une femme blonde...
Architecture et technologie des ordinateurs II
Gestion des Périphériques
Architecture et technologie des ordinateurs II
Synchronisation et communication entre processus
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
18/05/ Utiliser le cahier de texte en ligne avec lapplication SPIP Adresse du site du lycée :
Gestion des branchements
Titre : Implémentation des éléments finis sous Matlab
Présentation des documents administratifs
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Et maintenant, où allons-nous? Après toutes les techniques vues jusquici: Que peut-on faire.
RACINES CARREES Définition Développer avec la distributivité Produit 1
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Architecture et technologie des ordinateurs II
Notre calendrier français MARS 2014
C'est pour bientôt.....
Veuillez trouver ci-joint
Ordonnancement de tâches
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
Voici 36 bonnes raisons de preferer la biere à une femme blonde...
Lycée ELKHAWARIZMI De SAFI
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
1. La bière ne parle pas 2.La bière est toujours prête et humide.
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
Architecture et technologie des ordinateurs II
Transcription de la présentation:

Ch 5 : La Prédiction des Branchements IUP3/ Master Info. 1 Smail Niar ISTV Université de Valenciennes smail.niar@univ-valenciennes.fr Smail.Niar@univ-valenciennes.fr

Les prédictions de branchement Il est intéressant de réduire au max les aléas de contrôle afin de maintenir un IPC=1 pour un processeur pipeliné, ou IPC>>1 pour un SS ou un VLIW Superscalaire ou VLIW: les instructions arrivent n fois plus rapidement => n cycles perdus à chaque suspension ou à chaque mauvaise prédiction de direction de branchement. Smail.Niar@univ-valenciennes.fr

Prédiction branchements ….suite 15 à 30% des instructions sont des branchements Le résultat de la condition du branchement est connu tard ( cycle 4 sur MIPS/DLX) La cible du branchement est connu tard dans le pipeline : cycle 4 dans Mips pipeliné et dans Intel Xscale cycle 11 sur Pentium Pro (plus sur le pentium4) Cycle 6 sur Dec alpha 21164 idée: Evaluer ou prédire (spéculation) au plus tôt la condition et l ’adresse de branchement Si la prédiction n ’est pas bonne en fait marche arrière (annulation) Smail.Niar@univ-valenciennes.fr

3 cycles perdus à chaque branchement (pris) g C 1 T i m ( n c l o k y s ) 4 b q $ , 3 7 P r a x u t d I M D 2 w 5 6 8 9 Smail.Niar@univ-valenciennes.fr

Solution uniquement pour pour : beqz R1, etiq Deux cycles perdus au lieu de 3 Smail.Niar@univ-valenciennes.fr

possibilités dans le traitement des aléas de contrôle #1: Attendre et suspendre le pipeline tant que le branchement n ’est pas résolu (résultat compa. non connu) #2: On prédit toujours que le branchement n ’est pas pris Exécuter les instruction qui suivent le branchement Annuler les instructions chargées si branchement pris Il n’y a pas de danger de modifier l’état des registres car l ’écriture se fait à la fin du pipeline, après que la condition a été évaluée Smail.Niar@univ-valenciennes.fr

Prédiction Branchement ..suite Dans 47% des branchements MIPS, le branchement n ’est pas pris Avantage : PC+4 à été déjà calculé, il suffit de l ’utiliser pour avancer #3: On prédit que le branchement est pris et on commence à exécuter les instructions du branchement 53% des branchement sont pris dans le cas de la machines MIPS Mise en œuvre : pour chaque instruction de branchement on stocke l ’@ du branchement dans une mémoire cache spécialisée Smail.Niar@univ-valenciennes.fr

Branchement Prédit pris Branch Target Buffer BTB Adresse des branchements valide adresse de l ’instruction 1/0 CP+4 CP Smail.Niar@univ-valenciennes.fr Control 1 0 Lors de la phase Fetch Instruction on écrit dans PC, l ’@ de la prochaine instruction à exécuter soit PC + 4 ou bien l ’@du branchement CP

Prédiction par le compilateur Statique Les branchement arrière sont toujours prédit pris et les branchement avant sont toujours prédit non pris Smail.Niar@univ-valenciennes.fr Taken backwards Not Taken Forwards Always taken

Le branchement retarde Delayed Branch #4: Delayed Branch(se faire aider par le compilo) Les n instructions suivant l ’instr Branch sont toujours exécutées (pas de prédiction) branch instruction sequential successor1 sequential successor2 ........ sequential successorn branch target if taken cas particulier : BEQZ 2 cycle d ’attente pour le calcul de l’adresse de branchement => n=2 (2 instruction dans le délai) cf. tr 25 On peut soit déplacer des instructions ou mettre des nops Smail.Niar@univ-valenciennes.fr

Une instruction après le branchement est toujours exécutée add r4, r5, r6 Beqz r4, etiq Sub r6, r3, r2 Add r1, r2, r3 …… …. etiq: Sub r6, r3, r2 Add r1, r2, r3 add r4, r5, r6 Beqz r4, etiq …… …. etiq: Smail.Niar@univ-valenciennes.fr

La prédiction dynamique des branchements Utilisation d ’une mémoire « tampon de branchement » BHT : Branch History Table (prédiction) BHT Indexée par l ’adresse de l’instruction branchement 1 bit à chaque branchement 0 on prédit «Non pris » noté NP ou NT 1 on prédit « pris » noté P ou T si la prédiction n ’est pas bonne on inverse le bit Smail.Niar@univ-valenciennes.fr

Prédicteur sur 1 bit 1 BOUCLE etiq: ….. ……. …….. boucle: bne r1,r2, etiq Supposant: Bit prédiction initialisé à NT 0 il y a 10 itérations Première itération : Prédiction NT , erreur Dernière itération : Prédiction T, erreur Smail.Niar@univ-valenciennes.fr Inconv Boucles : si le branch est toujours pris il y a 2 prédictions incorrects (mispredictions): la première et la dernière

Exemple : Si boucle externe fait m itérations etiq1: i1 début Boucle1 i2 ….. etiq2: i3 Début Boucle2 i4 Si cond go to étiq2 …. Go to etiq1 Si boucle externe fait m itérations et la boucle interne fait n itération: 2m fausses prédictions/ mn itérations exemple m=n=10 20% de fausses prédictions Smail.Niar@univ-valenciennes.fr

Schéma de prédiction avec 2 bits 11 P 10 01 NP 00 On associe à chaque branchement deux bits YX Si Y=1 on prend le branch si Y= 0 on ne prend pas le branch Smail.Niar@univ-valenciennes.fr

Rappel : BTB : Branch Target buffer, Buffer des @ destinations des branchements BHT : « tampon de branchement » : Branch History Table, table des prédictions pour chaque (basée sur l’historique) PC Etiquette, @ Branchement Smail.Niar@univ-valenciennes.fr (prédicateur BIMODAL) PC 10

La corrélation entre les branchements Dans certains programmes, il y a des relations entre les instructions de branchements Branchements « biaisés » Un exemple de la vie courante: Orientation des étudiants pour des cours de mise à niveau. Les étudiants entrant à une université proviennent de 2 options . A : Option Math B : Option Physique b1: Test à l'entrée du lycée b2: Test à l ’entrée de l’université. Collège Test à l’entrée du lycée Série Math appliqué Lycée Université de l ’université. b1 b2 MIAS SPI Smail.Niar@univ-valenciennes.fr

Les résultats des test à l ’entrée de l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….? Collège Collège Test à l’entrée du lycée b1 Test à l’entrée du lycée b1 Série Math Série Math Série appliqué Série appliqué Test à l ’entrée de l ’univer. Test à l ’entrée de l ’univer. Smail.Niar@univ-valenciennes.fr b2 b2 bonne prédiction mauvaise prédiction

(Transparent P.Michaud IRISA) Smail.Niar@univ-valenciennes.fr (Transparent P.Michaud IRISA)

Exemple Si d==0 avant le premier « If » , alors dans le deuxième If on trouvera d==1 Supposons que d est dans R1 if (d==0) /*branchement b1*/ d=1 if(d==1) /*branchement b2*/ ……. Smail.Niar@univ-valenciennes.fr

Exemple if (d!=0) go to L1 /*branchement b1*/ d=1 L1 : Bnez R1, L1 ;branch vers L1 si d<>0 Addi R1, R0, #1 ;d= =0, alors d =1 L1: Sub R3, R1, #1 ;d- - Bnez R3, L2 ;branch. B2 (si d<>0) ….. L2: ….. Smail.Niar@univ-valenciennes.fr

Résultat : Si on ne branche pas sur L1 alors NT : Not Taken ou branchement non pris NP Smail.Niar@univ-valenciennes.fr

Performance de la prédiction avec 1 bit avec une séquence: 2, 0, 2, 0 Avec 1 bit 100% de mauvaise prédiction, initialement P1=NP P2=NP Branch1 Branch. 2 D= ? Prédiction b1 Action Nouvelle prédiction Predicti on b2 b2 2 NP P* P NP* Smail.Niar@univ-valenciennes.fr

^m chôse avec deux bits par branchement 11 P 10 01 NP 00 ^m chôse avec deux bits par branchement avec deux bits Supposons qu ’on démarre de l ’état 00. A chaque branchement est associé deux bits (le prédicateur) NP D= ? Prédiction Action Nouvelle Predicti Action Nouvelle b1 b1 prédiction on b2 b2 prédiction b1 b2 2 NP P* NP NP P* NP 00 00 01 01 Smail.Niar@univ-valenciennes.fr NP NP NP NP NP NP 01 00 00 01 2 NP P* NP NP P* NP 01 00 00 01 NP NP NP NP NP NP 01 00 01 00 50 % de mauvaise prédictions sur les deux branchement

Prédiction avec un bit et un bit de corrélation Chaque branchement est représenté dans la table par deux bits : Prédiction si dernier branchement non pris/prédiction si dernier branchement pris Exemple: pour b1= P/NP Si dern Branch non pris alors branchement Si dern Branch pris alors pas branchement D= ? Dernière Branch Prédiction b1 Action Nouvelle prediction Predicti on b2 b2 prédiction 2 NP NP/NP P* P/NP P NP/P Smail.Niar@univ-valenciennes.fr P P/NP NP P/NP NP NP/P NP NP/P Deux mauvaises prédictions au début notées par *

Mise en œuvre matérielle Table des prédicateurs Corrélation Prédiction 1 bit de prédiction et 1 bit de corrélation 1 Adresse branchement ... ... prédiction 1 Smail.Niar@univ-valenciennes.fr ... ... 1 0 selectionner dernier branchement bascule D

Prédiction avec deux bits et deux bits de corrélations 11 10 01 00 ... Pattern History Tables PHTs (2-bit predictors) (1 , 1) Adresse branchement 10 bits Registre de l’historique des branchements Branch History Register BHR (2-bit shift register) 1 selectionner 1023 on prend en compte les deux derniers branchements Il y a 4 combinaisons possibles 00, 01, 10, 11 pour chaque combinaison il y a deux bits de prédictions. Smail.Niar@univ-valenciennes.fr Le registre BHR indique le résultat des deux derniers branchements

Résumé des symboles BTB : Branch Target buffer, Buffer des @ destinations des branchements BHT : « tampon de branchement » : Branch History Table, table des prédictions (basée sur l’historique) PHT : c ’est une BHT qui prend en compte les derniers branchements. Pour chaque configuration des n derniers branchements il y a une prédiction (un BHT) BHR : Branch History Register, registre à décalage contenant les résultats des derniers branchements exécutés. Utilisé pour accéder à la PHT Smail.Niar@univ-valenciennes.fr

Prédicteurs GAg et GAp 1 seul BHT Gag (4 bits) Deux bits de prédiction 1100 ... 1 1 Index predict: taken BHR Branch Pattern History Table (PHT) shift direction Gag (4 bits) 1 seul BHT Deux bits de prédiction n ... 2**n tables, # BHT 1 1 1 Index @ de branchements BHR GAp (4 bits) 1 seul reg d ’historique mais avec @de branchement Smail.Niar@univ-valenciennes.fr

Plusieurs Registres à décalage (historique local) ... 1 1 Index BHT 0 0 Branch address Pag(4) Plusieurs reg à dec d ’historique, 1 par branchement mais pas d ’@ 1 BHR par Branch Smail.Niar@univ-valenciennes.fr ... # BHT 1 1 b1 Index Per-address BHT 0 0 Branch address b2 Branch address b1 1 b2 Pap(4)

Évaluation des Performances 3 programmes de références SPEC CPU2000 : Gcc (compilateur), Equake (….), Wupwise (…) Simulateur : SimpleScalar, Pénalité miss Pred = 3 Sauter : 5M inst et exécuter : 10M, env 20% ins sont des branchements BTP : 512 sets et associativité : 4 Les 4 prédicateurs avec une complexité equivalentes Complexité évaluée avec Wattch : Évaluation de la consommation de puissance (4.9 nJ par accès à la BTP+BHR+BHT) #BHR #BHT #Corrélation = # bits reg Dec Gag : 1 1*4096 12 Gap 1 16*256 8 Pag 8 1*4096 12 Pap 8 16*256 4 Smail.Niar@univ-valenciennes.fr

Échelle Logarithmique Nombre de Misses Échelle Logarithmique Smail.Niar@univ-valenciennes.fr

Smail.Niar@univ-valenciennes.fr

Smail.Niar@univ-valenciennes.fr

Autres prédicateurs à deux niveaux... gselect : Concaténation de qq bits de poids faible de l ’@ce branchement avec le registre BHR gshare : Appliquer un OUX sur une partie de l’@ de branchement et le BHR Addresse Instruction. BHR gselect4/4 gshare8/8 00000000 00000001 00000001 00000001 00000000 00000000 00000000 00000000 11111111 00000000 11110000 11111111 11111111 10000000 11110000 01111111 Smail.Niar@univ-valenciennes.fr

gselect et gshare gselect gshare m+n m m n m m PHT PHT Conca OUX PC Smail.Niar@univ-valenciennes.fr m n m m PC BHR PC BHR gselect gshare

Quelques chiffres Processeurs hautes performances : P4 : prédiction dynamique des branchements : Adresse de la prochaine Trace BTB : 4 way set associative, 512 lignes, BHT : 4 bits. Lorsque pas de prediction possible  Pred Statique : Forward NT, Backward T G5 : 3 tables Local/global/selector taille de 16KB Athlon 64 bits : Digital/Compaq 21386 : Processeurs embarqués : Arm7 : Intel Xscale : BTB 128-entry (the address of a branch instruction, the target address associated with the branch instruction, and a previous history of the branch being taken or not taken), 4 states predictions (two bits) Smail.Niar@univ-valenciennes.fr