Понад 30 років тому компанія Intel представила перші Pentium, які на багато років стали найвідомішою торговою маркою на процесорному ринку. Але не все в новому поколінні CPU було гладко. Через внутрішній дефект іноді в Pentium могла виникати помилка FDIV (Floating Point Division), що впливало на точність ділення чисел у форматі з рухомою комою. Інженер і колишній програміст Google Кен Ширріфф (Ken Shirriff), який зараз займається історією обчислювальної техніки та реверс-інжинірингом, поділився результатами свого дослідження старого процесора. Він зумів точно визначити причину дефекту і неправильні транзистори, які призводили до помилки.
Процесор Intel Pentium на архітектурі P5 виготовляли за техпроцесом 800 нм, а його кристал складається із 3,1 мільйона транзисторів. За допомогою мікроскопа можна розглянути транзисторні сітки та блоки операцій.
Математична помилка пов'язана з помилками в програмованій логічній матриці PLA. У Pentium для роботи з числами FP було реалізовано спеціальний блок SRT зі спеціальною таблицею з 2048 комірок зі значеннями «-2», «-1», «0», «1» і «2» у 112 рядках. І під час детального вивчення таблиці під мікроскопом вдалося виявити, що в п'яти комірках відсутні потрібні транзистори, через що замість значення «0» за замовчуванням вони отримали значення «2». І такий невеликий дефект призводив у підсумку до можливої помилки всього математичного блоку, що впливало на точність результатів під час ділення. Математики виявили помилку в алгоритмі обчислень ще в 1995 році, але тепер Ширрифф зміг точно ідентифікувати дефектне місце в кремнії.
Спочатку помилку FDIV виявив професор математики Томас Найслі (Thomas R. Nicely), але в Intel вважали цю помилку несуттєвою і вкрай рідкісною — нібито ймовірність її виникнення один раз на 27 тисяч років. Але фахівці IBM змогли довести, що така помилка може відбуватися раз на 24 дні. У підсумку виробник вирішив відкликати браковану серію процесорів, що коштувало компанії збитків у 475 мільйонів доларів.
Джерело:
Tom's Hardware