Ошибка Pentium FDIV - это аппаратная ошибка, влияющая на блок с плавающей запятой (FPU) ранних процессоров Intel Pentium. Из-за ошибки процессор может возвращать неверные двоичные результаты с плавающей запятой при делении числа. Ошибка была обнаружена в 1994 году профессором Томасом Р. Найсли в Линчбургском колледже. Intel объяснила ошибку отсутствием записей в таблице поиска, используемой схемой деления с плавающей запятой.
Серьезность ошибки FDIV обсуждается. Хотя большинство пользователей редко сталкивается с этим (журнал Byte оценил, что 1 из 9 миллиардов делений с плавающей запятой со случайными параметрами приведет к неточным результатам), как недостаток, так и первоначальный подход Intel к этому вопросу подверглись резкой критике со стороны технического сообщества..
В декабре 1994 г. Intel отозвала неисправные процессоры. В январе 1995 года Intel объявила о «начислении налогов до налогообложения в размере 475 миллионов долларов из прибыли, якобы полной стоимости, связанной с заменой неисправных процессоров». Это эквивалентно 743 миллионам долларов в 2019 году.
The Суини, Робертсон и Точер (SRT) алгоритм деления используется на затронутых чипах Pentium. Он реализован в виде программируемого логического массива с 2048 ячейками, из которых 1066 ячеек должны быть заполнены одним из пяти значений: –2, –1, 0, +1, +2. На чипах с ошибками пять ячеек, которые должны были содержать значение +2, отсутствовали, вместо этого возвращалось 0.
Intel представила линейку процессоров Pentium в марте 1993 года.
Томас Найсли, профессор математики в Линчбургском колледже, написал код для перечисления простых чисел, простых чисел-близнецов, простых троек и простых четверок.. Приятно заметил некоторые несоответствия в расчетах 13 июня 1994 года, вскоре после добавления системы Pentium к своей группе компьютеров, но не смог устранить другие факторы (такие как ошибки программирования, материнская плата чипсеты и т. Д.) до 19 октября 1994 г. 24 октября 1994 г. он сообщил о проблеме в Intel. По словам Найсли, его контактное лицо в Intel позже признало, что Intel знала об этой проблеме с мая 1994 года, когда недостаток был обнаружен Томом Кралевичем, сотрудником Университета Пердью кооператива студент, работающий на Intel в Хиллсборо, штат Орегон, во время тестирования FPU для своего нового ядра P6, впервые использованного в Pentium Pro.
30 октября 1994 г. Nicely отправил электронное письмо с описанием Обнаруженную им ошибку в модуле с плавающей запятой Pentium он обратился к различным контактам, запросив отчеты о тестировании на наличие недостатка на 486-DX4s, Pentium и клонах Pentium.
. Этот недостаток в Pentium FPU был быстро устранен. проверена другими людьми в Интернете и стала известна как ошибка Pentium FDIV (FDIV - это мнемоника языка ассемблера x86 для f loating-point div ision). Был обнаружен один пример, когда результат деления, возвращаемый Pentium, отличался примерно на 61 часть на миллион.
История впервые появилась в прессе 7 ноября 1994 года в статье в Electronic Engineering Times., «Intel исправляет сбой Pentium FPU» Александра Вулфа.
История впоследствии была подхвачена CNN в сегменте, транслированном 21 ноября 1994 года. широкая общественная известность.
Публично Intel признала недостаток операций с плавающей запятой, но заявила, что он несерьезный и не затронет большинство пользователей. Intel предложила заменить процессоры пользователям, которые смогут доказать, что они пострадали. Однако, хотя большинство независимых оценок обнаружили, что ошибка не имеет большого значения и не окажет существенного влияния на большинство пользователей, она вызвала большой общественный резонанс. К осуждению присоединились такие компании, как IBM (чей микропроцессор IBM 5x86C в то время конкурировал с линейкой Intel Pentium).
20 декабря 1994 года Intel предложила заменить все неисправные процессоры Pentium на основании запроса в ответ на растущее давление общественности. Хотя выяснилось, что лишь небольшая часть владельцев Pentium позаботилась о замене своих чипов, финансовые последствия для компании были значительными. 17 января 1995 года Intel объявила о «начислении налогов до налогообложения в размере 475 миллионов долларов против прибыли, якобы общей стоимости, связанной с заменой неисправных процессоров». Это эквивалентно 743 миллионам долларов в 2019 году. Некоторые из дефектных микросхем позже были превращены Intel в связки ключей.
Статья 1995 года в Science описывает стоимость Теория чисел при обнаружении компьютерных ошибок и дает математическое обоснование и историю константы Бруна, проблема, над которой Ницци работал, когда обнаружил ошибку.
Эта проблема возникает только на некоторых моделях оригинального процессора Pentium. Ошибка существовала только в некоторых процессорах семейства Pentium с тактовой частотой менее 120 МГц. На затронутых моделях утилита 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 |
Некоторые модели Intel 80486 OverDrive и Pentium Overdrive также были известны FDIV ошибка, а также ошибка F00F.
Наличие ошибки можно проверить вручную, выполнив следующие вычисления в любом приложении, которое использует собственный плавающий числа точек, включая Windows Calculator или Microsoft Excel в Windows 95 /98.
Правильное значение:
При преобразовании в шестнадцатеричное значение, используемое процессором, 4,195,835 = 0x4005FB и 3,145,727 = 0x2FFFFF. «5» в 0x4005FB запускает ошибку в логике управления FPU. В результате значение, возвращаемое неисправным процессором Pentium в определенных ситуациях, является неверным с точностью до четырех цифр:
Пользователи могут проверить, есть ли проблема в их процессоре, с помощью Диспетчера устройств. В диспетчере устройств пользователи должны развернуть «Системные устройства», найти, затем щелкнуть «Цифровой процессор данных», затем нажать кнопку «Свойства». Когда появится новое окно свойств, щелкните вкладку «Настройки».. Если процессор не имеет проблемы с FDIV, будет показано следующее сообщение: «Процессор числовых данных вашего компьютера прошел все диагностические тесты и, похоже, исправен. работает правильно. ", в противном случае должно появиться следующее сообщение: " Числовой процессор на этом компьютере может иногда вычислять неточные результаты при делении больших чисел "
Затем в нижней части вкладки" Настройки "предоставляются параметры для «Всегда использовать», «Использовать, только если [он] проходит всю диагностику» или «Никогда не использовать».
Разработчик (и) | Microsoft |
---|---|
Первоначальный выпуск | 30 мая 1995 г.; 25 лет назад (1995-05-30) |
Операционная система | Microsoft Windows |
Тип | Команда |
Лицензия | Собственное коммерческое программное обеспечение |
Веб-сайт | pentnt |
Пользователи могут запускать команду pentnt
, включенную в Windows NT 3.51, NT 4.0, 2000, XP и Server 2003. Чтобы изменения вступили в силу, необходимо перезагрузить компьютер. Утилита pentnt
устарела и не включена в текущие версии Windows.
Синтаксис команды:
pentnt [-c] [-f] [-o]
-c
- Включить условную эмуляцию-f
- Включить принудительную эмуляцию-o
- Отключить принудительную эмуляцию и повторно включить оборудование с плавающей запятой, если оно присутствует/?
- Показать справку