Sometimes Computers Make Mistakes: Reproducing That $475,000,000 Bug

A hands-on demonstration of the infamous Intel Pentium FDIV bug on original hardware, showing how a lookup table error in the SRT-4 division algorithm cost Intel $475 million.

I know the topic of bugs that changed the world has been beaten to death so thoroughly that there's nothing left of it. But here's the thing: most people just retell the same story over and over. Very few have actually reproduced the bug on real hardware. Today, we're going to do exactly that.

The Essence of the Bug

The Intel Pentium contained a floating-point division error. On certain number combinations, the coprocessor produced incorrect division results. These problematic pairs were relatively rare, making detection difficult initially. However, once discovered, Intel faced massive financial consequences — ultimately costing the company hundreds of millions of dollars in replacement costs and reputation damage.

Not all number pairs were affected. The error manifested sporadically, making diagnosis challenging. Intel later distributed commemorative epoxy-encased processor samples to employees — a grim souvenir of one of the most expensive hardware bugs in history.

A Bit About Division in the Pentium

The bug originated from Intel's transition to the faster SRT (Sweeney, Robertson, Tocher) division algorithm, replacing the older shift-and-subtract method. The Pentium implemented SRT-4 (Radix 4), where lookup table cells could hold five values: -2, -1, 0, +1, and +2.

SRT division lookup table

The lookup table was based on the high-order bits of the dividend and divisor. It was implemented as a programmable logic matrix rather than ROM. Some table entries were left empty — 16 problematic cells total, though only 5 actually produced incorrect results. The root cause was incorrectly omitted transistors in the needed positions.

Programmable logic matrix implementation

Hardware Review

For this experiment, I used the following test configuration:

  • Motherboard: A-Trend ATC-1000 (i430FX "Triton" chipset)
  • Primary processor: Intel Pentium A80502-100 (100 MHz, ceramic package, gold-plated pins)
  • Comparison processor: A later Pentium variant without the defect
  • RAM: 2 × 16 MB modules
  • Video: SiS 6202 PCI card
  • OS: Windows 98
  • Storage: Hard drive with a pre-installed system
Test motherboardSiS 6202 video cardDefective Pentium processor

The system helpfully reported the presence of the FDIV bug in its properties:

System info showing FDIV bugWorking Pentium processor

Important warning: Different Pentium generations required different voltages. Swapping CPUs without adjusting motherboard jumpers risked damaging components.

Running the Test

First, let's verify with the working processor. The classic test formula is:

(4195835 / 3145727) × 3145727 − 4195835

With a correct FPU, this should return exactly 0.

Windows 98 bootingCalculator openEngineering mode calculatorCorrect result: 0

Result: 0. Perfect. Now let's swap in the defective processor.

Preparing CPU swapGolden processor installed

The Bug in Action

Running the same calculation on the defective processor:

(4195835 / 3145727) × 3145727 − 4195835 = -256
Incorrect result: -256

Instead of zero, we get -256. The bug is alive and well, reproduced on actual vintage hardware over 30 years after it was first discovered.

What Happened in the End?

In reality, far from all numbers divided incorrectly. The pair shown here is just one of relatively few combinations that produce wrong results when divided. The insidious nature of the error lay precisely in its rarity — typical users were unlikely to encounter it in everyday work. But for scientific and financial computations, even rare errors are unacceptable.

Intel ultimately capitulated and offered free processor replacements to anyone who requested one. The total cost to the company reached approximately $475 million. Today, defective Pentium chips have become collector's items — a tangible reminder that even the most advanced hardware can harbor subtle, expensive mistakes.

References