La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ch 5 : La Prédiction des Branchements IUP3/ Master Info. 1 Smail Niar ISTV Université de Valenciennes

Présentations similaires


Présentation au sujet: "Ch 5 : La Prédiction des Branchements IUP3/ Master Info. 1 Smail Niar ISTV Université de Valenciennes"— Transcription de la présentation:

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

2 Smail.Niar@univ-valenciennes.fr 2 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.

3 Smail.Niar@univ-valenciennes.fr 3 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)

4 Smail.Niar@univ-valenciennes.fr 4 3 cycles perdus à chaque branchement (pris)

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

6 Smail.Niar@univ-valenciennes.fr 6 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 ny 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

7 Smail.Niar@univ-valenciennes.fr 7 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

8 Smail.Niar@univ-valenciennes.fr 8 CP Adresse des branchements adresse de l instruction valide 1 0 CP CP+4 Branchement Prédit pris 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 1/0 Branch Target Buffer BTB Control

9 Smail.Niar@univ-valenciennes.fr 9 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 Always taken Taken backwards Not Taken Forwards

10 Smail.Niar@univ-valenciennes.fr 10 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 successor 1 sequential successor 2........ sequential successor n branch target if taken cas particulier : BEQZ 2 cycle d attente pour le calcul de ladresse de branchement => n=2 (2 instruction dans le délai) cf. tr 25 On peut soit déplacer des instructions ou mettre des nops

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

12 Smail.Niar@univ-valenciennes.fr 12 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 linstruction 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

13 Smail.Niar@univ-valenciennes.fr 13 Prédicteur sur 1 bit Inconv Boucles : si le branch est toujours pris il y a 2 prédictions incorrects (mispredictions ): la première et la dernière 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 1 0

14 Smail.Niar@univ-valenciennes.fr 14 Exemple : 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

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

16 Smail.Niar@univ-valenciennes.fr 16 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 lhistorique) Etiquette, @ Branchement PC 10 PC (prédicateur BIMODAL)

17 Smail.Niar@univ-valenciennes.fr 17 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 luniversité. Collège Test à lentrée du lycée Série Math Série appliqué Lycée Université Test à lentrée de l université. b1 b2 MIAS SPI

18 Smail.Niar@univ-valenciennes.fr 18 Collège Test à lentrée du lycée Série Math Série appliqué Test à l entrée de l univer. b1 b2 Collège Test à lentrée du lycée Série Math Série appliqué Test à l entrée de l univer. b1 b2 bonne prédictionmauvaise prédiction 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….?

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

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

21 Smail.Niar@univ-valenciennes.fr 21 Exemple if (d!=0) go to L1 /*branchement b1*/ d=1 L1 : if(d!=1) go to L2 /*branchement b2*/ L2 : ……. BnezR1, L1 ;branch vers L1 si d<>0 AddiR1, R0, #1 ;d= =0, alors d =1 L1:SubR3, R1, #1 ;d- - BnezR3, L2 ;branch. B2 (si d<>0) ….. L2:…..

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

23 Smail.Niar@univ-valenciennes.fr 23 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

24 Smail.Niar@univ-valenciennes.fr 24 ^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) D= ?Prédiction b1 Action b1 Nouvelle prédiction b1 Predicti on b2 Action b2 Nouvelle prédiction b2 2NPP*NP P*NP 0 2 P*NP P*NP 0 0 11 P 10 P 01 NP 00 NP P P P P 0 01 01010 0101 0101 0 010100 0 0 50 % de mauvaise prédictions sur les deux branchement

25 Smail.Niar@univ-valenciennes.fr 25 0PP/NPNPP/NPNPNP/PNPNP/P 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 Deux mauvaises prédictions au début notées par *

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

27 Smail.Niar@univ-valenciennes.fr 27 Prédiction avec deux bits et deux bits de corrélations 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. Le registre BHR indique le résultat des deux derniers branchements 11 100100... Pattern History Tables PHTs (2-bit predictors)... (1, 1) Adresse branchement 10 bits 0 Registre de lhistorique des branchements Branch History Register BHR (2-bit shift register) 1 selectionner 0 1023

28 Smail.Niar@univ-valenciennes.fr 28 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 lhistorique) 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

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

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

31 Smail.Niar@univ-valenciennes.fr 31 É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 Gap116*2568 Pag 8 1*4096 12 Pap8 16*2564

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

33 Smail.Niar@univ-valenciennes.fr 33

34 Smail.Niar@univ-valenciennes.fr 34

35 Smail.Niar@univ-valenciennes.fr 35 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.BHRgselect4/4gshare8/8 00000000000000010000000100000001 00000000000000000000000000000000 11111111000000001111000011111111 11111111100000001111000001111111

36 Smail.Niar@univ-valenciennes.fr 36 gselect et gshare PCBHR Conca PHT nm m+n PCBHR OUX PHT mm m gselect gshare

37 Smail.Niar@univ-valenciennes.fr 37 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)


Télécharger ppt "Ch 5 : La Prédiction des Branchements IUP3/ Master Info. 1 Smail Niar ISTV Université de Valenciennes"

Présentations similaires


Annonces Google