60
1 Réduction des coûts de branchement avec prédiction dynamique

Réduction des coûts de branchement avec prédiction dynamique

  • Upload
    zudora

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Réduction des coûts de branchement avec prédiction dynamique. Recall from Pipelining Review. Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + Control Stalls Ideal pipeline CPI : measure of the maximum performance attainable by the implementation - PowerPoint PPT Presentation

Citation preview

Page 1: Réduction des coûts de branchement avec prédiction dynamique

1

Réduction des coûts de branchement avec prédiction dynamique

Page 2: Réduction des coûts de branchement avec prédiction dynamique

2

Recall from Pipelining Review

• Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + Control Stalls– Ideal pipeline CPI: measure of the maximum performance

attainable by the implementation– Structural hazards: HW cannot support this combination of

instructions– Data hazards: Instruction depends on result of prior

instruction still in the pipeline– Control hazards: Caused by delay between the fetching of

instructions and decisions about changes in control flow (branches and jumps)

Page 3: Réduction des coûts de branchement avec prédiction dynamique

3

Coût d’un branchement : rappel

Inst.Brancht LI DI EX MEM ER

Successeur br LI NOP NOP NOP DI EX MEM ER

Succ. br+1 LI DI EX MEM ER

Succ. br+2 LI DI EX MEM

Succ. br+3 LI DI EX

Succ. br+4 LI DI

Succ. br+4 LI

Page 4: Réduction des coûts de branchement avec prédiction dynamique

4

Réduction du coût d’un branchement

Transfert du test à zéro et le calcul de l’adresse

de branchement dans la phase DI du pipeline

Page 5: Réduction des coûts de branchement avec prédiction dynamique

5

Réduction des pénalités

• Les prédictions statiques sont fixes pour chaque branchement pendant toute l’exécution, et les prédiction sont faites à la compilation.

• La politique de branchement « prédiction non pris » consiste à lire les instructions comme si le branchement était une instruction normale.

Inst.Brancht non pris LI DI EX MEM ER

Inst i+1 LI DI EX MEM ER

Inst i+2 LI DI EX MEM ER

Inst i+3 LI DI EX MEM ER

Inst i+4 LI DI EX MEM ER

Page 6: Réduction des coûts de branchement avec prédiction dynamique

6

Réduction des pénalités

• Si le branchement est pris pendant DI, on recommence la lecture à partir de la destination du branchement. Ceci fait que les instructions suivant le branchement sont suspendues pendant un cycle

Inst.Brancht pris LI DI EX MEM ER

Inst i+1 LI rien

Cible du brancht LI DI EX MEM ER

Cible du brancht+1 LI DI EX MEM ER

Cible du brancht+2 LI DI EX MEM ER

Page 7: Réduction des coûts de branchement avec prédiction dynamique

7

Branchement différé

• Cette technique est utilisé dans beaucoup d’unités de contrôle microprogrammées.

• Dans un branchement différé, le cycle d’exécution avec un délai de branchement de n est :

Instruction de branchement Successeur 1 séquentiel

Successeur 2 séquentiel…Successeur n séquentiel

Destination du branchement si pris

• Ces n instructions sont exécutées que le branchement soit pris ou non

Page 8: Réduction des coûts de branchement avec prédiction dynamique

8

Branchement différé

Inst.Brancht non pris LI DI EX MEM ER

Inst i+1 délai de br LI DI EX MEM ER

Inst i+2 LI DI EX MEM ER

Inst i+3 LI DI EX MEM ER

Inst i+4 LI DI EX MEM ER

Inst.Brancht pris LI DI EX MEM ER

Inst i+1 délai de br LI DI EX MEM ER

Cible du brancht LI DI EX MEM ER

Cible du brancht+1 LI DI EX MEM ER

Cible du brancht+2 LI DI EX MEM ER

Si le branchement est pris l’exécution continue à l’instruction cible du branchement.Le travail du compilateur consiste à rendre les instructions suivantes valides et utiles.

Page 9: Réduction des coûts de branchement avec prédiction dynamique

9

Ordonnancement du délai du branchement

• Il existe trois techniques d’ordonnancement du délai

1. Instruction avant

2. Instruction cible

3. Instruction après

Page 10: Réduction des coûts de branchement avec prédiction dynamique

10

Ordonnancement du délai du branchement

• Ordonnancement d’une instruction d’avant

ADD R1,R2,R3

Si R2=0 alors

Délai

Cible du branchement

Page 11: Réduction des coûts de branchement avec prédiction dynamique

11

Ordonnancement du délai du branchement

• Ordonnancement d’une instruction d’avant le branchement

Si R2=0 alors

DélaiADD R1,R2,R3

ADD R1,R2,R3ADD R1,R2,R3

Si R2=0 alors

Délai

Besoins Cas d’amélioration de performance

Le branchement ne doit pas dépendre des instructions réordonnancées

Toujours

Page 12: Réduction des coûts de branchement avec prédiction dynamique

12

Ordonnancement du délai du branchement

• Instruction cible

SUB R4,R5,R6

ADDR1,R2,R3

Si R1=0 alors

Délai

SUB R4,R5,R6

ADDR1,R2,R3

Si R1=0 alors

DélaiSUB R4,R5,R6

Besoins Cas d’amélioration de performance

On doit pouvoir exécuter les instructions réordonnées si le branchement n’est pas pris. On peut devoir dupliquer les instructions.

Quand le branchement est pris. Peut augmenter le programme si les instructions sont dupliquées

Si la destination du branchement est accessible d’un autre point du programme (ce qui se passe pour un début de boucle), les instructions destination doivent être dupliquées et pas seulement déplacées.

Page 13: Réduction des coûts de branchement avec prédiction dynamique

13

Ordonnancement du délai du branchement

• Ordonnancement d’une instruction après

Si R1=0 alors

Délai

SUB R4,R5,R6

SUB R4,R5,R6

ADD R1,R2,R3ADD R1,R2,R3

Si R1=0 alors

Délai

SUB R4,R5,R6

Besoins Cas d’amélioration de performance

On doit pouvoir exécuter les instructions réordonnées si le branchement est pris.

Quand le branchement n’est pas pris.

Page 14: Réduction des coûts de branchement avec prédiction dynamique

14

• Réduction des pénalités de branchement par la prédiction matérielle dynamique

Cette partie met l’accent sur l’utilisation de matériel pour prévoir le comportement du branchement : la prédiction changera si le branchement change son comportement à l’exécution du programme.

Page 15: Réduction des coûts de branchement avec prédiction dynamique

15

La prédiction de branchement

Prédis prisPrédis pris Prédis non prisPrédis non pris

Pris Non Pris

Non Pris

Pris

Le tampon de prédiction de branchement ou table d’histoire des branchements Constitue la solution de prédiction dynamique la plus simple.Le tampon est une mémoire indexée par la partie basse de l’adresse de l’instruction de branchement.Deux adresses peuvent avoir le même tampon.

Page 16: Réduction des coûts de branchement avec prédiction dynamique

16

La prédiction de branchement

Prédis prisPrédis pris Prédis non prisPrédis non pris

Pris Non Pris

Add R1,R2,R3L1 : subi R3,R4,R5

Bnez R3, L1 Branchement b

Non Pris

Pris

Page 17: Réduction des coûts de branchement avec prédiction dynamique

17

La prédiction de branchement

Prédis prisPrédis pris Prédis non prisPrédis non pris

Pris * 8 Non Pris

Add R1,R2,R3L1 : subi R3,R4,R5

Bnez R3, L1 Branchement b

Non Pris

Pris

Page 18: Réduction des coûts de branchement avec prédiction dynamique

18

La prédiction de branchement

Add R1,R2,R3L1 : subi R3,R4,R5

Bnez R3, L1 Branchement b

Prédis prisPrédis pris Prédis non prisPrédis non pris

Pris Non Pris

Non Pris

Pris

Page 19: Réduction des coûts de branchement avec prédiction dynamique

19

La prédiction de branchement

Les états d’un schéma de prédiction à deux bits. Les deux bits sont utilisés pour coder les quatre états du système.

Page 20: Réduction des coûts de branchement avec prédiction dynamique

20

La prédiction de branchement

Predict takenPredict taken

Page 21: Réduction des coûts de branchement avec prédiction dynamique

21

La prédiction de branchement

Predict takenPredict taken

Taken

Page 22: Réduction des coûts de branchement avec prédiction dynamique

22

La prédiction de branchement

Predict takenPredict taken

Page 23: Réduction des coûts de branchement avec prédiction dynamique

23

La prédiction de branchement

Predict takenPredict taken

NotTaken

Page 24: Réduction des coûts de branchement avec prédiction dynamique

24

La prédiction de branchement

Les états d’un schéma de prédiction à deux bitsBilan : en utilisant deux bits plutôt qu’un, un branchement qui favorise fortement l’option prise ou non prise, comme beaucoup de branchement le font, ne sera mal prédit qu’une seule fois.

Page 25: Réduction des coûts de branchement avec prédiction dynamique

25

Prédiction à corrélation

• Les schémas de prédiction à deux bits utilisent le comportement récent d’un branchement pour prédire le comportement futur de ce branchement.

• Il est possible d’améliorer la prédiction en considérant, non seulement le comportement dont on essaie de prédire le comportement, mais aussi le comportement récent d’autres branchement.

Page 26: Réduction des coûts de branchement avec prédiction dynamique

26

Prédiction de branchement

If (d==0)

d=1

If (d==1)

BNEZ R1,L1

ADDI R1,R0,#1

L1 : SUBI R3,R1,#1

BNEZ R3,L2

L2 :

; branchement b1 (d!=0)

; d==0 donc d=1

; branchement b2 (d!=1)

L2 :

d dans R1

Page 27: Réduction des coûts de branchement avec prédiction dynamique

27

Séquence d’exécution possible

BNEZ R1,L1

ADDI R1,R0,#1

L1 : SUBI R3,R1,#1

BNEZ R3,L2

L2 :

; branchement b1 (d!=0)

; d==0 donc d=1

; branchement b2 (d!=1)

L2 :

Valeur initiale de d

d==0 ? b1 (d=!0) Valeur de d avant b2

d==1 ? b2

0 oui Non pris

Page 28: Réduction des coûts de branchement avec prédiction dynamique

28

Séquence d’exécution possible

BNEZ R1,L1

ADDI R1,R0,#1

L1 : SUBI R3,R1,#1

BNEZ R3,L2

L2 :

; branchement b1 (d!=0)

; d==0 donc d=1

; branchement b2 (d!=1)

L2 :

Valeur initiale de d

d==0 ? b1 Valeur de d avant b2

d==1 ? b2 (d=!1)

0 oui Non pris 1 oui Non pris

Page 29: Réduction des coûts de branchement avec prédiction dynamique

29

Séquence d’exécution possible

BNEZ R1,L1

ADDI R1,R0,#1

L1 : SUBI R3,R1,#1

BNEZ R3,L2

L2 :

; branchement b1 (d!=0)

; d==0 donc d=1

; branchement b2 (d!=1)

L2 :

Valeur initiale de d

d==0 ? b1 Valeur de d avant b2

d==1 ? b2

0 oui Non pris 1 oui Non pris

1 non pris 1 oui Non pris

2 non pris 2 non pris

Page 30: Réduction des coûts de branchement avec prédiction dynamique

30

Séquence d’exécution possible

BNEZ R1,L1

ADDI R1,R0,#1

L1 : SUBI R3,R1,#1

BNEZ R3,L2

L2 :

; branchement b1 (d!=0)

; d==0 donc d=1

; branchement b2 (d!=1)

L2 :

Valeur initiale de d

d==0 ? b1 Valeur de d avant b2

d==1 ? b2

0 oui Non pris 1 oui Non pris

1 non pris 1 oui Non pris

2 non pris 2 non pris

Page 31: Réduction des coûts de branchement avec prédiction dynamique

31

Comportement d’un prédicateur 1 bit

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT T T NT T T

Page 32: Réduction des coûts de branchement avec prédiction dynamique

32

Comportement d’un prédicateur 1 bit

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT T T NT T T

0 T T

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT T T NT T T

0 T NT NT T NT NT

Page 33: Réduction des coûts de branchement avec prédiction dynamique

33

Comportement d’un prédicateur 1 bit

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT T T NT T T

0 T NT NT T NT NT

2 NT T T NT T T

0 T NT NT T NT NT

Tous les branchement sont mal prédits

Page 34: Réduction des coûts de branchement avec prédiction dynamique

34

Prédicteur à corrélation

• Les prédicteurs de branchement qui utilisent le comportement d’autres branchements pour effectuer leur prédiction sont appelés prédicteurs à corrélation ou prédicteurs à deux niveaux.

Prédiction (1,1)

Prédiction (1,1)

(1, = comportement du dernier branchement

,1) = paire de prédicateur à 1 bit

paire de prédicateur à 1 bit =

(Préd.1,Préd.2)

Page 35: Réduction des coûts de branchement avec prédiction dynamique

35

Page 36: Réduction des coûts de branchement avec prédiction dynamique

36

Prédiction (1,1)

Bits de prédiction Prédiction si le dernier br est non pris

Prédiction si le dernier br est pris

NT/NT Non pris Non pris

NT/T Non pris pris

T/T pris pris

T/NT pris Non pris

Paire de prédicateur à 1 bit = (Préd.1,Préd.2), on code la prédiction sur deux bitsSi le dernier branchement est non pris la prédiction est Préd1Si le dernier branchement est pris la prédiction est Préd2

Page 37: Réduction des coûts de branchement avec prédiction dynamique

37

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT NT/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 38: Réduction des coûts de branchement avec prédiction dynamique

38

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 39: Réduction des coûts de branchement avec prédiction dynamique

39

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

NT/NT

T

Page 40: Réduction des coûts de branchement avec prédiction dynamique

40

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 41: Réduction des coûts de branchement avec prédiction dynamique

41

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 42: Réduction des coûts de branchement avec prédiction dynamique

42

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 43: Réduction des coûts de branchement avec prédiction dynamique

43

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

T/NT

T

Page 44: Réduction des coûts de branchement avec prédiction dynamique

44

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 45: Réduction des coûts de branchement avec prédiction dynamique

45

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

NT/T

NT

Page 46: Réduction des coûts de branchement avec prédiction dynamique

46

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 47: Réduction des coûts de branchement avec prédiction dynamique

47

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT T/NT

2 T/NT T/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 48: Réduction des coûts de branchement avec prédiction dynamique

48

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT T/NT

2 T/NT T/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

T/NT

NT

Page 49: Réduction des coûts de branchement avec prédiction dynamique

49

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT T/NT

2 T/NT T T/NT T/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

Page 50: Réduction des coûts de branchement avec prédiction dynamique

50

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT T/NT

2 T/NT T T/NT T/NT

NT/NT la prédiction soulignée est la prédiction utilisée.

T/NT

T

Page 51: Réduction des coûts de branchement avec prédiction dynamique

51

Prédiction avec bit de corrélation

d=? b1 prédiction

b1 action Nouvelle prédiction de b1

b2 prédiction

b2 action Nouvelle prédiction de b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT T/NT

2 T/NT T T/NT T/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

NT/NT la prédiction soulignée est la prédiction utilisée.

Rem : b1 n’est en rien corrélé avec la prédiction b2.

Page 52: Réduction des coûts de branchement avec prédiction dynamique

52

Tampon de prédiction de branchement (2,2)

• Un tampon de prédiction de branchement (2,2) utilise un historique de 2 bits pour choisir à partir de 4 prédicteurs pour chaque adresse de branchement.

• Chaque prédicteur est à son tour un prédicteur 2 bits pour ce branchement particulier.

Page 53: Réduction des coûts de branchement avec prédiction dynamique

53

Tampon de prédiction de branchement (2,2)

Registre à décalage

Page 54: Réduction des coûts de branchement avec prédiction dynamique

54

Tampon de destination de branchement

• On appelle tampon de destination de branchement ou cahce de destinations de branchement un cache qui contient l’adresse prédite de l’instruction qui suit le branchement.

• L’idée est d’accéder au tampon de prédiction de branchement durant le cycle LI (un cycle plus tôt que pour un tampon de prédiction de branchement).

Page 55: Réduction des coûts de branchement avec prédiction dynamique

55

Tampon de destination de branchement

Page 56: Réduction des coûts de branchement avec prédiction dynamique

56

Tampon de destination de branchement

Page 57: Réduction des coûts de branchement avec prédiction dynamique

57

Gérer une instruction avec tampon de dest. de br

Page 58: Réduction des coûts de branchement avec prédiction dynamique

58

Gérer une instruction avec tampon de dest. de br

Page 59: Réduction des coûts de branchement avec prédiction dynamique

59

Gérer une instruction avec tampon de dest. de br

Page 60: Réduction des coûts de branchement avec prédiction dynamique

60

Gérer une instruction avec tampon de dest. de br

Cycle de pénalité A - 2 B - 2 0

A- Si le branchement n’est pas trouvé dans le tampon et que l’instruction est en fait un branchement, on devra procéder comme si l’instruction était un branchement et faire comme si on utilisait une stratégie « non pris » ; la pénalité dépendra du fait que le branchement soit effectivement pris ou non.B- Si la prédiction est incorrecte, on a un retard d’un cycle lié à la lecture de la mauvaise instruction et on recommence la lecture un cycle après.