организаций. Кроме того, он должен был выплатить компенсацию Intel за нанесенный ей ущерб. Утверждая, что она была вынуждена перезагрузить операционные системы всех машин, с которыми работала программа Crack, и переконфигурировать на них все программное обеспечение, компания назвала цифру в 69 тыс. дол. Защита обошлась Шварцу еще в 170 тыс. дол.
Это дело широко освещалось в технологической прессе США, а в Интернете даже была создана специальная страница для сбора пожертвований в фонд защиты Шварца. Мнения о деле Шварца разделились. Одни считали, что он вел себя непозволительно. Другие говорили, что его следовало просто уволить или потребовать компенсации в пользу компании, но унижение уголовным обвинением, на их взгляд, было излишним. Однако никто не провел параллели между делом Шварца и случаем с поросенком, которого Боб Нойс украл для пикника, будучи первокурсником Гриннельского колледжа в Айове. Нойсу тогда повезло: разгневанного фермера уговорили отказаться от обвинения и Нойс отделался временным отчислением на лето, которое он провел в Нью-Йорке, работая статистиком в страховой компании. Шварцу повезло меньше. Но на дворе стоял 1993 год, а не 1948-й. Правила игры изменились, и Боб Нойс, умерший в июне 1989 года от обширного инфаркта, остался для Intel только легендой.
39. Промах специалиста по технической помощи
Имя сотрудника, ответившего на тот звонок, так и не было открыто публике. Но однажды, в октябре 1994 года, специалист по технической помощи центра приема звонков Intel в Фолсоме, штат Калифорния, так неудачно отреагировал на звонок клиента, что последовавшая за этим цепочка событий двумя месяцами позже стоила компании почти полмиллиарда долларов.
Вот как это случилось.
Звонивший представился Томасом Найсли с математического факультета Линчбергского колледжа в Виргинии. Он объяснил, что выполнял вычисления на системе компьютеров, работая с простыми числами, и получил неверные результаты. Точнее говоря, один из его компьютеров давал ошибку в результате длинного деления. При делении единицы на 824 633 702 441 он выдал неправильный ответ.
Найсли говорил мягко, но абсолютно уверенно. Он объяснил, что проверил написанную им программу, вводимые данные и приобретенное программное обеспечение, которым пользовался. Он множество раз перезагружал свой компьютер, стер с жесткого диска ненужные программы на случай, если они вносили путаницу, и даже попытался выполнить это вычисление на другой машине в местном компьютерном магазине. Результаты свидетельствовали об одном: виноват, деликатно сказал Найсли, процессор Pentium. Именно он неправильно выполняет математические вычисления.
Люди, осуществляющие техническую помощь в Intel, организованы в три уровня. Персонал на передовой линии, числом около тысячи человек, имеет дело с обычными вопросами от рядовых клиентов. В большинстве случаев эти вопросы не имеют отношения к процессорам Intel; они связаны с прикладными программами, операционными системами или другими устройствами из аппаратного обеспечения компьютера. Но компания, тем не менее, предлагает бесплатную помощь в качестве жеста доброй воли. За этой передней линией стоят еще около 250 человек, которые обслуживают торговых агентов Intel и компьютерную индустрию. Их работа связана с вопросами, непосредственно касающимися продуктов Intel, но и они не являются главными техническими экспертами в компании. Чтобы получить ответ на действительно сложный вопрос, нужно обратиться к инженеру одного из специализированных отделов.
Звонок Найсли следовало незамедлительно передать специалисту из команды Pentium. Для этого имелись все основания. Во-первых, он был профессором математики, а не подростком, играющим на компьютере в игры. Во-вторых, он четко определил проблему как связанную непосредственно с процессором. Наконец, он провел достаточно тестов, чтобы подкрепить, по крайней мере предварительно, свое мнение о том, что в передовом чипе Intel присутствует дефект.
Вместо того чтобы отнестись к звонку Найсли как к приоритетному и требующему особого внимания, сотрудник Intel, говоривший с ним, просто-напросто отмахнулся от него, как от назойливой мухи. Он сказал, что проблема вызвана не чипом, а, вероятно, каким-либо другим устройством его компьютерной системы и что компания с ним свяжется. Но она не связалась. Специалист по оказанию технической помощи, который разговаривал с Найсли, даже не имел доступа к обновленному перечню дефектов нового микропроцессора и, не сознавая серьезности поднятого Найсли вопроса, просто позволил его жалобе затеряться.
Если бы Найсли стало тогда известно, как волновала Intel эта проблема, он, наверное, был бы ошеломлен. Компания не просто знала, что ее чип имеет ошибки. Она знала об этом уже около пяти месяцев — больше, чем Найсли потратил на проверку первоначальной гипотезы о том, что с процессором что-то не так.
Когда началась программа разработки процессора Pentium, Intel понимала, что сложность чипа и размер работающей над ним команды создают большой риск внесения ошибок. В старые добрые времена, когда действовал закон 'один человек, один чип, один год', люди делали множество ошибок в разработках процессоров, но поскольку проекты были относительно небольшими, один или самое большее несколько инженеров могли держать разработку под постоянным контролем. Но в случае с Pentium, состоящим из трех миллионов транзисторов, это, естественно, было невозможно: существовала опасность, что две части схемы чипа, каждая из которых корректно работала сама по себе, при совместной работе могли давать сбой.
Это уже стало немалой проблемой для 486-го. Проведенный впоследствии анализ показал, что большая часть ошибок чипа возникала в интерфейсах между функциональными блоками процессора, а не в самих блоках. Одна из таких ошибок, обнаруженная пользователем уже после того, как 486-й был запущен в производство, оказалась настолько серьезной, что компания вынуждена была сделать из пятидесяти тысяч чипов сувенирные брелоки. Поэтому, с типичной для Intel основательностью, Вин Дхам, 'царь' проекта Pentium, назначил группу, которая не отвечала ни за какой конкретный блок, а только следила за интерфейсами. Дхам также опробовал новый метод, позволявший в последнюю минуту засечь ошибки в разработке.
'Когда проект близился к завершению и каждая из команд заверяла меня, что ошибок нет, я предлагал немедленно выплатить 100 дол. любому, кто обнаружит ошибку', — вспоминает он. К удивлению Дхама, некоторые откликнулись на его предложение, и ему пришлось выплатить несколько сотен долларов. Но выявление ошибки было прекрасной новостью.
'Это обходится гораздо дешевле, чем обнаружить ошибку позже или позволить покупателю найти ее вместо нас, — объяснял он слушателям бизнес-школы во время изучения этого случая вскоре после выпуска чипа, — В процессорах Pentium к потребителям не попало никаких ошибок'.
К сожалению, Дхам ошибался. В мае 1994 года, по прошествии целого года после того, как первые образцы Pentium завершили двенадцатинедельное путешествие по цехам Intel, тесты на надежность, продолжавшиеся и после запуска нового чипа в производство, выявили проблему: Pentium давал неверные результаты при длинном делении. Из-за необходимости проверить три миллиона кремниевых транзисторов для обнаружения источника проблемы выяснение причины заняло еще несколько недель, т. е. Дхам смог доложить руководству Intel о результатах поисков ошибки только в конце июня или в начале июля. Его доклад стал печальным свидетельством того, что новый подход, состоявший в создании 'команды интерфейсов', не оправдал возлагаемых на него надежд.
Метод, используемый в чипе Pentium для длинного деления, был описан двадцать пять лет назад в академическом журнале по вычислительной технике, издаваемом Институтом инженеров по электротехнике и радиоэлектронике. Чтобы получить результат деления числа х на число у, нужно взять первые четыре двоичные цифры числа у и первые семь двоичных цифр числа x и сделать предположение путем поиска приблизительного ответа в таблице умножения. Затем предполагаемое число умножить на у и посмотреть, насколько вы близки к точному ответу. Если разность равна нулю, это означает, что предположение оказалось точным; если нет, нужно разделить y для получения разности, сделав еще одно предположение по числам в таблице. Шаг за шагом, предположение будет все точнее, а разность — все меньше, пока, наконец, вы не получите ответ с точностью до пятнадцати знаков после запятой.
Для ускорения процесса деления справочная таблица была в кремнии заложена в сам чип. К