В 1973 году научно-техническое сообщество потрясла новость: знаменитый ENIAC теперь не считается первым в мире цифровым компьютером. Пальму первенства передали малоизвестному на тот момент профессору физики из Айовского университета Джону Атанасову, его коллеге Клиффорду Берри и созданной ими вычислительной машине под названием Atanasoff-Berry Computer (ABC).
Это признание они получили лишь спустя 30 лет.
Как так вышло?
Всему виной Вторая мировая война и издержки патентного права. Это действительно захватывающая, почти детективная история, где нашлось место интригам, судебным разбирательствам и даже загадочной смерти одного из главных действующих лиц.
А ещё — научному просветлению от пары рюмок бурбона.
Who are you, Mr. Atanasoff?
Джон Атанасов, будущий создатель цифрового компьютера ABC, родился в 1903 году в США в семье болгарского эмигранта Ивана Атанасова, инженера-электрика по профессии, и американки Айвы Луцены Парди, учительницы алгебры. Неудивительно, что с такими родителями интересы мальчика находились в области точных наук — математики и физики.
В девять лет он освоил работу с логарифмической линейкой, которую подарил ему отец, поощрявший интересы сына. А мать познакомила его с различными системами счисления, включая двоичную. Окончив школу, Джон поступил сначала в гимназию, затем — в университет Флориды, в итоге получил диплом инженера-электрика, а спустя ещё несколько лет защитил докторскую диссертацию в Висконсинском университете.
Вообще он не планировал становиться инженером, но это была наиболее теоретическая специальность по физике в университете.
Джон Винсент Атанасов, втирающий какую-то дичь выступающий с лекцией. Рядом — барабан с конденсаторами: единственный элемент, оставшийся от оригинальной машины
После окончания университета Атанасов пошёл преподавать в колледж штата Айова. Так бы он и прожил жизнь безвестного университетского преподавателя (собственно, всё к этому и шло), если бы не озаботился решением насущной проблемы — автоматизацией вычислений.
Расчёты для своей докторской диссертации (про диэлектрическую проницаемость гелия) он выполнял с помощью механического калькулятора Монро — на тот момент наиболее эффективного из доступных ему вычислителей.
Примерно на такой штуке он всё и считал
Процесс был долгим и тяжёлым, а вычислений было много.
Тогда Атанасов впервые задумался о создании машины, способной ускорить процесс.
Создание концепции цифрового вычислителя
Во время работы в колледже он снова столкнулся с необходимостью решать сложные линейные уравнения. Он попробовал расширить возможности калькуляторов Монро, комбинируя их с табуляторами IBM — машинами, которые читали перфокарты и обрабатывали полученную таким образом информацию.
Это один из ранних табуляторов IBM
По сути, Атанасов шёл в сторону создания своего аналогового компьютера, но не особо успешно.
Например, в 1936 году в соавторстве с Гленом Мерфи, физиком-ядерщиком из того же университета Айовы, он разработал небольшой калькулятор «Лапласиометра», который был предназначен для анализа геометрии поверхностей и имел все те же недостатки аналоговых устройств.
Параллельно Атанасов интересовался электроникой и изучал возможности электронных ламп и радио.
Эти два увлечения привели его к пониманию, что все вычислительные устройства, по сути, делятся на два больших класса — аналоговые и цифровые. Последний термин в те годы ещё не использовался, поэтому Атанасов называл их «собственно вычислительными машинами».
Так вот, анализируя работу аналоговых вычислителей, он сделал вывод, что они имеют серьёзные ограничения:
- Медленная работа, так как вычислительные операции осуществлялись механическими движущимися частями.
- Зависимость точности вычислений от производительности отдельных частей аналогового вычислителя.
- Снижение точности вычислений из-за измерения физических величин, а не выполнения операций непосредственно над числами.
- Кроме того, есть проблема масштабируемости: повышение точности и производительности аналоговых машин приводило к пропорциональному увеличению их размеров.
В общем, Атанасов подумал и решил, что надо бы создать полностью или почти полностью цифровую вычислительную машину, работающую на электронных компонентах.
Однажды в 1937 году, раздосадованный неудачами в лаборатории, он решил развеяться, сел в машину и поехал куда глаза глядят, стараясь сосредоточиться на вождении. Сосредоточился до такой степени, что очутился в 200 милях от своего города, в штате Иллинойс, около придорожного кафе. Зайдя внутрь, он выпил пару рюмок бурбона и внезапно почувствовал, что в голове прояснилось, а мысль структурировалась.
Конечно, история про бурбон, скорее всего, лежит в области всякого мифологического, ведь Атанасов годами думал-размышлял-вынашивал, и вот наконец всё оно сложилось.
А может, и нет.
В общем, он взял обычную салфетку и стал набрасывать основные принципы работы будущей машины:
- Использование электронных переключателей вместо механических устройств для выполнения вычислений, хранения информации и функций управления.
- Применение двоичной системы счисления: очевидно неудобная для человека, она позволяет кодировать любое число всего двумя символами (0 и 1), что делает её оптимальной для машины.
- Выполнение вычислительных операций с помощью логических действий, а не прямого подсчёта, что повысит точность.
- Использование регенерации памяти для сохранения заряда в конденсаторах.
Затем Атанасов, по его собственному признанию, сел в машину и уже медленно поехал домой.
Идеи идеями, но предстояло ещё реализовать их технически.
Клиффорд Берри и создание первого прототипа ABC
Понимая, что в одиночку создать вычислительную машину будет сложно, Атанасов попросил у коллег рекомендовать ему какого-нибудь помощника из числа студентов или младшего преподавательского состава. Ему дали контакты одного из выпускников электротехнического факультета.
Так появился тандем Атанасов — Берри.
Клиффорд Берри, как и сам Атанасов, увлекался физикой и математикой с молодости. Он родился в 1918 году и окончил Высшую школу в Маренго, штат Айова. Родители порекомендовали ему подождать год перед поступлением в колледж, и это время он провёл с пользой, посвятив себя изучению точных наук и изготовлению радиоприёмника. В 1939-м Берри окончил колледж и начал сотрудничать с Атанасовым.
Клиффорд Берри делает умное лицо возле единственного экземпляра ABC
Позже именно своё партнерство с Клиффом Атанасов назовёт одним из самых главных условий успеха уже совместного проекта.
Параллельно работе над проектом Атанасов и Берри искали финансирование. И внезапно оно быстро нашлось — целых 650 долларов в виде гранта от колледжа Айовы. Не бог весть какие деньги, но для начала и этого было достаточно. Позже они смогли добиться получения гранта в 5 000 долларов по патентному контракту от Iowa State College Research Foundation.
Устройство и принцип работы ABC
В 1939 году они сделали функциональный прототип. Принципиальная схема включала в себя следующие элементы:
- Модуль памяти. Представлял собой пластиковый диск, соединённый с электромотором. На каждой его стороне было установлено по 25 конденсаторов, которые содержали по одному двоичному разряду. То есть каждая сторона диска могла хранить 25 двоичных разрядов, что эквивалентно восьмизначному числу в десятичной системе счисления.
- Блок вычисления. Это была логическая схема, состоявшая из восьми электронных ламп. Они получали сигнал как от конденсаторов с диска (собственно, сами числа), так и с двух конденсаторов, хранивших заряд переноса (при сложении) или заёма (при вычитании).
- Блок питания. На прототипе использовалось переменное питание, так как источника постоянного тока с невысоким напряжением тогда они найти не смогли. В то же время электронная лампа давала достаточно тока для работы прототипа.
- Схема регенерации. Так как конденсаторы, выбранные на роль основных запоминающих устройств, имеют свойство терять заряд, Атанасов решил добавить устройство для его восстановления. Оно содержало две электронные лампы, которые обновляли конденсаторы памяти так, что они сохраняли своё значение заряда.
Принципиальная схема устройства прототипа машины Атанасова — Берри
Вся эта система работала следующим образом:
- Атанасов и Берри вручную вводили двоичные числа в запоминающие устройства: за 1 отвечали заряженные конденсаторы, а за 0 — незаряженные.
- При нажатии кнопки диск поворачивался на одну позицию, а логическая схема считывала данные с конденсаторов памяти.
- С учётом сигнала от конденсатора, хранившего разряд переноса, схема выполняла арифметическую операцию и помещала ответ в запоминающее устройство — счётчик.
- Схема регенерации обновляла заряд в конденсаторах, чтобы сохранить их состояние.
Из-за ввода чисел (считай, зарядки конденсаторов) вручную прототип работал крайне медленно: аналогичные расчёты на бумаге человеком выполнялись быстрее.
Но ведь работал!
Атанасов и Берри воодушевились и приступили к созданию полноценной машины для решения линейных уравнений.
Они нацелились на решение с помощью машины сложных линейных уравнений.
Линейные уравнения, как мы помним, решаются методом исключения Гаусса. Но если простые уравнения с двумя-тремя неизвестными этим способом вручную быстро решить ещё можно, то примеры, содержащие десятки неизвестных, человеку будут уже не под силу. Атанасов подсчитал, что решение систем из 29 уравнений с 29 переменными с помощью обычного калькулятора тех лет заняло бы 10 недель крайне изнурительного труда, в то время как его машина справилась бы всего за две.
Чтобы достичь такой проектной мощности, нужно было изменить конструкцию как количественно — путём добавления новых логических схем и запоминающих элементов, — так и качественно, например, оснастив машину системой ввода-вывода.
Готовый образец машины был впервые успешно испытан в 1942 году. Его технические характеристики:
- Общий вес — 320 кг, размер — не больше обычного офисного стола (Атанасов запланировал это ещё на старте).
- Общая длина проводов — около одной мили.
- Логические схемы содержали в общей сложности 280 двойных триодных электронных ламп и 31 тиратрон.
- Память — два барабана («клавиатура» и «счётчик») по 1 600 конденсаторов каждый.
- Производительность — 30 операций в секунду.
- Машина могла одновременно хранить и обрабатывать до 60 50-битных двоичных чисел с фиксированной точкой.
Устройство единственного экземпляра цифрового компьютера Атанасова — Берри
Вычислительная машина Атанасова — Берри работала так:
- Компьютер осуществлял процедуру исключения Гаусса для двух уравнений.
- Коэффициенты, закодированные на перфокартах в десятичном виде, преобразовывались в двоичную форму специальным барабаном, после чего заносились в запоминающее устройство. Коэффициенты одного уравнения загружались в барабан «счётчика», коэффициенты второго — в барабан «клавиатуры».
- При каждом повороте барабана, занимавшем около одной секунды, логические схемы выполняли одно арифметической действие (сложение или вычитание) над двумя наборами коэффициентов. Параллельно схемы регенерации памяти обновляли содержимое запоминающего устройства «клавиатуры».
- После выполнения арифметических действий компьютер перфорировал набор оставшихся коэффициентов на картах в двоичном виде. Они хранились до тех пор, пока вновь не использовались на последующих этапах вычислений.
- Когда значения всех неизвестных были вычислены в двоичном виде, устройство чтения десятичных карт осуществляло их обратное преобразование в обычные десятичные числа.
В машине Атанасова — Берри была реализована ещё одна интересная особенность. Если задача превышала возможности электронной памяти (она позволяла решать только два уравнения одновременно), то промежуточные результаты по ней заносились на листы бумаги путём электростатического изменения сопротивления в 1 500 местах для представления 30- и 50-битных чисел для одного уравнения. Каждый лист записывался или прочитывался за одну секунду. Надёжность системы была ограничена примерно одной ошибкой на 100 000 вычислений — в основном из-за отсутствия контроля за характеристиками материала листов.
Современная реконструкция компьютера Атанасова — Берри в Музее компьютерной истории в Маунтин-Вью, Калифорния. Оригинальная машина была разобрана в 1948 году при реорганизации здания колледжа Айовы.
В реализованном виде машина Атанасова — Берри имела ряд неоспоримых преимуществ перед более ранними вычислительными устройствами:
- Она была полностью цифровой, все операции выполнялись электронными компонентами, что повышало скорость и точность работы машины, одновременно сокращая её размеры.
- Впервые было реализовано разделение памяти и процессора, что стало принципиальным шагом на пути к созданию полностью универсального компьютера.
Но у ABC были и недостатки, обусловившие невостребованность машины на практике:
- Несмотря на разделение памяти и процессора, в ABC не была реализована возможность загружать программу: она была зафиксирована в самой конструкции устройства. Из-за этого машина могла выполнять только одну задачу.
- Система ввода-вывода с помощью перфокарт была не до конца отлажена, что приводило к снижению точности результата.
Возможно, все эти недостатки были бы устранены в последующих итерациях, но помешала Вторая мировая война. После выхода с военной службы Атанасов основал собственную научно-исследовательскую и инжиниринговую компанию, которая в конце 50-х годов была продана Aerojet General Corporation, а он сам сначала стал менеджером её Атлантического филиала с 1957 по 1959 год, а затем — и вице-президентом с 1959 по 1961-й вплоть до своего ухода на пенсию.
В свою очередь, Клиффорд Берри в годы войны также поменял место работы с колледжа Айовы на должность в компании Consolidated Engineering Corporation. Одной из причин этого было опасение самого Атанасова и руководства колледжа, что молодого и подающего большие надежды специалиста отправят на фронт, а эта должность позволила ему получить отсрочку. К 1948 году он закончил докторскую диссертацию по теме масс-спектрометрии. В Consolidated Engineering Corporation он проработал вплоть до 1963-го, параллельно публикуя многочисленные (всего около 30) патенты. Но жизнь учёного и изобретателя закончилась печально: в 1963 году его нашли в квартире мёртвым.
Патентный спор и признание первенства
Возможно, вычислительная машина Атанасова — Берри так и осталась бы всего лишь одним из незавершённых проектов компьютеров, которых в то время было полно. Но, как всегда, вмешался случай.
Точнее, два.
Первый произошёл ещё в 1941 году. В местной айовской газете Des Moines Tribune вышла заметка, где было сказано, что: «Д-р Джон Атанасов, профессор физики колледжа Айовы, строит ЭВМ, которая по принципу своей работы ближе человеческому мозгу, чем любая другая машина». Но Вторая мировая война отвлекла общественность от этой новости. Зато её заметили специалисты-компьютерщики.
В частности, это был Джон Мокли, будущий создатель машины ENIAC, долгое время считавшейся первым в мире полноценным компьютером.
Надо сказать, что Атанасов и Берри делали попытки запатентовать своё изобретение: ещё в 1939 году они подали заявление в Iowa State College Research Foundation на патент с целью получить дополнительное финансирование. Деньги (5 000 долларов — значительная по тем временам сумма) действительно поступили, но сам патент до конца так и не был оформлен.
В свою очередь, Мокли, на тот момент уже разрабатывавший свой будущий ENIAC, активно интересовался работой Атанасова. Их первая встреча произошла раньше, на конференции в Филадельфии, где Мокли выступал с докладом о своём аналоговом гармоническом анализаторе.
В 1941 году, то ли узнав об ABC из заметки в газете, то ли по приглашению самого Атанасова он лично посетил Айову и встретился с ним для ознакомления с вычислительной машиной и обсуждения идей. Между ними установились тёплые отношения, они вели активную переписку.
Правда, во время этих встреч он не упоминал, что работает над компьютером для военных.
Памятник Джону Атанасову, установленный в Софии (Болгария), — на родине отца изобретателя
Второй случай произошёл в 1967 году, когда компания Honeywell подала иск против Sperry Rand Corporation по поводу недействительности патента на ENIAC.
Дело в том, что компания Sperry Rand в своё время купила этот патент у Мокли и на этом основании требовала у всех производителей компьютеров отчислений ройялти. Это, естественно, никого не устраивало, и Honeywell первой решила исправить ситуацию.
Атанасов к тому времени уже давно не работал над своей вычислительной машиной и лавры конструктора первого цифрового компьютера его не особо интересовали. Тем более что он считал патент Мокли на изобретение ENIAC вполне справедливым.
Однако юристы Honeywell, проанализировавшие документацию на ENIAC, нашли в ней упоминание о машине Атанасова — Берри. Они предложили Атанасову ознакомиться с устройством компьютера Мокли поближе. Он последовал их совету и обнаружил, что все ключевые элементы ENIAC (а значит, и вообще «универсального компьютера») были схожи с таковыми у ABC. Изобретатель выступил в суде в качестве свидетеля, и его показания убедили окружной суд Миннеаполиса в 1973 году признать патент Sperry Rand недействительным, а самого Мокли лишить статуса конструктора первого полноценного цифрового компьютера.
Впрочем, и в этот раз известность к Атанасову, Берри и их изобретению пришла не сразу.
В то время бушевали Вьетнамская война и Уотергейтский скандал, поэтому широкому обществу снова было не до каких-то там учёных и их умных машин. Но со временем эта информация начала проникать в научно-технические круги, и уже к 80-м годам статус Атанасова и его умершего к тому времени коллеги Берри как изобретателей первого цифрового компьютера стали общепризнанным фактом.
И хотя ABC (так назвал машину сам Атанасов в 1968 году, желая увековечить вклад своего коллеги) нельзя считать полноценным компьютером в современном понимании этого термина, всё же именно это изобретение дало толчок всему последующему развитию компьютерной техники на десятилетия вперёд.
Кстати, первый отечественный компьютер появился ещё раньше: в первой половине XIX века Семён Корсаков разработал несколько интеллектуальных машин. Впрочем, это уже совсем другая история.