The flaw was publicly disclosed by Professor Thomas Nicely, then at Lynchburg College, in 1994.
Although encountering the flaw was extremely rare in practice (Byte magazine estimated that 1 in 9 billion floating point divides with random parameters would produce inaccurate results), both the flaw and Intel's handling of the matter were heavily criticized. Intel ultimately recalled the defective processors.
On October 30, 1994, Nicely sent an email out describing the error he had discovered in the Pentium floating point unit to various contacts, requesting reports of testing for the flaw on 486-DX4s, Pentiums and Pentium clones.
This flaw in the Pentium FPU was quickly verified by other people around the Internet, and became known as the Pentium FDIV bug (FDIV is the x86 assembly language instruction for floating-point division). Other people found division problems where the result returned by the Pentium was off by up to 61 parts per million.
The story first appeared in the press on November 7, 1994, in an article in Electronic Engineering Times, "Intel fixes a Pentium FPU glitch" by Alexander Wolfe.
The story was subsequently picked up by CNN in a segment which aired on November 21 1994. This brought it into widespread public prominence.
Publicly, Intel acknowledged the floating point flaw but claimed that it was not serious and would not affect most users. Intel offered to replace processors to users who could prove that they were affected. However, although most independent estimates found the bug to be of little importance and would have negligible effect on most users, it caused a great public outcry. Companies like IBM (whose IBM 5x86C microprocessor competed at that time with the Intel Pentium line) joined the condemnation.
On December 20 1994 Intel offered to replace all flawed Pentium processors on the basis of request, in response to mounting public pressure. This had a huge potential cost to the company, although it turned out that only a small fraction of Pentium owners bothered to get their chips replaced. Some of the defective chips were later turned into key rings by Intel.
A 1995 article in Science describes the value of number theory problems in discovering computer bugs and gives the mathematical background and history of Brun's constant, the problem Nicely was working on when he discovered the bug.
On affected models, the Intel Processor Frequency ID Utility checks for the presence of this bug.
The following tables list the 10 affected processors. The 39 S-spec of those 10 processors are not listed in the intel processor spec finder web page.
| Family | Model | Stepping | Manufacturing Stepping | Clock rate | FSB speed | S-spec |
|---|---|---|---|---|---|---|
| 5 | 1 | 3 | B1 | 60 MHz | 60 MHz | Q0352 |
| 5 | 1 | 3 | B1 | 60 MHz | 60 MHz | Q0412 |
| 5 | 1 | 3 | B1 | 60 MHz | 60 MHz | SX753 |
| 5 | 1 | 3 | B1 | 66 MHz | 66 MHz | Q0353 |
| 5 | 1 | 3 | B1 | 66 MHz | 66 MHz | Q0413 |
| 5 | 1 | 3 | B1 | 66 MHz | 66 MHz | SX754 |
| 5 | 1 | 5 | C1 | 60 MHz | 60 MHz | Q0466 |
| 5 | 1 | 5 | C1 | 60 MHz | 60 MHz | SX835 |
| 5 | 1 | 5 | C1 | 60 MHz | 60 MHz | SZ949 |
| 5 | 1 | 5 | C1 | 66 MHz | 66 MHz | Q0467 |
| 5 | 1 | 5 | C1 | 66 MHz | 66 MHz | SX837 |
| 5 | 1 | 5 | C1 | 66 MHz | 66 MHz | SZ950 |
| Family | Model | Stepping | Manufacturing Stepping | Clock rate | FSB speed | S-spec |
|---|---|---|---|---|---|---|
| 5 | 2 | 1 | B1 | 75 MHz | 50 MHz | Q0601 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | Q0542 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | Q0613 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | Q0543 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | SX879 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | SX885 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | SX909 |
| 5 | 2 | 1 | B1 | 90 MHz | 60 MHz | SX874 |
| 5 | 2 | 1 | B1 | 100 MHz | 66 MHz | Q0563 |
| 5 | 2 | 1 | B1 | 100 MHz | 66 MHz | Q0587 |
| 5 | 2 | 1 | B1 | 100 MHz | 66 MHz | Q0614 |
| 5 | 2 | 1 | B1 | 100 MHz | 66 MHz | SX886 |
| 5 | 2 | 1 | B1 | 100 MHz | 66 MHz | SX910 |
| 5 | 2 | 2 | B3 | 75 MHz | 50 MHz | Q0606 |
| 5 | 2 | 2 | B3 | 75 MHz | 50 MHz | SX951 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | Q0628 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | Q0611 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | Q0612 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX923 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX922 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX921 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX942 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX943 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SX944 |
| 5 | 2 | 2 | B3 | 90 MHz | 60 MHz | SZ951 |
| 5 | 2 | 2 | B3 | 100 MHz | 66 MHz | Q0677 |
| 5 | 2 | 2 | B3 | 100 MHz | 66 MHz | SX960 |
The presence of the bug can be checked manually by performing the following calculation in any application that uses native floating point numbers, including the Calculator in Windows 95/98:
4195835.0/3145727.0 = 1.333 820 449 136 241 002 (Correct value)
4195835.0/3145727.0 = 1.333 739 068 902 037 589 (Value returned by flawed Pentium)