1 / 60

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

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

zudora
Download Presentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  3. Coût d’un branchement : rappel

  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

  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.

  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

  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

  8. Branchement différé 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.

  9. Ordonnancement du délai du branchement • Il existe trois techniques d’ordonnancement du délai • Instruction avant • Instruction cible • Instruction après

  10. Ordonnancement du délai du branchement • Ordonnancement d’une instruction d’avant Cible du branchement

  11. Ordonnancement du délai du branchement • Ordonnancement d’une instruction d’avant le branchement ADD R1,R2,R3 ADD R1,R2,R3

  12. Ordonnancement du délai du branchement • Instruction cible SUB R4,R5,R6 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.

  13. Ordonnancement du délai du branchement • Ordonnancement d’une instruction après ADD R1,R2,R3 SUB R4,R5,R6

  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.

  15. La prédiction de branchement 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. Non Pris Prédis pris Prédis non pris Pris Non Pris Pris

  16. La prédiction de branchement Add R1,R2,R3 L1 : subi R3,R4,R5 Bnez R3, L1 Branchement b Non Pris Prédis pris Prédis non pris Pris Non Pris Pris

  17. La prédiction de branchement Add R1,R2,R3 L1 : subi R3,R4,R5 Bnez R3, L1 Branchement b Non Pris Prédis pris Prédis non pris Pris Non Pris Pris * 8

  18. La prédiction de branchement Add R1,R2,R3 L1 : subi R3,R4,R5 Bnez R3, L1 Branchement b Non Pris Prédis pris Prédis non pris Pris Non Pris Pris

  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.

  20. La prédiction de branchement Predict taken

  21. La prédiction de branchement Predict taken Taken

  22. La prédiction de branchement Predict taken

  23. La prédiction de branchement NotTaken Predict taken

  24. La prédiction de branchement Les états d’un schéma de prédiction à deux bits Bilan : 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.

  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.

  26. Prédiction de branchement d dans R1

  27. Séquence d’exécution possible

  28. Séquence d’exécution possible

  29. Séquence d’exécution possible

  30. Séquence d’exécution possible

  31. Comportement d’un prédicateur 1 bit

  32. Comportement d’un prédicateur 1 bit

  33. Comportement d’un prédicateur 1 bit Tous les branchement sont mal prédits

  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) paire de prédicateur à 1 bit = (Préd.1,Préd.2)

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

  36. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  37. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  38. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée. NT/NT T

  39. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  40. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  41. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  42. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée. T/NT T

  43. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  44. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée. NT/T NT

  45. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  46. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  47. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée. T/NT NT

  48. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée.

  49. Prédiction avec bit de corrélation NT/NT la prédiction soulignée est la prédiction utilisée. T/NT T

More Related