Введение

Ранний американский электромеханический компьютер (1944)

Гарвардский Марк I, или IBM Automatic Sequence Controlled Calculator (ASCC), был одним из первых компьютеров общего назначения, работавших на электромеханических принципах и использовавшихся в военных целях на завершающем этапе Второй мировой войны. Одной из первых программ, запущенных на Марке I, стала программа, начатая 29 марта 1944 года Джоном фон Нейманом. В то время фон Нейман работал над Манхэттенским проектом и должен был определить, возможно ли использование имплозии для детонации атомной бомбы, которая должна была быть применена годом позже. Марк I также вычислял и печатал математические таблицы, что изначально было целью британского изобретателя Чарльза Бэббиджа для его "аналитической машины" в 1837 году. По словам Эдмунда Беркли, операторы Марка I часто называли машину "Бесси, машина Бесселя" в честь функций Бесселя. Марк I был разобран в 1959 году: часть была передана IBM, часть – в Смитсоновский институт, а часть вошла в Гарвардскую коллекцию исторических научных приборов. На протяжении десятилетий часть, принадлежавшая Гарварду, экспонировалась в вестибюле Вычислительной лаборатории Айкена. Около 1997 года её переместили в Гарвардский научный центр. В 2021 году она была перевезена вновь – в вестибюль нового Научно-инженерного комплекса Гарварда в Олстоне, штат Массачусетс.

Происхождение

Первоначальная концепция была представлена IBM Говардом Эйкеном в ноябре 1937 года. После исследования технической осуществимости инженерами IBM, председатель компании Томас Уотсон-старший лично одобрил проект и его финансирование в феврале 1939 года. Говард Эйкен начал поиск компании для проектирования и создания его вычислительного устройства в начале 1937 года. После двух отказов ему продемонстрировали набор, который сын Чарльза Бэббиджа передал Гарвардскому университету 70 лет назад. Это побудило его изучить работы Бэббиджа и включить ссылки на Аналитическую машину в свое предложение; в результате созданная машина "почти полностью реализовала принципы Аналитической машины Бэббиджа, добавив важные новые возможности". ASCC был разработан и построен IBM на заводе в Эндикоте и отправлен в Гарвард в феврале 1944 года. Он начал выполнять вычисления для Бюро кораблей ВМС США в мае и был официально представлен университету 7 августа 1944 года. Хотя это и не был первый рабочий компьютер, машина впервые автоматизировала выполнение сложных расчетов, что стало значительным шагом вперед в области вычислений.

Дизайн и строительство

ASCC был построен из переключателей, реле, вращающихся валов и сцеплений. В нем использовалось 765 000 электромеханических компонентов и сотни миль проводов, занимавших объем в 16 метров в длину, 2 метра в высоту и 1 метр в глубину. Основные вычислительные блоки требовали механической синхронизации и питания, поэтому они приводились в действие 15-метровым приводным валом, соединенным с электродвигателем, который служил основным источником энергии и системным генератором тактовых импульсов. Из архивов IBM:

Автоматический последовательный управляемый калькулятор (Harvard Mark I) был первой рабочей машиной, способной автоматически выполнять длительные вычисления. Проект, задуманный доктором Говардом Эйкеном из Гарвардского университета, был реализован инженерами IBM в Эндикоте, штат Нью-Йорк. Калькулятор размещался на стальной раме длиной 51 фут и высотой 8 футов, состоящей из взаимосвязанной панели небольших шестерен, счетчиков, переключателей и управляющих схем, глубина которых составляла всего несколько дюймов. В ASCC использовалось 500 миль (805 км) проводов с тремя миллионами соединений, 3500 многополюсных реле с 35 000 контактами, 2225 счетчиков, 1464 десятиполюсных переключателя и 72 ряда суммирующих машин, каждая из которых содержала 23 значащих цифры. Это был крупнейший электромеханический калькулятор в отрасли. Корпус для Mark I был разработан футуристическим американским промышленным дизайнером Норманом Бел Геддесом за счет IBM. Эйкен был недоволен тем, что стоимость (по словам Грейс Хоппер, 50 000 долларов и более) не была использована для приобретения дополнительного компьютерного оборудования.

Операция

Mark I имел 60 комплектов из 24 переключателей для ручного ввода данных и мог хранить 72 числа, каждое длиной 23 десятичных цифр. Это показывает, что термин «архитектура Гарварда» не получил распространения до 1970-х годов (в контексте микроконтроллеров) и применялся ретроспективно к машинам Гарварда. Этот термин можно было применять только к Mark III и IV, но не к Mark I или II. Механизм основной последовательности был однонаправленным, что означало, что сложные программы должны были быть физически объемными. Программный цикл реализовывался либо развертыванием цикла, либо соединением конца бумажной ленты с программой с ее началом (фактически создавая петлю). Первоначально условное ветвление в Mark I выполнялось вручную. Позднее, в 1946 году, были внесены модификации, обеспечившие автоматическое ветвление программы (через вызов подпрограммы). Первыми программистами Mark I были пионеры вычислительной техники Ричард Милтон Блох, Роберт Кэмпбелл и Грейс Хоппер. Существовала также небольшая техническая команда, которой было поручено непосредственно управлять машиной; некоторые из ее членов ранее работали в IBM, прежде чем их перевели в военно-морской флот для работы над машиной. Эта техническая команда не была осведомлена об общей цели своей работы, находясь в Гарварде.

Формат инструкции

24 канала входной ленты были разделены на три поля по восемь каналов в каждом. Каждому месту хранения, каждому набору переключателей и регистрам, связанным с входными, выходными и арифметическими устройствами, был присвоен уникальный идентификационный индекс. Эти индексы были представлены в двоичном коде на контрольной ленте. Первое поле содержало двоичный индекс результата операции, второе – исходные данные для операции, а третье – код выполняемой операции.

Вклад в Манхэттенский проект

В 1928 году Л. Дж. Комри первым применил оборудование IBM для работы с перфокартами в научных целях: для вычисления астрономических таблиц методом конечных разностей, как это было задумано Бэббиджем 100 лет назад для его Разностной машины. Вскоре после этого IBM начала модифицировать свои табуляторы для упрощения подобных вычислений. Одним из таких табуляторов, построенным в 1931 году, был Columbia Difference Tabulator. Джон фон Нейман руководил командой в Лос-Аламосе, которая использовала "модифицированные машины IBM для работы с перфокартами" для определения последствий взрыва. В марте 1944 года он предложил использовать определенные задачи, связанные с имплозией Mark I, и в 1944 году прибыл с двумя математиками для написания программы моделирования, изучающей имплозию первой атомной бомбы. Группа из Лос-Аламоса завершила свою работу значительно быстрее, чем группа из Кембриджа. Однако, машина для работы с перфокартами вычисляла значения с точностью до шести десятичных знаков, в то время как Mark I – до восемнадцати. Кроме того, Mark I интегрировал уравнение в частных производных с гораздо меньшим шагом [или более мелкой сеткой], что обеспечило значительно большую точность.

Айкен и IBM

Эйкен опубликовал пресс-релиз, объявляющий о создании Mark I, указав себя единственным "изобретателем". Джеймс У. Брайс был единственным сотрудником IBM, которого упомянули, хотя несколько инженеров IBM, включая Клэр Лейк и Фрэнка Гамильтона, помогали в создании различных компонентов. Председатель IBM Томас Дж. Уотсон был вне себя от гнева и лишь с неохотой посетил церемонию открытия 7 августа 1944 года. Айкен, в свою очередь, решил строить дальнейшие машины без помощи IBM, и ASCC стал общеизвестен как "Harvard Mark I". IBM продолжила разработку своего выборочного последовательного электронного калькулятора (SSEC) для тестирования новых технологий и для большей рекламы достижений компании. Другие секции оригинальной машины были переданы IBM и Смитсоновскому институту задолго до этого.