На этой фотографии 1944 года вы видите первый компьютер компании IBM — «Марк I» (Harvard Mark I). Проект этого электромеханического компьютера разработал американский инженер Говард Эйкен в 1937 году. В годы учебы в Гарвардском университете ему часто приходилось иметь дело с дифференциальными уравнениями, не имеющими аналитического решения: их можно решать только численно. Эйкен загорелся мечтой создать автоматическую машину, которая возьмет на себя значительную часть необходимых для этого трудоемких рутинных вычислений. Идея была не нова: еще в 1820-х годах Чарльз Бэббидж спроектировал разностную машину для автоматизации вычислений. Эйкен был хорошо знаком с проектами Бэббиджа и его последователей и опирался на них в своей работе.
В 1939 году глава корпорации IBM Томас Уотсон-старший одобрил проект Эйкена и выделил финансирование. Разработка компьютера завершилась в начале 1944 года. «Марк I» был смонтирован в Гарвардском университете. В мае он выполнил свои первые расчеты, а церемония официального ввода компьютера в эксплуатацию состоялась 7 августа, ровно 80 лет назад. «Марк I» был «одет» в футуристический корпус из нержавеющей стали и стекла, созданный знаменитым промышленным дизайнером Норманом Белом Геддесом. Кстати, дизайн машины вызвал раздражение Эйкена: он полагал, что деньги лучше было бы потратить на совершенствование самого компьютера, а не его внешнего вида.
В конструкции «Марк I» не применялись лампы или другие электронные компоненты. Для хранения переменных в памяти компьютера использовались диски, насаженные на вал и поворачивающиеся под воздействием электрических импульсов; положение этих дисков определяло значение регистров памяти. Память компьютера могла хранить 72 десятичных числа из 23 цифр каждое; значение каждой цифры определялось положением отдельного диска (еще один диск отвечал за знак числа).
Для задания констант использовались 60 групп из 24 переключателей: каждая группа задавала одно число. Их положение фиксировалось перед началом решения задачи.
Переключатели для задания констант. Фото с сайта commons.wikimedia.org
«Марк I» стал одним из первых программируемых компьютеров: он выполнял инструкцию, записанную на перфорированной бумажной ленте или на перфокартах. В каждой строке программы с помощью пробитых отверстий указывалось, из каких регистров памяти нужно взять операнды и какую операцию с ними выполнить. Считывались команды с помощью щеток, которые при попадании в отверстие ленты или перфокарты замыкали электрический контакт. Результаты своих расчетов «Марк I» распечатывал на электрической пишущей машинке или пробивал на перфокартах.
Пишущие машинки (вверху), приемник перфокарт (внизу слева) и машинка для перфорации карт (внизу справа). Фото из руководства по эксплуатации компьютера 1946 года (A manual of operation for the automatic sequence controlled calculator)
Компьютер выполнял команды последовательно, строка за строкой; возможности программировать условные или безусловные переходы не было. Нельзя было на программном уровне реализовывать и циклы, но операторы вышли из положения: лента с программой просто склеивалась кольцом. При необходимости слегка подправить программу лишние отверстия в перфоленте заклеивались заплатками, что породило термин «патч» (patch — англ. «заплата»), используемый в программировании и поныне.
Перфолента «Марка I» с патчами. Фото с сайта commons.wikimedia.org
Любопытно, что поначалу «Марк I» не называли компьютером: этот термин применительно к вычислительной технике начали использовать только в 1945 году. До этого компьютерами называли людей, выполнявших расчеты для сложных проектов в составе команды (в русском языке этому значению соответствует термин «расчетчик»). Поэтому официально «Марк I» назывался automatic sequence controlled calculator — «последовательно управляемый автоматический вычислитель» (это название можно увидеть на корпусе компьютера на заглавной фотографии).
Говард Эйкен изучает результаты работы «Марка I», 1944 год. Фото с сайта habr.com
«Марк I» не отличался быстродействием: он тратил 0,3 секунды на одну операцию сложения или вычитания и 6 секунд на одну операцию умножения. Помимо четырех арифметических действий, «Марк I» умел вычислять показательные, логарифмические и тригонометрические функции, для чего в его конструкции были предусмотрены отдельные блоки (каждое такое вычисление занимало около минуты).
Появление электронной техники показало, что «Марк I» оказался тупиковой ветвью: уже самые первые ЭВМ работали гораздо оперативнее. Так, компьютер ABC, построенный в 1942 году, тратил на одну операцию сложения в 10 раз меньше времени, чем «Марк I», а ЭНИАК (1945) считал в полторы тысячи раз быстрее. Однако в 1939 году, когда начиналась разработка «Марка I», перспективы электронной техники еще не были очевидны.
Размеры «Марка I» были исполинскими: его длина составляла 15 м, высота — 2,5. Компьютер весил 4 или 5 тонн — примерно столько же, сколько взрослый слон. Это было немудрено: в конструкции «Марка I» использовались 760 тысяч электромеханических устройств и 800 км проводов. Впрочем, вся компьютерная техника того времени была очень громоздкой. Так, британский Colossus, использовавшийся для дешифровки немецких радиосообщений, примерно совпадал с «Марком I» по размерам и массе, а ЭНИАК и вовсе весил 30 тонн. На их фоне сравнительно небольшим был ABC: «всего» 320 кг.
Многочисленные реле и переключатели компьютера издавали сильный шум: Грейс Хоппер, которая была одной из составителей программ для «Марка I», рассказывала, что компьютер стучал, как «тысяча вязальных спиц» (позже Грейс Хоппер прославилась своим участием в создании A-0 System — первого компьютерного компилятора, — а также языка Кобол). Она вспоминала, что о «Марке I» говорили в женском роде: слишком уж капризный и упрямый был у «нее» характер. Случалось так, что какая-то из щеток случайно замыкала контакт, и немало усилий требовалось, чтобы найти место, в котором произошло замыкание. Иногда источником неприятностей становилась пыль. Если на машине в течение долгого времени решали задачу, требующую невысокой точности представления чисел, то младшие разряды не использовались и на соответствующих им контактах, долго остававшихся в одном и том же положении, скапливалась пыль. Когда же эти контакты наконец включались в работу, пыль порой не давала им сработать и замкнуть цепь.
Говард Эйкен (сидит по центру) и Грейс Хоппер (справа от него) вместе с командой обслуживания «Марка I» на фоне компьютера, 1944 год. Фото с сайта britannica.com
«Марк I», находившийся в управлении ВМС США, использовался в прикладных исследованиях военного назначения: для составления математических таблиц, для артиллерийских и баллистических расчетов, для решения дифференциальных уравнений. Он помог и создателям первых американских атомных бомб: выполнив расчеты на компьютере, Джон фон Нейман убедился, что имплозия — жизнеспособный способ детонации ядерных боеприпасов.
Фотографии компьютера и его узлов из журнала Popular mechanics, октябрь 1944 года. Вверху слева — Грейс Хоппер набирает программу с помощью перфорационной машины. Вверху справа — программа в лентопротяжном механизме. В центре — система роликов для протягивания ленты. Внизу — Говард Эйкен у компьютера. Заголовок заметки: «Робот трудится над еще не решенными задачами». Фото с сайта chsi.harvard.edu
В 1946 году вышло подробнейшее руководство по работе с «Марком I», занимавшее почти 600 страниц и описывавшее устройство компьютера и правила составления программ. Фактически, эта книга стала первым учебником по программированию (наряду с системой команд ЭНИАК, опубликованной в том же году). К тому моменту отношения Эйкена с компанией IBM осложнились. Случилось это после того, как он объявил себя единоличным изобретателем «Марка I», принизив роль IBM в создании машины. Поэтому следующие свои компьютеры — Harvard Mark II, Harvard Mark III и Harvard Mark IV, созданные им в 1947–1952 годах, — Эйкен разрабатывал уже без участия IBM. В них электромеханические компоненты постепенно уступали место электронным, и «Марк IV» был уже полноценной ЭВМ.
Вид «Марка I» сзади. Фото из руководства по эксплуатации компьютера 1946 года (A manual of operation for the automatic sequence controlled calculator)
«Марк I» находился в эксплуатации до 1959 года: к тому моменту компьютер окончательно устарел. Компьютер разобрали, но многие его части сохранились: сейчас их можно увидеть в Гарвардской школе инженерных и прикладных наук (см. SEAS). Некоторые другие детали хранятся в IBM и в Смитсоновском институте. В 2014 году в Гарварде была организована выставка, посвященная 70-летию компьютера, на которой «Марк I» можно было увидеть в работе (правда, в усеченном виде).
Демонстрация работы «Марка I»
Любопытно, что, несмотря на свой инженерный талант, поначалу Эйкен не смог правильно оценить перспективы вычислительной техники. «Всего шести ЭВМ будет достаточно, чтобы удовлетворить вычислительные потребности Соединенных Штатов», — заявил он в 1947 году. Впрочем, часто похожую фразу приписывают Уотсону-старшему. Но кто бы ни был автором этих слов, он явно ошибался.
Фото с сайта thoughtco.com.
Алексей Деревянкин
ехнике часто применялись аналоговые вычислительные машины, в которых данные (в противоположность ЭВМ) представлялись в аналоговом виде. К их числу относился и «Марк I», в котором для хранения переменных использовались диски, насаженные на вал и поворачивающиеся под воздействием электрических импульсов; положение этих дисков определяло значение регистров памяти. Память компьютера могла хранить 72 десятичных числа из 23 цифр каждое; значение каждой цифры определялось положением отдельного диска (еще один диск отвечал за знак числа).И что здесь аналогового?





Регистры памяти. Фото из руководства по эксплуатации компьютера 1946 года (A manual of operation for the automatic sequence controlled calculator)