История одного недоизобретения
80 лет назад, в 1939 году, американцы Джон Атанасов и Клиффорд Берри приступили к изобретению первого электронного цифрового компьютера ABC и почти сделали его. Почти — потому что это устройство не было введено в эксплуатацию и не стало достижением всего человечества. Тем не менее в ходе патентного спора в 1973 году было установлено первенство изобретения Атанасова — Берри по отношению к электронному цифровому вычислителю ENIAC Мокли и Эккерта, который был изобретен в 1946 году и также претендовал на звание первого компьютера. В поздние годы жизни Атанасов, доживший до 91 года, очень сожалел, что с началом Второй мировой войны оставил свои усилия по созданию компьютера, и признавался, что недооценивал потенциальные возможности ABC и не понимал важности своего изобретения.
Как создавался первый компьютер?
Джон Атанасов, родившийся в семье отца инженера-электрика и матери учительницы алгебры, с детства интересовался вычислениями. В середине 1930-х годов он был профессором математики и физики в университете и впервые задумался над проблемой автоматизации решения больших систем линейных алгебраических уравнений. Поначалу он пытался модифицировать калькулятор фирмы IBM, но оставил эту работу из-за сложности. Однажды, после долгой ночной поездки, у него появилась идея о вычислительной электронной машине. Профессору требовался напарник, который хорошо разбирается в электронике и мог бы воплотить задуманное. Декан инженерного факультета порекомендовал ему выпускника электротехнического отделения Клиффорда Берри. Как признавался впоследствии Атанасов, участие этого молодого человека было одним из самых главных условий успеха их общего проекта.
В 1939 году была представлена заявка на грант и проект будущей машины ABC. Изобретатели получили $5000 от исследовательской корпорации Нью-Йорка. Первый опытный образец был впервые продемонстрирован в октябре этого же года. Конструирование продолжалось до 1942 года. «Единственным крупным узлом, не законченным к моменту прекращения работы в середине 1942 года, была схема считывания для двоичных карт, — писал позже Клиффорд Берри. — Основная вычислительная часть машины была закончена и работала более года, но от нее было мало толку без средств для хранения промежуточных результатов». Дальнейшую работу прервала Вторая мировая война. Атанасов стал главой отдела акустики при Военно-морской артиллерийской лаборатории в Вашингтоне и следил за акустическим испытанием мин. Берри получил степень магистра по физике, защитив диссертацию на тему «Конструкция электрических механизмов записи и считывания данных», где упоминал вычислительную машину ABC. В 1942 году он женился и переехал, оставив свою научную работу недоделанной.
Являясь пионером цифровых вычислений и автором первого цифрового компьютера, после войны он стал заниматься аналоговыми вычислениями, что было скачком назад с точки зрения эволюции научной мысли. Впрочем, его аналоговый компьютер 30–103 для решения систем линейных алгебраических уравнений имел успех и принес автору патент. К 1960 годам у Берри было уже 30 патентов, в основном по масс-спектрометрии. 30 октября 1963 года он ушел из жизни: его тело нашли мертвым с пластиковым пакетом на голове. Возможно, он сожалел о том, что бросил свое изобретение, когда стало известно о первом работающем цифровом компьютере ENIAC.
Что это за машина — ABC?
В январе 1941 года появилась заметка в газете Des Moines Register об «электрической вычислительной машине» с более чем 300 вакуумными трубками, которые будут «вычислять сложные алгебраические уравнения». Устройство весило около 320 кг и было размером со стол. Внутри помещалось около 1,6 км проволоки, 280 двухтриодных вакуумных трубок и 31 тиратрон.
Незадолго до смерти Клиффорд Берри успел описать устройство: «Машина была сконструирована с единственной целью, а именно — для решения больших систем линейных алгебраических уравнений (до 30 x 30). В ней использована двоичная арифметика, длина слова составляла 50 бит. Основной метод решения (метод Гаусса) заключался в последовательном исключении коэффициентов из пар уравнений с тем, чтобы сократить первоначальную квадратную матрицу до треугольной. Так как внутренняя память компьютера одновременно сохраняла коэффициенты двух уравнений, промежуточные результаты (то есть единые уравнения, результирующие из линейной комбинации двух для сокращения на единицу количества переменных) хранились на специальных перфокартах, каждая из которых содержала тридцать 50-разрядных двоичных чисел.
Эти перфокарты затем снова считывались машиной на последующем этапе процедуры. Перфокарта перфорировалась или считывалась в течение одной секунды, но вставлять ее надо было вручную. В худшем случае максимальное время, которое требовалось машине для исключения переменной между двумя уравнениями, составляло около 90 секунд, а в среднем —гораздо меньше.
В машину входило два запоминающих устройства — по одному для коэффициентов каждой из пар скомбинированных уравнений. Эти запоминающие устройства состояли из вращающихся барабанов с прикрепленными маленькими конденсаторами, каждый из этих конденсаторов был подключен к небольшому латунному контакту на поверхности барабана.
Пять шестых периферийной поверхности барабана было занято этими контактами (30 рядов по 50 контактов в каждом), а шестая часть оставалась пустой, предоставляя время для других операций. Барабаны приводились в движение редукторным синхронным двигателем, обеспечивающим скорость 1 оборот в минуту. Таким образом, скорость прохождения контактов мимо считывающей щетки составляла 60 в секунду.
Полярность заряда на конденсаторе указывала «единицу» или «ноль», и каждый конденсатор сразу же после считывания перезаряжался, чтобы заряд никогда не оставался на нем более одной секунды. Все слова обрабатывались параллельно, но внутри каждого слова цифры обрабатывались последовательно. Интересно отметить, что прежде, чем проектировать память на конденсаторах, мы серьезно рассматривали идею использования магнитных барабанов, но отказались от нее из-за низкого уровня сигналов.
Имелось 30 идентичных арифметических устройств, которые, по существу, были двоичными сумматорами. Каждое состояло из серии электровакуумных ламп с прямой связью (семь сдвоенных триодов), соединенных между собой таким образом, что они выполняли двоичное сложение. Каждое устройство имело три входа (два для складываемых или вычитаемых чисел и один для переноса с предыдущего места) и два выхода (один для результата на том месте, а другой для переноса на другое место).
Первоначальный ввод данных в машину осуществлялся с помощью карт ТЭЛ, которые считывались специальным устройством описанной конструкции. На каждой карте имелось пять 15-разрядных десятичных чисел, которые считывались в течение 15 секунд. Машина выполняла преобразование десятичных чисел в двоичные при помощи вращающегося барабана (в заднем левом углу машины), на котором находились контакты, представляющие двоичные эквиваленты 1,2 — 9, 10, 20 — 9 х 14. На выходе для обратного преобразования использовался тот же аппарат в обратном порядке и на механическом счетчике появлялся десятичный результат».
Где сейчас компьютер ABC?
Оригинальная машина ABC была демонтирована в 1948 году, когда университет переоборудовал подвал в классные комнаты. Однако увидеть компьютер можно. В 1997 году группа исследователей создала рабочую копию компьютера Атанасова — Берри в память о них. Стоимость работы составила $350 000 (в пересчете на современный курс это $546 000). Эта реплика выставляется в Музее компьютерной истории в Маунтин-Вью в Калифорнии.
Хотя эта машина несовершенна, в ней впервые были применены инновации, которые все еще остаются частью современных компьютеров: двоичная система, отдельная память и вычислительные функции, регенерация памяти, параллельная обработка информации, схемы для логического сложения и вычитания, модульное проектирование и др.
Патентный спор
Когда возник спор о первенстве в изобретении компьютера, решением суда в октябре 1973 года был установлен приоритет Атанасова — Берри. «Эккерт и Мокли не сами изобрели этот автоматический электронный цифровой компьютер, но вместо этого позаимствовали эту идею у доктора Джона Атанасова, а поэтому патент ENIAC является недействительным», — сказал судья Эйрл Ларсон. Авторы ENIAC Джон Мокли и Джон Эккерт пытались протестовать, заявив, что компьютер Атанасова никогда не работал и что они являются первыми изобретателями электронного компьютера. Но на самом деле достоверно известно, что в момент изобретения ABC Джон Мокли встречался с Атанасовым, видел его разработку и они вели продолжительные беседы о компьютерах. Мокли провел в гостях у Атанасова по его приглашению пять дней в июне 1941 года. В это время Берри устроил для гостя короткую демонстрацию ABC: машина на тот момент работала и могла решать 29 одновременных уравнений с 29 переменными. После отъезда Мокли просил Атанасова прислать ему документацию и разрешить построить «Атанасов калькулятор» в Инженерной школе Мура при Университете Пенсильвании. Однако Атанасов не согласился и в письме писал о своем желании сохранить в секрете ABC до тех пор, пока не подаст заявку на патент.
Уже в 1943 году Джон Мокли и Джон Эккерт приступили к работе над электронным числовым интегратором и вычислителем ENIAC. Компьютер создавался по заказу Лаборатории баллистических исследований Армии США для расчетов таблиц стрельбы. В те времена траектории полетов для каждого типа снаряда и орудия рассчитывались вручную на настольных арифмометрах. Клерки-вычислители, в основном женщины, должны были учесть массу дополнительных параметров, чтобы предсказать, по какой траектории полетит снаряд при той или иной погоде. В Европе он летит совсем не так, как в Африке. Это был кропотливый труд и тысячи вычислительных операций. На один расчет уходило 16 дней, а на составление всей таблицы — четыре года. От этих вычислений зависела точность ударов артиллеристов.
Уже в 1942 году у Мокли был готов проект компьютера, но руководство Института Мура не обратило на него внимания и текст потерялся. Только личное участие военного математика Германа Голдстайна помогло донести идею до баллистической лаборатории по вычислению таблиц стрельбы. Мокли смог по памяти восстановить утерянный документ и блестяще презентовал проект, пообещав, что «электронный дифф. анализатор» будет вычислять одну траекторию за пять минут. Ему было выделено $61 700 на первые полгода работы. К тому времени как компьютер был создан, война уже закончилась и спрос на таблицы стрельбы упал. И все же военное руководство Америки нашло применение ENIAC в Лаборатории баллистических исследований Армии США: на этой машине велись расчеты для термоядерного оружия, строились прогнозы погоды в СССР с предсказаниями распространения ядерных осадков при возможной ядерной войне, а также составлялись таблицы стрельбы, в том числе ядерными боеприпасами. Компьютер ENIAC был окончательно выключен 2 октября 1955 года в 23:45.
На патентный спор о первенстве изобретения компьютера Атанасова подтолкнул адвокат от патентного бюро фирмы IBM, который посетил его в июле 1954 года и сказал: «Если вы поможете нам, мы аннулируем патент Мокли — Эккерта на компьютер. Это было заимствовано у вас». Это был спор не только изобретателей, но и компьютерных фирм, владеющих патентом.
На вопрос, почему Атанасов не продолжил работу над своим изобретением после войны, он отвечал: «Я работал над компьютерами примерно около 12 лет и при очень трудных обстоятельствах. Я нуждался в изменении жизни».