Ошибка Pentium FDIV

редактировать
Intel Pentium 66 МГц (sSpec = SX837) с ошибкой FDIV

Ошибка Pentium FDIV - это аппаратная ошибка, влияющая на блок с плавающей запятой (FPU) ранних процессоров Intel Pentium. Из-за ошибки процессор может возвращать неверные двоичные результаты с плавающей запятой при делении числа. Ошибка была обнаружена в 1994 году профессором Томасом Р. Найсли в Линчбургском колледже. Intel объяснила ошибку отсутствием записей в таблице поиска, используемой схемой деления с плавающей запятой.

Серьезность ошибки FDIV обсуждается. Хотя большинство пользователей редко сталкивается с этим (журнал Byte оценил, что 1 из 9 миллиардов делений с плавающей запятой со случайными параметрами приведет к неточным результатам), как недостаток, так и первоначальный подход Intel к этому вопросу подверглись резкой критике со стороны технического сообщества..

В декабре 1994 г. Intel отозвала неисправные процессоры. В январе 1995 года Intel объявила о «начислении налогов до налогообложения в размере 475 миллионов долларов из прибыли, якобы полной стоимости, связанной с заменой неисправных процессоров». Это эквивалентно 743 миллионам долларов в 2019 году.

Содержание

  • 1 Описание
  • 2 Хронология
  • 3 Затронутые модели
  • 4 Методы обнаружения
    • 4.1 Общие
    • 4.2 Windows 95 или 98
    • 4.3 Windows NT, 2000, XP, Server 2003
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

Описание

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.

Pentium P5 800 нм 5V
СемействоМодельШаговыйСтеппинг ядраТактовая частотаFSB скоростьS-spec
513B160 МГц 60 МГцQ0352, Q0412, SX753
513B166 МГц 66 МГцQ0353, Q0413, SX754
515C160 МГц 60 МГцQ0466, SX835, SZ949
515C166 МГц 66 МГцQ0467, SX837, SZ950
Pentium P54C 600 нм 3,3 В
СемействоМодельШаговыйСтеппинг ядраТактовая частотаСкорость FSBS-spec
521B175 МГц 50 МГцQ0601
521B190 МГц 60 МГцQ0542, Q0613, Q0543, SX879, SX885, SX909, SX874
521B1100 МГц 66 МГцQ0563, Q0587, Q0614, SX886, SX910
522B375 МГц 50 МГцQ0606, SX951
522B390 МГц 60 МГцQ0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951
522B3100 МГц 66 МГцQ0677, SX960

Некоторые модели Intel 80486 OverDrive и Pentium Overdrive также были известны FDIV ошибка, а также ошибка F00F.

Методы обнаружения

Общий

Наличие ошибки можно проверить вручную, выполнив следующие вычисления в любом приложении, которое использует собственный плавающий числа точек, включая Windows Calculator или Microsoft Excel в Windows 95 /98.

Правильное значение:

4, 195, 835 3, 145, 727 = 1,333820449136241002 {\ displaystyle \ textstyle {\ frac {4,195,835} {3,145,727}} = 1,333820449136241002}\ textstyle {\ frac {4,195,835} {3,145,727}} = 1,333820449136241002

При преобразовании в шестнадцатеричное значение, используемое процессором, 4,195,835 = 0x4005FB и 3,145,727 = 0x2FFFFF. «5» в 0x4005FB запускает ошибку в логике управления FPU. В результате значение, возвращаемое неисправным процессором Pentium в определенных ситуациях, является неверным с точностью до четырех цифр:

4, 195, 835 3, 145, 727 = 1,333 739068902037589 {\ displaystyle \ textstyle {\ frac {4,195,835} {3,145,727}} = 1,333 {\ color {Red} {739068902037589}}\ textstyle {\ frac {4,195,835} {3,145,727}} = 1,333 {\ color {Красный } {739068902037589}}

Windows 95 или 98

Пользователи могут проверить, есть ли проблема в их процессоре, с помощью Диспетчера устройств. В диспетчере устройств пользователи должны развернуть «Системные устройства», найти, затем щелкнуть «Цифровой процессор данных», затем нажать кнопку «Свойства». Когда появится новое окно свойств, щелкните вкладку «Настройки».. Если процессор не имеет проблемы с FDIV, будет показано следующее сообщение: «Процессор числовых данных вашего компьютера прошел все диагностические тесты и, похоже, исправен. работает правильно. ", в противном случае должно появиться следующее сообщение: " Числовой процессор на этом компьютере может иногда вычислять неточные результаты при делении больших чисел "

Затем в нижней части вкладки" Настройки "предоставляются параметры для «Всегда использовать», «Использовать, только если [он] проходит всю диагностику» или «Никогда не использовать».

Windows NT, 2000, XP, Server 2003

pentnt
Разработчик (и) 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- Отключить принудительную эмуляцию и повторно включить оборудование с плавающей запятой, если оно присутствует
  • /?- Показать справку

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-01 08:37:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте