Il bug FDIV dei processori Intel Pentium ha segnato un capitolo importante nella storia della tecnologia, causando perdite enormi per l'azienda e modificando il panorama dell'informatica. A distanza di trent'anni dal suo lancio, il lavoro dell'ingegnere Ken Shirriff ha riportato l'attenzione sui dettagli tecnici che hanno portato a questo errore, illuminando la complessità delle operazioni matematiche nei microprocessori. In questo articolo, esploriamo cos'è il bug FDIV, come è nato e le conseguenze che ha avuto nel tempo.
Origini del bug FDIV nei processori Intel Pentium
Il bug FDIV è uno dei problemi più noti nella storia dell'informatica e ha avuto un impatto profondo sul mercato e sulla reputazione di Intel. Il termine FDIV si riferisce all'operazione di divisione in virgola mobile , un'operazione fondamentale per i calcoli numerici nei computer. Sfortunatamente, a causa di un difetto di progettazione nel circuito, il Pentium non era in grado di eseguire correttamente questa operazione, portando a risultati errati in determinate circostanze.
L'importanza della divisione in virgola mobile non può essere sottovalutata. Questa modalità consente di trattare numeri di grandezze estremamente diverse e viene utilizzata in applicazioni scientifiche, ingegneristiche e matematiche. A differenza dei numeri interi, i numeri in virgola mobile possono rappresentare valori molto grandi e molto piccoli, il che è cruciale per molte operazioni complesse.
L'unità di calcolo per la divisione in virgola mobile, nota come FPU , è un modulo integrato nel processore il cui compito è gestire tali operazioni. Nel Pentium, la FPU è stata progettata per eseguire le divisioni in modo particolarmente rapido grazie all'adozione dell'algoritmo SRT . Questo algoritmo consentiva di eseguire la divisione a due bit per ciclo di clock, un netto miglioramento rispetto ai processori precedenti, che eseguivano una divisione a un solo bit per ciclo.
Cause profonde del bug FDIV
Il bug FDIV si è manifestato a causa di un errore nella progettazione della tabella di divisione, cruciale per il funzionamento dell'algoritmo SRT. Questa tabella, costituita da 2048 celle, conteneva valori utilizzati per effettuare la divisione in virgola mobile e includeva numeri essenziali come -2, -1, 0, 1 e 2. Tuttavia, cinque celle chiave della tabella erano state impostate erroneamente a "0" anziché registrare correttamente il valore "2". Questa discrepanza ha portato a errori nei calcoli di divisione in specifiche condizioni, specialmente quando si trattava di ottenere risultati di elevata precisione.
Il problema era particolarmente insidioso, poiché si manifestava solo in determinate situazioni e quindi non era immediatamente evidente. Intel inizialmente sminuì la gravità del problema, affermando che l'errore si sarebbe potuto verificare solo una volta ogni 27.000 anni. Tuttavia, l'indagine di Ken Shirriff ha rivelato che l'errore era molto più frequente, con la possibilità di manifestarsi ogni 24 giorni, come dimostrato da studi successivi.
Ken Shirriff e la ricerca sulla verità del bug
L'analisi dettagliata del bug FDIV condotta da Ken Shirriff ha portato alla luce nuove informazioni vitali sul design del Pentium e sulla natura del difetto che ha portato a questo errore epocale. Utilizzando tecniche avanzate di microscopia, Shirriff è stato in grado di ottenere immagini ad alta risoluzione del chip Pentium, che conteneva circa 3,1 milioni di transistor. Queste immagini hanno permesso di esaminare ogni parte del circuito e di identificare le aree specifiche in cui si trovavano gli errori.
Attraverso il suo meticoloso lavoro, Shirriff è riuscito a identificare non solo le cinque celle errate nella tabella di divisione, ma anche altre undici celle che contenevano informazioni corrotte. Questo ha portato il totale a sedici voci errate nella tabella, un numero superiore a quanto inizialmente stimato. Tale scoperta ha messo in dubbio le affermazioni di Intel riguardo alla frequenza del bug e ha evidenziato l'importanza di una progettazione accurata e rigorosa negli elaboratori di nuova generazione.
Il lavoro di Shirriff non solo ha riportato alla luce un problema storico, ma ha anche suscitato domande sul controllo di qualità e sui protocolli di test utilizzati dai produttori di chip. Queste scoperte hanno influenzato il modo in cui l'industria ha trattato i problemi di progettazione futuri, sottolineando la necessità di un'attenzione scrupolosa ai dettagli e di una trasparenza maggiore nella comunicazione riguardo ai difetti hardware.