Первое поколение — электронные лампы (1945-1955)
Стимулом к созданию электронного компьютера стала Вторая мировая война. В начале войны германские подводные лодки разрушали британские корабли. Германские адмиралы посылали на подводные лодки по радио команды, и хотя англичане могли перехватывать эти команды, проблема была в том, что радиограммы были закодированы с помощью прибора под названием ENIGMA, предшественник которого был спроектирован изобретателем-дилетантом и бывшим президентом США Томасом Джефферсоном.
В начале войны англичанам удалось приобрести ENIGMA у поляков, которые, в свою очередь, украли ее у немцев. Однако, чтобы расшифровать закодированное послание, требовалось огромное количество вычислений, и их нужно было произвести сразу после перехвата радиограммы. Поэтому британское правительство основало секретную лабораторию для создания электронного компьютера под названием COLOSSUS. В создании этой машины принимал участие знаменитый британский математик Алан Тьюринг. COLOSSUS работал уже в 1943 году, но, так как британское правительство полностью контролировало этот проект и рассматривало его как военную тайну на протяжении 30 лет, COLOSSUS не стал базой для дальнейшего развития компьютеров. Мы упомянули о нем только потому, что это был первый в мире электронный цифровой компьютер.
Вторая мировая война повлияла на развитие компьютерной техники и в США. Армии нужны были таблицы, которые использовались при нацеливании тяжелой артиллерии. Сотни женщин нанимались для расчетов на ручных счетных машинах и заполнения полей этих таблиц (считалось, что женщины аккуратнее в расчетах, чем мужчины). Тем не менее этот процесс требовал много времени, и часто случались ошибки.
Джон Моушли, который был знаком с работами Атанасова и Стибблитса, понимал, что армия заинтересована в счетных машинах. Он потребовал от армии финансирования работ по созданию электронного компьютера. Требование было удовлетворено в 1943 году, и Моушли со своим студентом Дж. Преспером Экертом (J. Presper Eckert) начали конструировать электронный компьютер, который они назвали ENIAC (Electronic Numerical Integrator and Computer — электронный цифровой интегратор и калькулятор). ENIAC состоял из 18 000 электровакуумных ламп и 1500 реле, весил 30 тонн и потреблял 140 киловатт электроэнергии. У машины было 20 регистров, каждый из которых мог содержать 10-разрядное десятичное число. (Десятичный регистр — это память очень маленького объема, которая может вмещать число до какого-либо определенного максимального количества разрядов, что-то вроде одометра, запоминающего километраж пройденного автомобилем пути.) В ENIAC было установлено 6000 многоканальных переключателей и имелось множество кабелей, протянутых к разъемам.
Работа над машиной была закончена в 1946 году, когда она уже была не нужной — по крайней мере, для достижения первоначально поставленных целей.
Поскольку война закончилась, Моушли и Экерту позволили организовать школу, где они рассказывали о своей работе коллегам-ученым. В этой школе и зародился интерес к созданию больших цифровых компьютеров.
После появления школы за конструирование электронных вычислительных машин взялись другие исследователи. Первым рабочим компьютером был EDSAC (1949 год). Эту машину сконструировал Морис Уилкс в Кембриджском университете. Далее — JOHNIAC в корпорации Rand, ILLIAC в Университете Иллинойса, MANIAC в лаборатории Лос-Аламоса и WEIZAC в Институте Вайцмана в Израиле.
Экерт и Моушли вскоре начали работу над машиной EDVAC (Electronic Discrete Variable Computer — электронная дискретная параметрическая машина). К несчастью, этот проект закрылся, когда они ушли из университета, чтобы основать компьютерную корпорацию в Филадельфии (Силиконовой долины тогда еще не было). После ряда слияний эта компания превратилась в Unisys Corporation.
Экерт и Моушли хотели получить патент на изобретение цифровой вычислительной машины. После нескольких лет судебной тяжбы было вынесено решение, что патент недействителен, так как цифровую вычислительную машину изобрел Атанасов, хотя он ее и не запатентовал.
В то время как Экерт и Моушли работали над машиной EDVAC, один из участников проекта ENIAC, Джон Фон Нейман, поехал в Институт специальных исследований в Принстоне, чтобы сконструировать собственную версию EDVAC под названием IAS(Immediate Address Storage — память с прямой адресацией). Фон Нейман был гением в тех же областях, что и Леонардо да Винчи. Он знал много языков, был специалистом в физике и математике, обладал феноменальной памятью: он помнил все, что когда-либо слышал, видел или читал. Он мог дословно процитировать по памяти текст книг, которые читал несколько лет назад. Когда фон Нейман стал интересоваться вычислительными машинами, он уже был самым знаменитым математиком в мире.
Фон Нейман вскоре осознал, что создание компьютеров с большим количеством переключателей и кабелей требует длительного времени и очень утомительно. Он пришел к мысли, что программа должна быть представлена в памяти компьютера в цифровой форме, вместе с данными. Он также отметил, что десятичная арифметика, используемая в машине ENIAC, где каждый разряд представлялся десятью электронными лампами A включена и 9 выключены), должна быть заменена параллельной бинарной арифметикой. Между прочим, Атанасов пришел к аналогичному выводу лишь спустя несколько лет.
Основной проект, который фон Нейман описал вначале, известен сейчас как фон-неймановская вычислительная машина. Он был использован в EDSAC, первой машине с программой в памяти, и даже сейчас, более чем полвека спустя, является основой большинства современных цифровых компьютеров. Сам замысел и машина IAS оказали очень большое влияние на дальнейшее развитие компьютерной техники, поэтому стоит кратко описать проект фон Неймана. Стоит иметь в виду, что хоть проект и связан с именем фон Неймана, в его разработке приняли деятельное участие другие ученые — в частности, Голдстайн. Архитектуру этой машины иллюстрирует следующий рисунок:
Машина фон Неймана состояла из пяти основных частей: памяти, арифметико-логического устройства, устройства управления, а также устройств ввода-вывода. Память включала 4096 слов размером по 40 бит, бит — это 0 или 1. Каждое слово содержало или 2 команды по 20 бит, или целое число со знаком на 40 бит. 8 бит указывали на тип команды, а остальные 12 бит определяли одно из 4096 слов. Арифметический блок и блок управления составляли «мозговой центр» компьютера. В современных машинах эти блоки сочетаются в одной микросхеме, называемой центральным процессором (ЦП).
Внутри арифметико-логического устройства находился особый внутренний регистр на 40 бит, так называемый аккумулятор. Типичная команда добавляла слово из памяти в аккумулятор или сохраняла содержимое аккумулятора в памяти. Эта машина не выполняла арифметические операции с плавающей точкой, поскольку Фон Нейман считал, что любой сведущий математик способен держать плавающую точку в голове.
Примерно в то же время, когда Фон Нейман работал над машиной IAS, исследователи МТИ разрабатывали свой компьютер Whirlwind I. В отличие от IAS, ENIAC и других машин того же типа со словами большой длины, машина Whirlwind I имела слова по 16 бит и предназначалась для работы в реальном времени. Этот проект привел к изобретению Джеем Форрестером (Jay Forrester) памяти на магнитном сердечнике, а затем и первого серийного мини-компьютера.
В то время IBM была маленькой компанией, производившей перфокарты и механические машины для сортировки перфокарт. Хотя фирма IBM частично финансировала проект Айкена, она не интересовалась компьютерами и только в 1953 году построила компьютер 701, через много лет после того, как компания Экерта и Моушли со своим компьютером UNIVAC стала номером один на компьютерном рынке.
В 701 было 2048 слов по 36 бит, каждое слово содержало две команды. 701 стал первым компьютером, лидирующим на рынке в течение десяти лет. Через три года появился компьютер 704, у которого было 4 Кбайт памяти на магнитных сердечниках, команды по 36 бит и процессор с плавающей точкой. В 1958 году компания IBM начала работу над последним компьютером на электронных лампах, 709, который по сути представлял собой усложненную версию 704.