Pentium FDIV — Quando il processore sbagliava i decimali

Per anni abbiamo creduto che i numeri fossero l’ultima cosa di cui dubitare.
Il software può fallire, l’hardware può rompersi, l’uomo può sbagliare, la divisione però sembrava far parte di una perfezione lontana dal nostro mondo.

Dentro un processore, miliardi di transistor oscillano come un microcosmo deterministico.
Non c’è ambiguità, non c’è interpretazione: solo 0 e 1 che si rincorrono a velocità cosmica, eseguendo la matematica che abbiamo affidato loro.

Eppure, nel cuore del Pentium, un errore minuscolo sopravviveva inosservato: un decimale, leggermente sbagliato si era perso tra miliardi di operazioni corrette. Non ti sto quindi parlando di un crash spettacolare o di un fumo improvviso. Erano cinque voci mancanti in una tabella, cinque assenze nel silicio: abbastanza per dimostrare che anche la matematica, quando viene incarnata in materia, può tradire.

Questo non è il racconto di un computer che si ferma, è la storia di un terminale che continua a funzionare mentendo.

E quando un processore mente, non c’è debugger che tenga: il bug non vive nel codice, ma nel metallo.

BUG ARCHEOLOGY – EPISODIO 27

“La matematica è l’arte di dare lo stesso nome a cose diverse”
Henri Poincaré

👶 Introduzione per chi parte da zero

Nel 1994 il mondo stava entrando nell’era del personal computer come strumento universale.
Foglio di calcolo, CAD, simulazioni scientifiche, contabilità, ingegneria: tutto passava dalla CPU.

Intel dominava il mercato con una promessa implicita: i numeri calcolati dal processore sono corretti.

Il Pentium, fiore all’occhiello della casa di Santa Clara, era il primo processore x86 superscalare, veloce, ambizioso, simbolo di una nuova epoca.
Eppure, nel suo silicio, si nascondeva un errore minuscolo: un risultato numerico sbagliato.

I. Il sintomo: una divisione che mente

Era l’ottobre del 1994 quando Thomas Nicely, professore di matematica al Lynchburg College, stava calcolando costanti matematiche legate ai numeri primi: un lavoro paziente, ripetitivo e rigoroso.
Ma c’era qualcosa che proprio non tornava.

Gli stessi calcoli, eseguiti su macchine diverse, producevano risultati leggermente differenti. Non si trattava né di rumore numerico, né arrotondamenti previsti, ma piuttosto di errori sistematici, riproducibili.

La divisione in virgola mobile del Pentium, in rarissime condizioni, restituiva un valore errato alla quinta o sesta cifra decimale.

L’errore era piccolo, logicamente e dato che parliamo di parecchie cifre dopo la virgola, ma matematicamente imperdonabile.

II. L’origine: la matematica cablata nel silicio

Per capire il bug del Pentium bisogna calare di livello e scendere sotto il software, sotto il firmware fino ad arrivare dentro l’hardware.

Le divisioni in virgola mobile non venivano calcolate “a mano” come a scuola.
Il Pentium usava una tecnica basata su:

  • approssimazioni iterative
  • moltiplicazioni rapide
  • una Lookup Table (LUT) interna

Questa tabella conteneva valori precalcolati per accelerare il calcolo della divisione.
Fondamentalmente, era una scorciatoia matematica e, sfortunatamente, incompleta incisa nel silicio.

III. Il bug tecnico: cinque voci mancanti

Nel Pentium FDIV (Floating-point DIVision), una LUT di 1066 voci conteneva coefficienti necessari per l’algoritmo di divisione.

Cinque di queste voci mancavano.

Quando il divisore cadeva in una di quelle rarissime combinazioni, l’algoritmo:

  1. leggeva un valore errato dalla LUT
  2. propagava l’errore nelle iterazioni successive
  3. produceva un risultato leggermente sbagliato

🧩 Esempio semplificato:

4195835 / 3145727 = 1.333820449136241...
Pentium FDIV →     1.333739068902037...

L’errore era nell’ordine di 1 su 10⁹, invisibile per molti e letale per chi faceva scienza, finanza, ingegneria.

E soprattutto: non correggibile via software.

IV. Il contesto: quando l’hardware è legge

Negli anni ’90, il processore era considerato una verità matematica assoluta.
Il software poteva avere bug ed il sistema operativo poteva crashare.
Ma la CPU?

La CPU era l’aritmetica.

Intel aveva testato il Pentium senza però testarne tutte le combinazioni della LUT.
Cinque casi su miliardi erano sfuggiti.

Un difetto statistico che degenerava in un errore epistemologico perché non esiste “quasi corretto” in matematica.

V. La scoperta: l’archeologia del silicio

Nicely contattò Intel ed all’inizio, come è naturale che accadesse, l’azienda minimizzò:

“L’errore è così raro che non riguarda l’utente medio.”

La stima iniziale parlava di:
1 divisione errata ogni 27.000 anni di utilizzo medio.

Ma il punto non era la probabilità, era il principio.

Un professore universitario, poi la stampa, poi la comunità scientifica iniziarono a riprodurre il bug.
Ogni volta che emergeva, lasciava la stessa traccia: un decimale sbagliato inciso nel silicio.

VI. Il punto di non ritorno: la fiducia si rompe

Il 24 novembre 1994, IBM annunciò che avrebbe sospeso la vendita dei PC con Pentium. Questo fu il colpo finale.

Intel si rese conto di una verità brutale: un processore non è solo hardware, è un patto di fiducia e la matematica non è un’opinione.

Il 20 dicembre 1994, Intel annunciò il ritiro e la sostituzione gratuita di tutti i Pentium difettosi.
Costo stimato: 475 milioni di dollari.

Non per un crash ma per un piccolo, semplice ed allo stesso tempo importante decimale.

Dopotutto l’archeologia dei bug, anche negli episodi precedenti, ha fatto emergere più volte l’importanza dei calcoli, vedi per esempio la storia dell’Ariane 5 o del Mars Climate Orbiter.

VII. Perché è diverso da ogni altro bug

Il Pentium FDIV non è un bug come gli altri.

  • Non vive nel codice.
  • Non si corregge con una patch.
  • Non si disattiva con un flag.

È un errore fossilizzato.

Una volta prodotto, quel chip rimane sbagliato per sempre.
Ogni divisione potenzialmente colpevole.
Ogni calcolo una roulette epistemica.

Come un errore di conio in una moneta: minuscolo, ma eterno.

VIII. Le implicazioni morali e industriali

Il caso Pentium FDIV cambiò per sempre il modo di progettare CPU:

  • Verifica formale dell’hardware aritmetico
  • Test esaustivi delle LUT
  • Trasparenza sugli errata sheet
  • Nuova attenzione alla numerical correctness

Intel imparò una lezione che l’industria non aveva mai dovuto affrontare:

Non basta essere veloci.
Bisogna essere matematicamente corretti.

🕰️ Linea temporale degli eventi

1993 — 🧠 Progettazione del Pentium
Introduzione della divisione hardware con LUT.

Primavera 1994 — 🔍 Scoperta del bug
Thomas Nicely individua discrepanze nei calcoli.

Ottobre 1994 — 📰 Caso pubblico
La stampa tecnica diffonde il problema.

Novembre 1994 — 🛑 IBM sospende le vendite
La fiducia industriale crolla.

Dicembre 1994 — 🔁 Richiamo globale
Intel avvia la sostituzione gratuita.

IX. Lezioni filosofiche: quando il bit sbaglia

Il Pentium FDIV ci insegna una verità scomoda:

Anche la matematica, quando è incarnata nella materia, può mentire.

Il silicio non “capisce” i numeri: li approssima, li simula e li accelera.

E ogni scorciatoia è un compromesso.

Cinque voci mancanti in una tabella sono bastate per incrinare l’idea stessa di certezza computazionale.

X. Epilogo: archeologia della divisione

Scavando nel Pentium FDIV, l’archeologo del bug non trova solo una LUT difettosa, vi è presente tutta una cultura sottesa che credeva che l’hardware fosse infallibile.

Un mondo in cui:

  • il software si corregge
  • l’hardware si venera

Il Pentium ci ha ricordato che anche gli dèi di silicio possono sbagliare, e quando lo fanno, non chiedono scusa: continuano a perseverare nei loro errori di calcolo.

XI. Coda: il decimale che ritorna

Oggi gli errori non vivono più nelle LUT, ma:

  • nei modelli numerici di AI
  • nelle simulazioni finanziarie
  • nei sistemi critici che “approssimano” troppo

Ogni volta che accettiamo un risultato “abbastanza corretto”, un frammento del Pentium FDIV riaffiora.

Perché la morale è sempre la stessa:

Un chip non si corregge con un commit, un numero sbagliato, anche se piccolo, resta sbagliato per sempre.

Ed un un computer che sbaglia può essere riavviato, ma un computer che mente va studiato come un fossile.

Questo nodo della rete è alimentato da conoscenza libera e caffeina.
Se hai trovato qualcosa di utile, puoi supportarci con un caffè digitale.
👉 Offrimi un caffè

Powered by Buttondown

Lascia un commento