Провал, обернувшийся успехом




В Музее компьютерной истории в Кремниевой долине отметили 50-летний юбилей сегодня почти забытого компьютера, к которому впервые применили термин "суперкомпьютер"

09:34 17.09.2008   |   1174 |  Леонид Черняк |



К неудаче проекта в IBM отнеслись философски, руководствуясь одним из правил Томаса Уотсона-старшего, основателя компании: "Удвоение уровня неудач – самый быстрый путь к достижению цели" В компьютерной истории проект Stretch (IBM 7030) нередко приводят в качестве примера неудачного решения: этот компьютер оказался в несколько раз медленнее и к тому же существенно дороже, чем планировалось. Однако знания и опыт, полученные при его проектировании, позволили спустя несколько лет создать семейство IBM System/360, ставшее классикой мэйнфреймов. Можно ли такой эксперимент считать неудачей?

В сентябре в Музее компьютерной истории в Маунтин-Вью (шт. Калифорния) торжественно отметили 50-летний юбилей устройства, к которому впервые применили термин "суперкомпьютер". Надо признать, организаторы выбрали странную дату для праздника. Первый из девяти построенных Stretch был запущен в эксплуатацию в 1961 году; если же говорить о старте проекта, то отсчет следовало бы вести с осени 1954-го, когда был сформулирован черновой вариант технического задания. Что же до 1958 года, то на него пришелся момент активного проектирования, но не какое-либо знаковое событие.

Stretch, одно из многочисленных порождений холодной войны, создавался в ответ на запросы исследовательских лабораторий, так или иначе связанных с разработкой ядерного оружия. Показательно, что из девяти построенных только один компьютер попал в метеорологическое бюро, остальные работали по ядерной программе, семь в США и один во Франции (сейчас он находится в экспозиции Парижского музея искусств и ремесел). До появления Stretch для расчетов чаще использовались компьютеры UNIVAC и CDC, но IBM намеревалась составить им конкуренцию и к тому же получить немалое государственное финансирование. С позиции сегодняшнего дня очевидно, что момент для большого скачка был выбран неудачно. В 1955 году технология полупроводников находилась в процессе становления: транзисторы уже появились, но были очень дорогими, между тем они требовались в количестве, измеряемом сотнями тысяч. Индустрия программного обеспечения тоже находилась в зародышевом состоянии. Проектирование и производство компьютеров осуществлялось на кустарном уровне, к тому же единства в команде разработчиков не было. По всем этим объективным и субъективным причинам на прохождение по циклу проектирования и производства ушло более семи лет. За это время Stretch успел морально устареть, на смену навесному монтажу дискретных компонентов шли интегральные микросхемы, а вместе с ними и более высокая культура производства.

Показательно, что проектирование IBM System/360 началось после 1960 года, а первые экземпляры появились в 1964 году. Всего четыре года производились настоящие индустриальные изделия, пусть поначалу с убогой, но все же работающей операционной системой. Тогда же, в 1961 году, стартовал Project X. Перед создателями новой машины стояла грандиозная задача — построить суперкомпьютер, превосходящий по производительности первый суперкомпьютер IBM Stretch в 30 раз. Ситуация осложнялась ожесточенной конкуренцией с компанией CDC, где группу инженеров возглавлял Сеймур Крей, поэтому в процессе проектирования требования к производительности постоянно возрастали. В итоге в 1965 году появился на свет компьютер ACS-1, который оказался не в 30, а в 1000 раз быстрее, чем Stretch.

В технике такое случается, что переходная модель оказывается неудачной, но на ее базе создаются следующие, которые и приносят успех. К моменту начала проекта Stretch семейство мэйнфреймов первого поколения (IBM 701, 703, 704) обеспечило IBM монопольное положение; ей принадлежало 60-70% компьютерного рынка. Тем не менее в области высокопроизводительных вычислений она заметно уступа. Чтобы исправить положение, был задуман Stretch, по производительности он и должен был превзойти IBM 704 на два порядка. Инициатором и руководителем проекта стал Стивен Дануэлл. Вместе с Вернером Бушхольцем он представил эскизный проект не только самого производительного, но и самого надежного для своего времени компьютера Datatron. В его обсуждении приняли участие Джон фон Нейман, руководитель разработки IBM 704 (а затем и System/360) Джин Амдал, а также автор языка программирования Фортран Джон Бэкус. Обсуждение вылилось в столкновение двух идеологий. Дануэлл был нацелен на прямое решение поставленной перед ним задач: он стремился "освоить" государственное финансирование и построить самый производительный компьютер, и точка. Амдал, мысливший на перспективу, хотел убить двух зайцев - и суперкомпьютер построить, и создать задел на будущее. К тому же он не привык быть вторым. Конфликт достиг такой остроты, что на время Амдал ушел из IBM, но потом вернулся и даже возглавил разработку System/360. В конечном итоге он победил, а Дануэлла сделали козлом отпущения. Уже потом, когда руководство смогло оценить сделанное им, состоялась реабилитация, и ему присвоили почетное звание IBM Fellow, но это было позднее.

Сегодня мы можем сказать: Дануэлл и его единомышленники первыми попытались преодолеть "бутылочное горло" фон-неймановской архитектуры. Они сделали упор на быструю арифметику и транзисторные регистры, что позволило минимизировать число обращений к медленной памяти. Увеличение числа регистров было абсолютно новым решением, оно позволяло выполнять целый ряд операций без обращения в память. В большинстве машин того времени каждая операция была связана с обращением в память, а, например, в трехадресной машине для выполнения простейшей операции сложения их требовалось три. Достаточно посмотреть на ограниченный список решений, воплощенных в Stretch, чтобы понять, насколько этот компьютер приблизил архитектуру к современному ее пониманию:

  • мультипрограммный режим работы;
  • защита памяти;
  • система прерываний;
  • конвейерная обработка данных;
  • чередование адресов в памяти;
  • спекулятивное выполнение;
  • просмотр вперед, совмещение операций в памяти с арифметическими операциями;
  • концепция шины памяти;
  • работа двух процессоров на общую память;
  • использование восьми битов для кодировки символа (кстати, именно тогда и родился термин "байт").

Система адресации в System/360 была хуже, чем в Stretch (кто-то даже сказал, что за отсутствие базового адреса и смещения разработчиков следовало бы "сослать в Сибирь", если бы таковая была в IBM). И много лет спустя разработчики первых микропроцессоров заново открывали для себя то, что впервые было изобретено создателями Stretch. Разумеется, все это было воплощено на инженерном уровне своего времени, громоздко и дорого. Компьютер занимал площадь около 250 кв. метров (примерно таков размер среднего американского дома), весил около 100 тонн, один только процессор потреблял 21 кВт электрической мощности. Число использованных транзисторов - 169 200 - кажется смешным в сравнении с современными миллиардами, а размер системы команд, напротив, впечатляет – 735. Тактовая частота - 3,3 МГц, размер оперативной памяти около 300 Кбайт, емкость жесткого диска - 10 Мбайт. Из устройств ввода/вывода еще был принтер, считыватель с перфокарт и перфоратор. Но, пожалуй, самая впечатляющая цифра - это число индикаторных ламп на инженерной панели, их было более 3 тыс.; еще удивительнее, что этот монстр мог работать по несколько суток без сбоев.


Теги: