Bogue de la division du Pentium

Un article de Wikipédia, l'encyclopédie libre.

Le 30 octobre 1994, le professeur Thomas Nicely de l'université de Lynchburg découvre un dysfonctionnement dans l'unité de calcul en virgule flottante du Pentium. Il se rend compte que certaines opérations de division renvoient toujours une valeur erronée par excès. Ces erreurs dans les divisions sont rapidement confirmées par d'autres personnes.

Ce bogue devient très vite notoire et est surnommé le « bogue 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 :

  • 4195835.0/3145727.0 = 1.333 820 449 136 241 002 (valeur correcte),
  • 4195835.0/3145727.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 bogue.

Ces constatations ont alimenté une vive polémique. Intel a nié dans un premier temps le problème. 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 bogue 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 de possesseurs de processeurs défectueux a demandé l'échange.

[modifier] Liens externes