Renommage et ILP Le compilateur mappe la mémoire sur les registres architecturaux. Les registres...

download Renommage et ILP Le compilateur mappe la mémoire sur les registres architecturaux. Les registres architecturaux étant peu nombreux, sont fortement réutilisés.

of 29

  • date post

    03-Apr-2015
  • Category

    Documents

  • view

    102
  • download

    0

Embed Size (px)

Transcript of Renommage et ILP Le compilateur mappe la mémoire sur les registres architecturaux. Les registres...

  • Page 1
  • Renommage et ILP Le compilateur mappe la mmoire sur les registres architecturaux. Les registres architecturaux tant peu nombreux, sont fortement rutiliss. Cela cre de fausses dpendances entre instructions: deux instructions qui crivent deux valeurs indpendantes dans le mme registre par exemple.
  • Page 2
  • Renommage et ILP Dans une machine registres, on distingue trois types de dpendances: - dpendance Lecture Aprs Ecriture ou LAE - dpendance Ecriture Aprs Lecture ou EAL - dpendance Ecriture Aprs Ecriture ou EAE
  • Page 3
  • Renommage et ILP Par exemple: R1 = R2 + R3 R4 = R1 + R0 // dpendance LAE (R1) R4 = R2 + R0 // dpendance EAE (R4) R2 = R1 + R0 // dpendance EAL (R2)
  • Page 4
  • Renommage et ILP Les dpendances LAE sont des dpendances de donnes. Les dpendances EAE et EAL sont des dpendances de ressources: c'est la rutilisation du registre qui cre la dpendance. En re-mappant les registres architecturaux sur un ensemble plus large de registres de renommage, le matriel peut liminer les dpendances de ressource et favoriser l'ILP.
  • Page 5
  • 5 B. Goossens D. Defour5 B. Goossens D. Defour Rordonnancement dynamique On sait extraire les instructions en // Peut-on les excuter en //? Il faut construire lordre partiel des instructions
  • Page 6
  • 6 B. Goossens D. Defour6 B. Goossens D. Defour Dpendances LAE, EAE et EAL Dpendance LAE: 2 dpend de 1 Dpendance EAE: 4 dpend de 1 Dpendance EAL: 4 dpend de 3
  • Page 7
  • 7 B. Goossens D. Defour7 B. Goossens D. Defour Graphe des dpendances LAE, EAE et EAL Les dpendances EAE et EAL sont de fausses dpendances. On les limine en ddoublant le registre de destination: cest le renommage.
  • Page 8
  • 8 B. Goossens D. Defour8 B. Goossens D. Defour Renommage des registres Pour matrialiser les r registres de larchitecture on dispose de q (q>r) registres de renommage Chaque destination est associe un registre de renommage disponible (allocation)
  • Page 9
  • Renommage On voit sur la boucle prcdente que le renommage a permis de mapper chaque tour de boucle sur un jeu de registres distinct. Il ne reste plus que la dpendance de donne sur R0, due la nature de la boucle qui accumule son rsultat dans R0.
  • Page 10
  • saxpy(float *x, float *y, float a, int n) { int i; for (i=0;i