It’s been 30 years since Intel’s infamous Pentium FDIV bug reared its ugly head – a math bug caused Intel’s first CPU recall

Intel Pentium 200 MHz
(Image credit: Wikimedia Commons)

2024 marks the 30th anniversary of Intel's announcement of a math glitch on some of its Pentium CPUs (via Heise).

In 1993, Intel launched its first generation Pentium CPUs, which used the new P5 architecture (hence Pentium) and succeeded the older Intel 486 from 1989. The new chip boasted the first-ever superscalar design, branch prediction, and a faster-floating point unit (FPU) that would help speed up doing math involving floating point numbers, basically those with a decimal point.

One of the reasons why floating point math got a speed boost on the Pentium was thanks to using the Sweeney-Robertson-Tocher algorithm for division. Thanks to this upgrade, the Pentium could calculate division at a rate of two bits per clock cycle, while the 486 could only muster one bit per cycle.

However, the algorithm required the Pentium to set aside an array of 2,048 cells (like those in a modern SSD), of which 1,066 needed to be set to values between -2 and 2. Intel made a small but critical mistake when setting up the array; five cells were set to 0 instead of 2.

Any time the algorithm needed to check these cells to do floating point division (or FDIV), it would do the math incorrectly, so the bug was born.

Because only five of the 1,066 populated cells had the wrong value, floating point division calculations were usually correct until at least the fourth digit, which is perhaps why the bug went unnoticed for over a year. Eventually, math professor Thomas Nicely at Lynchburg College discovered the bug, running calculations on multiple computers, one of which used a Pentium.

By October 1994, Nicely was certain the bug was embedded in the Pentium CPU itself and sent a letter to Intel about it. He also began telling others in the academic community about the bug, which became public knowledge very quickly thanks to the nascent Internet. About a week later, the media started reporting on the FDIV bug, and it became such a big story that CNN even ran a segment on it.

But before Intel even received the letter, it was already aware of the problem and was patching it so newly manufactured chips would operate as intended. There was, however, no plan at first to replace any Pentiums affected by the bug because Intel believed it was justn’t a big deal. Those who wanted a replacement chip without the bug needed to show Intel that they were actually encountering it.

Intel’s attitude towards the FDIV bug sparked significant backlash, and Intel’s long-time business partner IBM took matters into its own hands by halting sales of Intel-powered PCs. IBM and other OEMs also offered replacements for Pentiums.

On December 20, Intel finally decided to stop ignoring the issue and announced a recall for all buggy Pentiums. Intel acknowledged the problem in its 1994 annual report, saying it had been “engulfed in a controversy,” and admitted it cost $475 million to recall the defective CPUs. However, Intel also claimed Pentium sales continued to climb during the FDIV “crisis” and that its “PCs everywhere” strategy was working.

The FDIV bug episode was the first time Intel ever had to recall CPUs, and it was also the company’s first major hardware error, but certainly not the last. 2024 was not only the 30th anniversary of the FDIV bug but also the year that Intel acknowledged that Raptor Lake CPUs were frying themselves to death due to too much voltage.

This time around, Intel didn’t need to recall all Raptor Lake CPUs, but it has replaced all chips damaged by the elevated voltage bug. The company also issued a new CPU microcode via new motherboard BIOSes to prevent the bug from happening again.

While the FDIV bug couldn’t be genuinely fixed with software or firmware patches, at least it didn’t kill any processors. Given how infrequently Pentium owners encountered the FDIV bug, the Raptor Lake elevated voltage bug arguably impacted more users, although not every processor suffered damage.

Matthew Connatser

Matthew Connatser is a freelancing writer for Tom's Hardware US. He writes articles about CPUs, GPUs, SSDs, and computers in general.

  • dutty handz
    "was justn't"

    God no, "just wasn't"
    Reply
  • setx
    However, the algorithm required the Pentium to set aside an array of 2,048 cells (like those in a modern SSD)
    Why are you writing nonsense again? Those calls are not like the ones in SSD and couldn't be rewritten to correct values – that's the whole point of recall instead of microcode update.
    Reply
  • Ulisses Bebianno de Mello
    Cool story but wrong picture.
    The Pentium 200 in the picture wasn't among the affected batch. The bug impacted earlier models only.

    From Wikipedia:

    "The FDIV bug affects the 60 and 66 MHz Pentium P5 800 in stepping levels prior to D1, and the 75, 90, and 100 MHz Pentium P54C 600 in steppings prior to B5"
    Reply
  • ggeeoorrggee
    Fun story about the FDIV bug:

    In 1994, I was enlisted in the USAF as a programmer and a group of us were tasked with creating a successor to a very old PDP-11 based system. We ordered 12 rackmount systems from one of the big white box guys back then that did systems for the Pentagon. Even split between 486DX4-100 and Pentium P5 60MHz units.

    Our Lt — who incidentally introduced us all to a little gem called Doom which sent my life down a gaming path — found the calculations to test our procs and we verified that we had 6 flawed procs. I was tasked with contacting our sales rep at the pc builder. He told me that due to the size of the recall and how many Pentiums Intel could crank out in those days that it would likely be a few weeks before we could get our replacements.

    He then asked what the computers were used for. I should, at this point, mention that the air base on which I was stationed was Andrews AFB which flies one particularly important mission.

    “Well, they’re for the ground radio to telephone switching system for Air Force One and priority mission flight communications around the world.” Or something to that effect, I said.

    The expression “pregnant pause” was made for this very moment.

    “I can be on a plane in 2 hours”, he replied. God as my witness we had a 10 minute debate (with the guy on hold) about doing it and how much trouble we might cause (or get into).

    Since the system wasn’t actually on line, we had to let him off easy. We did get our replacement tray of chips in just over a week though. Strangely, the speed measuring software reported the new procs as 63MHz. I remember the speed because we were trying to figure out why the replacements were running the non-FLOP benchmark software faster, so we checked reported proc speed. I have never found any documentation for that speed in Socket 4. Only 60 and 66.
    Reply
  • kerric
    Tom was my calculus professor at LC, great teacher and amazing intellect.
    Reply