В компьютерной истории проект Stretch (IBM 7030) нередко приводят в качестве примера неудачного решения: этот компьютер оказался в несколько раз медленнее и к тому же существенно дороже, чем планировалось. Однако знания и опыт, полученные при его проектировании, позволили спустя несколько лет создать семейство IBM System/360, ставшее классикой мэйнфреймов. Можно ли такой эксперимент считать неудачей?
Stretch, одно из многочисленных порождений холодной войны, создавался в ответ на запросы исследовательских лабораторий, так или иначе связанных с разработкой ядерного оружия. До появления Stretch для расчетов чаще использовались компьютеры UNIVAC и CDC, но IBM намеревалась составить им конкуренцию и к тому же получить немалое государственное финансирование.
В технике такое случается, что переходная модель оказывается неудачной, но на ее базе создаются следующие, которые и приносят успех. К моменту начала проекта 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 тыс.; еще удивительнее, что этот монстр мог работать по несколько суток без сбоев.