- Bug de la division du Pentium
-
Le bug de la division du Pentium est un bug informatique ayant affecté le microprocesseur Pentium du fabricant Intel peu après son lancement en 1994 : une erreur était introduite lors de certaines opérations de division.
Détection
En octobre 1994, le professeur Thomas Nicely[note 1] de l'université de Lynchburg dévoile un dysfonctionnement dans l'unité de calcul en virgule flottante du Pentium. Il s'est rendu compte que certaines opérations de division renvoient toujours une valeur erronée par excès sur ce processeur. Ces erreurs dans les divisions sont rapidement confirmées par d'autres personnes.
Ce bug devient très vite notoire et est surnommé le « bug FDIV du Pentium » (FDIV est l'instruction de division en virgule flottante des microprocesseurs x86). D'autres ont mis en évidence des problèmes de division dont le résultat retourné par le Pentium était au-dessus de la valeur réelle jusqu'à 61 unités par million. L'erreur provenait de l'initialisation incomplète (dans le silicium) d'une table de valeurs servant à un nouvel algorithme de division, plus rapide.
La présence du bug peut être vérifiée via l'opération qui suit, à effectuer dans une application qui utilise de manière native les nombres en virgule flottante, y compris la calculatrice de Windows :
- 4 195 835,0 / 3 145 727,0 = 1,333 820 449 136 241 002 (valeur correcte),
- 4 195 835,0 / 3 145 727,0 = 1,333 739 068 902 037 589 (valeur erronée retournée par le processeur).
Ce problème s'est produit seulement sur quelques modèles du processeur Pentium. Tous les processeurs de famille Pentium ayant une fréquence d'horloge de plus de 100 MHz et plus récents sont exempts de ce bug.
Ces constatations ont alimenté une vive polémique. Intel a d'abord nié le problème[réf. nécessaire]. Plus tard, Intel a clamé l'insignifiance des défauts de ses microprocesseurs, voulant rassurer les utilisateurs et a refusé de remplacer systématiquement les microprocesseurs défectueux. Cependant, si une personne pouvait montrer qu'elle avait été affectée par le dysfonctionnement, alors Intel remplacerait son processeur.
Bien que des évaluations effectuées par des organismes indépendants montrèrent le peu d'importance des conséquences du bug et que l'effet était négligeable dans la plupart des utilisations, cela a provoqué une grande colère publique. Des compagnies comme IBM (dont le clone du Pentium « 586 » concurrençait au même moment la gamme des Pentium d'Intel) ont joint leur voix pour exprimer leur colère. Finalement, Intel a décidé de remplacer tous les processeurs Pentium défectueux, ce qui aurait pu représenter un coût énorme pour la compagnie. Toutefois, seule une petite fraction des possesseurs de processeurs défectueux a demandé l'échange.
Notes
- La chronologie exacte des événements est disponible sur la page personnelle de Thomas Nicely (en).
Liens externes
- (fr) Les leçons d'un algorithme délinquant : un article concernant le bug de la division du Pentium.
- (en) Pentium Processor Divide Algorithm : description de l'algorithme de division du Pentium et de l'erreur dans la table de look-up, sur le site d'Intel.
- (en) Informations sur le bug, en explique notamment la cause.
- (en) A Tale of Two Numbers, par Cleve Moler
- (en) Archive d'articles et documents publiés sur le sujet (possibilité de télécharger une archive en format ZIP).
Wikimedia Foundation. 2010.