Le Cyrix 6X86, un air de famille avec le Pentium Pro (01/1997)

Le 6×86, un air de famille avec le Pentium Pro

Comme le Pentium, le 6×86 de Cyrix est un processeur superscalaire : il est doté de deux unités de calcul sur les nombres entiers (plus une unité de calcul pour les nombres à virgules) alimentées par autant de files d’attente d’instructions. Mais, conçu plus tard, le 6×86 intègre plusieurs techniques qui améliorent radicalement son efficacité. Chez Intel, c’est dans le Pentium Pro qu’on les retrouve.

  • Superpipeline :

Les files d’attente du 6×86 comportent un plus grand nombre de places (7 contre 5 dans un Pentium) : cela permet d’assurer un flux d’instructions plus régulier vers les unités de calcul, et donc une meilleure efficacité du processeur.

  • Achèvement hors séquence :

Une instruction exécutée plus rapidement peut quitter la fille d’attente par  une  porte dérobée : l’instruction suivante peut être traitée plus rapidement.

  • Exécution spéculative :

On peut dire que le processeur prédit l’avenir, en quelque sorte : après analyse statistique sur les suites d’instruction générées par des milliers de programmes, on intègre dans le processeur des graphes permettant de prévoir, et donc de déclencher plus tôt les instructions suivant une instruction de donnée. Ces prédictions s’avèrent exactes dans 70 à 90% des cas.

  • Exécution dans le désordre :

Certaines instructions requièrent un accès en mémoire (cache ou vive) pour lire les données. Dans un système out-of-order, elles sont placées en attente, tandis que d’autres instructions sont traitées. En sortie de calcul, un dispositif replace les résultats dans le bon ordre.

  • « Renommage » des registres :

L’architecture du PC suppose que le processeur dispose de huit registres (dédiés à un usage précis), autrement dit, de mémoires tampons permettant de stocker les données à traiter et les résultats des calculs. Dans les puces de Cyrix, le processeur renomme les registres en fonction de l’usage des données qui y sont stockées : c’est beaucoup plus rapide que de transférer les informations d’un registre à un autre-opération fréquente dans les processeurs traditionnels. De plus, les architectes du 6×86 ont placé trente-deux registres, dont huit sont nommés en fonction des règles de compatibilité des processeurs de PC : cela  réduit le nombre d’accès à la mémoire (vive ou cache).

Suppression de la dépendance des données :

Les résultats des calculs sont simultanément mis à la disposition des deux files d’attente. Ce procédé évite de bloquer une unité de calcul, le temps d’aller et lire le résultat d’une instruction exécutée dans l’autre unité de calcul.