Ch 5 la pr diction des branchements
Download
1 / 37

Ch 5 : La Prédiction des Branchements - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

Ch 5 : La Prédiction des Branchements. IUP3/ Master Info. 1 Smail Niar ISTV Université de Valenciennes [email protected] Les prédictions de branchement.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Ch 5 : La Prédiction des Branchements' - evelia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ch 5 la pr diction des branchements

Ch 5 : La Prédiction des Branchements

IUP3/ Master Info. 1

Smail Niar

ISTV Université de Valenciennes

[email protected]

[email protected]


Les pr dictions de branchement
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.

[email protected]


Pr diction branchements suite
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)

[email protected]


3 cycles perdus chaque branchement pris

T

i

m

e

(

i

n

c

l

o

c

k

c

y

c

l

e

s

)

P

r

o

g

r

a

m

e

x

e

c

u

t

i

o

n

C

C

1

C

C

2

C

C

3

C

C

4

C

C

5

C

C

6

C

C

7

C

C

8

C

C

9

o

r

d

e

r

(

i

n

i

n

s

t

r

u

c

t

i

o

n

s

)

4

0

b

e

q

$

1

,

$

3

,

7

I

M

R

e

g

D

M

R

e

g

I

M

I

M

I

M

7

2

l

w

$

4

,

5

0

(

$

7

)

R

e

g

D

M

R

e

g

I

M

3 cycles perdus à chaque branchement (pris)

[email protected]


Solution uniquement pour pour : beqz R1, etiq

Deux cycles perdus au lieu de 3

[email protected]


Possibilit s dans le traitement des al as de contr le
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

[email protected]


Pr diction branchement suite
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

  • [email protected]


    Branchement pr dit pris
    Branchement Prédit pris

    Branch Target Buffer BTB

    Adresse des branchements

    valide

    adresse de

    l ’instruction

    1/0

    CP+4

    CP

    [email protected]

    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
    Prédiction par le compilateurStatique

    • Les branchement arrière sont toujours prédit pris et les branchement avant sont toujours prédit non pris

    [email protected]

    Taken backwards

    Not Taken Forwards

    Always taken


    Le branchement retarde delayed branch
    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

    [email protected]


    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:

    Une instruction après le branchement est toujours exécutée

    [email protected]


    La pr diction dynamique des branchements
    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

    [email protected]


    Pr dicteur sur 1 bit
    Prédicteur sur 1 bit

    1

    0

    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

    [email protected]

    Inconv Boucles : si le branch est toujours pris il y a 2

    prédictions incorrects (mispredictions): la première et la dernière


    Exemple
    Exemple :

    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

    [email protected]


    Sch ma de pr diction avec 2 bits

    P

    P

    11

    P

    10

    P

    NP

    NP

    P

    P

    01

    NP

    00

    NP

    NP

    NP

    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

    [email protected]


    Rappel
    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

    [email protected]

    (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

    b1

    Série

    Math

    Série

    appliqué

    Lycée

    Test à l’entrée

    de l ’université.

    b2

    Université

    SPI

    MIAS

    La corrélation entre les branchements

    [email protected]


    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.

    [email protected]

    b2

    b2

    bonne prédiction

    mauvaise prédiction


    [email protected] l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    (Transparent P.Michaud IRISA)


    Exemple1

    if (d==0) l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?/*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

    Exemple

    [email protected]


    Exemple2

    if (d!=0) go to L1 l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    /*branchement b1*/

    d=1

    L1 :

    if(d!=1) go to L2

    /*branchement b2*/

    L2 : …….

    Exemple

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

    [email protected]


    Résultat : Si on ne branche pas sur L1 alors l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    on ne branche pas sur L2

    NT : Not Taken

    ou branchement

    non pris NP

    [email protected]


    Performance de la pr diction avec 1 bit avec une s quence 2 0 2 0

    D= l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    ?

    Prédiction

    Action

    Nouvelle

    Predicti

    Action

    Nouvelle

    b1

    b1

    prédiction

    on b2

    b2

    prédiction

    b1

    b2

    2

    NP

    P*

    P

    NP

    P*

    P

    0

    P

    NP*

    NP

    P

    NP*

    NP

    2

    NP

    P*

    P

    P*

    P

    NP

    0

    P

    NP*

    NP

    P

    NP*

    NP

    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

    [email protected]


    M ch se avec deux bits par branchement

    P l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    P

    11

    P

    10

    P

    NP

    NP

    P

    P

    01

    NP

    00

    NP

    NP

    ^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

    [email protected]

    0

    NP

    NP

    NP

    NP

    NP

    NP

    00

    01

    00

    01

    2

    NP

    P*

    NP

    P*

    NP

    NP

    01

    00

    00

    01

    0

    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

    D= l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    ?

    Dernière

    Prédiction

    Action

    Nouvelle

    Dernière

    Predicti

    Action

    Nouvelle

    Branch

    b1

    b1

    prediction

    Branch

    on b2

    b2

    prédiction

    b1

    b2

    2

    NP

    NP/NP

    P*

    P/NP

    P

    NP/NP

    P*

    NP/P

    0

    P

    P/NP

    NP

    P/NP

    NP

    NP/P

    NP

    NP/P

    2

    NP

    P/NP

    P

    P/NP

    P

    NP/P

    P

    NP/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

    [email protected]

    0

    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
    Mise en œuvre matérielle l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    Table des prédicateurs

    Corrélation Prédiction

    1 bit de prédiction et

    1 bit de corrélation

    0

    0

    0

    1

    1

    Adresse

    branchement

    ...

    ...

    prédiction

    1

    [email protected]

    ...

    ...

    1 0

    selectionner

    dernier branchement

    0

    bascule D


    Pr diction avec deux bits et deux bits de corr lations

    Pattern History Tables PHTs l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    (2-bit predictors)

    0

    Adresse

    branchement

    ...

    ...

    ...

    ...

    10 bits

    (1 , 1)

    ...

    ...

    ...

    ...

    1023

    11 10 01 00

    selectionner

    Registre de l’historique des branchements

    Branch History Register BHR

    0

    1

    (2-bit shift register)

    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.

    [email protected]

    Le registre BHR indique

    le résultat des deux derniers

    branchements


    R sum des symboles
    Résumé des symboles l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    • 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

    [email protected]


    Pr dicteurs gag et gap

    1 seul BHT l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    @ de branchements

    shift direction

    Branch Pattern

    2**n tables, # BHT

    History Table

    Gag (4 bits)

    1

    1

    0

    0

    BHR

    (PHT)

    ...

    BHR

    predict:

    ...

    ...

    1100

    1 1

    ...

    ...

    taken

    Index

    1

    1

    0

    0

    ...

    ...

    1 1

    Index

    ...

    ...

    ...

    n

    GAp (4 bits)

    1 seul reg d ’historique mais avec @de branchement

    Prédicteurs GAg et GAp

    Deux bits de prédiction

    [email protected]


    Plusieurs registres d calage historique local

    1 BHR par Branch l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    BHT

    ...

    ...

    b1

    b2

    Branch address

    1 1

    0 0

    Pag(4)

    Per-address

    # BHT

    BHT

    Branch address

    1 1

    1 1

    0 0

    Plusieurs reg à dec d ’historique, 1 par branchement

    mais pas d ’@

    Index

    ...

    ...

    ...

    ...

    Branch address b1

    ...

    ...

    1 1

    0 0

    ...

    Branch address b2

    1 1

    1 1

    0 0

    0

    1

    Index

    ...

    ...

    ...

    ...

    Plusieurs Registres à décalage (historique local)

    [email protected]

    Pap(4)


    Valuation des performances
    Évaluation des Performances l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    • 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

    [email protected]


    Nombre de misses
    Nombre de Misses l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    Échelle Logarithmique

    [email protected]


    [email protected] l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?


    [email protected] l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?


    Autres pr dicateurs deux niveaux
    Autres prédicateurs à deux niveaux... l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    • 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

    [email protected]


    Gselect et gshare
    gselect et gshare l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    PHT

    PHT

    m+n

    m

    Conca

    OUX

    [email protected]

    m

    n

    m

    m

    PC

    BHR

    PC

    BHR

    gselect

    gshare


    Quelques chiffres
    Quelques chiffres l ’université ne sont connus qu ’un mois après, mais il faut commencer l ’année….?

    • 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)

    [email protected]


    ad