Pentium FDIV -virhe

Pentium FDIV - virhe on  liukulukuvirhe Intelin vuonna 1994 julkaisemissa alkuperäisissä Pentium - prosessoreissa . Virhe ilmeni siinä, että suoritettaessa jako liukulukuluvuilla FDIV- prosessorikäskyllä , tulos saattaa joissain tapauksissa olla väärä.

Lynchburg Collegen professori Thomas Nicely löysi ja julkaisi tämän virheen ensimmäisen kerran lokakuussa 1994 [1] .

Intelin mukaan ongelman syynä olivat jakooperaation aikana käytetyn hakutaulukon epätarkkuudet [2] .

Kuten kävi ilmi, Intel tiesi tästä ongelmasta, mutta vaikeni. Lisäksi Intel uskoi, että koska tämä vika on merkittävä vain kapealle käyttäjäryhmälle (matemaatikot ja muut tutkijat), käyttäjien, jotka haluavat vaihtaa prosessorin, tulee ottaa yhteyttä yritykseen ja todistaa, että he tarvitsevat tämän vaihdon.

Valmistajan pyrkimys peitellä ongelma ja reaktio sen löytöihin johti kuluttajien tyytymättömyyteen ja laajaan mediakritiikkiin, mukaan lukien kovaiskuinen CNN -raportti . Tämän seurauksena yritys muutti kantaansa ja ilmoitti, että se voisi vapaasti vaihtaa vialliset prosessorit kaikille. Andy Grove pyysi julkisesti anteeksi. Tarina maksoi Intelille yli puolet sen vuoden 1994 viimeisen neljänneksen voitosta - 475 miljoonaa dollaria [3] .

Vian toistaminen

Voit toistaa virheen itse sovelluksissa, jotka käyttävät matemaattista apuprosessoria työskennellessäsi liukulukujen kanssa.

4195835.0/3145727.0 = 1.333820449136241002 (oikea arvo)

4195835.0 / 3145727.0 = 1.333 739 068 902 037 589 (virheen sisältävän prosessorin palauttama virheellinen arvo)

Visuaalisempi tapa toistaa:

(4195835/3145727)*3145727 = 4195835 (kun kerrotaan ja jaetaan samalla luvulla, saadaan alkuperäinen luku)

(4195835/3145727)*3145727 = 4195579 (viallisen prosessorin palauttama virheellinen arvo)

Puolustusmenetelmät

Muistiinpanot

  1. "Pentium FDIV -virheen UKK (linkki ei saatavilla) . Professor Thomas Nicely. Haettu 10. maaliskuuta 2009. Arkistoitu alkuperäisestä 15. maaliskuuta 2012. 
  2. FDIV-korvausohjelma: Vian kuvaus . Intel (9. heinäkuuta 2004). Haettu 19. joulukuuta 2006. Arkistoitu alkuperäisestä 18. joulukuuta 2006.
  3. Tim Jackson, 2013 , s. kymmenen.

Kirjallisuus