Pentium FDIV bug

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Intel Pentium 66 MHz (sSpec=SX837) con il bug FDIV.

Il Pentium FDIV bug è un difetto diffuso tra le FPU dei primi processori Intel Pentium.

Fu scoperto dal professore Thomas Nicely del Lynchburg College[1], era presente negli esemplari funzionanti fino ai 100 MHz. Intel ha attribuito l'errore alle voci mancanti nella tabella di ricerca utilizzata dal circuito di divisione in virgola mobile[2].

Storia[modifica | modifica wikitesto]

La scoperta avvenne nel dicembre del 1994, quando il professore, intento nella sua opera di ricerca, tentò di calcolare il risultato di una particolare espressione matematica (la costante di Brun); il risultato ottenuto era ben lontano da quanto si era prospettato teoricamente, anche considerando possibili errori di arrotondamento. Allora Nicely provò ad effettuare il calcolo su una macchina che montava il più vecchio processore 486, notando con immenso stupore che quest'ultimo risultato appariva corretto.

Durante esperimenti successivi Nicely scoprì che il processore sbagliava a calcolare espressioni semplici come se x era un numero contenente diverse cifre dopo la virgola. Allora Nicely contattò la casa produttrice, la quale dichiarò di essere già a conoscenza del problema e che si stava lavorando per eliminare il bug sui nuovi processori.

Il 30 ottobre 1994, Nicely inviò una e-mail che descriveva l'errore che aveva scoperto nell'unità in virgola mobile Pentium a vari contatti, richiedendo rapporti di test per la falla sui 486-DX4, Pentium e cloni Pentium[1].

La storia fu pubblicata nella stampa, per la prima volta il 7 novembre 1994, in un articolo in Electronic Engineering Times, "Intel fixes a Pentium FPU glitch" by Alexander Wolfe.[3]

La storia è stata ripresa dalla CNN in una news trasmessa il 21 novembre 1994[1]. Ciò lo ha portato alla ribalta dell'opinione pubblica.

Moltissimi utenti, venuti a conoscenza del problema, fecero pressioni sulla Intel affinché sostituisse tutti i processori difettosi, ma dall'altra parte Intel propose inizialmente la sostituzione del processore solo per coloro i quali avessero dimostrato di avere necessità, nel proprio lavoro, di effettuare calcoli molto precisi (difatti un utente normale non avrebbe mai notato il difetto del processore). Alla fine Intel dovette cedere e fu costretta a sostituire tutti i chip incriminati con i nuovi affrontando una spesa di circa 475 milioni di dollari[4]. Alcuni dei chip difettosi sono stati successivamente trasformati in portachiavi da Intel[5].

Un articolo del 1995 in "Science" descrive il valore dei problemi della teoria dei numeri nella scoperta dei bug dei computer e fornisce il background e la storia matematica della costante di Brun, il problema a cui stava lavorando Nicely quando ha scoperto il bug[6].

Descrizione[modifica | modifica wikitesto]

Questo difetto causava un piccolo errore sistematico in alcune operazioni di divisione effettuate dalle unità dei processori colpiti (il nome deriva appunto da FDIV, l'istruzione in assembly x86 per le divisioni in virgola mobile), e fu verificato da molti utenti di Internet, i quali lo battezzarono col nome che porta oggi.

Note[modifica | modifica wikitesto]

  1. ^ a b c Professor Thomas Nicely, Pentium FDIV flaw FAQ, su trnicely.net.
  2. ^ Statistical Analysis of Floating Point Flaw: Intel White Paper (PDF), Intel, 9 luglio 2004, p. 9. URL consultato il 5 aprile 2016.
  3. ^ Alexander Wolfe, Intel fixes a Pentium FPU glitch, su davefaq.com.
  4. ^ Intel adopts upon-request replacement policy on Pentium processors with floating point flaw; Will take Q4 charge against earnings, Business Wire, 20 dicembre 1994. URL consultato il 24 dicembre 2006 (archiviato dall'url originale il 10 luglio 2012).
  5. ^ How many engineers does it take to change a lightbulb?, in Boiledbeans, 20 aprile 2009. URL consultato il 10 novembre 2009.
  6. ^ Barry A. Cipra, How number theory got the best of the Pentium chip, in Science, vol. 267, nº 5195, 13 gennaio 1995, pp. 175, DOI:10.1126/science.267.5195.175, PMID 17791336.
Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica