Ошибка ценой в $475 000 000: воссоздаем легендарный баг

Прокомментировать Просмотры: 15

Эхо процессорного кризиса: как ошибка в Pentium изменила индустрию

История компьютерных технологий знает немало просчетов, но лишь единицы из них стали по-настоящему легендарными. Сегодня мы не просто вспомним хрестоматийную ошибку деления в процессорах Intel Pentium, а проведем полноценный эксперимент на аутентичном «железе», чтобы воочию увидеть тот самый дефект, который обошелся технологическому гиганту в сотни миллионов долларов.

На повестке дня — детальный разбор аппаратного бага ретро-процессора: механизмы его возникновения, способы воспроизведения и наглядная демонстрация на живой системе.

В чем заключался дефект?

События 1994 года навсегда вошли в учебники по микроэлектронике. Речь идет о знаменитом баге FDIV (Floating Point Division), обнаруженном в ранних моделях Intel Pentium. Суть проблемы была лаконична, но критична: при определенных комбинациях чисел с плавающей запятой математический сопроцессор выдавал некорректный результат деления. Поскольку такие сочетания встречались редко, проблема долго оставалась незамеченной, но её масштаб не позволял закрыть на это глаза.

Сувенирный кристалл Intel с дефектом

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

Для нашего эксперимента мы используем оригинальное оборудование тех лет, чтобы проверить, насколько легко было столкнуться с погрешностью рядовому пользователю.

Коллекционный процессор Pentium

В центре внимания — Intel Pentium A80501-66. В частности, модификация SX837, в которой аппаратный изъян присутствует «с завода».

Спецификации FDIV бага

Важно отметить, что дефект затрагивал не всю линейку. Более поздние ревизии (например, SX950) уже поставлялись с исправленной логикой вычислений.

Архитектурные корни ошибки

Причиной инцидента стал переход Intel на более прогрессивный алгоритм деления — SRT (названный по фамилиям Суини, Робертсона и Точера), пришедший на смену медленному методу последовательного вычитания со сдвигом. В Pentium была внедрена архитектура SRT-4, использующая таблицу поиска для выбора частного.

Микрофотография логической матрицы

Таблица была реализована в виде программируемой логической матрицы (PLA). Из-за ошибки при проектировании или генерации топологии чипа 16 ячеек этой матрицы оказались пустыми — в нужных местах просто отсутствовали транзисторы. Хотя только 5 из этих пропусков влияли на конечный результат, этого хватило, чтобы скомпрометировать точность вычислений.

Схема алгоритма SRT

Стенд для испытаний

Для воспроизведения бага нам потребуется классическая конфигурация эпохи середины 90-х и два процессора для сравнения: дефектный и «здоровый».

  • Материнская плата: A-Trend ATC-1000 на базе чипсета i430FX «Triton» — одного из первых наборов логики для Pentium.
  • Видеокарта: SiS 6202 (PCI).
  • Память: 32 МБ ОЗУ (две планки по 16 МБ).
  • ОС: Windows 98.

Главный герой — керамический Pentium A80502-100 со статусным золотым теплораспределителем. Этот экземпляр был извлечен из серверной платформы и, судя по маркировке, несет в себе ту самую уязвимость.

Анализ характеристик процессора

Важное напоминание: процессоры разных поколений часто требуют разного напряжения питания. Неправильная установка перемычек на материнской плате может привести к необратимому повреждению кристалла.

Эксперимент: калькулятор против логики

Запускаем систему и открываем стандартный калькулятор Windows. Удивительно, но даже это простейшее приложение позволяет выявить фундаментальный изъян архитектуры.

Windows Calculator в инженерном режиме

Для начала проведем тест на исправном процессоре. Вводим формулу:

(4195835 / 3145727) * 3145727 — 4195835

Математически верный результат — 0. Его мы и видим на экране монитора.

Верный результат вычислений

Теперь заменим чип на дефектный «золотой» Pentium и повторим операцию. Вместо ожидаемого нуля калькулятор выдает -256. Это и есть прямое следствие отсутствующих транзисторов в логической матрице.

Демонстрация ошибки FDIV

Наследие эпохи

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

Сегодня процессоры с багом FDIV превратились в ценные артефакты для коллекционеров, напоминая нам о том, что даже в мире совершенных технологий есть место человеческой ошибке.

Полезные материалы

 

Источник

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов