Программная ошибка
- 1 year ago
- 0
- 0
Ошибка Pentium FDIV — это ошибка в модуле операций с плавающей запятой в оригинальных процессорах Pentium , выпускавшихся фирмой Intel в 1994 году . Ошибка выражалась в том, что при проведении деления над числами с плавающей запятой при помощи команды процессора FDIV в некоторых случаях результат мог быть некорректным.
Данная ошибка была впервые обнаружена и опубликована профессором Линчбургского колледжа Томасом Найсли в октябре 1994 года .
Согласно заявлению компании , причиной проблемы послужили неточности в таблице поиска , используемой при проведении операции деления . В 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 (ошибочное значение, возвращаемое процессором, содержащим дефект).