Les processeurs INTEL


Test de l'Hyper-Threading du P4-3Ghz


Le processeur 486DX2

La technique du pipeline pour traiter les instructions

Dans un logiciel, n'importe quelle opération se décompose en un très grand nombre d'instructions. Par exemple, le transfert d'une donnée de la mémoire au processeur, l'addition de deux nombres, ou la comparaison de deux bits, etc. Chacune de ces instructions subit cinq étapes successives : lecture, décodage (en deux temps), exécution, puis écriture du résultat. La phase d'exécution s'effectue dans l'une ou l'autre des unités de calcul suivant que le type de l'instruction est entier ou flottant.
Dans un 486, la plupart des instructions s'exécutent en un seul cycle, c'est-à-dire en un seul battement de l'horloge. Comme les quatre étapes (voir la dernière figure) ne requièrent qu'un cycle chacune, il faut donc, en théorie, cinq cycles pour traiter complètement une instruction. En fait, le processeur utilise une technique de pipeline. C'est une file d'attente qui est organisée de manière à conduire indépendamment les différentes étapes du traitement d'une instruction. Autrement dit, dès qu'une instruction passe à la seconde phase, l'instruction suivante entre dans la première, et ainsi de suite... Le processeur fait donc plusieurs choses à la fois !
Si ces caractéristiques sont communes à tous les processeurs 486, la nouveauté apportée par le 486 DX2 tient à la double fréquence de fonctionnement. C'est-à-dire une fréquence propre au coeur du processeur, et une autre qui pilote le reste de l'ordinateur, notamment les échanges entre le processeur et l'extérieur. Cette technique permet de faire fonctionner le processeur à haute fréquence sans pour autant augmenter le prix de revient de l'ordinateur. Par exemple, un 486 DX2-50 calcule à 50 Mhz et communique à 25 Mhz avec l'ordinateur, tandis qu'un 486 DX-50 connaît seulement la fréquence de 50 Mhz. Comme ses échanges avec l'ordinateur se font à 50 Mhz, il est plus rapide que le DX2-50, mais il entraîne un surcoût de fabrication et demeure donc très peu utilisé. Toutefois, si le 486 DX2 apparaît plus économique, il ne va pourtant pas sans poser des problèmes.

Des calculs interne ou externe réduisent les états d'attente

En effet, même à simple fréquence, les processeurs travaillent plus vite que la mémoire vive : ainsi, pour une fréquence de 33 Mhz, un cycle de processeur ne dure que 30 nano-secondes (ns), tandis que les composants de mémoire qui équipent les ordinateurs ont un temps d'accès, eux, de 70 ns. Du coup, le processeur doit patienter avant de recevoir une donnée dont il a besoin. Pour réduire ces états d'attente, les processeurs tels que les 486DX et DX2 intègrent une mémoire de 8 Ko, appelée cache interne. Elle fonctionne à la vitesse du processeur. Dès lors, quand un accès à la mémoire vive est nécessaire, on lit non plus une seule information à la fois, mais en fait un groupe de plusieurs, partant du principe que des instructions à exécuter successivement sont adjacentes en mémoire. Comme ce principe est vérifié dans plus de 80 % des cas, une instruction donnée a, en fait, toutes les chances d'avoir déjà été transférée dans le cache : elle s'exécutera donc plus rapidement.
Mais la présence d'une mémoire cache interne ne suffit pas toujours. En effet, sa taille restreinte empêche d'y placer autant de données que nécessaire pour assurer un fonctionnement optimal du processeur. C'est pour cela qu'aujourd'hui les constructeurs équipent souvent leurs ordinateurs d'un cache externe. Plus lent que le cache interne, mais plus rapide que la mémoire vive, ce cache, dit "de niveau 2", permet de gagner près de 10 % de puissance, et même plus encore avec un processeur à double fréquence. Comme le coeur y est plus rapide que le bus, il se produit le même effet qu'au péage d'une autoroute : on perd du temps. Le cache externe est donc indispensable pour utiliser au mieux les performances du processeur DX2.
On peut également multiplier la fréquence par un facteur supérieur : c'est ce qu'a fait Intel avec le DX4, qui est équipé d'un cache interne de 16 Ko. Cette fois-ci, la fréquence interne est égale au triple de celle du reste de l'ordinateur ! Mais pas question pour le fabricant de pousser plus avant cette technique car un processeur 486 à 33-132 Mhz viendrait alors marcher sur les plates-bandes de ses Pentium. Or, son fer de lance dans la bataille des processeurs ne souffre pas qu'on lui fasse de l'ombre !

Structure du processeur Intel486


Le processeur Pentium


 L'unité de bus du processeur Pentium doit pouvoir satisfaire les demandes des trois pipelines de l'unité d'exécution. Son bus externe a une largeur de 64 bits, permettant de transférer deux fois plus de données par cycle d'horloge que dans le processeur Intel486. L'unité de bus peut effectuer des opérations à 66 Mhz au cours de lectures et d'écritures en mode rafale et au cours de cycles d'adresse dans les pipelines. Le bus adresse est toujours de 32 bits ce qui permet d'atteindre 4 Go de mémoire. Dans certaines versions du processeur Pentium, l'horloge interne peut fonctionner à des vitesses allant jusqu'à 166 Mhz.

 L'unité d'anticipation de branchement (BPU) surveille le flot des instructions par un petit cache de 1 Ko, appelé cache BTB (Branch Target Buffer), qui garde trace des instructions déjà exécutées ayant déclenché une rupture dans le flot séquentiel des instructions. L'information est utilisée pour prévoir le résultat des prochains branchements avant qu'ils ne se produisent. Si la prévision est correcte, le flot d'instructions comprenant le branchement s'exécute immédiatement. Si elle est erronée, le pipeline est purgé et une nouvelle séquence d'instructions est amenée au décodeur. Les prévisions du BPU sont exactes 90 fois sur 100, ce qui amène une amélioration des performances de 25 % en moyenne.

Ž L'une des caractéristiques les plus importantes du processeur Pentium tient à ses trois pipelines d'exécution : l'un pour les instructions flottantes et deux autres, indépendants, dits U et V, pour les instructions entières. Cette architecture, permettant d'exécuter plus d'une instruction à la fois, est dite superscalaire. Chacun des pipelines U et V à cinq étapes est semblable à celui du processeur Intel486, à ceci près que des modifications ont été apportées pour permettre à deux instructions de s'exécuter simultanément, une par pipeline. Le bilan total des cycles d'horloge par instruction est ainsi réduit, ce qui améliore encore les performances.

 Troisième pipeline d'exécution, le FPU traite les instructions flottantes en huit étapes. Les quatre premiers étages du pipeline U servent à préparer une instruction flottante. Les quatre derniers sont spécifiquent des instructions flottantes et enregistrent les erreurs. Trois des opérations flottantes les plus fréquentes, l'addition, la multiplication et la division, sont câblées pour réduire encore le temps d'exécution.

 Le processeur Pentium possède deux caches internes de 8 Ko, l'un pour les données, l'autre pour le code (instructions). Données et code étant traités différemment dans le microprocesseur, chaque cache est optimisé pour sa fonction. Le cache code permet des transferts plus efficaces vers l'unité de préextraction, au travers d'un bus interne de 256 bits de large. Le cache données est relié à chacun des pipelines d'exécution et peut opérer en écriture différée (write-back), ce qui aide à réduire l'activité du bus externe : ce point est très important dans les applications en multitraitement où plusieurs processeurs partagent un bus commun. Bien que la séparation des caches entraîne un surcroît de complexité, elle augmente considérablement les performances du processeur.

' Certaines des instructions les plus fréquemment utilisées ont été câblées, c'est-à-dire qu'elles sont désormais traitées par un circuit spécialisé, et non par microcodage. Appelées instructions simples, elles s'exécutent en un seul cycle d'horloge. Elles comprennent les opérations entre registres de l'ALU ; MOV, INC, DEC, PUSH, POP et LEA ; JMP(near), CALL et LCC ; ADD, LOAD et MUL.