Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Intel Pentium 66 МГц (sSpec = SX837) с ошибкой FDIV

Ошибка 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.

Некоторая 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 [ править ]

Пользователи могут запускать 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 ошибки и причуды
  • Проблемы точности при операциях с плавающей запятой
  • Отделение СТО
  • Микрокод

Ссылки [ править ]

  1. ^ a b c d e f Прекрасно, Томас (19 августа 2011 г.). "Часто задаваемые вопросы о недостатках Pentium FDIV" . trnicely.net . Архивировано из оригинала 18 июня 2019 года . Проверено 18 июня 2019 года .
  2. ^ «Статистический анализ ошибки с плавающей запятой: Белая книга Intel» (PDF) . Intel . 9 июля 2004 г. с. 9. Идентификатор решения CS-013007. Архивировано из оригинального (PDF) 06.04.2016 . Дата обращения 5 апреля 2016 .
  3. ^ a b Том Р. Халфхилл (март 1995 г.). «Ошибка в таблице поиска создала печально известную ошибку в новейшем процессоре Intel» . БАЙТ (март 1995 г.). Архивировано из оригинала (- Научный поиск ) 9 февраля 2006 года . Проверено 19 декабря 2006 .
  4. ^ "1994 - Годовой отчет" . Intel . 20 июня 2020. Архивировано 26 февраля 2017 года . Проверено 20 июня 2020 .
  5. ^ a b Томас, Райланд; Уильямсон, Сэмюэл Х. (2020). "Каков тогда был ВВП США?" . Измерительная ценность . Проверено 22 сентября 2020 года .США дефлятор валового внутреннего продукта цифры следуют Измерительные Worth серии.
  6. ^ Александр Вулф. «Intel устраняет сбой Pentium FPU» .
  7. ^ «Intel принимает политику замены по запросу процессоров Pentium с ошибкой с плавающей запятой; будет взимать плату за 4 квартал в счет прибыли» . Деловой провод. 1994-12-20. Архивировано из оригинала на 2012-07-10 . Проверено 24 декабря 2006 .
  8. ^ "Сколько инженеров нужно, чтобы заменить лампочку?" . Вареные бобы . 20 апреля 2009 года Архивировано из оригинала на 2010-02-03 . Проверено 10 ноября 2009 года .
  9. ^ Cipra, Барри Артур (1995-01-13). «Как теория чисел взяла верх над процессором Pentium». Наука . 267 (5195): 175. DOI : 10.1126 / science.267.5195.175 . PMID 17791336 . 
  10. ^ a b «Программа замены FDIV: часто задаваемые вопросы» . Intel . 2009-03-20. Идентификатор решения CS-012748. Архивировано из оригинала на 2009-05-11 . Проверено 10 ноября 2009 .
  11. ^ "Ошибка Pentium FDIV - Картинка" . Институт политики и социальных исследований Канзасского университета. 1994-11-30 . Проверено 3 ноября 2010 .
  12. ^ "MathTrek Иварса Петерсона: Повторение ошибки Pentium" . Математическая ассоциация Америки . Архивировано из оригинала 10 декабря 2008 года.
  13. ^ Слоб, Арье. «Устранение неполадок Windows 95: как проверить наличие неисправного математического сопроцессора» . www.helpwithwindows.com . Проверено 23 апреля 2019 года .
  14. ^ "Pentnt" . Microsoft TechNet . Microsoft . 11 сентября 2009 . Проверено 23 апреля 2019 года .
  15. ^ https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/pentnt

Внешние ссылки [ править ]

  • Персональный сайт доктора Найсли, обнаружившего ошибку
  • Страница с точной информацией, в том числе о причине
  • Повесть о двух числах , Клив Молер из MathWorks
    • ZIP-файл, содержащий более подробную информацию ( подробности о файле см. В формате ZIP )
  • Официальный сайт Intel
  • Неоткрытый блок процессора Intel из программы замены FDIV