http://en.wikipedia.org/wiki/Pentium_FDIV_bug
From the article:
"The Pentium FDIV bug was a bug in Intel's original Pentium floating point unit. 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 publicly disclosed by Professor Thomas Nicely, then at Lynchburg College, in 1994[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 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 Intel P6 core, first used in the Pentium Pro."
***
For users of business software, encountering the bug is highly unlikely, and it is even less likely that the bug would have a significant impact.
However, there are some scientific applications (like Nicely's) that require A LOT of floating point math. In these cases, not only is the probability of running into the bug higher, but calculations that don't adhere to the IEEE standard could taint the scientific results.
It makes sense that a mathematician caught the bug, because mathematicians are generally the only people who check this kind of thing. Most scientists would just enter the data and expect the computer to work. For example, a physicist running a weather simulation has no idea what the "answer" is before the simulation is complete. If the computer fails somewhere along the line, but the results seem reasonable, how would he know that they are actually incorrect?
No comments:
Post a Comment