The Pentium division Flaw - Chapter 7

Chapter 6          Intel inside          Chapter 8
index
Back to Deley's Homepage



CHAPTER 7:    HISTORY OF THE BUG'S DISCOVERY

What is the history of the bug's discovery?

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.




Chapter 6          Intel inside          Chapter 8
index
Back to Deley's Homepage