miniatyr|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).
Felaktigheten upptäcktes oberoende och publicerades i oktober 1994 av Thomas R. Nicely vid Lynchburg College i Virginia i USA. 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:
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.
Påverkade modeller Tio processormodeller i P5-generationen påverkades av buggen. Familj Modell Stepping Core-stepping Klockfrekvens FSB-frekvens sSpec (specifikationsnummer) Pentium P5 800 nm 5V5 1 3 B1 60 MHz 60 MHz Q0352, Q0412, SX7535 1 3 B1 66 MHz 66 MHz Q0353, Q0413, SX7545 1 5 C1 60 MHz 60 MHz Q0466, SX835, SZ9495 1 5 C1 66 MHz 66 MHz Q0467, SX837, SZ950 Pentium P54C 600 nm 3.3V5 2 1 B1 75 MHz 50 MHz Q06015 2 1 B1 90 MHz 60 MHz Q0542, Q0613, Q0543, SX879, SX885, SX909, SX8745 2 1 B1 100 MHz 66 MHz Q0563, Q0587, Q0614, SX886, SX9105 2 2 B3 75 MHz 50 MHz Q0606, SX9515 2 2 B3 90 MHz 60 MHz Q0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ9515 2 2 B3 100 MHz 66 MHz Q0677, SX960
Se även 0xF00FC7C8 (F00F-buggen) Cyrix coma
Referenser
Alexander Wolfe. Intel fixes a Pentium FPU glitch
Kategori:Programmering Kategori:Intelprocessorer