Outside of Intel, the bug was first found by Dr. Thomas R. Nicely,
Professor of Mathematics at Lynchburg College, Lynchburg, Virginia
(nicely@acavax.lynchburg.edu). He was pursuing a research project in
an area of pure mathematics called computational number theory. A half
dozen computers had been running simultaneously for over a year on a
project involving the reciprocal of large twin primes. Most of the
computers were 486's, but one Pentium was added in March of 1994.
On 13 June 1994 Dr. Nicely noticed a discrepency in his results.
Extensive searching eventually isolated the problem to the twin primes
824633702441 and 824633702443, the double precision floating point
reciprocals of which were incorrect by about three ten-millionths of
one percent.
During the week of October 16-22 Dr. Nicely tested the calculation on
several other Pentiums and found they also produced the error. On
Monday, 24 October, he contacted Intel tech support regarding this bug.
The contact person later reported that the bug was observed on a 66-MHz
system at Intel, but had no further information or explanation, other
than the fact that no such bug had been previously reported or
observed, which is surprising since Intel had discovered the bug months
earlier and had already begun manufacturing new corrected chips.
In the absence of any meaningful response from Intel tech support, Dr.
Nicely sent a now famous e-mail message to a dozen people on October
30, 1994 describing the apparent bug in the Pentium's FPU, and citing
his findings that the result of calculating 1/x was incorrect for most
x values in the range:
824633702418 <= x <= 824633702449
(Note this range includes the twin primes that started it all.)
By November 3rd the news of the bug had found it's way to the Internet
newsgroup comp.sys.intel, where extensive discussions followed. People
began searching for other instances of the bug. Some early reports on
the net, using random searches of double-precision numbers, found a
couple dozen more cases of the bug. Around November 10, Andreas Kaiser
(ak@ananke.s.bawue.de) posted, in comp.sys.intel, a list of 23 cases
where a number of the form 1/x failed.
Tim Coe of Vitesse Semiconductor (coe@vitsemi.com) is credited with
reverse engineering the Pentium's division algorithm based on the 23
known cases supplied by Andreas Kaiser. He wrote a program which
implimented his tentative model of the Pentium's divison process and
posted it to comp.sys.intel on November 16. Since then his program has
successfully predicted every known instance of the bug. Most of the
information in this paper comes from examining his program code.
(See Tim Coe Source Code)
On December 20, 1994, under pressure by consumers, Intel announced it
would replace any flawed Pentium chip with a new one upon request.