💻 ПРОГРАММИРОВАНИЕ

Баг деления Pentium: как процессор ошибался в арифметике на полмиллиарда долларов

В 1994 году выяснилось, что новейший процессор Intel неправильно делит некоторые числа. Сама ошибка была крошечной и почти никого не касалась — но реакция компании превратила её в скандал, изменивший индустрию. История о том, как технический пустяк стал уроком о доверии.

Что страшнее ошибки в программе? Ошибка в самом процессоре — в той детали, которой все безоговорочно доверяют считать правильно.
Баг деления Pentium доказал: даже «железо» может ошибаться. Но главный урок оказался не про арифметику, а про то, как нельзя реагировать на собственные ошибки.

Профессор, который заметил странность

В 1994 году математик Томас Найсли исследовал простые числа и для скорости использовал новейший процессор Intel Pentium. В какой-то момент его расчёты перестали сходиться. Он перепроверил всё: свой код, компилятор, логику. Ошибки не было. Тогда он сделал почти немыслимый вывод — ошибается сам процессор, причём в базовой операции деления.

Найсли был прав. В определённых редких случаях Pentium делил числа с плавающей точкой неправильно — результат отклонялся от верного начиная с какого-то знака после запятой. Ошибку назвали по имени команды деления — баг FDIV.

Откуда взялась ошибка

Чтобы делить быстро, Pentium использовал хитрый алгоритм со справочной таблицей заранее посчитанных значений. В таблице должно было быть 1066 нужных чисел. Из-за ошибки при переносе данных пять ячеек оказались пустыми — там, где должны были стоять значения, стояли нули. В большинстве вычислений эти ячейки не задействовались, поэтому ошибка вылезала редко: примерно в одном делении из девяти миллиардов случайных пар.

Для обычного пользователя это означало: вероятность наткнуться на баг — раз в тысячи лет работы. Но для учёных и инженеров, делающих миллиарды вычислений, риск был вполне реальным.

Скандал устроила не ошибка, а ответ

Самое интересное — реакция Intel. Компания знала о баге ещё до публикации, но решила, что он несущественный, и тихо исправляла его в новых партиях. Когда история стала публичной, Intel заявила, что обычным людям беспокоиться не о чем, и поначалу отказывалась менять процессоры — предлагала замену только тем, кто докажет, что баг им реально мешает.

Это вызвало взрыв возмущения. Людям не понравилось, что им указывают, важна их проблема или нет. Над Intel смеялись, расходились язвительные шутки («Не волнуйтесь, ошибается только в важных вычислениях»). Репутационный удар был куда серьёзнее самого бага.

Полмиллиарда долларов урока

В декабре 1994 года Intel сдалась и объявила, что заменит процессор любому, кто попросит, без вопросов. Это списание обошлось примерно в 475 миллионов долларов — гигантская сумма за ошибку, которая в реальности почти никому не вредила.

Чему это научило индустрию

История FDIV оставила несколько важных следов:

  • Железо тоже ошибается. Раньше казалось, что процессор — эталон надёжности. Оказалось, он не безгрешен, и это изменило отношение к проверке оборудования.
  • Честность дешевле упрямства. Попытка преуменьшить проблему стоила Intel дороже, чем стоила бы честная замена с самого начала.
  • Тестирование стало строже. После Pentium производители чипов кардинально усилили проверку — в том числе математическими методами, доказывающими корректность алгоритмов.

Сегодня баг FDIV — классический кейс из учебников. Не столько про арифметику, сколько про простую истину: когда ты ошибся, признать это сразу почти всегда дешевле, чем убеждать мир, что ошибки не было.

#Intel#Pentium#баги#железо#история