[Перевод] Электронные компьютеры, часть 3: ENIAC
Второму проекту по созданию электронного компьютера, появившемуся в результате войны, как и «Колоссу», требовалось множество умов и рук для плодотворного воплощения. Но, как и «Колосс», он никогда бы не появился, не будь один-единственный человек одержим электроникой. В данном случае его звали Джон Мокли.
История Мокли переплетается загадочными и подозрительными путями с историей Джона Атанасова. Как вы помните, мы оставили Атанасова и его помощника Клода Берри, в 1942 году. Они бросили работу над электронным компьютером и занялись другими военными проектами. У Мокли было много общего с Атанасовым: они оба были профессорами физики в малоизвестных институтах, не обладавших престижем и авторитетам в широких академических кругах. Мокли томился в изоляции в качестве учителя крохотного Колледжа Урсинус в пригороде Филадельфии, у которого не было даже такого скромного престижа, как у штата Айова, где работал Атанасов. Никто из них не сделал ничего, чтобы привлечь внимание своих более элитарных собратьев из, скажем, Чикагского университета. Однако обеих захватила эксцентричная идея: построить вычислительную машину из электронных компонентов, тех же самых частей, из которых делали радио и телефонные усилители.
Джон Мокли
Предсказывая погоду
Какое-то время у этих двух мужчин установилась определённая связь. Они встретились в конце 1940-х на конференции Американской ассоциации передовых наук (American Association for the Advancement Science, AAAS) в Филадельфии. Там Мокли выступал с презентацией своего исследования циклических закономерностей в погодных данных с использованием разработанного им самим электронного гармонического анализатора. Это был аналоговый компьютер (то есть, представлявший значения не в цифровом виде, а в виде физических величин, в данном случае, тока — чем больше тока, тем больше значение), схожий по работе с механическим предсказателем приливов, разработанным Уильямом Томсоном (позднее ставшим лордом Кельвином) в 1870-х.
Атанасов, сидевший в зале, знал, что нашёл товарища по одинокому путешествию в страну электронных вычислений, и не мешкая, подошёл к Мокли после его доклада, чтобы рассказать ему о машине, построенной им в Эймсе. Но чтобы понять, как вообще Мокли оказался на сцене со своей презентацией электронного погодного компьютера, необходимо вернуться к его корням.
Мокли родился в 1907-м в семье физика Себастьяна Мокли. Как и многие его современники, мальчиком он заинтересовался радио и электронными лампами, и колебался между карьерами инженера-электронщика и физика перед тем, как решил сконцентрироваться на метеорологии в Университете Джона Хопкинса. К несчастью, после выпуска он попал прямо в лапы Великой Депрессии, и был благодарен за получение работы в Урсинусе в 1934-м в качестве единственного члена физического факультета.
Колледж Урсинус в 1930-м
В Урсинусе он занялся проектом мечты — разгадать скрытые циклы глобальной природной машины, и научиться предсказывать погоду не на дни, а на месяцы и годы вперёд. Он был убеждён, что Солнце управляет погодным закономерностями, длящимися по нескольку лет, связанными с солнечной активностью и пятнам. Он хотел извлечь эти закономерность из огромного количества накопленных американским метеорологическим бюро данных при помощи студентов и набора настольных калькуляторов, приобретённых за гроши у обанкротившихся банков.
Вскоре стало ясно, что данных было слишком много. Машины не могли проводить вычисления достаточно быстро, а кроме того начали проявляться и человеческие ошибки при постоянном копировании промежуточных результатов машины на бумагу. Мокли начал думать над другим способом. Он знал о счётчиках на электронных лампах, впервые созданных Чарльзом Уинном-Уильямсом, которые его коллеги-физики использовали для подсчёта субатомных частиц. Учитывая, что электронные устройства очевидно могли записывать и накапливать числа, Мокли заинтересовался, почему бы им не выполнять более сложные вычисления? Несколько лет в своё свободное время он игрался с электронными компонентами: переключателями, счётчиками, машины для подстановочных шифров, использовавшие смесь из электронных и механических компонентов, и гармонический анализатор, применённый им для проекта предсказания погоды, извлекавший данные, похожие на многонедельные закономерности колебаний уровня осадков. Именно это открытие и привело Мокли на AAAS в 1940-м, а затем и Атанасова к Мокли.
Визит
Ключевое событие взаимоотношений Мокли и Атанасова произошло шесть месяцев спустя, в начале лета 1941. В Филадельфии Атанасов рассказал Мокли по поводу построенного им в Айове электронного компьютера, и упомянул, насколько дёшево он ему обошёлся. В их последующей переписке он продолжал делать интригующие намёки по поводу того, как он построил свой компьютер стоимостью не более $2 на один разряд. Мокли заинтересовался и был весьма удивлён таким достижением. К тому времени он уже вынашивал серьёзные планы по постройке электронного калькулятора, но без поддержки колледжа ему пришлось бы платить за всё оборудование из своего кармана. За одну лампу обычно просили $4, а для хранения одной двоичной цифры требовалось минимум две лампы. Как же, думал он, Атанасову удалось так неплохо сэкономить?
Через шесть месяцев у него, наконец, появилось время съездить на запад для удовлетворения своего любопытства. После полутора тысяч километров в автомобиле, в июне 1941 Мокли с сыном приехали в гости к Атанасову в Эймс. Мокли потом рассказывал, что уехал он разочарованным. Дешёвое хранилище данных Атанасова было совсем не электронным, а держалось при помощи электростатических зарядов на механическом барабане. Из-за этого и из-за других механических частей, как мы уже видели, он не мог проводить вычисления на скоростях, даже приближающихся к тем, о которых мечтал Мокли. Позже он назвал это «механической безделушкой, использовавшей несколько электронных ламп». Однако вскоре после визита он написал письмо, восхваляющее машину Атанасова, где писал, что она была «электронная по сути, и решала всего за несколько минут любую систему линейных уравнений, включавшую не более тридцати переменных». Он утверждал, что она могла бы быть быстрее и дешевле чем механический дифференциальный анализатор Буша.
Через тридцать лет отношения Мокли и Атанасова станут ключевыми в судебном споре Honeywell против Sperry Rand, в результате которого заявки на патенты на созданный Мокли электронный компьютер были аннулированы. Не говоря ничего о заслугах самого патента, несмотря на то, что Атанасов был более опытным инженером, и учитывая подозрительное мнение Мокли о компьютере Атанасова, высказанное задним числом, нет никаких причин подозревать, что Мокли узнал или скопировал что-то важное с работы Атанасова. Но что более важно, схема ENIAC не имеет ничего общего с компьютером Атанасова-Берри. Максимум, что можно заявить, это что Атанасов подстегнул уверенность Мокли, доказав возможность того, что электронный компьютер может работать.
Школа Мура и Абердин
А в это время Мокли оказался на том же месте, с которого и начинал. Не существовало волшебного фокуса для дешёвого электронного хранения, и пока он оставался в Урсинусе, у него не было средств воплотить электронную мечту в жизнь. И потом ему повезло. Тем же летом 1941 года он обучался на летнем курсе по электронике в Инженерной школе Мура при Пенсильванском университете. К тому времени Франция уже была оккупирована, Британия была в осаде, подводные лодки бороздили Атлантику, и отношения Америки с агрессивной экспансионистской Японией быстро ухудшались [а гитлеровская Германия напала на СССР / прим. перев.]. Несмотря на изоляционистские настроения среди населения, американская интервенция казалась возможной, а, вероятно, и неизбежной, элитарным группам из таких мест, как Пенсильванский университет. Школа Мура предлагала курс по повышению квалификации инженеров и учёных для ускорения подготовки к возможной военной работе, особенно по теме радарных технологий (у радара есть сходные с электронными вычислениями особенности: он использовал электронные лампы для создания и подсчёта количества высокочастотных импульсов и интервалов времени между ними; однако впоследствии Мокли отрицал наличие серьёзного влияния радаров на разработку ENIAC).
Инженерная школа Мура
Курс привёл к двум главным последствиям для Мокли: во-первых, связал его с Джоном Преспером Эккертом по прозвищу Прес, из местной семьи магнатов недвижимости, и молодого кудесника электроники, проводившего все свои дни в лаборатории телевизионного пионера Фило Фарнсуорта. Позже Эккерт разделит патент (который затем признают недействительным) на ENIAC с Мокли. Во-вторых, это обеспечило Мокли место в Школе Мура, закончив его долгую академическую изоляцию в болоте колледжа Урсинус. Это, судя по всему, произошло не из-за каких-то особых заслуг Мокли, но просто потому, что школа отчаянно нуждалась в людях на замену учёным, ушедшим работать над военными заказами.
Но к 1942-му году большая часть школы Мура сама стала работать над военным проектом: подсчётом баллистических траекторий при помощи механической и ручной работы. Этот проект органично вырос из существовавшей связи между школой и Абердинским испытательным полигоном, находившимся в 130 км дальше по побережью, в Мэриленде.
Полигон был создан во время Первой Мировой войны для проверки артиллерии, на замену предыдущего полигона в Сэнди-Хук, Нью-Джерси. Кроме непосредственных стрельб, его задача состояла в подсчёте огневых таблиц, используемых артиллерией в бою. Сопротивление воздуха не позволяло подсчитать место приземления снаряда, просто решив квадратное уравнение. Тем не менее высокая точность была чрезвычайно важна для артиллерийского огня, поскольку именно первые выстрелы заканчивались наибольшим поражением сил противника — после них противник быстро скрывался под землёй.
Для достижения такой точности современные армии составляли подробные таблицы, сообщавшие стрелкам, как далеко приземлится их снаряд после выстрела под определённым углом. Составители использовали начальную скорость и расположение снаряда для подсчёта его расположения и скорости через небольшой интервал времени, а потом повторяли те же подсчёты для следующего интервала, и так далее, сотни и тысячи раз. Для каждой комбинации пушки и снаряда такие расчёты нужно было проводить для всех возможных углов стрельбы, учитывая различные атмосферные условия. Счётная нагрузка была такой большой, что в Абердине закончили расчёты всех таблиц, начатые по завершению Первой Мировой, только к 1936-му году.
Очевидно, Абердину требовалось решение получше. В 1933 году он заключил договор со школой Мура: армия оплатит постройку двух дифференциальных анализаторов, аналоговых компьютеров, созданных по схеме из MIT под руководством Вэневара Буша. Один отправят в Абердин, а другой останется в распоряжении школы Мура и будет использоваться по усмотрению профессуры. Анализатор мог за пятнадцать минут построить траекторию, на подсчёты которой у человека ушло бы несколько дней, хотя точность расчётов компьютера была немного ниже.
Демонстрация гаубицы в Абердине, ок. 1942
Однако в 1940-м исследовательское подразделение, называвшееся теперь Баллистической исследовательской лабораторией (Ballistic Research Laboratory, BRL), затребовало свою машину, стоявшую в школе Мура, и начало расчёты артиллерийских таблиц для надвигающейся войны. Счётную группу школы также привлекли для поддержки машины при помощи людей-вычислителей. К 1942 году 100 женщин-вычислителей в школе работали по шесть дней в неделю, перемалывая расчёты для войны — среди них была и жена Мокли, Мэри, работавшая над огневыми таблицами Абердина. Мокли сделали начальником над другой группой вычислителей, работавшей над расчётами для радарных антенн.
Со дня прибытия в школу Мура, Мокли продвигал свою идею электронного компьютера по всему факультету. У него уже была значительная поддержка в лице Преспера Эккерта и Джона Брэйнерда, старшего члена факультета. Мокли предоставлял идею, Эккерт — инженерный подход, Брэйнерд — убедительность и законность. Весной 1943 эта тройка решила, что пришло время прорекламировать давно зревшую идею Мокли армейским чинам. Но загадкам климата, которые тот давно пытался разгадать, пришлось подождать. Новый компьютер должен был служить потребностям нового хозяина: отслеживать не вечные синусоиды глобальных температурных циклов, а баллистические траектории артиллерийских снарядов.
ENIAC
В апреле 1943 Мокли, Эккерт и Брэйнерд сделали черновик «Отчёта по электронному дифференциальному анализатору». Это привлекло в их ряды ещё одного союзника, Германа Голдстайна, математика и армейского офицера, служившего посредником между Абердином и школой Мура. С помощью Голдстайна группа представила идею комитету в BRL, и получила военный грант, с Брэйнердом в качестве научного руководителя проекта. Им нужно было закончить создание машины к сентябрю 1944 года с бюджетом в $150 000. Команда назвала проект ENIAC: Electronic Numerical Integrator, Analyzer and Computer (Электронный числовой интегратор и вычислитель).
Слева направо: Джулиан Бигелоу, Герман Голдстайн, Роберт Оппенгеймер, Джон фон Ньюман. Фото сделано в Принстонском институте передовых исследований после войны, с более поздней моделью компьютера
Как и в случае с «Колоссом» в Британии, авторитетное инженерное начальство в США, например, Комитет исследований по национальной обороне (National Defense Research Committee, NDRC) отнеслось к проекту ENIAC скептически. У школы Мура не было репутации элитного учебного заведения, однако же она предложила создать нечто неслыханное. Даже у таких индустриальных гигантов, как RCA, с трудом получалось создавать относительно простые электронные счётные схемы, не говоря уже о настраиваемом электронном компьютере. Джордж Стибиц, архитектор релейных компьютеров в лаборатории Белла, работавший тогда в проекте NDRC, считал, что на создание ENIAC уйдёт слишком много времени для того, чтобы он пригодился в войне.
В этом он оказался прав. На создание ENIAC уйдёт в два раза больше времени и в три раза больше средств, чем планировалось вначале. Он высосал основательную часть человеческих ресурсов школы Мура. На одну только разработку потребовалось привлечь ещё семерых человек, в дополнение к начальной группе Мокли, Эккерта и Брэйнерда. Как и «Колосс», ENIAC привлёк множество людей-вычислителей для помощи в настройке их электронной замены. Среди них были и жена Германа Голдстайна Адель, и Джин Дженнингс (позже Бартик), которым впоследствии предстоит важная работа по разработке компьютеров. Литеры NI в названии ENIAC предполагали, что школа Мура даёт армии цифровую, электронную версию дифференциального анализатора, который решал бы интегралы для траекторий быстрее и точнее своего аналогового механического предшественника. Но в результате у них получилось нечто гораздо большее.
Часть идей проекта могла быть позаимствована из предложения 1940 года, сделанного Ирвеном Трэвисом. Именно Трэвис участвовал в подписании договора на использование школой Мура анализатора в 1933 году, а в 1940-м он предложил улучшенную версию анализатора, хотя и не электронного, но работавшего на цифровом принципе. Он должен был использовать механические счётчики вместо аналоговых колёс. К 1943 году он ушёл из школы Мура и занял пост в руководстве флотом в Вашингтоне.
Основа возможностей ENIAC, опять-таки, как и у «Колосса», заключалась в разнообразии функциональных модулей. Чаще всего использовались аккумуляторы для сложения и подсчёта. Их схема была взята от электронных счётчиков Уинна-Уильямса, использовавшихся физиками, и они буквально занимались сложением при помощи счёта, так, как дошколята считают на пальцах. Друге функциональные модули включали умножители, генераторы функций, искавшими данные в таблицах, что заменяло подсчёт более сложных функций типа синуса и косинуса. Каждый модуль обладал собственными программными настройками, при помощи которых задавалась небольшая последовательность операций. Как и у «Колосса», программирование осуществлялось при помощи комбинации панели с переключателями и похожих на телефонные коммутаторы панели с гнёздами.
У ENIAC было несколько электромеханических частей, в частности, релейный регистр, служивший буфером между электронными аккумуляторами и перфораторными машинами от IBM, использовавшимися для ввода и вывода. Эта архитектура очень напоминала «Колосс». Сэм Уильямс из лабораторий Белла, сотрудничавший с Джорджом Стибицем на создании релейных компьютеров Белла, также построил регистр для ENIAC.
Ключевое отличие от «Колосса» сделало ENIAC более гибкой машиной: возможность программировать главные настройки. Главное программируемое устройство отправляло импульсы функциональным модулям, вызывавшие запуск предварительно установленных последовательностей, и получало ответные импульсы по завершению работы. Затем оно переходило на следующую операцию в главной управляющей последовательности, и выдавало нужные расчёты в виде функции множества более мелких последовательностей. Главное программируемое устройство могло принимать решения при помощи шагового двигателя: кольцевого счётчика, определявшего, на какую из шести выходных линий перенаправить импульс. Таким способом устройство могло выполнять до шести различных функциональных последовательностей в зависимости от текущего состояния шагового двигателя. Такая гибкость позволит ENIAC решать задачи, весьма далёкие от его первоначальной компетенции в области баллистики.
Настройка ENIAC при помощи переключателей и коммутаторов
Эккерт отвечал за то, чтобы вся электроника в этом чудовище жужжала и гудела, и он самостоятельно придумал те же самые основные хитрости, что и Флауэрс в Блетчли: лампы должны работать на токах, гораздо меньших штатных, и машину не надо выключать. Но из-за огромного количества используемых ламп требовалась ещё одна хитрость: подключаемые модули, на каждом из которых монтировалось несколько десятков ламп, можно было легко вынимать и заменять в случае их отказа. Затем обслуживающий персонал без спешки находил и заменял отказавшую лампу, а ENIAC был сразу готов к работе. И даже со всеми этими предосторожностями, учитывая огромное количество ламп в ENIAC, он не мог заниматься расчётами задачи все выходные или всю ночь, как это делали релейные компьютеры. В какой-то момент обязательно перегорала лампа.
Пример множества ламп в ENIAC
Отзывы об ENIAC часто упоминают его огромные размеры. Ряды стеллажей с лампами — всего их было 18 000 штук — переключателями и коммутаторами заняли бы типичный загородный дом и лужайку перед ним в придачу. Его размер был обусловлен не только его компонентами (лампы были относительно крупными), но и странной архитектурой. И хотя все компьютеры середины века по современным понятиям кажутся крупными, следующее поколение электронных компьютеров было гораздо меньше ENIAC, и обладало большими возможностями при использовании одной десятой части электронных компонентов.
Панорама ENIAC в школе Мура
Гротескный размер ENIAC проистекал из двух основных проектировочных решений. Первое стремилось увеличить потенциальную скорость за счёт стоимости и сложности. После этого практически все компьютеры хранили числа в регистрах, а обрабатывали их в отдельных арифметических модулях, снова сохраняя результаты в регистре. ENIAC не отделял модули хранения и обработки. Каждый модуль хранения чисел одновременно был и обрабатывающим модулем, способным складывать и вычитать, из-за чего требовал гораздо больше ламп. Его можно было рассматривать как сильно ускоренную версию отдела людей-вычислителей в школе Мура, поскольку «его вычислительная архитектура напоминала двадцать людей-вычислителей, работающих с десятизначными настольными калькуляторами, передающих результаты вычислений туда и сюда». В теории это позволяло ENIAC проводить параллельные вычисления на нескольких аккумуляторах, но эту возможность использовали мало, а в 1948 году и вовсе устранили.
Второе проектировочное решение оправдать сложнее. В отличие от ABC или релейных машин Белла, ENIAC не хранил числа в двоичном виде. Он переводил десятичные механические вычисления прямо в электронный вид, с десятью триггерами на каждую цифру — если горел первый, это был ноль, второй — 1, третий — 2, и т.п. Это был огромный расход дорогих электронных компонентов (к примеру, для представления числа
1000 в двоичном виде требуется 10 триггеров, по одному на двоичную цифру (1111101000);, а в схеме ENIAC для этого требовалось 40 триггеров, по десять на десятичную цифру), который, судя по всему, был организован только из-за страха возможных сложностей преобразования между двоичной и десятичной системами. Однако же компьютер Атанасова-Берри, «Колосс», и релейные машины Белла и Цузе использовали двоичную систему, и у их разработчиков не было никаких сложностей с преобразованием между основаниями.
Такие дизайнерские решения повторять никто не будет. В этом смысле ENIAC был похож на ABC — уникальная диковинка, а не шаблон для всех современных компьютеров. Однако же его преимущество было в том, что он доказал, вне всяких сомнений, работоспособность электронных компьютеров, выполняя полезную работу, и решая реальные задачи с удивительной для окружающих скоростью.
Реабилитация
К ноябрю 1945 года ENIAC полностью функционировал. Он не мог похвастаться такой же надёжностью, как его электромеханические родственники, но он был достаточно надёжным для того, чтобы использовать своё преимущество в скорости в несколько сотен раз. Расчёт баллистической траектории, на который у дифференциального анализатора уходило пятнадцать минут, ENIAC мог провести за двадцать секунд — быстрее, чем летит сам снаряд. И в отличие от анализатора, он мог делать это с той же точностью, что и человек-вычислитель, использующий механический калькулятор.
Однако, как предсказывал Стибиц, ENIAC появился слишком поздно для того, чтобы помочь в войне, и расчёт таблиц уже не требовался так срочно. Но в Лос-Аламосе в Нью-Мексико шёл проект разработки секретного оружия, который продолжался и после войны. Там тоже требовалось много расчётов. Один из физиков Манхэттенского проекта, Эдвард Теллер, ещё в 1942 году загорелся идеей «супероружия»: гораздо более разрушительного, чем то, что позже сбрасывали на Японию, с энергией взрыва, поступавшей от атомного синтеза, а не от деления ядер. Теллер считал, что он сможет запустить цепную реакцию синтеза в смеси дейтерия (обычный водород с дополнительным нейтроном) и трития (обычный водород с двумя дополнительными нейтронами). Но для этого нужно было обойтись низким содержанием трития, поскольку он был чрезвычайно редким.
Поэтому учёный из Лос-Аламоса привёз в школу Мура подсчёты для проверки супероружия, в которых необходимо было рассчитывать дифференциальные уравнения, моделировавшие зажигание смеси дейтерия и трития для различных концентраций трития. Ни у кого в школе Мура не было разрешения на то, чтобы узнать, для чего велись эти расчёты, но они покорно ввели все данные и уравнения, привезённые учёным. Детали расчётов остаются секретными и по сей день (как и вся программа по постройке супероружия, сегодня более известного, как водородная бомба), хотя нам известно, что Теллер счёл полученный в феврале 1946 года результат расчётов подтверждением жизнеспособности его идеи.
В том же месяце школа Мура представила ENIAC общественности. Во время обряда открытия перед собравшимися важными шишками и прессой операторы притворились, что включают машину (хотя она, конечно, всегда была включена), провели на ней несколько церемониальных подсчётов, вычислив баллистическую траекторию, чтобы продемонстрировать небывалую скорость электронных компонентов. После этого работники раздали пробитые перфокарты с этих расчётов всем присутствующим.
ENIAC продолжал решать несколько более реальных проблем весь 1946-й год: набор подсчётов по потоку жидкостей (например, для обтекания крыла самолёта) для британского физика Дугласа Хартри, ещё один набор расчётов для моделирования имплозии ядерного оружия, подсчёты траекторий для новой девятимиллиметровой пушки в Абердине. Затем он замолчал на полтора года. В конце 1946-го, по договору школы Мура с армией, BRL упаковал машину и перевёз её на полигон. Там она постоянно страдала от проблем с надёжностью, и команда BRL не смогла заставить её работать достаточно хорошо для того, чтобы она выполняла какую-то полезную работу, вплоть до крупной модернизации, закончившейся в марте 1948. О модернизации, полностью обновившей ENIAC, мы поговорим больше в следующей части.
Но это уже не имело значения. Никому не было дела до ENIAC. Уже шла гонка по созданию его преемника.
Что почитать:
• Paul Ceruzzi, Reckoners (1983)
• Thomas Haigh, et. al., Eniac in Action (2016)
• David Ritchie, The Computer Pioneers (1986)