Next: Le processeur Intel Up: Les microprocesseurs xxx86 Previous: Le processeur Pentium

Les compatibles Pentium

Du fait de sa popularité, les processeurs de la série 80x86 ont été les processeurs les plus largement copiés, du NEC V20, clone du 8086, aux clones d'AMD et de Cyrix des processeurs 80386 et 80486, et maintenant du Pentium.

Nous avons décidé d'intégrer dans l'étude consacrée aux processeurs Intel les compatibles Pentium, car il est sûr que ces processeurs joueront un rôle non négligeable sur le marché. Ainsi, Compaq a récemment annoncé qu'il utiliserait le Nx586 de Nexgen pour certains de ses modèles. AMD, qui fournit déjà Hewlett-Packard en 486, pourrait bien se voir également sélectionné pour son futur K5.

Par ailleurs, l'étude de ces compatibles est particulièrement intéressante dans la mesure où elle fait ressortir les défauts du jeu d'instructions et illustre les diverses solutions mises en oeuvre pour y remédier.

Le compatible Pentium de Cyrix : le M1

Le processeur M1 de Cyrix a été annoncé à la fin de l'année 1993. Il devait être commercialisé au deuxième semestre 1994, mais finalement une version simplifiée de ce composant, le M1sc a vu le jour en juillet 1995. Ce processeur fait appel à des techniques avancées d'architecture telles que prédiction de branchement, exécution spéculative et dans le désordre et renommage de registres.

Le renommage de registres.

L'un des gros problèmes de l'architecture Intel est le faible nombre de registres : huit, par rapport aux 32 registres classiques d'une architecture RISC. Ceci a pour conséquence un nombre important de transferts entre la mémoire et les registres, les opérandes pouvant être directement accédées en mémoire puisque, comme on l'a vu, le jeu d'instructions supporte ce type d'opérations. Cette situation tend à diminuer les performances de deux manières :

Une solution classique à ce second problème est de mettre en oeuvre un mécanisme de renommage de registres. C'est la solution choisie par Cyrix qui implémente 32 registres physiques pour les huit registres logiques vus par le programmeur.

Le pipeline.

L'efficacité du design du M1 se ressent également au niveau des vraies dépendances (RAW). La figure schématise les deux pipelines d'exécution implémentés sur ce processeur. Les pipelines incluent des étages séparés pour la lecture des données, la phase de calcul et enfin l'étape de mise à jour de la mémoire. Dans le cas d'une séquence d'opérations dépendantes (par exemple :MOV DX, [mem] ; ADD AX, DX) les mécanismes de bypass mis en oeuvre entre les deux pipelines permettent d'exécuter ces instructions en parallèle. Dans la mesure où, sur le Pentium, l'étage de lecture des opérandes et l'étage de calcul arithmétique sont concurrents, ces deux opérations sont exécutées séquentiellement . Par ailleurs, ces mécanismes jouent également un rôle au niveau du couplage des instructions plus performant sur ce processeur.

Les deux pipelines ne sont pas symétriques. Le << pipeline X >> est le seul à gérer les branchements ainsi que les instructions flottantes.

Le pipeline, décrit figure est particulièrement long par rapport aux cinq étages classiques des processeurs RISC ou du Pentium. La technique du superpipeline utilisée est à rapprocher du design des processeurs Alpha et MIPS R4000. Le problème classique de ce type de pipeline est celui due à une mauvaise prédiction de branchement. Pour y remédier, le M1 utilise un BTB (Branch Target Buffer) associatif par ensemble à quatre voies d'une capacité de 256 entrées (idem que le Pentium). La prédiction de branchement utilisée est identique à celle du Pentium (prédiction à deux bits). Le processeur de Cyrix implémente également une pile d'adresses de retour de huit entrées. Ce design, similaire à celui de processeurs hautes performances tels que DEC ou MIPS, devrait améliorer le taux de b