# Intel Pentium

L'Intel Pentium est un microprocesseur d'architecture x86 annoncé par Intel le 22 mars 1993. Successeur de l'Intel 80486, c'est le premier microprocesseur utilisant la marque déposée Pentium, et il est parfois appelé « Pentium original » pour le différencier des microprocesseurs plus récents également vendus sous ce nom. Cinquième génération de la famille x86, il a été appelé P5 en interne, et il est parfois appelé i586 dans des documents techniques externes à Intel.

## Développement

L'équipe basée à Santa Clara qui avait précédemment développé les microarchitectures 80386 et 80486, fut à l'origine de la conception de la microarchitecture P5. Les travaux ont débuté en 1989 avec une décision d'adopter une architecture superscalaire, dotée de cache intégré, de calcul en virgule flottante et de prédiction de branchement$^,$. Une simulation préliminaire réussie a été réalisée en 1990, suivie du début de la conception effective. À cette période, l'équipe comptait plusieurs dizaines d'ingénieurs. La migration vers le silicium a eu lieu en avril 1992, marquant le début des tests bêta.
À mi-1992, l'équipe dédiée au P5 comptait 200 ingénieurs. Initialement, Intel prévoyait de dévoiler le P5 lors du salon professionnel PC Expo en juin 1992, avec une annonce officielle prévue pour septembre de la même année. Cependant, des problèmes de conception ont entraîné l'annulation de la démonstration et le retard de l'introduction officielle de la puce jusqu'au printemps 1993$^,$.
John H. Crawford, architecte en chef du 80386 original, a codirigé la conception du P5, avec Donald Alpert, qui a dirigé l'équipe d'architectes. Dror Avnon a dirigé la conception du FPU. Vinod K. Dham était directeur général du groupe P5.
Le projet d'architecture multicœur Larrabee d'Intel utilise un cœur de processeur dérivé d'un cœur P5 (P54C), augmenté d'un multithreading, d'instructions 64 bits et d'une unité de traitement vectoriel de 16 bits. La microarchitecture Bonnell à faible puissance d'Intel, utilisée dans les premiers cœurs de processeurs Atom, utilise également un double pipeline d'ordre similaire à P5.
Intel a utilisé le nom Pentium au lieu de 80586, parce qu'en 1991, elle avait perdu un litige contre Advanced Micro Devices concernant la marque « 386 », un juge ayant déclaré que ce nombre était déjà d'usage courant pour les microprocesseurs, et donc un terme générique. La société a engagé Lexicon Branding pour trouver un nouveau nom non numérique.

### Améliorations par rapport au 80486

La microarchitecture P5 apporte plusieurs avancées importantes par rapport à l'architecture 80486 précédente.
* Performance :
** Architecture superscalaire - Le Pentium possède deux chemins de données (pipelines) qui lui permettent d'exécuter deux instructions par cycle d'horloge dans de nombreux cas. Le chemin principal (U) peut traiter n'importe quelle instruction, tandis que l'autre (V) peut traiter les instructions simples les plus courantes$^,$.
** Le bus de données externe de 64 bits double la quantité d'informations qu'il est possible de lire ou d'écrire à chaque accès à la mémoire et permet donc au Pentium de charger son cache de code plus rapidement que le 80486 ; il permet également un accès et un stockage plus rapides des données FPU x87 de 64 bits et 80 bits$^,$.
** Unité à virgule flottante beaucoup plus rapide. Certaines instructions ont fait l'objet d'une amélioration considérable, notamment FMUL, dont le débit est jusqu'à 15 fois supérieur à celui de l'unité FPU 80486. Le Pentium est également capable d'exécuter une instruction FXCH ST(x) en parallèle avec une instruction FPU ordinaire (arithmétique ou load/store)$^,$.

### Errata
#### FDIV BUG

Les premières itérations des Pentiums P5, fonctionnant à des fréquences allant de 60 à 100 MHz, étaient affectées par un dysfonctionnement dans leur unité de virgule flottante, provoquant des résultats incorrects (mais prévisibles) lors de certaines opérations de division. Ce problème, découvert en 1994 par le professeur Thomas Nicely du Lynchburg College en Virginie, est devenu célèbre sous le nom de bogue FDIV du Pentium$^,$. Cette découverte a placé Intel dans une situation embarrassante, les contraignant à mettre en place un programme d'échange pour remplacer les processeurs défectueux.

#### F00F BUG

En 1997, un autre erratum a été découvert, qui pouvait permettre à un programme malveillant de planter un système sans privilèges spéciaux, le "bug F00F". Tous les processeurs de la série P5 étaient concernés et aucun correctif n'a jamais été publié, mais les systèmes d'exploitation contemporains ont été corrigés avec des solutions de contournement pour éviter les plantages.

## Cœurs et révisions

Le Pentium était le principal microprocesseur d'Intel pour les ordinateurs personnels au milieu des années 1990. La conception originale a été réimplémentée avec des procédés de fabrication plus récents et de nouvelles fonctionnalités ont été ajoutées pour maintenir sa compétitivité et pour répondre à des marchés spécifiques tels que les ordinateurs portables. Il y a donc eu plusieurs variantes de la microarchitecture P5.

### P5

Le premier cœur de microprocesseur Pentium portait le nom de code « P5 ». Son code produit était 80501 (80500 pour les premiers steppings Q0399). Il existait deux versions, spécifiées pour fonctionner à 60 MHz et 66 MHz respectivement, utilisant le socket 4. Cette première implémentation du Pentium a été publiée sous la forme d'un PGA 273 broches et fonctionnait avec une alimentation de 5 V (le Pentium a été conçu pour répondre aux exigences de compatibilité de la logique transistor-transistor (TTL). Il contenait 3,1 millions de transistors et mesurait 16,7 mm sur 17,6 mm pour une surface de 293,92 mm$^2$.
Il a été fabriqué selon un procédé BiCMOS (bipolar complementary metal-oxide-semiconductor) en 800 nm. La conception à 5 volts a entraîné une consommation d'énergie relativement élevée pour sa fréquence de fonctionnement par rapport aux modèles qui ont suivi directement.

### P54C

Le P5 a été suivi par le P54C (80502) en 1994, avec des versions spécifiées pour fonctionner à 75, 90 ou 100 MHz en utilisant une alimentation de 3,3 volts$^,$. Marquant le passage au socket 5, ce fut le premier processeur Pentium à fonctionner à 3,3 volts, ce qui réduisait la consommation d'énergie, mais nécessitait une régulation de la tension sur les cartes mères. Comme pour les processeurs 486 à cadence plus élevée, un multiplicateur d'horloge interne a été utilisé à partir de ce moment pour permettre aux circuits internes de fonctionner à une fréquence plus élevée que les bus d'adresses et de données externes, car il est plus compliqué et plus encombrant d'augmenter la fréquence externe, en raison de contraintes physiques.
Il permettait également le multiprocessing bidirectionnel et disposait d'un APIC local intégré et de nouvelles fonctions de gestion de l'énergie. Il contenait 3,3 millions de transistors et mesurait 163 mm$^2$$^,$. Il a été fabriqué avec un procédé BiCMOS qui a été décrit comme étant à la fois 500 nm et 600 nm en raison de définitions différentes.

### P54CQS

Le P54C a été suivi par le P54CQS au début de 1995, qui fonctionnait à 120 MHz. Il a été fabriqué avec un procédé BiCMOS en 350 nm et a été le premier microprocesseur commercial à être fabriqué avec un procédé en 350 nm$^,$. Le nombre de transistors est identique à celui du P54C et, malgré le procédé plus récent, la surface de la puce est également identique. La puce a été connectée au boîtier par collage de fils, ce qui ne permet que des connexions le long des bords de la puce.
Une puce plus petite aurait nécessité une refonte du boîtier, car la longueur des fils est limitée et les bords de la puce seraient plus éloignés des pastilles du boîtier. La solution a consisté à maintenir la taille de la puce, à conserver l'anneau existant et à réduire uniquement la taille des circuits logiques du Pentium pour lui permettre d'atteindre des fréquences d'horloge plus élevées.

### P54CS

Le P54CQS a été rapidement suivi par le P54CS, qui fonctionnait à 133, 150, 166 et 200 MHz, et a introduit le socket 7$^,$. Il contenait 3,3 millions de transistors, mesurait 90 mm$^2$ et était fabriqué avec un procédé BiCMOS en 350 nm avec quatre niveaux d'interconnexion.

### P24T

Les Pentium OverDrive (en) P24T pour systèmes 486 sont sortis en 1995. Ils étaient basés sur des versions 3,3 V 600 nm avec une horloge de 63 ou 83 MHz$^,$ Comme ils utilisaient le socket 2/3, certaines modifications ont dû être apportées pour compenser le bus de données 32 bits et le cache L2 embarqué plus lent des cartes mères 486. Ils étaient donc équipés d'une mémoire cache L1 de 32 ko (le double de celle des processeurs Pentium pré-P55C).

### P55C

Le P55C (ou 80503) a été développé par le centre de recherche et de développement d'Intel à Haïfa, en Israël. Il était vendu sous le nom de Pentium avec technologie MMX (généralement appelé Pentium MMX) ; bien qu'il soit basé sur le coeur P5, il comportait un nouvel ensemble de 57 instructions « MMX » destinées à améliorer les performances dans les tâches multimédias, telles que l'encodage et le décodage des données des médias numériques. La gamme Pentium MMX a été présentée le 22 octobre 1996 et commercialisée en janvier 1997$^,$.
Les nouvelles instructions fonctionnent sur de nouveaux types de données : des vecteurs compressés de 64 bits de huit entiers de 8 bits, quatre entiers de 16 bits, deux entiers de 32 bits ou un entier de 64 bits. Ainsi, par exemple, l’instruction PADDUSB (Packed ADD Unsigned Saturated Byte) ajoute deux vecteurs, chacun contenant huit entiers non signés de 8 bits, par élément ; chaque addition qui saturerait est saturée, en donnant 255, la valeur maximale non signée qui peut être représentée dans un octet. Ces instructions plutôt spécialisées nécessitent généralement un codage spécial de la part du programmeur pour être utilisées.
Les autres modifications apportées au coeur comprennent un pipeline à 6 étapes (contre 5 sur le P5) avec une pile de retour (réalisée pour la première fois sur le Cyrix 6x86) et un meilleur parallélisme, un décodeur d'instructions amélioré, un cache de données L1 de 16 ko + un cache d'instructions L1 de 16 ko avec une associativité à 4 voies (contre 8 ko de données/instructions L1 avec 2 voies sur le P5), 4 tampons d'écriture pouvant être utilisés par l'un ou l'autre pipeline (contre un correspondant à chaque pipeline sur le P5) et un prédicteur de branchement amélioré tiré du Pentium Pro, avec un tampon de 512 entrées (contre 256 sur le P5)$^,$$^,$.
Il contenait 4,5 millions de transistors et avait une surface de 140 mm$^2$. Il a été fabriqué avec un procédé CMOS en 280 nm utilisant le même pas de métallisation que le procédé BiCMOS en 350 nm précédent, de sorte qu'Intel l'a décrit comme « 350 nm » en raison de sa densité de transistors similaire. Le procédé comporte quatre niveaux d'interconnexion.
Bien que le P55C soit resté compatible avec le Socket 7, les exigences de tension pour l’alimentation de la puce diffèrent des spécifications standard du Socket 7. La plupart des cartes mères fabriquées pour le Socket 7 avant la sortie du P55C ne sont pas conformes au rail double tension requis pour le bon fonctionnement de ce processeur (tension du coeur de 2,8 volts, tension d’entrée/sortie (E/S) de 3,3 volts). Intel a résolu le problème avec des kits de mise à niveau OverDrive dotés d’un interposeur avec sa propre régulation de tension.

## Concurrents

Après l'introduction du Pentium, des concurrents tels que NexGen, AMD, Cyrix et Texas Instruments ont annoncé des processeurs compatibles avec le Pentium en 1994$^,$. Le magazine CIO a identifié le Nx586 de NexGen comme étant le premier processeur compatible avec le Pentium, tandis que PC Magazine a décrit le Cyrix 6x86 comme étant le premier. Ils ont été suivis par l'AMD K5, qui a été retardé en raison de difficultés de conception. AMD a ensuite acheté NexGen pour l'aider à concevoir l'AMD K6, et Cyrix a été racheté par National Semiconductor. Les processeurs ultérieurs d'AMD et d'Intel conservent la compatibilité avec le Pentium d'origine.

### Galerie

* NexGen Nx586-P90
* Cyrix 6x86
* AMD K5
* AMD K6