Проверка на дорогах, или Как Intel тестирует свои процессоры
Представьте точный макет центра Москвы, уместившийся на кончике пальца, со всеми улицами, тротуарами, бульварами, речками, мостами, тоннелями, высотками, старой застройкой... Красная площадь будет тоньше волоса с вашей головы.
Затем представьте, что вы запускаете на макете симуляцию транспортного потока в час пик, с тысячами почти невидимых легковушек, грузовиков, автобусов, трамваев, поездов метро и байкеров по всем дорогам, мостам, тоннелям... Вам нельзя допускать пробок, тем более в центре, где пешеходы шагают прямо по проезжей части, каждый должен добраться до пункта назначения точно в назначенное время.
Теперь представьте, что поставлена задача сделать такую симуляцию с учетом всех возможных перемещений участников движения и с условием отсутствия дорожных происшествий и заторов. Представили?
Проверять процессор на отсутствие ошибок гораздо труднее.
Ежеминутное тестирование
Производители процессоров тратят неимоверное количество времени и средств на то, чтобы протестировать процессор на предмет отсутствия ошибок. Такое тестирование представляет собой действие, в процессе которого каждый новый процессор проверяется на отсутствие дефектов в конструкции, отсутствие ошибок в производственном процессе и на совместимость с программным обеспечением. Например, Intel тратит сотни миллионов долларов в год на проверки, тестируя каждый чип, начиная с его концепции и заканчивая последним днем производства. Группа редакторов и сотрудников тестовой лаборатории PC Magazine недавно посетила центр Intel в Hillsboro, штат Oregon, чтобы узнать подробности о технологии проверки процессоров.
Еще до воплощения в кремнии, новая архитектура моделируется программно и тестируется на протяжении месяцев, ежеминутно в разных частях земного шара. Отдельные тесты часто запускаются на мамонтообразных аппаратных моделях процессора, занимающих целые комнаты. Предварительные образцы проверяются на специально собранных компьютерах, со специальным оборудованием, каждый комплект которого стоит в среднем 250 тысяч долларов. Тесты на совместимость прогоняются на сотнях моделей периферийных устройств и тысячах программных приложений. Intel даже посылает процессоры своим партнерам и конечным пользователям для дальнейшего тестирования. Тем не менее, до сих пор процессоры Intel содержат ошибки.
Хотя с начала продаж у процессора Pentium II было найдено более 50 ошибок (незначительные ошибки не влияют на повседневную работу компьютера), нельзя сказать, что Intel использует неадекватные технологии тестирования. Проверка процессора, как и вышеописанная задача симуляции городского трафика на микроскопической модели центра Москвы, - ювелирная работа огромного объема.
"Почти невозможная" задача
Рассмотрим Pentium Pro, первый процессор архитектуры P6, которая сейчас используется в Pentium II. Этот процессор для серверов и рабочих станций, представленный в конце 1995 года и теперь закончивший свой жизненный цикл, содержит 5,5 миллионов транзисторов. Если вы решите проверить каждое возможное состояние процессора, придется проверить 25 500 000 комбинаций. Получается число порядка 101 600 000, а ведь это только оценка требуемых объемов работ.
Кроме этого, процессор должен взаимодействовать с чипсетом (еще 2400 состояний), кэшем 2-го уровня, подсистемой памяти, сотнями периферийных устройств, сотнями тысяч программных пакетов и миллионами конкретных пользователей. "Соедините это вместе, - говорит Gerald Budelman (Джеральд Бадельман), главный менеджер Server Validation Engineering - отдела технологии проверки серверов, - и полная проверка оказывается почти невозможной задачей".
Рассмотрим только инструкцию ADD, одну из сотен используемых инструкций процессора Pentium Pro. ADD вычисляет сумму двух 32-битных чисел, одного из заданного регистра и другого из любой ячейки оперативной памяти. С 232 возможных значений для одного числа и таким же количеством для другого, возможны 264 различных комбинации данных. Кроме того, первое число может находиться в любом из восьми регистров, а второе число, если разрядность виртуального адресного пространства равна 48 бит, может находиться по любому из 248 возможных адресов памяти.
Это 251 различных комбинаций по размещению и 264 различных вычислений. Если бы у вас был миллион компьютеров и каждый проверял бы миллион вычислений в секунду, проверка всех возможных состояний заняла бы 1015 лет. Всего лишь. "Между прочим, - говорит Budelman, - возраст Вселенной оценивается всего в 1012 лет".
Проверка процессора, его тестирование - это настоящее искусство, а не применение грубой силы. Невозможно проверить процессор, проверяя каждую возможную инструкцию. Хотя Intel никогда не сможет выпустить процессор, свободный от ошибок, вполне возможно (и практика это подтверждает), что после многомесячного непрерывного, специализированного и безумно дорогого тестирования на рынок попадет работоспособный и надежный продукт.
До и после кристалла
По словам Budelman, тестирование в Intel "начинается почти на следующий день после того, как у кого-то появилась идея нового микропроцессора, и продолжается не только во время подготовки к выходу, но и до самого конца жизненного цикла". Общий процесс тестирования разделен на две главные составляющие - до и после первого экземпляра кристалла. Предварительное тестирование, проходящее до того, как процессор воспроизводиться в кремнии, оперирует программными моделями, а иногда и аппаратными моделями, собранными из дискретных элементов. На втором этапе тестируются готовые кристаллы, работающие в обычных компьютерах или на специальных стендах.
На каждом этапе преследуется одна и та же цель - поиск и устранение ошибок. Процессор, готовый ли это кристалл или всего лишь модель, тестируют снова и снова практически круглосуточно. Любые потенциальные ошибки или недосмотры протоколируются в главной базе данных и однозначно подразделяются на четыре категории: ложная тревога (ошибка при тестировании), новые ошибки, ранее известные ошибки и не воспроизводимые ошибки (т.е. те, которые нельзя повторить).
Как только ошибка исправлена либо внесением изменений в модель процессора, либо производством нового кристалла, нужно провести тестирование снова, чтобы убедиться в отсутствии новых ошибок. Процесс тестирования, нахождения ошибок и дополнительного тестирования требует не только наличия быстро перестраиваемых тестов, но и быстро настраиваемой системы обработки огромных объемов данных, накапливаемых в результате этих тестов.
Программно эмулируемый процессор
Проверка до получения первого кристалла начинается с RTL модели процессора (register transfer logic - логическая схема регистровых переходов), программы высокого уровня, созданной, чтобы работать в точности так, как это делал бы настоящий процессор. "Это модель, которая точно описывает функционирование настоящего чипа, - говорит Budelman, - но не представляет его в виде транзисторов и логических схем". Процессоры обычно моделируют с помощью фирменного языка RTL известного как IHDL (Intel High-Level Description Language - высокоуровневый язык описания Intel), а чипсет - набор устройств, которые постоянно сопровождают процессор, - изготавливается с помощью стандартного промышленного языка, известного как VHDL (VHSIC Hardware Description Language - язык аппаратного описания сверхскоростных ИС, или очень высокоуровневый язык описания).
Процессор в замедленном движении
Intel начинает тестировать RTL модель чипа за несколько месяцев до появления первого кристалла, используя рабочие станции с Unix или Windows NT. Функции процессора симулируются на довольно низких скоростях, от 2 до 5 Гц, по причинам легкости управления и наблюдения. В то время как Pentium II 400 МГц совершает 400 миллионов тактовых циклов в секунду, его RTL модель достигает по максимуму 5 циклов в секунду. "Windows не загрузится в течение всей вашей жизни", - говорит Budelman.
Это похоже на Сизифов труд, но определенно является лучшим решением для получения детальных предварительных результатов. На частоте 5 Гц не только проще создать и провести каждый тест, но также и проще обнаружить потенциальные ошибки, а затем определить их причины. "Плохо то, что работа идет медленно, - говорит Budelman. - Хорошая сторона заключается в том, что можно наблюдать и контролировать все вплоть до мелочей".
Эта медленная симуляция требует, тем не менее, неординарного объема вычислительных мощностей. И если вы хотите закончить тестирование в разумное время, требуется неординарное количество компьютеров. Так что, в дополнение к основному парку выделенных рабочих станций, в процессе тестирования Intel применяет автоматизированный процесс, известный как NetBatch, чтобы использовать вычислительные мощности рабочих станций своих работников. Когда инженер Intel прерывается на чашечку кофе или идет домой вечером, NetBatch немедленно получает доступ к его рабочей станции и запускает RTL тесты - неважно, работает этот инженер в лаборатории в Folsom, California, или Haifa, Israel. В час пик проверочное тестирование использует более 1000 рабочих станций по всему миру. "Ко времени создания реальных кристаллов, - говорит Budelman, - мы в среднем успеваем провести 300 миллионов циклов симуляции в неделю. Средняя загрузка всех рабочих станций Intel составляет 87% каждые 24 часа 7 дней в неделю". И даже при 300 миллионов циклов в неделю за эти семь дней симулируется только 1 секунда работы 300 МГц процессора.
Многочисленные разделы RTL тестирования
RTL-тестирование, в процессе которого проверяется все, начиная с основной схемы чипа и заканчивая его взаимодействием с периферийными устройствами, подразделяется на несколько дисциплин или разделов. Самая низкоуровневая - это architecture validation (AV - проверка архитектуры), ставящая цель убедиться, что чип - отдельно от всякого сопутствующего оборудования - работает именно так, как это было задумано. Идея, лежащая в основе AV, заключается в том, чтобы убедиться, что RTL модель удовлетворяет фундаментальному описанию архитектуры, определенной в справочном руководстве для программистов и во внешней спецификации архитектуры (описании назначения команд и регистров). AV тесты включают в себя как унаследованные тесты, использовавшиеся с предыдущими поколениями процессоров, так и тесты, разработанные специально для тестирования новых возможностей. Для примера, с Pentium II использовались многие тесты, написанные для Pentium Pro, и еще потребовались соответствующие тесты для проверки блока MMX инструкций.
Проверка "входящих и выходящих"
AV разделяется на поддисциплины: тестирование блоков и тестирование микроархитектуры (µAV). В первом случае Intel отдельно проверяет каждый самостоятельный блок процессора, удостоверяясь в том, что на входные данные блок выдает корректные выходные - проверка "входящих и выходящих", как выразился Budelman.
Затем, в процессе тестирования микроархитектуры проверяется, что все эти блоки могут корректно "общаться" между собой. В отличие от тестирования блоков, которое основано на заранее заданном наборе тестовых ситуаций, µAV использует то, что Intel называет coverage-based validation - проверка, основанная на перекрытии областей. Так как каждое состояние нельзя протестировать по известным причинам, используются случайные тесты в конкретной группе операций.
Хотя тесты случайные в том смысле, что они генерируются на удачу, их граничные условия заданы со знанием и часто меняются. В процессе тестирования Intel проверяет результаты тестов, чтобы убедиться, что каждые новые условия удовлетворяют общему принципу. Если тест получает ошибочные или ранее проверенные условия, он перезапускается.
По-прежнему в рамках RTL модели, вслед за AV проверкой переходят к ко-симуляции (чтобы удостовериться, что чип корректно взаимодействует с различными чипсетами, кэшами и другой сопутствующей аппаратурой) и проверке SMP - симметричного мультипроцессирования (чтобы удостовериться в том, что несколько процессорных чипа могут работать вместе). Ко-симуляция требует, чтобы компьютер полностью моделировался программным способом. В то время как центральный процессор (ЦП) моделируется с помощью IHDL, а чипсет через VHDL, память и периферийные устройства воссоздаются с помощью языка Си. Это тестирование, тем не менее, мало походит на проверку симметричного мультипроцессирования. Проверка SMP может быть пугающей, особенно на этапе RTL модели, так как она часто включает в себя измерение общей загрузки системы, а не проверку заранее заданных условий.
Arcsim: быстрая дополнительная проверка
Параллельно RTL тестированию, Intel тестирует отдельную программную модель, известную под сокращением Arcsim. В то время как RTL модель детализирована и работает безумно медленно, Arcsim представляет собой общую высокоуровневую модель, написанную на языке Си, которую можно легко запускать, перезапускать и сравнивать полученные результаты с RTL моделью.
Ошибки отлавливаются, когда результаты RTL тестирования отличаются от результатов работы Arcsim. Проще говоря, Arcsim - это быстрая дополнительная проверка. Эта модель также использует сетевые вычисления через NetBatch, дублируя только выходы чипа, а не его строение (а именно, Arcsim должен выдавать те же данные, что и чип, но не обязательно получать их таким же способом).
ЦП размером с комнату
При тестировании Pentium Pro, Intel добавила третий этап предварительного тестирования, известный как emulation - эмуляция. Хотя с тех пор он не использовался, это показательно для оценки времени и средств, затрачиваемых на процесс проверки. Эмуляция состоит в построении аппаратной модели чипа из дискретных элементов и создании, дословно, процессора размером с комнату, которые присоединятся к стандартному компьютеру, и работает на стандартном программном обеспечении.
"Существует возможность, - говорит Budelman, - составить большую стойку перепрограммируемых матриц логических элементов, которую можно запрограммировать так, чтобы она работала подобно настоящему процессору". Стоившая приблизительно 8 миллионов долларов, эмуляция Pentium Pro, работавшая на тактовой частоте в целых 150 КГц, была присоединена к жесткому диску и подсистеме памяти, и на этой системе запускались большинство современных операционных систем. Хотя загрузка длилась несколько часов и неделя уходила на перезапуск, это была, по словам Budelman, "самая большая эмуляция процессора на Земле".
Такой подход может показаться излишним, но он предоставляет ценный промежуточный этап между RTL и предварительным образцом кристалла. Эмуляция не настолько просто изучаема и управляема, как RTL модель, но она менее абстрактная и работает быстрее. Она не так быстра, как кристалл, но ее легче изучать и изменять.
Если вы нашли ошибку в эмуляции, вы обычно можете перенастроить модель за неделю с небольшими затратами. Если вы нашли ошибку в образце кристалла, требуются 8 недель и 2 миллиона долларов на ее исправление. Intel не эмулировала Pentium II и последующие чипы семейства, но, возможно, будет эмулировать будущие процессоры.
На подходах к кристаллу
После того как многомесячное тестирования с помощью RTL, Arcsim и эмуляции показало, что архитектура не содержит просчетов, можно перейти к созданию настоящего кремниевого чипа. Программные тесты настолько основательны, что первый образец кристалла, вышедший из фабрики (fab), всегда работоспособное устройство. "За десять лет, - говорит Budelman, - не припомню, чтобы на процессоре не запускалась операционная система в версии кристалла A0" (первая версия чипа, имеющая начальный степпинг, поколение).
Такого стараются избежать всеми силами. Менять готовый кристалл и сложнее, и дороже в экспоненциальной прогрессии, чем настраивать программную модель или эмуляцию. Каждый раз, когда обнаруживают ошибку и процессор исправляют, ему присваивают новую двухбуквенную комбинацию. Незначительным степпингам (те, что включают малые изменения) назначают новую цифру, тогда как значительным назначают уже новую букву (например, за A0 следуют A1 и A2, за которыми вдруг могут последовать B1, B2, B3, затем C1 и т.д.).
Тем не менее, в некоторых случаях, Intel может внести изменения в процессор без выпуска нового степпинга. Каждый чип содержит ПЗУ микрокода, постоянную память, которая является переходным звеном между машинной инструкцией и физической схемой чипа. Это позволяет разработчикам процессора легко добавлять новые инструкции без встраивания в чип новых логических схем. Хотя для изменения микрокода обычно требуется и новый степпинг, Intel недавно разработала способ внесения незначительных изменений в микрокод без переработки кристалла. Область ПЗУ микрокода теперь заполнена прерывистыми кусками ОЗУ, которые могут быть перезаписаны на этапе загрузки системы через процедуру BIOS Update (обновление BIOS). Изменение, требовавшее ранее нескольких недель работы и миллионов долларов, теперь можно сделать в течение нескольких дней с небольшими затратами.
Но у Intel есть еще более впечатляющее устройство - focused ion beam, сфокусированный ионный луч, - которое в паре со сканирующим (растровым) электронным микроскопом позволяет инженерам просматривать и даже изменять внутренние логические схемы процессора. Это можно сравнить с хирургической операцией на бактерии. Луч, который в несколько раз тоньше человеческого волоса, может резать и перенаправлять проводники.
Pentium II за $150,000
С чипом A0 на руках, Intel начинает процесс, известный как systems validation (SV, проверка систем), использующий специально собранные и настроенные компьютеры для проверки на соответствие особенностей, режимов, операций и машинных инструкций процессора описанию в его документации. Это включает в себя широкий набор тестов, от специфических тестов особенностей процессора и стресс-тестов температурного режима до случайных тестов машинных инструкций и помех по шине. Каждый чип проходит через семейство тестов, которые используются в течение 15 лет, и каждый чипсет обязан пройти различные тесты внутреннего состояния (чтобы проверить такие вещи, как работа с памятью и шиной PCI).
SV выполняется на нескольких проверочных платах с оснащением специального назначения - специально собранных компьютерах. Для Pentium II Intel собрала около 60 таких систем стоимостью более $150000 каждая. Эта специальная система, получившая имя Diamondback, оснащена процессорами числом до 4х включительно, объединенным мостом/подсистемой памяти, чипсетом в сокетах, программируемым интерфейсом шины и встроенными разъемами для подключения внешних приборов.
Обычно, каждая пара таких платформ требует более $200000 на приборы, включая анализаторы логики, устройства для мониторинга PCI, программируемые источники питания и контроллеры температуры. Эти инструменты используются не только для проверки данных, проходящих через систему, но также и для дополнительной нагрузки на машину.
"Приборы, - говорит Budelman, - подключаются к плате для того, чтобы наблюдать за происходящим и передавать управляющие сигналы в шину, чтобы создавать необычные ситуации во время работы процессора". В целом, это огромное количество аппаратуры для SV, работая 24 часа в сутки, позволяет обнаружить около 40 процентов всех ошибок в кристалле.
Проверка на совместимость
Простая проверка того факта, что процессор действует, как положено по его документации, еще недостаточна. Чип должен работать с существующим реальным оборудованием, программным обеспечением и операционными системами, которые не всегда следуют промышленным стандартам. Compatibility validation (CV - проверка совместимости) начинается с автоматизированного тестирования программ, в котором процессор устанавливается в обычный компьютер и на этой системе выполняется запуск операционной системы и тысяч приложений.
Эти тесты обычно работают без вмешательства техников. Работая без перерыва, тестовые стенды Intel могут автоматически перегрузить систему, инсталлировать ОС и приложение, запустить это приложение и сравнить его работу с эталоном, на уровне пиксельной точности. "Мы нашли ошибку, - говорит Budelman, - которая проявлялась как отличие лишь в одном пикселе от эталона".
Intel параллельно тестам программ проводит такие же тщательные тесты оборудования, проверяя, чтобы новый чип был совместим с большей частью распространенных на рынке жестких дисков, графических плат, сетевых плат и других устройств. Проверяются буквально тысячи периферийных устройств - архаичных, старых и новых.
Стресс-тесты играми: грубые и неестественные действия
Затем, Intel прогоняет тесты производительности на отдельных системах и стресс-тесты на сетевых серверных конфигурациях, используя все наборы тестов: от собственного SysMark до ServerBench от Ziff-Davis, и все операционные системы: от Windows 95 до UnixWare. В дополнение к такому специализированному автоматизированному тестированию, проверка совместимости включает в себя ручное тестирование с использованием популярных игр и мультимедиа приложений. "Получается так, - говорит Budelman, - что игры - одни из самых "стрессовых" программ, которые существуют... особенно для графических подсистем. Они игнорируют BIOS. Они игнорируют ОС. Они производят грубые и неестественные действия".
Только 6 процентов всех ошибок после выхода кристалла обнаруживаются в процессе проверки на совместимость, но зато они самые скользкие. Например, во время серверных стресс-тестов ошибки могут нарождаться днями или неделями. Серверная тестовая платформа "будет работать 20 дней, а затем умрет на 21 день". "Место, в котором произошел сбой, обычно не имеет ничего общего с непосредственной причиной ошибки. Это могло случиться несколькими днями раньше". Современная лаборатория Intel для проверки на совместимость стоит более 20 миллионов долларов и имеет время "полураспада" всего 18 месяцев. Программы нужно обновлять каждые 3 года, а оборудование - каждые 12-36 месяцев.
Бета-тестирование
Конечно, есть тестирование, которое воспроизводит условия реального мира, и есть тестирование в реальном мире. После получения устойчивого кристалла процессора, Intel посылает чипы к независимым производителям аппаратного обеспечения (independent hardware vendors, IHVs) и независимым разработчикам программного обеспечения (independent software vendors, ISVs) для бета-тестирования.
"Мы не делаем все сами, - говорит Budelman. - Мы, конечно же, полагаемся на наших партнеров - поставщиков оборудования и программ. Мы работаем с ними. В некоторых случаях мы просим их провести тестирование и поставляем им для этого целые платформы". Для Pentium Pro Intel попросила 600 конечных пользователей, тщательно отобранных, провести предварительное тестирование. Многие бета-тестеры были из компьютерных фирм, но остальные пришли из финансовой, коммерческой и развлекательной сфер. За 5 месяцев тестирования не было найдено никаких новых ошибок.
Когда чип запущен в производство
После почти двух лет проверок и тестирований, чип практически готов для производства. Тем не менее, нет определенной формулы, чтобы определить его готовность. Нельзя ждать, пока все недосмотры будут разрешены, так как выявление многих проблем может занять месяцы.
Из сложности кристалла совсем необязательно следует его совершенство. "Покажите мне процессор без "опечаток", - говорит Budelman, - и это будет процессор совершенно неизвестный на рынке и без тестовой команды". Напротив, тестовая команда Intel должна четко знать все стадии тестового процесса, чтобы точно определить, стабилен ли чип, принимая во внимание соотношение количества выявленных ошибок и недочетов и числа пройденных стресс-тестов и результатов бета-тестирования.
Тем не менее, проверка продолжается. Каждый новый чип, выходящий из фабрики, проходит через последовательность тестов для определения надежности. Прежде всего, устройство Iscan удостоверяет, что внутренние цепи чипа находятся в безопасном работоспособном состоянии. Оно подключается через внешние контакты и прогоняет тесты приблизительно от 10 до 20 секунд. Еще находясь в "вафле" (т.е. когда чипы все в одной пластине), каждый чип тестируется системой S9000, которая в течение 3 секунд производит все необходимые вычисления. Процессоры, не прошедшие этот тест, маркируют и отсеивают, а прошедшие монтируют в корпус.
Чипы в корпусе затем тестируются на различных скоростях второй системой S9000. Некоторые чипы маркируют более низким значением частоты, другие - более высоким. (Первые чипы Pentium II работали с частотой 233 или 266 МГц.) Оставшиеся чипы отсеивают. Наконец, достойные чипы вставляют в обычный компьютер и запускают ОС в течение 10-15 минут.
Печально известная ошибка FDiv
Даже после того, как процессор начинает поступать конечным пользователям, тестовая команда Intel не сидит без работы, улучшая качество производства и устраняя различные ошибки, найденные конечными пользователями. Въедливые пользователи, тем не менее, вряд ли найдут ошибки при использовании обычных домашних средств. Любое тестирование, проведенное отдельными пользователями или даже целыми компаниями, тривиально по сравнению с работой, проведенной тестовой командой Intel, и это еще слабо сказано. Да, "опечатки" всегда будут в новых процессорах, но найти их будет можно только случайно, а не с помощью целенаправленного тестирования.
В 1994 относительно серьезная "опечатка" была найдена в процессоре Pentium, сразу после запуска в производство. Ошибка FDiv существует во всех Pentium с частотой от 60 до 100 МГц и приводит к случайным погрешностям при делении чисел с плавающей точкой. Это вызвало волну шуток в Internet и юмористических передачах ("Сколько нужно разработчиков Pentium, чтобы вкрутить лампочку? 1.99904274017, но такая точность достаточна для обычного применения"), тем не менее, Intel долгое время не признавала публично наличие ошибки. В конце концов, Intel все же ее признала и потратила 475 миллионов долларов, чтобы заменить чипы, но урон репутации Intel уже был нанесен.
Нашли ошибку? Звоните 800-Intel-4-U
Со времени ошибки FDiv, Intel не только улучшила свою технологию проверки и тестирования, но также приняла на вооружение новый подход к "опечаткам". Пользователи теперь могут позвонить по бесплатному номеру (800-Intel-4-U), чтобы сообщить о возможных ошибках. (Разумеется, этим номером вряд ли будут пользоваться из России). Информация обо всех найденных "опечатках" сначала передается всем основным производителям компьютеров, затем (примерно месяц спустя) эта информация публикуется на сайте Intel. В этом разделе сайта можно найти полное техническое описание каждой ошибки, ее возможные проявления, способы обхода, и если они есть, новые прошивки, исправляющие ошибку.
Через 3 года после FDiv, в Pentium II была найдена ошибка, как раз в то время как Intel запускала чип. В этот раз Intel решила проблему быстро и легко. Так называемая ошибка флагов Dan-0411, невозможность оповещения программ о завершении некоторых операций, была немедленно раскрыта и исправлена без отзыва уже проданных процессоров. Обновление BIOS, метод модификации микрокода во время загрузки, еще не был доступен во время обнаружения FDiv, но может широко использоваться с Pentium II.
"В свете FDiv, - говорит Budelman, - мы создали новую религию, если можно так выразиться, хотя это, конечно же, просто свод правил и инструкций для решения проблем в результате обнаружения ошибки. Мы находим "опечатку". Мы исследуем ее, определяя причины и следствия. Мы находим способ решения проблемы. Мы обнародуем информацию об ошибке, следуя инструкциям. Мы объясняем людям о влиянии этой ошибки на их работу и о том, как предотвратить возможные проблемы".
Дмитрий Корниенко iXBT Hardware
Затем представьте, что вы запускаете на макете симуляцию транспортного потока в час пик, с тысячами почти невидимых легковушек, грузовиков, автобусов, трамваев, поездов метро и байкеров по всем дорогам, мостам, тоннелям... Вам нельзя допускать пробок, тем более в центре, где пешеходы шагают прямо по проезжей части, каждый должен добраться до пункта назначения точно в назначенное время.
Теперь представьте, что поставлена задача сделать такую симуляцию с учетом всех возможных перемещений участников движения и с условием отсутствия дорожных происшествий и заторов. Представили?
Проверять процессор на отсутствие ошибок гораздо труднее.
Ежеминутное тестирование
Производители процессоров тратят неимоверное количество времени и средств на то, чтобы протестировать процессор на предмет отсутствия ошибок. Такое тестирование представляет собой действие, в процессе которого каждый новый процессор проверяется на отсутствие дефектов в конструкции, отсутствие ошибок в производственном процессе и на совместимость с программным обеспечением. Например, Intel тратит сотни миллионов долларов в год на проверки, тестируя каждый чип, начиная с его концепции и заканчивая последним днем производства. Группа редакторов и сотрудников тестовой лаборатории PC Magazine недавно посетила центр Intel в Hillsboro, штат Oregon, чтобы узнать подробности о технологии проверки процессоров.
Еще до воплощения в кремнии, новая архитектура моделируется программно и тестируется на протяжении месяцев, ежеминутно в разных частях земного шара. Отдельные тесты часто запускаются на мамонтообразных аппаратных моделях процессора, занимающих целые комнаты. Предварительные образцы проверяются на специально собранных компьютерах, со специальным оборудованием, каждый комплект которого стоит в среднем 250 тысяч долларов. Тесты на совместимость прогоняются на сотнях моделей периферийных устройств и тысячах программных приложений. Intel даже посылает процессоры своим партнерам и конечным пользователям для дальнейшего тестирования. Тем не менее, до сих пор процессоры Intel содержат ошибки.
Хотя с начала продаж у процессора Pentium II было найдено более 50 ошибок (незначительные ошибки не влияют на повседневную работу компьютера), нельзя сказать, что Intel использует неадекватные технологии тестирования. Проверка процессора, как и вышеописанная задача симуляции городского трафика на микроскопической модели центра Москвы, - ювелирная работа огромного объема.
"Почти невозможная" задача
Рассмотрим Pentium Pro, первый процессор архитектуры P6, которая сейчас используется в Pentium II. Этот процессор для серверов и рабочих станций, представленный в конце 1995 года и теперь закончивший свой жизненный цикл, содержит 5,5 миллионов транзисторов. Если вы решите проверить каждое возможное состояние процессора, придется проверить 25 500 000 комбинаций. Получается число порядка 101 600 000, а ведь это только оценка требуемых объемов работ.
Кроме этого, процессор должен взаимодействовать с чипсетом (еще 2400 состояний), кэшем 2-го уровня, подсистемой памяти, сотнями периферийных устройств, сотнями тысяч программных пакетов и миллионами конкретных пользователей. "Соедините это вместе, - говорит Gerald Budelman (Джеральд Бадельман), главный менеджер Server Validation Engineering - отдела технологии проверки серверов, - и полная проверка оказывается почти невозможной задачей".
Рассмотрим только инструкцию ADD, одну из сотен используемых инструкций процессора Pentium Pro. ADD вычисляет сумму двух 32-битных чисел, одного из заданного регистра и другого из любой ячейки оперативной памяти. С 232 возможных значений для одного числа и таким же количеством для другого, возможны 264 различных комбинации данных. Кроме того, первое число может находиться в любом из восьми регистров, а второе число, если разрядность виртуального адресного пространства равна 48 бит, может находиться по любому из 248 возможных адресов памяти.
Это 251 различных комбинаций по размещению и 264 различных вычислений. Если бы у вас был миллион компьютеров и каждый проверял бы миллион вычислений в секунду, проверка всех возможных состояний заняла бы 1015 лет. Всего лишь. "Между прочим, - говорит Budelman, - возраст Вселенной оценивается всего в 1012 лет".
Проверка процессора, его тестирование - это настоящее искусство, а не применение грубой силы. Невозможно проверить процессор, проверяя каждую возможную инструкцию. Хотя Intel никогда не сможет выпустить процессор, свободный от ошибок, вполне возможно (и практика это подтверждает), что после многомесячного непрерывного, специализированного и безумно дорогого тестирования на рынок попадет работоспособный и надежный продукт.
До и после кристалла
По словам Budelman, тестирование в Intel "начинается почти на следующий день после того, как у кого-то появилась идея нового микропроцессора, и продолжается не только во время подготовки к выходу, но и до самого конца жизненного цикла". Общий процесс тестирования разделен на две главные составляющие - до и после первого экземпляра кристалла. Предварительное тестирование, проходящее до того, как процессор воспроизводиться в кремнии, оперирует программными моделями, а иногда и аппаратными моделями, собранными из дискретных элементов. На втором этапе тестируются готовые кристаллы, работающие в обычных компьютерах или на специальных стендах.
На каждом этапе преследуется одна и та же цель - поиск и устранение ошибок. Процессор, готовый ли это кристалл или всего лишь модель, тестируют снова и снова практически круглосуточно. Любые потенциальные ошибки или недосмотры протоколируются в главной базе данных и однозначно подразделяются на четыре категории: ложная тревога (ошибка при тестировании), новые ошибки, ранее известные ошибки и не воспроизводимые ошибки (т.е. те, которые нельзя повторить).
Как только ошибка исправлена либо внесением изменений в модель процессора, либо производством нового кристалла, нужно провести тестирование снова, чтобы убедиться в отсутствии новых ошибок. Процесс тестирования, нахождения ошибок и дополнительного тестирования требует не только наличия быстро перестраиваемых тестов, но и быстро настраиваемой системы обработки огромных объемов данных, накапливаемых в результате этих тестов.
Программно эмулируемый процессор
Проверка до получения первого кристалла начинается с RTL модели процессора (register transfer logic - логическая схема регистровых переходов), программы высокого уровня, созданной, чтобы работать в точности так, как это делал бы настоящий процессор. "Это модель, которая точно описывает функционирование настоящего чипа, - говорит Budelman, - но не представляет его в виде транзисторов и логических схем". Процессоры обычно моделируют с помощью фирменного языка RTL известного как IHDL (Intel High-Level Description Language - высокоуровневый язык описания Intel), а чипсет - набор устройств, которые постоянно сопровождают процессор, - изготавливается с помощью стандартного промышленного языка, известного как VHDL (VHSIC Hardware Description Language - язык аппаратного описания сверхскоростных ИС, или очень высокоуровневый язык описания).
Процессор в замедленном движении
Intel начинает тестировать RTL модель чипа за несколько месяцев до появления первого кристалла, используя рабочие станции с Unix или Windows NT. Функции процессора симулируются на довольно низких скоростях, от 2 до 5 Гц, по причинам легкости управления и наблюдения. В то время как Pentium II 400 МГц совершает 400 миллионов тактовых циклов в секунду, его RTL модель достигает по максимуму 5 циклов в секунду. "Windows не загрузится в течение всей вашей жизни", - говорит Budelman.
Это похоже на Сизифов труд, но определенно является лучшим решением для получения детальных предварительных результатов. На частоте 5 Гц не только проще создать и провести каждый тест, но также и проще обнаружить потенциальные ошибки, а затем определить их причины. "Плохо то, что работа идет медленно, - говорит Budelman. - Хорошая сторона заключается в том, что можно наблюдать и контролировать все вплоть до мелочей".
Эта медленная симуляция требует, тем не менее, неординарного объема вычислительных мощностей. И если вы хотите закончить тестирование в разумное время, требуется неординарное количество компьютеров. Так что, в дополнение к основному парку выделенных рабочих станций, в процессе тестирования Intel применяет автоматизированный процесс, известный как NetBatch, чтобы использовать вычислительные мощности рабочих станций своих работников. Когда инженер Intel прерывается на чашечку кофе или идет домой вечером, NetBatch немедленно получает доступ к его рабочей станции и запускает RTL тесты - неважно, работает этот инженер в лаборатории в Folsom, California, или Haifa, Israel. В час пик проверочное тестирование использует более 1000 рабочих станций по всему миру. "Ко времени создания реальных кристаллов, - говорит Budelman, - мы в среднем успеваем провести 300 миллионов циклов симуляции в неделю. Средняя загрузка всех рабочих станций Intel составляет 87% каждые 24 часа 7 дней в неделю". И даже при 300 миллионов циклов в неделю за эти семь дней симулируется только 1 секунда работы 300 МГц процессора.
Многочисленные разделы RTL тестирования
RTL-тестирование, в процессе которого проверяется все, начиная с основной схемы чипа и заканчивая его взаимодействием с периферийными устройствами, подразделяется на несколько дисциплин или разделов. Самая низкоуровневая - это architecture validation (AV - проверка архитектуры), ставящая цель убедиться, что чип - отдельно от всякого сопутствующего оборудования - работает именно так, как это было задумано. Идея, лежащая в основе AV, заключается в том, чтобы убедиться, что RTL модель удовлетворяет фундаментальному описанию архитектуры, определенной в справочном руководстве для программистов и во внешней спецификации архитектуры (описании назначения команд и регистров). AV тесты включают в себя как унаследованные тесты, использовавшиеся с предыдущими поколениями процессоров, так и тесты, разработанные специально для тестирования новых возможностей. Для примера, с Pentium II использовались многие тесты, написанные для Pentium Pro, и еще потребовались соответствующие тесты для проверки блока MMX инструкций.
Проверка "входящих и выходящих"
AV разделяется на поддисциплины: тестирование блоков и тестирование микроархитектуры (µAV). В первом случае Intel отдельно проверяет каждый самостоятельный блок процессора, удостоверяясь в том, что на входные данные блок выдает корректные выходные - проверка "входящих и выходящих", как выразился Budelman.
Затем, в процессе тестирования микроархитектуры проверяется, что все эти блоки могут корректно "общаться" между собой. В отличие от тестирования блоков, которое основано на заранее заданном наборе тестовых ситуаций, µAV использует то, что Intel называет coverage-based validation - проверка, основанная на перекрытии областей. Так как каждое состояние нельзя протестировать по известным причинам, используются случайные тесты в конкретной группе операций.
Хотя тесты случайные в том смысле, что они генерируются на удачу, их граничные условия заданы со знанием и часто меняются. В процессе тестирования Intel проверяет результаты тестов, чтобы убедиться, что каждые новые условия удовлетворяют общему принципу. Если тест получает ошибочные или ранее проверенные условия, он перезапускается.
По-прежнему в рамках RTL модели, вслед за AV проверкой переходят к ко-симуляции (чтобы удостовериться, что чип корректно взаимодействует с различными чипсетами, кэшами и другой сопутствующей аппаратурой) и проверке SMP - симметричного мультипроцессирования (чтобы удостовериться в том, что несколько процессорных чипа могут работать вместе). Ко-симуляция требует, чтобы компьютер полностью моделировался программным способом. В то время как центральный процессор (ЦП) моделируется с помощью IHDL, а чипсет через VHDL, память и периферийные устройства воссоздаются с помощью языка Си. Это тестирование, тем не менее, мало походит на проверку симметричного мультипроцессирования. Проверка SMP может быть пугающей, особенно на этапе RTL модели, так как она часто включает в себя измерение общей загрузки системы, а не проверку заранее заданных условий.
Arcsim: быстрая дополнительная проверка
Параллельно RTL тестированию, Intel тестирует отдельную программную модель, известную под сокращением Arcsim. В то время как RTL модель детализирована и работает безумно медленно, Arcsim представляет собой общую высокоуровневую модель, написанную на языке Си, которую можно легко запускать, перезапускать и сравнивать полученные результаты с RTL моделью.
Ошибки отлавливаются, когда результаты RTL тестирования отличаются от результатов работы Arcsim. Проще говоря, Arcsim - это быстрая дополнительная проверка. Эта модель также использует сетевые вычисления через NetBatch, дублируя только выходы чипа, а не его строение (а именно, Arcsim должен выдавать те же данные, что и чип, но не обязательно получать их таким же способом).
ЦП размером с комнату
При тестировании Pentium Pro, Intel добавила третий этап предварительного тестирования, известный как emulation - эмуляция. Хотя с тех пор он не использовался, это показательно для оценки времени и средств, затрачиваемых на процесс проверки. Эмуляция состоит в построении аппаратной модели чипа из дискретных элементов и создании, дословно, процессора размером с комнату, которые присоединятся к стандартному компьютеру, и работает на стандартном программном обеспечении.
"Существует возможность, - говорит Budelman, - составить большую стойку перепрограммируемых матриц логических элементов, которую можно запрограммировать так, чтобы она работала подобно настоящему процессору". Стоившая приблизительно 8 миллионов долларов, эмуляция Pentium Pro, работавшая на тактовой частоте в целых 150 КГц, была присоединена к жесткому диску и подсистеме памяти, и на этой системе запускались большинство современных операционных систем. Хотя загрузка длилась несколько часов и неделя уходила на перезапуск, это была, по словам Budelman, "самая большая эмуляция процессора на Земле".
Такой подход может показаться излишним, но он предоставляет ценный промежуточный этап между RTL и предварительным образцом кристалла. Эмуляция не настолько просто изучаема и управляема, как RTL модель, но она менее абстрактная и работает быстрее. Она не так быстра, как кристалл, но ее легче изучать и изменять.
Если вы нашли ошибку в эмуляции, вы обычно можете перенастроить модель за неделю с небольшими затратами. Если вы нашли ошибку в образце кристалла, требуются 8 недель и 2 миллиона долларов на ее исправление. Intel не эмулировала Pentium II и последующие чипы семейства, но, возможно, будет эмулировать будущие процессоры.
На подходах к кристаллу
После того как многомесячное тестирования с помощью RTL, Arcsim и эмуляции показало, что архитектура не содержит просчетов, можно перейти к созданию настоящего кремниевого чипа. Программные тесты настолько основательны, что первый образец кристалла, вышедший из фабрики (fab), всегда работоспособное устройство. "За десять лет, - говорит Budelman, - не припомню, чтобы на процессоре не запускалась операционная система в версии кристалла A0" (первая версия чипа, имеющая начальный степпинг, поколение).
Такого стараются избежать всеми силами. Менять готовый кристалл и сложнее, и дороже в экспоненциальной прогрессии, чем настраивать программную модель или эмуляцию. Каждый раз, когда обнаруживают ошибку и процессор исправляют, ему присваивают новую двухбуквенную комбинацию. Незначительным степпингам (те, что включают малые изменения) назначают новую цифру, тогда как значительным назначают уже новую букву (например, за A0 следуют A1 и A2, за которыми вдруг могут последовать B1, B2, B3, затем C1 и т.д.).
Тем не менее, в некоторых случаях, Intel может внести изменения в процессор без выпуска нового степпинга. Каждый чип содержит ПЗУ микрокода, постоянную память, которая является переходным звеном между машинной инструкцией и физической схемой чипа. Это позволяет разработчикам процессора легко добавлять новые инструкции без встраивания в чип новых логических схем. Хотя для изменения микрокода обычно требуется и новый степпинг, Intel недавно разработала способ внесения незначительных изменений в микрокод без переработки кристалла. Область ПЗУ микрокода теперь заполнена прерывистыми кусками ОЗУ, которые могут быть перезаписаны на этапе загрузки системы через процедуру BIOS Update (обновление BIOS). Изменение, требовавшее ранее нескольких недель работы и миллионов долларов, теперь можно сделать в течение нескольких дней с небольшими затратами.
Но у Intel есть еще более впечатляющее устройство - focused ion beam, сфокусированный ионный луч, - которое в паре со сканирующим (растровым) электронным микроскопом позволяет инженерам просматривать и даже изменять внутренние логические схемы процессора. Это можно сравнить с хирургической операцией на бактерии. Луч, который в несколько раз тоньше человеческого волоса, может резать и перенаправлять проводники.
Pentium II за $150,000
С чипом A0 на руках, Intel начинает процесс, известный как systems validation (SV, проверка систем), использующий специально собранные и настроенные компьютеры для проверки на соответствие особенностей, режимов, операций и машинных инструкций процессора описанию в его документации. Это включает в себя широкий набор тестов, от специфических тестов особенностей процессора и стресс-тестов температурного режима до случайных тестов машинных инструкций и помех по шине. Каждый чип проходит через семейство тестов, которые используются в течение 15 лет, и каждый чипсет обязан пройти различные тесты внутреннего состояния (чтобы проверить такие вещи, как работа с памятью и шиной PCI).
SV выполняется на нескольких проверочных платах с оснащением специального назначения - специально собранных компьютерах. Для Pentium II Intel собрала около 60 таких систем стоимостью более $150000 каждая. Эта специальная система, получившая имя Diamondback, оснащена процессорами числом до 4х включительно, объединенным мостом/подсистемой памяти, чипсетом в сокетах, программируемым интерфейсом шины и встроенными разъемами для подключения внешних приборов.
Обычно, каждая пара таких платформ требует более $200000 на приборы, включая анализаторы логики, устройства для мониторинга PCI, программируемые источники питания и контроллеры температуры. Эти инструменты используются не только для проверки данных, проходящих через систему, но также и для дополнительной нагрузки на машину.
"Приборы, - говорит Budelman, - подключаются к плате для того, чтобы наблюдать за происходящим и передавать управляющие сигналы в шину, чтобы создавать необычные ситуации во время работы процессора". В целом, это огромное количество аппаратуры для SV, работая 24 часа в сутки, позволяет обнаружить около 40 процентов всех ошибок в кристалле.
Проверка на совместимость
Простая проверка того факта, что процессор действует, как положено по его документации, еще недостаточна. Чип должен работать с существующим реальным оборудованием, программным обеспечением и операционными системами, которые не всегда следуют промышленным стандартам. Compatibility validation (CV - проверка совместимости) начинается с автоматизированного тестирования программ, в котором процессор устанавливается в обычный компьютер и на этой системе выполняется запуск операционной системы и тысяч приложений.
Эти тесты обычно работают без вмешательства техников. Работая без перерыва, тестовые стенды Intel могут автоматически перегрузить систему, инсталлировать ОС и приложение, запустить это приложение и сравнить его работу с эталоном, на уровне пиксельной точности. "Мы нашли ошибку, - говорит Budelman, - которая проявлялась как отличие лишь в одном пикселе от эталона".
Intel параллельно тестам программ проводит такие же тщательные тесты оборудования, проверяя, чтобы новый чип был совместим с большей частью распространенных на рынке жестких дисков, графических плат, сетевых плат и других устройств. Проверяются буквально тысячи периферийных устройств - архаичных, старых и новых.
Стресс-тесты играми: грубые и неестественные действия
Затем, Intel прогоняет тесты производительности на отдельных системах и стресс-тесты на сетевых серверных конфигурациях, используя все наборы тестов: от собственного SysMark до ServerBench от Ziff-Davis, и все операционные системы: от Windows 95 до UnixWare. В дополнение к такому специализированному автоматизированному тестированию, проверка совместимости включает в себя ручное тестирование с использованием популярных игр и мультимедиа приложений. "Получается так, - говорит Budelman, - что игры - одни из самых "стрессовых" программ, которые существуют... особенно для графических подсистем. Они игнорируют BIOS. Они игнорируют ОС. Они производят грубые и неестественные действия".
Только 6 процентов всех ошибок после выхода кристалла обнаруживаются в процессе проверки на совместимость, но зато они самые скользкие. Например, во время серверных стресс-тестов ошибки могут нарождаться днями или неделями. Серверная тестовая платформа "будет работать 20 дней, а затем умрет на 21 день". "Место, в котором произошел сбой, обычно не имеет ничего общего с непосредственной причиной ошибки. Это могло случиться несколькими днями раньше". Современная лаборатория Intel для проверки на совместимость стоит более 20 миллионов долларов и имеет время "полураспада" всего 18 месяцев. Программы нужно обновлять каждые 3 года, а оборудование - каждые 12-36 месяцев.
Бета-тестирование
Конечно, есть тестирование, которое воспроизводит условия реального мира, и есть тестирование в реальном мире. После получения устойчивого кристалла процессора, Intel посылает чипы к независимым производителям аппаратного обеспечения (independent hardware vendors, IHVs) и независимым разработчикам программного обеспечения (independent software vendors, ISVs) для бета-тестирования.
"Мы не делаем все сами, - говорит Budelman. - Мы, конечно же, полагаемся на наших партнеров - поставщиков оборудования и программ. Мы работаем с ними. В некоторых случаях мы просим их провести тестирование и поставляем им для этого целые платформы". Для Pentium Pro Intel попросила 600 конечных пользователей, тщательно отобранных, провести предварительное тестирование. Многие бета-тестеры были из компьютерных фирм, но остальные пришли из финансовой, коммерческой и развлекательной сфер. За 5 месяцев тестирования не было найдено никаких новых ошибок.
Когда чип запущен в производство
После почти двух лет проверок и тестирований, чип практически готов для производства. Тем не менее, нет определенной формулы, чтобы определить его готовность. Нельзя ждать, пока все недосмотры будут разрешены, так как выявление многих проблем может занять месяцы.
Из сложности кристалла совсем необязательно следует его совершенство. "Покажите мне процессор без "опечаток", - говорит Budelman, - и это будет процессор совершенно неизвестный на рынке и без тестовой команды". Напротив, тестовая команда Intel должна четко знать все стадии тестового процесса, чтобы точно определить, стабилен ли чип, принимая во внимание соотношение количества выявленных ошибок и недочетов и числа пройденных стресс-тестов и результатов бета-тестирования.
Тем не менее, проверка продолжается. Каждый новый чип, выходящий из фабрики, проходит через последовательность тестов для определения надежности. Прежде всего, устройство Iscan удостоверяет, что внутренние цепи чипа находятся в безопасном работоспособном состоянии. Оно подключается через внешние контакты и прогоняет тесты приблизительно от 10 до 20 секунд. Еще находясь в "вафле" (т.е. когда чипы все в одной пластине), каждый чип тестируется системой S9000, которая в течение 3 секунд производит все необходимые вычисления. Процессоры, не прошедшие этот тест, маркируют и отсеивают, а прошедшие монтируют в корпус.
Чипы в корпусе затем тестируются на различных скоростях второй системой S9000. Некоторые чипы маркируют более низким значением частоты, другие - более высоким. (Первые чипы Pentium II работали с частотой 233 или 266 МГц.) Оставшиеся чипы отсеивают. Наконец, достойные чипы вставляют в обычный компьютер и запускают ОС в течение 10-15 минут.
Печально известная ошибка FDiv
Даже после того, как процессор начинает поступать конечным пользователям, тестовая команда Intel не сидит без работы, улучшая качество производства и устраняя различные ошибки, найденные конечными пользователями. Въедливые пользователи, тем не менее, вряд ли найдут ошибки при использовании обычных домашних средств. Любое тестирование, проведенное отдельными пользователями или даже целыми компаниями, тривиально по сравнению с работой, проведенной тестовой командой Intel, и это еще слабо сказано. Да, "опечатки" всегда будут в новых процессорах, но найти их будет можно только случайно, а не с помощью целенаправленного тестирования.
В 1994 относительно серьезная "опечатка" была найдена в процессоре Pentium, сразу после запуска в производство. Ошибка FDiv существует во всех Pentium с частотой от 60 до 100 МГц и приводит к случайным погрешностям при делении чисел с плавающей точкой. Это вызвало волну шуток в Internet и юмористических передачах ("Сколько нужно разработчиков Pentium, чтобы вкрутить лампочку? 1.99904274017, но такая точность достаточна для обычного применения"), тем не менее, Intel долгое время не признавала публично наличие ошибки. В конце концов, Intel все же ее признала и потратила 475 миллионов долларов, чтобы заменить чипы, но урон репутации Intel уже был нанесен.
Нашли ошибку? Звоните 800-Intel-4-U
Со времени ошибки FDiv, Intel не только улучшила свою технологию проверки и тестирования, но также приняла на вооружение новый подход к "опечаткам". Пользователи теперь могут позвонить по бесплатному номеру (800-Intel-4-U), чтобы сообщить о возможных ошибках. (Разумеется, этим номером вряд ли будут пользоваться из России). Информация обо всех найденных "опечатках" сначала передается всем основным производителям компьютеров, затем (примерно месяц спустя) эта информация публикуется на сайте Intel. В этом разделе сайта можно найти полное техническое описание каждой ошибки, ее возможные проявления, способы обхода, и если они есть, новые прошивки, исправляющие ошибку.
Через 3 года после FDiv, в Pentium II была найдена ошибка, как раз в то время как Intel запускала чип. В этот раз Intel решила проблему быстро и легко. Так называемая ошибка флагов Dan-0411, невозможность оповещения программ о завершении некоторых операций, была немедленно раскрыта и исправлена без отзыва уже проданных процессоров. Обновление BIOS, метод модификации микрокода во время загрузки, еще не был доступен во время обнаружения FDiv, но может широко использоваться с Pentium II.
"В свете FDiv, - говорит Budelman, - мы создали новую религию, если можно так выразиться, хотя это, конечно же, просто свод правил и инструкций для решения проблем в результате обнаружения ошибки. Мы находим "опечатку". Мы исследуем ее, определяя причины и следствия. Мы находим способ решения проблемы. Мы обнародуем информацию об ошибке, следуя инструкциям. Мы объясняем людям о влиянии этой ошибки на их работу и о том, как предотвратить возможные проблемы".
Дмитрий Корниенко iXBT Hardware
Компьютерная газета. Статья была опубликована в номере 07 за 2000 год в рубрике hard :: процессоры