Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию
Шрифт:
Это явилось следствием его решения не оставаться в Висконсине и не поступать в Гарвард или другие крупные университеты, где велись исследования. В Айове, где никто, кроме него, не работал над созданием новых вычислительных машин, Атанасов был предоставлен сам себе. Здесь он мог обдумывать новые идеи, но рядом не было людей, с которыми он мог бы обсудить их, или коллег, которые могли бы помочь ему преодолеть теоретические или технические проблемы. В отличие от большинства инноваторов цифровой эры, он был одиноким изобретателем, черпающим свое вдохновение во время одиноких поездок на автомобиле и в дискуссиях с единственным помощником-аспирантом. Как оказалось, это была неправильная стратегия.
Атанасов собирался построить аналоговое устройство; его любовь к логарифмическим линейкам привела его к попыткам сконструировать огромные устройства, подобные ей и использующие длинные полоски пленки. Но он понял: чтобы решать линейные алгебраические уравнения с достаточной точностью, длина пленки должна составлять сотни
Первая задача, которую он решал, состояла в том, как сохранить числа в машине. Для описания этой функции машины он использовал термин «память»: «В то время я имел только поверхностные представления о работе Бэббиджа и поэтому не знал, что он назвал то же самое понятие „запоминающим устройством“… Мне нравится его название, и если бы я знал о нем, я, возможно, использовал бы его. Мне нравится и термин „память“ за его аналогию с функцией мозга» [93] .
93
Atanasoff, Advent of Electronic Digital Computing, 238.
Атанасов перебрал разные виды возможных устройств памяти: механические штырьки, электромагнитные реле, небольшой кусочек магнитного материала, который мог быть намагничен электрическим зарядом, электронные лампы и электрическим конденсатор. Самыми быстрыми были электронные лампы, но они были дороги. Тогда он решил вместо них использовать конденсаторы — небольшие и недорого стоящие компоненты, которые могут сохранять, по крайней мере на короткое время, электрический заряд. Это решение было понятно, но оно означало, что машина будет медлительной и громоздкой. Даже если сложение и вычитание могло происходить с электронными скоростями, процесс переноса числа в блок памяти и из него замедлял скорость счета, поскольку она определялась скоростью вращающегося барабана.
Определившись с блоком памяти, Атанасов сосредоточился на том, как построить арифметический и логический блок, который он назвал «вычислительным механизмом». Он решил, что он должен быть полностью электронным, что означало применение электронных ламп, хотя они и были дорогими. Лампы должны были выполнять функцию двухпозиционных переключателей с функциями «включить/выключить», то есть служить логическими вентилями в схемах, которые могут складывать, вычитать, а также выполнять любые команды булевой алгебры.
В связи с этим возник теоретический вопрос из тех, что он любил с детства в математике: должна ли его цифровая машина использовать десятичную, двоичную или какую-либо другую систему счисления? Истинный любитель повозиться с разными системами счисления, Атанасов изучил много вариантов. «На короткое время система счисления с основанием сто показалась мне многообещающей, — писал он в неопубликованной работе. — Этот же расчет показал, что основание, которое теоретически дает высокую скорость расчета, это число е» [94] . Но поиски компромисса между теорией и практикой привели его в конце концов к выбору двойки в качестве основания, то есть к двоичной системе счисления. В конце 1937 года эти и другие идеи крутились в его голове, это была «сборная солянка» из мыслей, которые никак друг с другом не «склеивались».
94
Atanasoff, Advent of Electronic Digital Computing, 243.
Атанасов любил автомобили; он старался по возможности покупать каждый год по новому и в декабре 1937 года купил новый «форд» с мощным двигателем V8. Чтобы проветриться, он отправился на прогулку, и эта поездка стала важной вехой в истории вычислительной техники. Вот его воспоминания
об этом вечере:«Однажды зимним вечером 1937 года я почувствовал, что совершенно измучен невозможностью найти решение проблем, связанных с конструкцией машины. Я сел в автомобиль, разогнался и ехал так долгое время, пока не стал контролировать свои эмоции. Это было моей привычкой — у меня получалось восстанавливать контроль над собой после того, как проедусь по дороге, сосредоточившись на управлении автомобилем. Но в ту ночь я был слишком измучен и продолжал мчаться, пока не пересек реку Миссисипи и не оказался в штате Иллинойс в 300 километрах от того места, где я сел в машину» [95] .
95
Katherine Davis Fishman, The Computer Establishment (1981), 22.
Он съехал со скоростного шоссе и завернул в придорожную забегаловку. В штате Иллинойс, в отличие от Айовы, можно было по крайней мере купить спиртного, и он заказал себе порцию бурбона с содовой, потом еще одну. «Я почувствовал, что уже не так нервничаю, и мои мысли снова обратились к вычислительным машинам, — вспоминал он. — Я не знаю, почему моя голова тогда заработала и почему она не работала раньше, но там было симпатично, прохладно и тихо». Официантка не обращала на него внимания, и Атанасов смог спокойно обдумать свою проблему [96] .
96
Свидетельские показания Атанасова на слушаниях Honeywell vs Sperry Rand, 15 июня 1971 г., расшифровка, стр. 1700, в книге Burks, Who Invented the Computer? 1144. Архивные материалы по суду хранятся в Университете Пенсильвании, их можно найти и на сайте http:// www.archives.upenn.edu/faids/upd/eniactrial/upd8_10.html, а также в Институте Чарльза Бэббиджа при Университете Миннесоты: http://discover. lib.umn.edu/cgi/f/findaid/findaid-idx?c=umfa;cc=umfa;rgn=main;view=t ext;didno=cbi 00001.
Он набросал свои идеи на бумажной салфетке, а затем начал перебирать какие-то практические вопросы. Главное — было непонятно, как пополнить заряд в конденсаторах, которые разряжались через пару минут. Он придумал поместить их на вращающиеся цилиндрические барабаны, сделанные из банок сока V8 (емкостью примерно 1,5 литра), чтобы они каждую секунду вступали в контакт с щетками, сделанными из кабелей, и их заряды восстанавливались. «В тот вечер я представил в голове возможную конструкцию регенеративной памяти, — вспоминал он. — В тот момент я называл ее „дискретной“». С каждым поворотом вращающегося цилиндра щетки должны «встряхивать» память, состоящую из конденсаторов, а также при необходимости снимать старые данные с конденсаторов и вводить новые. Он также придумал схему, которая позволяла считывать числа с двух разных цилиндров с конденсаторами, а затем использовать схему на электронных лампах, чтобы их складывать и вычитать, после чего результат отправлять в блок памяти. Как он вспоминал, после нескольких часов обдумывания всех этих проблем он «сел в машину и поехал домой, уже не так быстро» [97] .
97
Свидетельские показания Атанасова, расшифровка, стр. 1703.
К маю 1939 года Атанасов был готов начать создание прототипа. Ему нужен был помощник, предпочтительно аспирант с инженерными навыками. Однажды друг, работавший на том же факультете, сказал ему: «У меня есть как раз такой человек, который тебе нужен». Так у него началось сотрудничество с Клиффордом Берри — тоже сыном электрика-самоучки [98] .
Прототип был разработан и собран, его единственной целью было решение системы линейных уравнений. Машина Атанасова могла работать с системами, содержащими до двадцати девяти переменных. На каждом шагу она обрабатывала два уравнения и убирала одну из переменных, а затем распечатывала получившиеся уравнения на двоичных перфокартах размером 8x11, после чего набор карт с более простой системой уравнений подавался обратно в машину, и процесс начинался заново, а затем убиралась еще одна переменная. Это требовало много времени. Чтобы найти решение системы из двадцати девяти уравнений, машине потребовалось бы (если бы они могли заставить ее работать как нужно) считать почти неделю. Но если те же самые расчеты выполняли бы люди с помощью настольных калькуляторов, они потратили бы на это по крайней мере десять недель.
98
Atanasoff, Advent of Electronic Digital Computing, 244.