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.