Pentium FDIV-fel

Pentium FDIV-felet är  ett flyttalsfel i de ursprungliga Pentium-processorerna som släpptes av Intel 1994 . Felet uttrycktes i det faktum att när man utför division över flyttal med hjälp av FDIV-processorinstruktionen, i vissa fall kan resultatet bli felaktigt.

Detta fel upptäcktes och publicerades först av Lynchburg College professor Thomas Nicely i oktober 1994 [1] .

Enligt Intel var orsaken till problemet felaktigheter i uppslagstabellen som användes under divisionsoperationen [2] .

Som det visade sig visste Intel om detta problem, men förblev tyst. Dessutom trodde Intel att eftersom denna defekt endast är betydande för en snäv krets av användare (matematiker och andra vetenskapsmän), bör användare som vill byta ut processorn kontakta företaget och bevisa att de behöver denna ersättning.

Tillverkarens försök att täcka över problemet och reaktionen på dess upptäckt ledde till missnöje hos konsumenterna och omfattande mediekritik, inklusive en hårt slående CNN -rapport . Som ett resultat ändrade företaget sin position och meddelade att det skulle vara fritt fram att byta defekta processorer för alla. Andy Grove utfärdade en offentlig ursäkt. Historien kostade Intel mer än hälften av dess vinst för det sista kvartalet 1994 - 475 miljoner dollar [3] .

Återskapa felet

Du kan reproducera felet själv i applikationer som använder en matematisk coprocessor när du arbetar med flyttal.

4195835.0/3145727.0 = 1.333820449136241002 (rätt värde)

4195835.0 / 3145727.0 = 1.333 739 068 902 037 589 (felaktigt värde returnerat av processorn som innehåller defekten)

Ett mer visuellt sätt att reproducera:

(4195835/3145727)*3145727 = 4195835 (när vi multiplicerar och dividerar med samma tal får vi det ursprungliga talet)

(4195835/3145727)*3145727 = 4195579 (felaktigt värde returnerat av den defekta processorn)

Försvarsmetoder

Anteckningar

  1. "Pentium FDIV-fel FAQ (otillgänglig länk) . Professor Thomas Nicely. Hämtad 10 mars 2009. Arkiverad från originalet 15 mars 2012. 
  2. FDIV-ersättningsprogram: Beskrivning av felet . Intel (9 juli 2004). Hämtad 19 december 2006. Arkiverad från originalet 18 december 2006.
  3. Tim Jackson, 2013 , sid. tio.

Litteratur