ИСТОРИЯ ВТ
Слабая память поколений сберегает лишь легенды.
Ежи Лец
Шестого февраля 1945 г. на страницах газеты New York City появилось совместное заявление президента Колумбийского университета Николаса М. Батлера (Nicholas Murray Butler) и Томаса Дж. Уотсона-старшего. В нем говорилось о создании в университете Лаборатории научных вычислений им. Томаса Дж. Уотсона (Thomas J. Watson Scientific Computing Laboratory, SCL), оснащенной оборудованием IBM и призванной "служить мировым центром исследования проблем в различных областях науки, решение которых зависит от эффективного использования методов прикладной вычислительной математики и механики". Далее отмечалось, что "научные и образовательные ресурсы лаборатории будут доступны отдельным ученым, университетам и исследовательским организациям, как американским, так и зарубежным...".
Ни в коей мере не ставя под сомнение искренность намерений главы корпорации, выскажу предположение, что у него были и иные мотивы для учреждения SCL. Успешная деятельность Бюро астрономических вычислений им. Томаса Дж. Уотсона*1 свидетельствовала, что для IBM может открыться новый рынок - рынок машин для научных вычислений. Чтобы оценить его масштабы, понять задачи тех, кто вынужден был регулярно заниматься подобными вычислениями, и привлечь потенциальных покупателей, Уотсон в марте того же года организовал в корпорации Научный департамент (Department of Pure Science), который должен был служить связующим звеном между разработчиками СПМ (счетно-перфорационных машин. - Прим. ред.) и пользователями-учеными; по-видимому, для тех же целей (помимо прочего) предназначалась и колумбийская лаборатория. Кроме того, плодотворное сотрудничество инженеров IBM с У. Эккертом (о его работах см. PC Week/RE, N 8/2006, с. 41) показало, что и "высоколобые" доктора наук могут быть полезны в части создания новых машин (заметим, что этот первый союз компании-производителя и университета стал впоследствии типичным для компьютерной индустрии).
_____
*1 См. статью "Недостающее звено" - PC Week/RE, N8/2006, c. 41.
Во главе и Департамента, и SCL был поставлен один и тот же человек - Уоллес Эккерт, а первым сотрудником Лаборатории стал молодой доктор наук Герберт Р. Дж. Грош (Herbert R. J. Grosch, 1918 г. р.), астроном, имевший склонность к вычислительной работе*1. В его распоряжении оказались 14 счетно-перфорационных машин и поначалу небольшой штат работавших на них операторов.
_____
*1 Г. Грош получил впоследствии известность как эксперт по вопросам ВТ и как один из шести ученых, основавших в 1947 г. Ассоциацию вычислительных машин (Association for Computing Machinery, АСМ). Он является автором "закона" [1953], названного его именем: производительность вычислительной машины увеличивается как квадрат ее стоимости (иначе говоря, если требуется, чтобы машина была в два раза дешевле, ее производительность следует уменьшить в четыре раза). Как отмечал сам Грош, этот закон был относительно справедлив для ВТ 50-60-х годов.
Вычислительная машина SSEC
Помимо предоставления машинного времени университетским ученым, старшекурсникам и многочисленным визитерам, а также организации курса лекций по вычислительной тематике (первого в мире!), SCL исподволь готовилась к созданию собственной вычислительной машины, в которой была бы использована электронная элементная база. С этой целью Эккерт пригласил на работу Роберта Р. Сибера-младшего (Robert R. Seeber, Jr.) - бывшего сотрудника Эйкена (о его роли мы писали в PC Week/RE, N 11/2006, с. 36) и одного из разработчиков ASCC, который рассорился с шефом из-за расхождения во взглядах на пути развития ВТ и мечтал построить собственную машину. К нему присоединились трое физиков из Радиационной лаборатории при Массачусетском технологическом институте - Байрон Лютер Хейвенс (Byron Luther Havens), Джон Дж. Ленц (John J. Lentz) и Роберт М. Уолкер (Robert М.Walker): в годы войны они разрабатывали радары и поэтому были хорошо знакомы с импульсной техникой. Каждый из новобранцев занялся своим делом: Сибер обдумывал структуру (архитектуру, как будут говорить в дальнейшем) будущей машины, Хейвенс и Ленц экспериментировали с быстродействующими электронными схемами, Уолкер же немного ушел в сторону - совместно с профессором математики Фрэнсисом Дж. Мюрреем (Francis J. Murray) он разрабатывал аналоговую вычислительную машину на электромеханических элементах, предназначавшуюся для решения систем алгебраических уравнений до 12-го порядка включительно. Сведения о замысле Эккерта и его команды просочились в печать: "Колумбия со временем надеется построить вычислитель [calculator], который посрамит 51-футовое механическое чудище из Гарварда", - писал газетный репортер.
Но посрамить Mark I и Эйкена довелось не университету, а IBM и Уотсону.
По случайному стечению обстоятельств предпринятые Уотсоном меры, о которых говорилось выше, почти совпали во времени с презентацией ENIAC, состоявшейся 15 февраля 1946 г. Уотсон не считал, что эта машина (равно как и ASCC) сможет стать коммерческим продуктом, таким, например, как электронный вычислительный перфоратор модели 604 (впоследствии). Но сообщения об "электронном мозге", заполонившие первые полосы газет, нанесли ощутимый удар по самолюбию Уотсона. Оказалось, что безвестные ученые из далеко не самого знаменитого университета могут сотворить нечто такое, чего не предвидели лучшие умы могущественной корпорации. Как свидетельствует Г. Грош, Уотсон вызвал Фрэнсиса Гамильтона, одного из создателей ASCC, и сказал: "Мистер Гамильтон! Используйте все ресурсы IBM для работы. Я хочу, чтобы новая машина была более быстродействующей, чем пенсильванская, и обладала большими возможностями, чем та, что мы передали в Гарвард. Я хочу, чтобы через год она была установлена здесь, в главной штаб-квартире корпорации. И я также хочу, чтобы она была доступна для всего научного мира, а не припрятана в эгоистичных университетах или военных организациях". Далее Грош пишет: "Фрэнк отлично понимал всю сложность задачи. Но он был настоящим лидером своей лаборатории в Эндикотте - сильным инженером и властным администратором, глубоко погруженным в те проекты, в которых принимал участие. Кроме того, нельзя было возразить боссу, когда он предоставлял вам такую возможность".
После ряда совещаний Мак-Ферсон (главный инженер IBM), Гамильтон и Эккерт договорились, что за архитектуру машины будет отвечать Сибер, а за ее техническую реализацию - команда Гамильтона. Чтобы уложиться в крайне сжатые сроки, установленные боссом, было решено использовать уже опробованные электронные схемы, запатентованные Хэлси Дикинсоном еще до начала войны.
В октябре 1946 г., после завершения подготовительного этапа, конструкторы приступили к непосредственной разработке машины. Инженеры и техники трудились семь дней в неделю, иногда сутками не выходя из лаборатории. Вместе с ними дневал и ночевал Сибер. Его незаслуженно забытое имя должно навсегда остаться в истории ВТ, потому что, по-видимому, независимо от Муровской группы*1 он пришел к идее машины с хранимой в памяти и модифицируемой программой. Позднее Рекс, как звали Сибера сослуживцы, вспоминал: "Я считал, что команды и данные должны иметь один и тот же формат, что позволяло бы обрабатывать и изменять команды в вычислительном устройстве машины... в частности, модифицировать адреса. Кроме того, я полагал, что это могло стать основой для осуществления операций ветвления [branching operation], особенно полезных при выполнении итераций".
_____
*1 О работе этой группы будет рассказано в одной из следующих статей.
Монтаж и отладка "Электронной вычислительной машины с выбором последовательности [операций]" (Selective Sequence Electronic Calculator*1, SSEC) были завешены в конце декабря 1947 г.
_____
*1 Заметьте, что вплоть до наших дней в названии вычислительных машин IBM отсутствует слово "computer". Впервые появившись в 1646 г. в сочинении врача и писателя сэра Томаса Брауна (1605-1682) "Pseudodoxia Epidemica", оно означало человека, умевшего выполнять вычисления. Существует следующий "апокриф": Т. Уотсон-старший якобы опасался, что люди, профессионально занятые вычислительной работой, увидев в названии ЭВМ это слово, решат, что корпорация вознамерилась выпускать машины, которые лишат их рабочего места. А эти настроения противоречили бы торговой, маркетинговой и социальной политике "старого джентльмена".
Как следует из названия, машина могла выбирать и выполнять различные программные последовательности, но была не электронной, а гибридной: на лампах строились только арифметическое устройство и "сверхоперативная" память на восемь 19-разрядных двоично-кодированных десятичных чисел (плюс знаковый разряд), а в устройстве управления и оперативной памяти на 150 слов использовались реле.
Программы и данные перфорировались на стандартных 80-колонных перфокартах, а затем переносились на перфорированные бумажные ленты несколькими специальными устройствами, которые за их внешний вид разработчики шутливо называли "Вздыбившимися жеребцами" (Prancing Stallion). Ленты использовались также как внешние запоминающие устройства, каждое емкостью до 20 тыс. чисел. В отдельном ряду ленты пробивалось 78 прямоугольных отверстий, представляющих одну командную строку или код одного числа, все разряды которого параллельно считывались и направлялись в релейную память, откуда (в случае необходимости) попадали в электронное запоминающее устройство (ЗУ) и далее - в арифметическое устройство. Ограниченная емкость "сверхоперативной" памяти позволяла лишь изредка осуществлять модификацию программ. Операциями ввода-вывода управляла специальная программа, которая набиралась штекерами на коммутационной доске. Для подпрограмм и таблиц, часто используемых при решении различных задач, готовились отдельные ленты, которые склеивались по краям, образуя петлю (таких петель было около сорока). Кроме того, данные и программы можно было вводить с перфокарт, вывод же результатов вычислений осуществлялся на ленты (перфораторы) либо на печатающие устройства. Машина, содержавшая 12,5 тыс. электронных ламп и 21,4 тыс. реле, выполняла операции сложения и вычитания двух 19-разрядных чисел за 10 мс, операцию умножения двух 14-разрядных чисел - в среднем за 20 мс (и, следовательно, уступала ENIAC по времени выполнения арифметических операций, но работала примерно в сто раз быстрее, чем ASCC). Для своего времени SSEC была очень надежной машиной, делавшей в среднем одну ошибку за восемь часов работы.
Итак, в SSEC было заимствовано всего понемногу от предшествующих разработок: от СПМ - управление вводом-выводом с помощью штекерного набора; от Mark I - пошаговое управление работой машины посредством считывания информации с лент; от ENIAC - быстродействующее арифметическое устройство. Но, по существу, не был реализован замысел Сибера (обработка программных кодов как чисел) - для его реализации требовалась достаточно быстрая оперативная память значительной емкости, а в то время такие ЗУ еще не были разработаны. "Было бы большим преувеличением рассматривать SSEC как первую машину с хранимой программой, хотя в одной из моих программ специальным образом отмеченные ячейки памяти, хранившие данные, были затем использованы в качестве источника команд [source of an instructions]", - вспоминал Джон Бэкус (John Backus, 1923 г. р.).
Публичное представление SSEC было намечено на конец января 1948 г. В нью-йоркской штаб-квартире корпорации на Мэдисон-авеню, 590 в Манхеттене не было места для размещения гигантской машины, имевшей U-образную форму и занимавшей площадь примерно в 160 кв. м. Поэтому срочно был куплен примыкавший к штаб-квартире обувной магазин, который превратили в машинный зал: сделали фальшпол, установили кондиционеры, заменили электропроводку, подвели кабели питания и т. д. Через огромные витринные окна за работой машины могли наблюдать прохожие, завороженные мерцанием лампочек на пульте управления, непрерывным движением лент в считывающих устройствах, работой перфораторов.
27 января 1948 г. в присутствии двухсот приглашенных гостей SSEC была продемонстрирована в действии с помощью программы, разработанной Эккертом и Сибером и предназначенной для определения эфемерид Луны - положений спутника Земли с интервалом в 12 ч для ста предыдущих и ста последующих лет. В течение 7 мин машина произвела расчеты для одной точки, что потребовало выполнить 11 000 операций сложения и вычитания, 9000 - умножения и 2000 обращений к таблицам. После этого Томас Уотсон торжественно заявил: "Со смешанным чувством смирения [humility] и уверенности в будущем я предоставляю IBM Selective Sequence Electronic Calculator в распоряжение ученых всего мира".
В течение следующих четырех лет (вплоть до июля 1952 г.) на машине были решены различные задачи в области геофизики, оптики, химии, строительства, кристаллографии, экономики и, конечно, астрономии (по одним данным, машинное время предоставлялось пользователям бесплатно, по другим - продавалось за 300 долл. в час). Так, Эккерт вычислил и в 1949 г. опубликовал "Уточненные лунные эфемериды", которые впоследствии использовались для орбитальных вычислений в космических программах NASA, в частности в программе "Аполлон". Интересно, что с начала 50-х годов программистами при SSEC работали два выдающихся в будущем ученых: Джон Бэкус - создатель языка Фортран - и Эдгар Ф. Кодд (Edgar F. Codd, 1923-2003), выдвинувший идею так называемых реляционных баз данных.
Разумеется, Уотсон не собирался тиражировать для продаж изделие стоимостью около 1 млн. долл. (колоссальные по тем временам деньги). Журналисты часто цитируют якобы принадлежавшие Уотсону слова: "мировому рынку потребуется пять или шесть подобных машин"*1. Но великий менеджер и маркетолог твердо знал, что, демонстрируя SSEC urbi et orbi*2, он в очередной раз докажет лидерство IBM в области машин для обработки информации и тем самым увеличит спрос на ее иную продукцию (более дешевую и ходовую).
_____
*1 Иногда это утверждение относят к другой машине - ASCC. Но произносил ли эти слова Уотсон-старший вообще? Кевин Мэни (Kevin Maney), автор его новейшей биографии, тщательно исследовавший архивы корпорации и многочисленные материалы, относящиеся к жизни Уотсона, отвечает на этот вопрос отрицательно. Сошлюсь также на историка Б. Коэна, который писал, что аналогичная оценка потребности в машинах (но только для США) была сделана в 1949 г. Эйкеном, однако из иных, чем у Уотсона, соображений. Вообще прогнозы в науке и технике, а особенно в области ВТ - дело ненадежное: в 1949 г. журнал Popular Mechanic писал, что "...в скором времени компьютеры будут весить не более 1,5 тонн", а в следующем году Ричард Ф. Клиппенгер утверждал, что в течение десяти лет потребуется не более 2000 программистов. Но, с другой стороны, кто мог еще каких-нибудь 10-15 лет тому назад вообразить, что число ПК в домах рядовых граждан будут исчисляться сотнями миллионов; что Интернет свяжет невидимыми нитями людей на всем земном шаре (но одновременно и превратится в забор, на котором каждому позволено писать всё что заблагорассудится)?
*2 Лат. "городу и миру". - Прим. ред. Недаром же SSEC была установлена "напоказ" в штаб-квартире IBM, а не упрятана в стенах Колумбийского университета.
Для нас же наиболее важно, что SSEC представляет собой первую, пусть неудавшуюся, но "идеологически" совершенно верную попытку создать машину с хранимой в памяти программой.