Eroarea Pentium FDIV este o eroare în virgulă mobilă în procesoarele Pentium originale lansate de Intel în 1994 . Eroarea a fost exprimată prin faptul că atunci când se efectuează împărțirea peste numere în virgulă mobilă folosind instrucțiunea procesorului FDIV, în unele cazuri rezultatul poate fi incorect.
Această eroare a fost descoperită și publicată pentru prima dată de profesorul de la Lynchburg College Thomas Nicely în octombrie 1994 [1] .
Potrivit Intel, cauza problemei au fost inexactitățile din tabelul de căutare utilizat în timpul operațiunii de divizare [2] .
După cum sa dovedit, Intel știa despre această problemă, dar a rămas tăcut. În plus, Intel credea că, întrucât acest defect este semnificativ doar pentru un cerc restrâns de utilizatori (matematicieni și alți oameni de știință), utilizatorii care doresc să înlocuiască procesorul ar trebui să contacteze compania și să demonstreze că au nevoie de această înlocuire.
Efortul producătorului de a acoperi problema și reacția la descoperirea acesteia au dus la nemulțumirea consumatorilor și la critici ample din presă, inclusiv un raport puternic CNN . Drept urmare, compania și-a schimbat poziția și a anunțat că va fi liberă să schimbe procesoarele defecte pentru toată lumea. Andy Grove a emis scuze publice. Povestea a costat-o pe Intel mai mult de jumătate din profitul său pentru ultimul trimestru al anului 1994 - 475 milioane USD [3] .
Puteți reproduce singur eroarea în aplicațiile care folosesc un coprocesor matematic atunci când lucrați cu numere în virgulă mobilă.
4195835,0/3145727,0 = 1,333820449136241002 (valoare corectă)
4195835.0 / 3145727.0 = 1.333 739 068 902 037 589 (valoare eronată returnată de procesorul care conține defectul)
O modalitate mai vizuală de a reproduce:
(4195835/3145727)*3145727 = 4195835 (când înmulțim și împărțim cu același număr, obținem numărul inițial)
(4195835/3145727)*3145727 = 4195579 (valoare incorectă returnată de procesorul defect)