Ошибка Pentium FDIV является аппаратная ошибка влияет на блок с плавающей запятой (FPU) из ранних процессоров Intel Pentium . Из-за ошибки процессор может возвращать неверные двоичные результаты с плавающей запятой при делении числа. Ошибка была обнаружена в 1994 году профессором Томасом Р. Найсли из Линчбургского колледжа . [1] Intel объяснила ошибку отсутствием записей в таблице поиска, используемой схемой деления с плавающей запятой. [2]
Серьезность ошибки FDIV обсуждается. Хотя большинство пользователей редко сталкивается с этим ( журнал Byte подсчитал, что 1 из 9 миллиардов операций деления с плавающей запятой со случайными параметрами приведет к неточным результатам) [3], как недостаток, так и первоначальный подход Intel к этому вопросу подверглись резкой критике со стороны технического сообщества.
В декабре 1994 года Intel отозвала бракованные процессоры. В январе 1995 года Intel объявила о «начислении налогов до налогообложения в размере 475 миллионов долларов против прибыли, якобы общей стоимости, связанной с заменой неисправных процессоров». [1] [4] Это эквивалентно 743 миллионам долларов в 2019 году. [5]
Описание [ править ]
Sweeney, Робертсон и Tocher (SRT) алгоритм деления используется на пораженной Pentium чипах. Он реализован в виде программируемого логического массива с 2048 ячейками, из которых 1066 ячеек должны быть заполнены одним из пяти значений: -2, -1, 0, +1, +2 . На глючных микросхемах отсутствовали пять ячеек, которые должны были содержать значение +2, вместо этого они возвращали 0. [3]
Хронология [ править ]
Intel представила линейку процессоров Pentium в марте 1993 года.
Томас Найсли (1943-2019), профессор математики в Линчбургском колледже, написал код для перечисления простых чисел , простых чисел- близнецов , простых троек и простых четверок . Приятно заметил некоторые несоответствия в расчетах 13 июня 1994 года, вскоре после добавления системы Pentium к своей группе компьютеров, но не смог устранить другие факторы (такие как ошибки программирования, наборы микросхем материнской платы и т. Д.) До 19 октября 1994 года. 24 октября 1994 г. он сообщил об этом в Intel. По словам Найсли, его контактное лицо в Intel позже признало, что Intel знала об этой проблеме с мая 1994 года, когда недостаток был обнаружен Томом Кралевичем из кооператива Университета Пердью. студент, работающий в Intel в Хиллсборо, штат Орегон, во время тестирования FPU для своего нового ядра P6 , впервые использованного в Pentium Pro .
30 октября 1994 года Найсли разослал электронное письмо с описанием ошибки, обнаруженной им в модуле с плавающей запятой Pentium, разным контактам с запросом отчетов о тестировании этой уязвимости на 486-DX4 , Pentiums и клонах Pentium . [1]
Этот недостаток в Pentium FPU был быстро проверен другими людьми по всему Интернету , и стал известен как ошибка Pentium FDIV (FDIV является x86 ассемблером мнемоническим для ф loating-точка сНа - концепции). Был обнаружен один пример, когда результат деления, возвращаемый Pentium, отличался примерно на 61 часть на миллион. [1]
История впервые появилась в прессе 7 ноября 1994 года в статье Александра Вулфа, опубликованной в Electronic Engineering Times "Intel исправляет сбой Pentium FPU". [6]
Впоследствии эта история была подхвачена CNN в сегменте, показанном 21 ноября 1994 года. [1] Это сделало ее широко известной.
Публично Intel признала ошибку с плавающей запятой, но заявила, что она несерьезна и не затронет большинство пользователей. Intel предложила заменить процессоры пользователям, которые смогут доказать, что они пострадали. Однако, хотя большинство независимых оценок обнаружили, что ошибка не имеет большого значения и не окажет существенного влияния на большинство пользователей, она вызвала большой общественный резонанс. К осуждению присоединились такие компании, как IBM (чей микропроцессор IBM 5x86C в то время конкурировал с линейкой Intel Pentium).
20 декабря 1994 года Intel предложила заменить все неисправные процессоры Pentium на основании запроса в ответ на растущее давление общественности. [7] Хотя выяснилось, что лишь небольшая часть владельцев Pentium позаботилась о замене своих чипов, финансовые последствия для компании были значительными. [ необходима цитата ] 17 января 1995 года Intel объявила о «начислении налогов до налогообложения в размере 475 миллионов долларов против прибыли, якобы полной стоимости, связанной с заменой неисправных процессоров». [1] Это эквивалентно 743 миллионам долларов в 2019 году. [5] Некоторые из неисправных микросхем позже были превращены Intel в связки ключей . [8]
В статье 1995 года в журнале Science описывается значение задач теории чисел для обнаружения компьютерных ошибок и дается математическая основа и история константы Бруна - проблемы, над которой Найслит работал, когда обнаружил ошибку. [9]
Затронутые модели [ править ]
Эта проблема возникает только на некоторых моделях оригинального процессора Pentium. [10] Ошибка существовала только в некоторых процессорах семейства Pentium с тактовой частотой менее 120 МГц. [10] В уязвимых моделях утилита Intel Processor Frequency ID Utility проверяет наличие этой ошибки.
Ниже перечислены десять затронутых моделей процессоров. 39 S-спецификации этих процессоров не указаны на веб-странице поиска спецификаций процессоров Intel.
Семья | Модель | Шагая | Степпинг ядра | Тактовая частота | Скорость FSB | S-spec |
---|---|---|---|---|---|---|
5 | 1 | 3 | B1 | 60 МГц | 60 МГц | Q0352, Q0412, SX753 |
5 | 1 | 3 | B1 | 66 МГц | 66 МГц | Q0353, Q0413, SX754 |
5 | 1 | 5 | C1 | 60 МГц | 60 МГц | Q0466, SX835, SZ949 |
5 | 1 | 5 | C1 | 66 МГц | 66 МГц | Q0467, SX837, SZ950 |
Семья | Модель | Шагая | Степпинг ядра | Тактовая частота | Скорость FSB | S-spec |
---|---|---|---|---|---|---|
5 | 2 | 1 | B1 | 75 МГц | 50 МГц | Q0601 |
5 | 2 | 1 | B1 | 90 МГц | 60 МГц | Q0542, Q0613, Q0543, SX879, SX885, SX909, SX874 |
5 | 2 | 1 | B1 | 100 МГц | 66 МГц | Q0563, Q0587, Q0614, SX886, SX910 |
5 | 2 | 2 | B3 | 75 МГц | 50 МГц | Q0606, SX951 |
5 | 2 | 2 | B3 | 90 МГц | 60 МГц | Q0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951 |
5 | 2 | 2 | B3 | 100 МГц | 66 МГц | Q0677, SX960 |
Некоторая 80486 Intel OverDrive и Pentium Overdrive модели также была известна , чтобы показать ошибку FDIV, а также F00F ошибку .
Методы обнаружения [ править ]
Generic [ править ]
Наличие ошибки можно проверить вручную, выполнив следующие вычисления в любом приложении , которое использует собственные числа с плавающей запятой, в том числе калькулятора Windows , или Microsoft Excel в Windows 95 / 98 .
Правильное значение:
При преобразовании в шестнадцатеричное значение, используемое процессором, 4,195,835 = 0x4005FB и 3,145,727 = 0x2FFFFF. «5» в 0x4005FB запускает ошибку в логике управления FPU. В результате значение, возвращаемое некорректным процессором Pentium в определенных ситуациях, неверно с точностью до четырех цифр: [11] [12]
Windows 95 или 98 [ править ]
Пользователи могут проверить, есть ли проблема с их процессором, с помощью диспетчера устройств . В диспетчере устройств пользователи должны развернуть «Системные устройства», найти, затем щелкнуть «Цифровой процессор данных», затем нажать кнопку «Свойства». Когда появится новое окно «Свойства», щелкните вкладку «Настройки».
Если процессор не имеет проблемы с FDIV, появится следующее сообщение: «Процессор числовых данных вашего компьютера прошел все диагностические тесты и работает правильно». , В противном случае появится следующее сообщение: «Числовой процессор в этом компьютере может иногда вычислять неточные результаты при делении больших чисел»
Затем в нижней части вкладки «Настройки» предлагаются варианты «Всегда использовать», «Использовать только в том случае, если [он] проходит всю диагностику» или «Никогда не использовать». [13]
Windows NT, 2000, XP, Server 2003 [ править ]
Разработчики) | Microsoft |
---|---|
изначальный выпуск | 30 мая 1995 г . |
Операционная система | Майкрософт Виндоус |
Тип | Команда |
Лицензия | Проприетарное коммерческое программное обеспечение |
Интернет сайт | пентнт |
Пользователи могут запускать pentnt
команду, включенную в Windows NT 3.51 , NT 4.0 , 2000 , XP и Server 2003 . Чтобы изменения вступили в силу, необходимо перезагрузить компьютер. [14]pentnt
утилита устарела и не включена в текущей версии Windows. [15]
Командный синтаксис:
pentnt [-c] [-f] [-o]
-c
- Включить условную эмуляцию-f
- Включить принудительную эмуляцию-o
- Отключить принудительную эмуляцию и повторно включить оборудование с плавающей запятой, если оно присутствует/?
- Показать справку
См. Также [ править ]
- Ошибка Pentium F00F
- Meltdown (уязвимость в системе безопасности) и Spectre (уязвимость в системе безопасности)
- MOS Technology 6502 ошибки и причуды
- Проблемы точности при операциях с плавающей запятой
- Отделение СТО
- Микрокод
Ссылки [ править ]
- ^ a b c d e f Прекрасно, Томас (19 августа 2011 г.). "Часто задаваемые вопросы о недостатках Pentium FDIV" . trnicely.net . Архивировано из оригинала 18 июня 2019 года . Проверено 18 июня 2019 года .
- ^ «Статистический анализ ошибки с плавающей запятой: Белая книга Intel» (PDF) . Intel . 9 июля 2004 г. с. 9. Идентификатор решения CS-013007. Архивировано из оригинального (PDF) 06.04.2016 . Дата обращения 5 апреля 2016 .
- ^ a b Том Р. Халфхилл (март 1995 г.). «Ошибка в таблице поиска создала печально известную ошибку в новейшем процессоре Intel» . БАЙТ (март 1995 г.). Архивировано из оригинала (- Научный поиск ) 9 февраля 2006 года . Проверено 19 декабря 2006 .
- ^ "1994 - Годовой отчет" . Intel . 20 июня 2020. Архивировано 26 февраля 2017 года . Проверено 20 июня 2020 .
- ^ a b Томас, Райланд; Уильямсон, Сэмюэл Х. (2020). "Каков тогда был ВВП США?" . Измерительная ценность . Проверено 22 сентября 2020 года .США дефлятор валового внутреннего продукта цифры следуют Измерительные Worth серии.
- ^ Александр Вулф. «Intel устраняет сбой Pentium FPU» .
- ^ «Intel принимает политику замены по запросу процессоров Pentium с ошибкой с плавающей запятой; будет взимать плату за 4 квартал в счет прибыли» . Деловой провод. 1994-12-20. Архивировано из оригинала на 2012-07-10 . Проверено 24 декабря 2006 .
- ^ "Сколько инженеров нужно, чтобы заменить лампочку?" . Вареные бобы . 20 апреля 2009 года Архивировано из оригинала на 2010-02-03 . Проверено 10 ноября 2009 года .
- ^ Cipra, Барри Артур (1995-01-13). «Как теория чисел взяла верх над процессором Pentium». Наука . 267 (5195): 175. DOI : 10.1126 / science.267.5195.175 . PMID 17791336 .
- ^ a b «Программа замены FDIV: часто задаваемые вопросы» . Intel . 2009-03-20. Идентификатор решения CS-012748. Архивировано из оригинала на 2009-05-11 . Проверено 10 ноября 2009 .
- ^ "Ошибка Pentium FDIV - Картинка" . Институт политики и социальных исследований Канзасского университета. 1994-11-30 . Проверено 3 ноября 2010 .
- ^ "MathTrek Иварса Петерсона: Повторение ошибки Pentium" . Математическая ассоциация Америки . Архивировано из оригинала 10 декабря 2008 года.
- ^ Слоб, Арье. «Устранение неполадок Windows 95: как проверить наличие неисправного математического сопроцессора» . www.helpwithwindows.com . Проверено 23 апреля 2019 года .
- ^ "Pentnt" . Microsoft TechNet . Microsoft . 11 сентября 2009 . Проверено 23 апреля 2019 года .
- ^ https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/pentnt
Внешние ссылки [ править ]
- Персональный сайт доктора Найсли, обнаружившего ошибку
- Страница с точной информацией, в том числе о причине
- Повесть о двух числах , Клив Молер из MathWorks
- ZIP-файл, содержащий более подробную информацию ( подробности о файле см. В формате ZIP )
- Официальный сайт Intel
- Неоткрытый блок процессора Intel из программы замены FDIV