|
|
Line 1: |
Line 1: |
| {{lead too short|date=November 2013}}
| | My name is Joaquin Pratt very is not the name on my birth marriage certificate. Debt collecting has been my profession for ages. Texas is where my property is. His friends say it's not good for him but what he loves doing is to camp but he hasn't made money with understand it. You can find my website here: http://worldsporttracker.com/?p=96640<br><br>Take a look at my blog: [http://worldsporttracker.com/?p=96640 free porn] |
| [[Image:KL Intel Pentium A80501.jpg|right|thumb|180px|66 MHz Intel Pentium (sSpec=SX837) with the FDIV bug]]
| |
| The '''Pentium FDIV bug''' was a [[computer bug|bug]] in the [[Intel]] [[P5 (microarchitecture)|P5]] [[Pentium (brand)|Pentium]] [[floating point unit]] (FPU). Because of the bug, the processor would return incorrect results for many calculations used in math and science. Intel blamed the problem on a few missing entries in the lookup table used by the company.<ref>{{cite web |publisher=[[Intel]] |title=FDIV Replacement Program: Description of the Flaw |date=2004-07-09 |url=http://support.intel.com/support/processors/pentium/sb/CS-013007.htm |id=Solution ID CS-013007 |accessdate=2006-12-19 }}</ref>
| |
| | |
| The error was discovered by [[Thomas Nicely|Professor Thomas R. Nicely]] at [[Lynchburg College]], [[Virginia]], [[USA]].<ref name="NicelyFAQ">{{cite web|title=Pentium FDIV flaw FAQ|url=http://www.trnicely.net/pentbug/pentbug.html|author=Professor Thomas Nicely}}</ref>
| |
| | |
| The error was rarely encountered by users (''[[Byte (magazine)|Byte]]'' magazine estimated that 1 in 9 billion floating point divides with random parameters would produce inaccurate results).<ref>{{cite journal |author=Tom R. Halfhill |date=March 1995 |title=An error in a lookup table created the infamous bug in Intel's latest processor |journal=[[BYTE]] |issue=March 1995 |url=http://www.byte.com/art/9503/sec13/art1.htm |accessdate=2006-12-19 |format= – <sup>[http://scholar.google.co.uk/scholar?hl=en&lr=&q=intitle%3AAn+error+in+a+lookup+table+created+the+infamous+bug+in+Intel%27s+latest+processor&as_publication=%5B%5BBYTE%5D%5D&as_ylo=&as_yhi=&btnG=Search Scholar search]</sup>}} {{Dead link|date=March 2009}}</ref> However, both the flaw and Intel's initial handling of the matter were heavily criticized. Intel ultimately [[product recall|recalled]] the defective processors.
| |
| | |
| ==Chronology==
| |
| Professor Thomas Nicely, a professor of mathematics at Lynchburg College, had written code to enumerate [[prime number|primes]], [[twin prime]]s, [[prime triplet]]s, and [[prime quadruplet]]s. 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 later admitted that Intel had been aware of the problem since May 1994, when the flaw was discovered during testing of the FPU for its new [[P6 (microarchitecture)|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 [[Intel 80486DX4|486-DX4s]], Pentiums and [[Pentium compatible processor|Pentium clones]].<ref name="NicelyFAQ" />
| |
| | |
| 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 instruction listings|x86 assembly language mnemonic]] for '''f'''loating-point '''div'''ision). One example was found where the division result returned by the Pentium was off by about 61 parts per million.<ref name="NicelyFAQ" />
| |
| | |
| 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.<ref>{{cite web|title=Intel fixes a Pentium FPU glitch|url=http://davefaq.com/Opinions/Stupid/Pentium.html#glitch|author=Alexander Wolfe}}</ref>
| |
| | |
| The story was subsequently picked up by [[CNN]] in a segment aired on November 21, 1994.<ref name="NicelyFAQ" /> 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 [[International Business Machines|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.<ref>{{cite web | url=http://findarticles.com/p/articles/mi_m0EIN/is_1994_Dec_20/ai_15939945 | title=Intel adopts upon-request replacement policy on Pentium processors with floating point flaw; Will take Q4 charge against earnings | accessdate=2006-12-24 | date=1994-12-20 | publisher=Business Wire}}</ref> Although it turned out that only a small fraction of Pentium owners bothered to get their chips replaced, the financial impact on the company was significant. On January 17, 1995, Intel announced a pre-tax charge of $475 million against earnings, ostensibly the total cost associated with replacement of the flawed processors.<ref name="NicelyFAQ" /> Some of the defective chips were later turned into [[Keychain|key rings]] by Intel.<ref>{{cite web | url=http://www.boiledbeans.net/2009/04/20/how-many-engineers-does-it-take-to-change-a-lightbulb/ | title=How many engineers does it take to change a lightbulb? | work=Boiledbeans | date=20 April 2009 | accessdate=10 November 2009}}</ref>
| |
| | |
| A 1995 article in ''[[Science (journal)|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.<ref name="Cipra Pentium Bug">{{cite journal
| |
| | last = Cipra
| |
| | first = Barry
| |
| | date = 1995-01-13
| |
| | title = How number theory got the best of the Pentium chip
| |
| | journal = Science
| |
| | volume = 267
| |
| | issue = 5195
| |
| | pages = 175
| |
| | doi = 10.1126/science.267.5195.175
| |
| | pmid = 17791336
| |
| }}</ref>
| |
| | |
| ==Affected models==
| |
| This problem occurred only on some models of the original Pentium processor.<ref name="IntelFaq">{{cite web |publisher=[[Intel]] |title=FDIV Replacement Program: Frequently asked questions |date=2009-03-20 |url=http://www.intel.com/support/processors/pentium/sb/CS-012748.htm |id=Solution ID CS-012748 |accessdate=2009-11-10 }}</ref> Any Pentium family processor with a clock speed of at least 120 MHz is new enough not to have this bug.<ref name="IntelFaq"/>
| |
| | |
| On affected models, the Intel Processor Frequency ID Utility checks for the presence of this bug.
| |
| | |
| The ten affected processors are listed below. The 39 S-spec of those processors are not listed in the Intel processor specification finder web page.
| |
| {| class="wikitable"
| |
| |+ Pentium P5 800 nm 5V
| |
| ! Family !! Model !! Stepping !! Core stepping !! Clock rate !! [[Front side bus|FSB]] speed !! S-spec
| |
| |-
| |
| | align="right"|5 || align="right"| 1 || align="right"| 3 || align="right"| B1 || align="right"| 60 [[Hertz|MHz]] || align="right"| 60 MHz || Q0352, Q0412, SX753
| |
| |-
| |
| | align="right"|5 || align="right"| 1 || align="right"| 3 || align="right"| B1 || align="right"| 66 [[Hertz|MHz]] || align="right"| 66 MHz || Q0353, Q0413, SX754
| |
| |-
| |
| | align="right"|5 || align="right"| 1 || align="right"| 5 || align="right"| C1 || align="right"| 60 [[Hertz|MHz]] || align="right"| 60 MHz || Q0466, SX835, SZ949
| |
| |-
| |
| | align="right"|5 || align="right"| 1 || align="right"| 5 || align="right"| C1 || align="right"| 66 [[Hertz|MHz]] || align="right"| 66 MHz || Q0467, SX837, SZ950
| |
| |}
| |
| | |
| {| class="wikitable"
| |
| |+ Pentium P54C 600 nm 3.3V
| |
| ! Family !! Model !! Stepping !! Core stepping !! Clock rate !! FSB speed !! S-spec
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 1 || align="right"| B1 || align="right"| 75 [[Hertz|MHz]] || align="right"| 50 MHz || Q0601
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 1 || align="right"| B1 || align="right"| 90 [[Hertz|MHz]] || align="right"| 60 MHz || Q0542, Q0613, Q0543, SX879, SX885, SX909, SX874
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 1 || align="right"| B1 || align="right"| 100 [[Hertz|MHz]] || align="right"| 66 MHz || Q0563, Q0587, Q0614, SX886, SX910
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 2 || align="right"| B3 || align="right"| 75 [[Hertz|MHz]] || align="right"| 50 MHz || Q0606, SX951
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 2 || align="right"| B3 || align="right"| 90 [[Hertz|MHz]] || align="right"| 60 MHz || Q0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951
| |
| |-
| |
| | align="right"|5 || align="right"| 2 || align="right"| 2 || align="right"| B3 || align="right"| 100 [[Hertz|MHz]] || align="right"| 66 MHz || Q0677, 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 (Windows)|Windows Calculator]] or [[Microsoft Excel]] in [[Windows 95]]/[[Windows 98|98]].
| |
| | |
| The correct value is
| |
| | |
| :<math>\textstyle \frac{4195835}{3145727} = 1.333820449136241002 </math> | |
| | |
| However, the value returned by the flawed Pentium is incorrect at or beyond four digits:<ref>{{cite web |publisher=Kansas University Institute for Policy and Social Research |title=Pentium FDIV bug - a Picture |date=1994-11-30 |url=http://www.ipsr.ku.edu/stafffil/hoyle/pentium_fdiv/ |accessdate=2010-11-03 }}</ref>
| |
| | |
| :<math>\textstyle \frac{ 4195835}{3145727} = 1.333{\color{Red}739068902037589} </math>
| |
| | |
| Another way of detecting the bug is using the pentnt utility included with [[Windows NT 3.51]], [[Windows NT 4.0]], [[Windows 2000]], or [[Windows XP]].<ref>{{cite web|url=http://technet.microsoft.com/en-us/library/bb490967.aspx|title=Pentnt}}</ref>
| |
| | |
| ==See also==
| |
| *[[Pentium F00F bug]]
| |
| *[[Anomaly in software]]
| |
| *[[MOS Technology 6502#Bugs and quirks|MOS Technology 6502 bugs and quirks]]
| |
| *[[Floating point#Accuracy problems|Accuracy problems in floating point operations]]
| |
| *[[Division algorithm#SRT division|SRT division]]
| |
| *[[Hardware Trojan]]
| |
| *[[Kill switch]]
| |
| | |
| ==References==
| |
| {{reflist|2}}
| |
| | |
| ==External links==
| |
| *[http://www.trnicely.net/#PENT Personal website of Dr. Nicely, who discovered the bug]
| |
| *[http://www.cs.earlham.edu/~dusko/cs63/fdiv.html A page with precise information, also about the cause]
| |
| *[http://www.maa.org/mathland/mathland_5_12.html Ivars Peterson's Mathland on the bug]
| |
| *[http://www.mathworks.com/company/newsletters/news_notes/pdf/win95cleve.pdf A Tale of Two Numbers], by [[Cleve Moler]] of [[MathWorks]]
| |
| **[http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=1666&objectType=file ZIP-file containing more details] (See [[ZIP file format]] for details on the file)
| |
| *[http://support.intel.com/support/processors/pentium/fdiv/ Intel's official site]
| |
| *[http://www.cpucollection.se/details.php?image_id=784 Unopened Intel CPU box from the FDIV replacement program]
| |
| | |
| {{DEFAULTSORT:Pentium Fdiv Bug}}
| |
| [[Category:X86 architecture]]
| |
| [[Category:Hardware bugs]]
| |