Pentiums FDIV-bugg

66 MHz Intel Pentium (sSpec=SX837) med FDIV buggen.

Pentiums FDIV-bugg är en bugg i flyttalsdelen i första generationens Pentiumprocessorer (P5) från Intel. Vissa divisioner med flyttal som utförs med dessa processorer genererar felaktiga resultat. Enligt Intel berodde buggen på saknade poster i uppslagstabellen som används av divisionsoperationen (FDIV).[1]

Felaktigheten upptäcktes oberoende och publicerades i oktober 1994 av Thomas R. Nicely vid Lynchburg College i Virginia i USA.[2] Intels hantering av buggen kritiserades. Företaget hade känt till den sedan maj samma år. Det slutade med att de felaktiga processorerna fick återkallas.

Exempelsymptom

Buggen kan enkelt framkallas genom att utföra följande operation i Windowskalkylatorn eller Microsoft Excel i Windows 95/98:

Korrekt resultat är:

När detta omvandlas till hexadecimal talbas i processorn blir 4195835 = 0x4005FB och 3145727 = 0x2FFFFF. Det är siffran '5' i 0x4005 som utlöser felet i FPU:ns kontrollogik. Detta resulterar i fel värde bortom den fjärde decimalsiffran:[3]

Det som beräknas är:

=

Ett annat sätt att påvisa buggen är att använda verktyget pentnt som inkluderas med Windows NT 3.51, NT 4.0, 2000 och XP.[4]

Påverkade modeller

Tio processormodeller i P5-generationen påverkades av buggen.

FamiljModellSteppingCore-steppingKlockfrekvensFSB-frekvenssSpec (specifikationsnummer)
Pentium P5 800 nm 5V
513B160 MHz60 MHzQ0352, Q0412, SX753
513B166 MHz66 MHzQ0353, Q0413, SX754
515C160 MHz60 MHzQ0466, SX835, SZ949
515C166 MHz66 MHzQ0467, SX837, SZ950
Pentium P54C 600 nm 3.3V
521B175 MHz50 MHzQ0601
521B190 MHz60 MHzQ0542, Q0613, Q0543, SX879, SX885, SX909, SX874
521B1100 MHz66 MHzQ0563, Q0587, Q0614, SX886, SX910
522B375 MHz50 MHzQ0606, SX951
522B390 MHz60 MHzQ0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951
522B3100 MHz66 MHzQ0677, SX960

Se även

Referenser

  1. ↑ ”FDIV Replacement Program: Description of the Flaw”. Solution ID CS-013007. Intel. 9 juli 2004. Arkiverad från originalet den 18 december 2006. https://web.archive.org/web/20061218064810/http://support.intel.com/support/processors/pentium/sb/CS-013007.htm. Läst 19 december 2006.
  2. ↑ Professor Thomas Nicely. ”Pentium FDIV flaw FAQ”. Arkiverad från originalet den 15 mars 2012. https://www.webcitation.org/66AzslMxs?url=http://www.trnicely.net/pentbug/pentbug.html. Läst 5 april 2012.
  3. ↑ ”Pentium FDIV bug - a Picture”. Kansas University Institute for Policy and Social Research. 30 november 1994. Arkiverad från originalet den 3 november 2021. https://web.archive.org/web/20211103175303/http://www.ipsr.ku.edu/stafffil/hoyle/pentium_fdiv/. Läst 3 november 2010.
  4. ↑ ”Pentnt”. Arkiverad från originalet den 19 september 2016. https://web.archive.org/web/20160919025024/https://technet.microsoft.com/en-us/library/bb490967.aspx. Läst 18 juli 2016.
  1. Alexander Wolfe. Intel fixes a Pentium FPU glitch