39. Промах специалиста по технической помощи
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 для получения разности, сделав еще одно предположение по числам в таблице. Шаг за шагом, предположение будет все точнее, а разность — все меньше, пока, наконец, вы не получите ответ с точностью до пятнадцати знаков после запятой.
Для ускорения процесса деления справочная таблица была в кремнии заложена в сам чип. К сожалению, пять из 2048 чисел в таблице оказались неправильными. Ошибка была не слишком заметна, поскольку сам метод выполнения длинного деления подразумевал автоматическое исправление ошибки. Но очень малое число комбинаций двоичных чисел все же приводило к неправильному конечному результату.
Подсчитать, сколько комбинаций дадут неверный результат, было относительно просто. Инженеры, проводившие анализ для срочно созванной команды по оценке серьезности проблемы, ответили: приблизительно одно вычисление из девяти миллиардов. Сложнее было определить, какое значение будет иметь для пользователей получение неверных ответов в одном из девяти миллиардов длинных делений. Для большинства из них, кто не часто пользовался устройством с плавающей точкой, а если и пользовался, то не требовал точности до пятнадцати знаков, ответ был таков: практически никакого значения. При среднем уровне использования обладателем Pentium устройства с плавающей точкой, подсчитали инженеры Intel, неправильные ответы могли появляться примерно один раз в двадцать семь тысяч лет. Подавляющее большинство ПК, содержащих бракованные чипы Pentium, будут превращены в лом задолго до того, как это произойдет. Средний срок работы между сбоями для чипов памяти составлял около семисот лет, а у самого процессора Pentium этот срок равнялся примерно двумстам годам.
А как же те, кто хотел извлечь реальные преимущества из функций Pentium для вычислений с плавающей точкой? Среди них были графические дизайнеры и полиграфисты, использовавшие прикладные пакеты типа PhotoShop; для них эта ошибка могла выдать одну неправильную точку из сотен тысяч или даже миллионов. Результат был бы не хуже, чем при неправильно поставленной одной точке в фотографии или на странице текста. Даже если и появится точка на странице, большинство людей примут ее за пылинку на печатной плате и не станут обращать на нее внимания. Но графические дизайнеры были не единственными, кто интенсивно применял чип. Инженеры, экономисты и финансовые аналитики также использовали Pentium. Пятнадцать значимых цифр точности могли оказаться очень важными и привести к смещению чертежа новой ракеты на несколько миллиметров от положенного или к ошибке в несколько долларов при подсчете потока будущей наличности при миллиардных сделках. Кроме того, существовала и третья категория пользователей: теоретические математики и другие ученые, которые целыми днями эксплуатировали свои компьютеры, обеспеченные мощью Pentium, для вычислений. Для таких пользователей дефект мог ежедневно приводить к неправильным результатам.
На интенсивных пользователей приходилась крохотная доля от 2 млн. чипов Pentium, которые Intel надеялась продать к концу 1994 года: инженеров и аналитиков, которым нужно было много считать, насчитывалось не более нескольких сотен, а математиков — и всего-то несколько десятков. Однако цена устранения дефекта специально для них была бы очень высока. Только смена шаблонов для внесения правильных пяти чисел стоила бы десятки тысяч долларов. Затем потребуется дальнейшая работа — тысячи чипов, каждый стоимостью 900 дол., поскольку Intel всегда назначала очень высокие цены в начале жизненного цикла продукта, необходимо будет выбросить. А что делать с теми, которые уже отгружены? Завоевание господства Pentium проходило по плану: многие сотни тысяч новых чипов уже находились на рабочих столах пользователей или в розничной сети, и их возвращение окажется недопустимо дорогим. Каждую машину должен будет вскрыть опытный техник, чтобы извлечь старый чип и установить на его место новый. Было ясно, что Intel лишится миллионов долларов, а возможно, даже десятков миллионов, если решится сделать то, что она проделала с бракованными чипами 486, превратив их в брелоки.
Проще всего для компании было ничего не сообщать миру и внести ряд изменений в шаблоны для устранения дефекта. У Intel уже имелся стандартный "пошаговый" процесс, при котором новые разработки чипов проходили последовательные изменения и "сжатия" для устранения ошибок, уменьшения размеров чипа или снижения стоимости производства. Вычислительная ошибка могла быть легко устранена при следующем пошаговом процессе, и это дало бы возможность решить проблему ненавязчиво, не нанося никакого вреда имиджу нового чипа на рынке.
Этот вариант тем более привлекал, что такова уж была сложившаяся практика в индустрии. Все в компаниях знали, что ни один чип не получился идеальным сразу, так же как новая модель автомобиля, у которой заедает окно или плохо прилегает дверная панель, и всегда требуется несколько месяцев для устранения брака. Те, кого такие мелкие дефекты раздражают, должны подождать, прежде чем доставать свои кредитные карты. По случайному совпадению один из соперников Intel — небольшая компания Cyrix — только что столкнулась с подобной проблемой с одним из своих чипов 486. Репортер журнала "Windows" обнаружил ошибку в устройстве с плавающей точкой Cyrix 486DX, но техасская компания в резкой форме отказалась как от замены нескольких тысяч чипов, содержащих ошибку, так и от уведомления потребителей о ее наличии. Вместо этого она просто исправила ошибку в следующей версии чипа и продолжала работать как ни в чем не бывало.
Но Cyrix — это не Intel. Она не тратила в прошлом году около 100 млн. дол. на рекламу своего чипа. Cyrix не проводила маркетинговой кампании с целью убедить покупателей по всему миру, что покупка компьютера с ее чипом является твердой гарантией качества и надежности. Кроме того, Cyrix не пыталась из компании, производящей компоненты для продажи инженерам, стать глобальной потребительской торговой маркой. Логотип "Intel Inside" присутствовал не только в рекламных объявлениях, он появился на самих компьютерах, на упаковке и даже — в качестве маркетингового трюка для самого густонаселенного рынка в мире — на отражателях велосипедов в Китае. Во многих отношениях Intel пыталась изменить правила игры. Могла ли она продолжать играть по старым правилам в других аспектах?
Только спустя полгода Энди Гроув осознал, что ответом на этот вопрос должно было стать твердое "нет". Но летом 1994 года он и его коллеги все еще смотрели на мир скорее с инженерной, чем с рыночной точки зрения. Торговые марки, имидж, психология потребителя — все эти факторы, говорившие в пользу выбора краткосрочных расходов для поддержания репутации Intel в глазах потребителей, только начинали появляться на горизонте компании. Дисциплины, которые были стержневыми для прошлых успехов Intel, — технология, измерения, оценки вероятности сбоев, анализ затрат на изменения в процессах — говорили в пользу секретности. Поэтому специально созданной группой было принято решение держать информацию об ошибке в секрете.