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]

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

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 redigera

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 redigera

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

Familj Modell Stepping Core-stepping Klockfrekvens FSB-frekvens sSpec (specifikationsnummer)
Pentium P5 800 nm 5V
5 1 3 B1 60 MHz 60 MHz Q0352, Q0412, SX753
5 1 3 B1 66 MHz 66 MHz Q0353, Q0413, SX754
5 1 5 C1 60 MHz 60 MHz Q0466, SX835, SZ949
5 1 5 C1 66 MHz 66 MHz Q0467, SX837, SZ950
Pentium P54C 600 nm 3.3V
5 2 1 B1 75 MHz 50 MHz Q0601
5 2 1 B1 90 MHz 60 MHz Q0542, Q0613, Q0543, SX879, SX885, SX909, SX874
5 2 1 B1 100 MHz 66 MHz Q0563, Q0587, Q0614, SX886, SX910
5 2 2 B3 75 MHz 50 MHz Q0606, SX951
5 2 2 B3 90 MHz 60 MHz Q0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951
5 2 2 B3 100 MHz 66 MHz Q0677, SX960

Se även redigera

Referenser redigera

  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. 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