Из истории информатики: 09 марта


09 марта 1900 года в Хоубокене (штат Нью-Джерси) родился Говард Эйкен (Aiken Howard Hathaway, 1900–1973) — ученый, воплотивший в жизнь идеи и проекты Чарльза Бэббиджа. Одним из первых действующих компьютеров с программным управлением является Марк I (первоначальное название — “Компьютер с автоматическим управлением последовательностью операций”), главным разработчиком которого был Говард Эйкен из Гарвардского университета.

В 1936 г. американский физик Говард Гатуэй Эйкен (Howard Hathaway Aiken, 1900-1973), готовя в Гарвардском университете тезисы докторской диссертации, исследовал поведение заряженных частиц в вакуумной трубке. В ходе работы он столкнулся с необходимостью численного решения обыкновенных нелинейных дифференциальных уравнений — процесса длительного и утомительного. Это навело ученого на мысль об использовании существующих или создании новых устройств, которые выполняли бы подобные и другие научные вычисления автоматически. Эйкен предложил декану своего факультета создать нечто вроде суперкалькулятора, рассчитывая на финансовую поддержку университета, но безрезультатно. Ему немало пришлось походить по кабинетам, что отнюдь не убавило его настойчивости. Поначалу он надеялся, что сможет заинтересовать компании, производящие счетные машины, и обратился к руководителям сразу нескольких предприятий -- Monroe Calculating Machine, Marchant Calculating Machine, National Cash Register, однако и здесь получил отказ: никто не верил в возможность сбыта подобных машин, а значит, и в осуществление амбициозного замысла. Помог энтузиасту директор Гарвардской астрономической обсерватории профессор Харлоу Шепли (Harlow Shapley), познакомивший его с профессором Гарвардской школы бизнеса, экономистом и статистиком Теодором Г. Брауном (Theodore H. Brown). Последний был в дружеских отношениях с главой корпорации IBM Томасом Дж. Уотсоном старшим (Thomas J. Watson, Sr., 1874-1956) и согласился представить ему молодого ученого. В начале ноября 1937 г. Эйкен подготовил 22-страничный меморандум “О предполагаемой автоматической вычислительной машине” (Proposed automatic calculating machine), который начинался словами: “Желание сэкономить время и умственные усилия при выполнении арифметических операций и устранить характерную для людей склонность к ошибкам, вероятно, так же старо, как и сама арифметика”. Автор критически оценивал возможность использования существовавших в ту пору счетных и счетно-перфорационных машин (СПМ) для научных целей. Он указывал, в частности, что “научная” машина должна оперировать как положительными, так и отрицательными числами (чего не делают СПМ), а при вычислениях функций методом итераций (после установки начальных значений и пуска) она должна работать автоматически, без постороннего вмешательства, выполняя последовательно ряд операций до тех пор, пока задача не будет полностью решена. Кроме того, “…вычислительная машина, предназначенная для использования в математических расчетах, должна обрабатывать данные, расположенные не в колонках (как это делалось в СПМ), а построчно, поскольку, например, при численном решении дифференциального уравнения вычисления на каждом шаге итерации зависят от результата предыдущего шага”.

Многоопытный бизнесмен Т. Уотсон без особого восторга отнесся к предложению Эйкена, так как сомневался, что машины для научных расчетов найдут достаточное количество покупателей и в дальнейшем смогут вытеснить СПМ, которые были для IBM основным источником прибыли (“хлебом и маслом”, по словам историка). Он направил Эйкена к Джеймсу У. Брайсу (James W. Bryce, 1880-1949), чтобы этот выдающийся конструктор СПМ, которому принадлежало более 500 (!) патентов, оценил возможность реализации идей “высоколобого гарвардца”. Лишь получив положительное заключение, Уотсон принял решение о частичном финансировании проекта.

Другим спонсором выступили ВМС США: адмиралов убедили, что в случае войны с фашистской Германией машина будет совершенно необходима морякам для составления баллистических таблиц (или таблиц стрельб), пользуясь которыми артиллеристы наводили орудия с учетом расстояния до цели, скорости ветра, атмосферного давления, температуры и плотности воздуха и других факторов. Расчет этих таблиц, производимый обычно с помощью настольных счетных машин, был трудоемкой задачей —так, вычисление одной траектории полета снаряда требовало около двух дней.

Но, пожалуй, основной вклад IBM в создание машины состоял в том, что ее глава вверил реализацию проекта своим самым опытным и талантливым инженерам Клэру Д. Лейку (Clair D. Lake, 1888—1958), Фрэнсису Э. Гамильтону (Francis E. Hamilton, 1898--1972) и Бенджамину Дюрфи (Benjamin M. Durfee, 1897--1980).


Создатели вычислительной машины ASCC (слева направо): Фрэнсис Э. Гамильтон, Клэр Д. Лейк, Говард Г. Эйкен, Бенджамин Дюрфи (команда ASCC)


Говард Эйкен не принимал непосредственного участия в разработке “железа”, а являлся архитектором машины (хотя такого понятия еще не существовало), научным руководителем проекта: определял характер функционирования, структуру будущего изделия и технические требования (разрядность машинного слова, систему кодирования входной информации, способы управления вычислительным процессом, вводом информации и выводом результатов и т. д.). Инженерная же команда IBM решала, какими средствами (главным образом заимствованными из счетно-перфорационной техники) воплотить в жизнь замыслы инициатора проекта.

Летние месяцы 1938 и 1939 гг. Эйкен делил между Гарвардом (где в июне 1939-го защитил докторскую диссертацию) и Эндикоттом, городком в штате Нью-Йорк, где находился конструкторско-производственной комплекс корпорации, в котором создавалась и производилась значительная часть оборудования СПМ.

Джон К. Мак-Ферсон (John Macpherson) вспоминал: “В один из летних месяцев (по-видимому, в 1938 г. — Ю. П.) Эйкен провел в Эндикотте несколько недель с нашими инженерами и они рассказали ему, каким образом собираются выполнить его требования. У него сложилось ясное понимание того, что мы намереваемся делать. Исходная же идея самого Эйкена состояла в том, чтобы соединить между собой группу множительных и печатающих машинок компании Monroe1, но ему чрезвычайно понравилось наше предложение создать единую (integrated) электрически управляемую машину"…

В начале войны работа продвигалась довольно быстро, но когда Эйкен надел военно-морскую форму, "он… поручил курирование проекта молодым людям из Гарварда, и в дальнейшем у нас возникли трудности, поскольку недоставало его прямых руководящих указаний… Эйкен помог нам понять концепцию машины, способной выполнять крупномасштабные научные расчеты, показал необходимость вычисления различных функций, например тригонометрических, вместо того чтобы извлекать их значения из таблиц…”.

Практическое конструирование машины началось в 1939 г., а в январе 1943-го “Вычислительная машина с автоматическим управлением последовательностью операций” (Automatic Sequence Controlled Calculator, ASCC), или, как ее иногда называли, Harvard Mark I, выполнила тестовую программу. После устранения некоторых неполадок и окончательной отработки аппаратуры машина была передана Гарвардскому университету и 14 августа 1944 г. представлена прессе и VIP-публике.

Зрелище было впечатляющим: сооружение имело примерно 15,5 м в длину и 2,4 м в высоту и только 0,6 м в глубину), весило 35 т, потребляло 25 кВт электроэнергии, содержало около 765 тыс. деталей (в том числе 2,2 тыс. зубчатых колес и 3,3 тыс. реле) и около 800 км проводов (вытянутость конструкции ASCC объясняется тем, что через нее по всей длине проходил непрерывно вращавшийся вал, который приводил в действие устройства машины).

Вычислительная машина ASCC (IBM-ASCC-1944-1)

Выступая на презентации, Эйкен лишь мельком упомянул о роли IBM в создании машины, и такая несправедливость привела главу корпорации в бешенство. “Если бы у Эйкена и отца оказались под рукой пистолеты, они убили бы друг друга”, — говорил позднее Томас Уотсон младший. Впрочем, трения между руководителем разработки и главным спонсором начались задолго до этого: Эйкен настаивал на том, чтобы “внутренности” машины были открыты и специалисты имели возможность их видеть (к тому же при этом ее проще было бы обслуживать и модифицировать); глава же IBM, который все-таки больше разбирался в рекламе и торговле, чем в технике, требовал, чтобы ASCC имела “товарный вид” и была заключена в корпус из нержавеющей стали и стекла. Дж. Мак-Ферсон вспоминал: “IBM не привыкла поставлять машины без внешнего корпуса — в таком случае они выглядели бы как незаконченное изделие. По указанию м-ра Уотсона я пригласил промышленного дизайнера, и он прекрасно справился со своим заданием”. Самолюбивый Эйкен не удержался от искушения отомстить на пресс-конференции, и с этого времени пути Гарварда и IBM разошлись...

Как и в Аналитической машине (см. PC Week/RE, № 1/2006, c. 36), числа в Mark I хранились в регистрах, состоящих из 10-зубчатых счетных колес (каждое могло занимать одну из десяти позиций). Регистры содержали по 24 колеса, причем 23 из них использовались для представления разрядов десятичного числа с фиксированной после 12-й цифры запятой, а одно — для представления знака (0 — для положительного числа, 9 — для отрицательного). Таким образом, Mark I оперировал числами более чем в два раза большими, чем у настольных счетных машинок, а расположение десятичной запятой позволяло оперировать как очень большими, так и очень малыми величинами. Регистры имели механизм сквозного переноса десятков и поэтому использовались не только для запоминания данных, но и выполняли роль аккумуляторов; находящееся в одном регистре число могло быть передано в другой регистр и добавлено к его содержимому или вычтено из него (в отличие от Бэббиджа, Эйкен не разделил “склад” и “мельницу”).

Всего в Mark I было 72 регистра из зубчатых колес и, кроме того, дополнительная память из 60 регистров, образованных механическими переключателями. В нее вручную вводились константы, которые не изменялись в процессе вычислений. Операции умножения и деления, а также интерполяция функциональных зависимостей выполнялись в отдельных устройствах. Кроме того, машина имела встроенные релейные блоки для вычисления десятичных логарифмов, антилогарифмов и синусов. Отмечу также, что конструкция регистра № 71 позволяла разделить его на две части, каждая из которых предназначалась для хранения одного 12-разрядного числа. Передача содержимо