You are on page 1of 2

Le processeur Pentium

1. Le processeur et la cache partage la mme interface 64 bits vers les


informations de lordinateur. Le code programme ou les donnes manipules
par ce code entrent et sortent de ce circuit la vitesse de bus maximale de
lordinateur. Elle ne dpasse pas 100 MHz, mme dans les processeurs
fonctionnant en interne 200 MHz. Le Pentium Pro a t conu pour
minimiser les effets du goulot dtranglement, en rduisant le nombre de fois
o un top dhorloge (la plus petite unit de temps pendant laquelle un
ordinateur peut agir) passe sans que le processeur ait men bien une
opration.

2. Lorsque les informations entrent dans le processeur par la BIU (Bus Interface
Unit) celle-ci les duplique, envoie un exemplaire au cache niveau 2 (L2) de
lunit centrale auquel il est troitement reli, et un autre une paire de cache
L1 de 8 16 ko intgrs directement dans lunit centrale. La BIU envoie le
code au cache dinstructions L1, nomm cache 1, et les donnes que doivent
traiter ce code un autre cache L1, le cache de donnes ou le cache D.

3. Tandis que lunit de chargement/dcodage (fetch/decode unit) rcupre les
instructions du cache 1, un autre composant nomm tampon cible de
branchement (ou BTB, Branch Target Buffer) dtermine si une instruction
particulire a dj t utilise. Il compare le code en entre avec un
enregistrement conserv dans un tampon spar. Le BTB recherche
notamment les instructions comprenant un branchement, cest--dire un cas
dans lequel un programme doit choisir entre deux chemins. Si le BTB trouve
une instruction de branchement, il sefforce de prdire quel chemin va choisir
le programme, en se rfrent ce quil avait choisi en dautres occasions.
Cette prdiction se rvle exacte prs de 90%.

4. Tandis que la partie de chargement de lunit de chargement/dcodage
rcupre les instructions dans lordre prdit par le BTB, trois dcodeurs
fonctionnant en parallle dcomposent les instructions les plus complexes en
op, en petites micro-oprations de 274 bits, que lunit
dexpdition/excution (dispatch/execute unit) pourra traiter plus rapidement
quune seule instruction de plus haut niveau.

5. Lunit de dcodage envoie toutes les op vers le pool dinstructions,
galement nomm reorder buffer (ROB). Celui-ci contient deux units
logiques arithmtiques qui traitent tous les calculs portant sur des entiers. Ces
units utilise un tampon circulaire possdant une tte, une queue et contenant
les op dans lordre des besoins prdits par le BTB.

6. Lunit dexpdition/excution vrifie que chaque op dans le tampon possde
les informations ncessaires son traitement. Si elle trouve un op en
possession de toutes les informations requises, elle lexcute, stocke le rsultat
dans lop elle-mme et la marque comme termine.

7. Si une op a besoin dautres donnes encore en mmoire, lunit dexcution
la saute, et le processeur commence par rechercher ces informations dans le
cache L1 tout proche. Si elles ne sy trouvent pas, elle va voir dans le cache L2
beaucoup plus grand. Le cache L2 est incorpor dans lunit centrale o les
informations se dplacent deux quatre fois plus vite quentre lunit centrale
et le bus externe. Un circuit intgr de 150 MHz rcupre les informations
1,2 Go par seconde. Ce chiffre tombe 528 Mo par seconde si lunit centrale
doit aller chercher les informations en mmoire vive.

8. Plutt que de rester inactive durant cette recherche dinformations, lunit
dexcution poursuit sa vrification des op prsentes dans le tampon. Si elle
trouve une op en possession de toutes les informations requises, elle
lexcute, stocke le rsultat dans op elle-mme, marque le code
correspondant comme termin et passe lop suivante. Cette procdure se
nomme excution spculative parce que lordre des op dans le tampon
circulaire est bas sur les prdictions de branchement spculatives du BTB.
Lorsque lunit dexcution atteint la queue du tampon, il recommence la
tte et revrifie toutes les op pour excuter celles qui ont entre-temps reu
leurs donnes.

9. Si une opration porte sur les nombres en virgule flottante, tel que 3,14 ou
0,33333 les units logiques arithmtiques confient ce travail lunit en
virgule flottante qui contient des outils de traitement conus pour manipuler
rapidement les nombres en virgule flottante.

10. Lorsquune op retarde a enfin t excute, lunit dexcution compare les
rsultats avec ceux prdits par le BTB. Si la prdiction tait errone, un
composant nomm unit de saut dexcution (jump execution unit) dplace le
marqueur de fin depuis la dernire op de la file vers celle pour laquelle la
prdiction tait errone. Cela signale que toutes les op qui suivent le
marqueur de fin peuvent tre ignores et crases par de nouvelles. Le BTB
est inform que sa prdiction tait incorrecte, et cette information est prise en
compte pour les prochaines prdictions.

11. Pendant ce temps, le tampon de remise en ordre est lui aussi inspect, par
lunit de retrait (retirement unit). Celle-ci commence par sassurer que lop
situe en tte du tampon a t excute. Si ce nest pas le cas, elle continue
vrifier cette op jusqu ce quelle ait t excute. Ensuite, elle vrifie la
deuxime et la troisime op. Si leur excution est acheve, lunit envoie
simultanment les trois rsultats (nombre maximum possible) au tampon de
stockage (store buffer). L, lunit de prdiction les vrifie une dernire fois
avant leur expdition dans la mmoire vive du systme.

You might also like