Pentium FDIV bug

related topics
{system, computer, user}
{math, number, function}
{work, book, publish}
{law, state, case}
{film, series, show}
{rate, high, increase}
{woman, child, man}

The Pentium FDIV bug was a bug in the Intel P5 Pentium floating point unit (FPU). Certain floating point division operations performed with these processors would produce incorrect results. According to Intel, there were a few missing entries in the lookup table used by the divide operation algorithm.[1]

The flaw was independently discovered and publicly disclosed in October 1994 by Professor Thomas Nicely, then at Lynchburg College, Virginia, USA.[2]

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),[3] both the flaw and Intel's initial handling of the matter were heavily criticized. Intel ultimately recalled the defective processors.



Professor Thomas Nicely, then a professor of mathematics at Lynchburg College, had written code to enumerate primes, twin primes, prime triplets, and prime quadruplets. Nicely noticed some inconsistencies in the calculations on June 13, 1994 shortly after adding a Pentium system to his group of computers, but was unable to eliminate other factors (such as programming errors, motherboard chipsets, etc.) until October 19, 1994. On October 24, 1994 he reported the issue to Intel. According to Nicely, his contact person at Intel would later admit that Intel had been aware of the problem since May 1994, when the flaw had been discovered when testing the FPU for its new P6 core, first used in the Pentium Pro.

On October 30, 1994, Nicely sent an email 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.[2]

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). One example was found where the division result returned by the Pentium was off by about 61 parts per million.[2]

Full article ▸

related documents
LZ77 and LZ78
Remote procedure call
Visual DialogScript
Mutual exclusion
Wikipedia:Federal Standard 1037C terms/computer programming terms
IBM 1620 Model I
Parasitic computing
Core dump
System analysis
Monolithic kernel
Server-side scripting
Accumulator (computing)
Ed (text editor)
Access control list
Nautilus (file manager)
Run-length encoding
Microsoft BASIC
Analytical engine
Application binary interface
Segmentation fault
Abstract machine
Fault tree analysis
HTTP 404
Abstract Window Toolkit