Помилка Pentium FDIV — це помилка в модулі операцій з рухомою комою в оригінальних процесорах Pentium, що випускалися фірмою Intel в 1994 році. Помилка полягала в тому, що при виконанні ділення над числами з рухомою комою за допомогою команди процесора FDIV в деяких випадках результат міг бути некоректним.
Дана помилка була вперше виявлена і опублікована професором [en] Томасом Найслі в жовтні 1994 року.
Згідно із заявою Intel, причиною проблеми були неточності в таблиці пошуку, що використовувалась при операції ділення.
Як виявилося, Intel знали про цю проблему, але мовчали. До того ж в Intel вважали, що, оскільки цей дефект істотний лише для вузького кола користувачів (математиків та інших вчених), то користувачі, які хочуть замінити процесор, повинні звернутися в компанію і довести, що саме їм ця заміна необхідна.
Прагнення виробника приховати проблему і реакція на її виявлення викликали невдоволення споживачів і значну критику в ЗМІ, зокрема жорсткий репортаж CNN. Як наслідок, компанія змінила позицію і оголосила, що буде вільно обмінювати дефектні процесори всім бажаючим. Енді Гроув публічно просив вибачення. Історія коштувала Intel більше половини прибутку за останній квартал 1994 р. — $475 млн.
Відтворення помилки
Відтворити помилку можна самостійно в застосунках, які використовують математичний співпроцесор при роботі з числами з рухомою комою.
4195835,0 / 3145727,0 = 1,333 820 449 136 241 002 (правильне значення)
4195835,0 / 3145727,0 = 1,333 739 068 902 037 589 (помилкове значення, що повертається процесором, що містить дефект)
Більш наочний спосіб відтворення:
4195835 × 3145727 / 3145727 = 4195835 (при множенні і діленні на одне і те ж число отримуємо вихідне число)
4195835 × 3145727 / 3145727 = 4195579 (помилкове значення, що повертається процесором, що містить дефект)
Методи захисту
- У компіляторі Delphi передбачена опція Pentium Safe FDIV, що змушує компілятор замість використання в коді програми асемблерної команди FDIV застосовувати виклик спеціальної процедури, яка при першому виклику виконує перевірку наявності помилки, і, залежно від результату, при цьому і наступних викликах виконує або простий FDIV, або корекцію результату.
- У компіляторі Visual Basic передбачена перевірка наявності даної помилки, яка включена за замовчуванням. Однак вона відключається спеціальною опцією компілятора — Remove Safe Pentium™ FDIV Checks. У разі її включення компілятор не генерує додаткового коду і в деяких випадках швидкість обчислень зростає.
Посилання
- "Pentium FDIV flaw FAQ. Professor Thomas Nicely. Архів оригіналу за 15 березня 2012. Процитовано 24 квітня 2018.
- . Intel. 9 липня 2004. Solution ID CS-013007. Архів оригіналу за 18 грудня 2006. Процитовано 19 грудня 2006.
- Тим Джексон, 2013, с. 10.
Література
- Тім Джексон. Inside Intel. История корпорации, совершившей технологическую революцию XX века = Inside Intel. The unauthorized history of the world’s most successful chip company. — , 2013. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pomilka Pentium FDIV ce pomilka v moduli operacij z ruhomoyu komoyu v originalnih procesorah Pentium sho vipuskalisya firmoyu Intel v 1994 roci Pomilka polyagala v tomu sho pri vikonanni dilennya nad chislami z ruhomoyu komoyu za dopomogoyu komandi procesora FDIV v deyakih vipadkah rezultat mig buti nekorektnim Dana pomilka bula vpershe viyavlena i opublikovana profesorom en Tomasom Najsli v zhovtni 1994 roku Zgidno iz zayavoyu Intel prichinoyu problemi buli netochnosti v tablici poshuku sho vikoristovuvalas pri operaciyi dilennya Yak viyavilosya Intel znali pro cyu problemu ale movchali Do togo zh v Intel vvazhali sho oskilki cej defekt istotnij lishe dlya vuzkogo kola koristuvachiv matematikiv ta inshih vchenih to koristuvachi yaki hochut zaminiti procesor povinni zvernutisya v kompaniyu i dovesti sho same yim cya zamina neobhidna Pragnennya virobnika prihovati problemu i reakciya na yiyi viyavlennya viklikali nevdovolennya spozhivachiv i znachnu kritiku v ZMI zokrema zhorstkij reportazh CNN Yak naslidok kompaniya zminila poziciyu i ogolosila sho bude vilno obminyuvati defektni procesori vsim bazhayuchim Endi Grouv publichno prosiv vibachennya Istoriya koshtuvala Intel bilshe polovini pributku za ostannij kvartal 1994 r 475 mln Vidtvorennya pomilkiVidtvoriti pomilku mozhna samostijno v zastosunkah yaki vikoristovuyut matematichnij spivprocesor pri roboti z chislami z ruhomoyu komoyu 4195835 0 3145727 0 1 333 820 449 136 241 002 pravilne znachennya 4195835 0 3145727 0 1 333 739 068 902 037 589 pomilkove znachennya sho povertayetsya procesorom sho mistit defekt Bilsh naochnij sposib vidtvorennya 4195835 3145727 3145727 4195835 pri mnozhenni i dilenni na odne i te zh chislo otrimuyemo vihidne chislo 4195835 3145727 3145727 4195579 pomilkove znachennya sho povertayetsya procesorom sho mistit defekt Metodi zahistuU kompilyatori Delphi peredbachena opciya Pentium Safe FDIV sho zmushuye kompilyator zamist vikoristannya v kodi programi asemblernoyi komandi FDIV zastosovuvati viklik specialnoyi proceduri yaka pri pershomu vikliku vikonuye perevirku nayavnosti pomilki i zalezhno vid rezultatu pri comu i nastupnih viklikah vikonuye abo prostij FDIV abo korekciyu rezultatu U kompilyatori Visual Basic peredbachena perevirka nayavnosti danoyi pomilki yaka vklyuchena za zamovchuvannyam Odnak vona vidklyuchayetsya specialnoyu opciyeyu kompilyatora Remove Safe Pentium FDIV Checks U razi yiyi vklyuchennya kompilyator ne generuye dodatkovogo kodu i v deyakih vipadkah shvidkist obchislen zrostaye Posilannya Pentium FDIV flaw FAQ Professor Thomas Nicely Arhiv originalu za 15 bereznya 2012 Procitovano 24 kvitnya 2018 Intel 9 lipnya 2004 Solution ID CS 013007 Arhiv originalu za 18 grudnya 2006 Procitovano 19 grudnya 2006 Tim Dzhekson 2013 s 10 LiteraturaTim Dzhekson Inside Intel Istoriya korporacii sovershivshej tehnologicheskuyu revolyuciyu XX veka Inside Intel The unauthorized history of the world s most successful chip company 2013 ISBN 978 5 9614 1956 6