Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Первый компьютер Печать

Очевидно, что первым удачным устройством в этой области были счёты, которые применяли по меньшей мере 5 тысяч лет назад и успешно используют по сей день. Из истории техники известны также всевозможные вычислительные механизмы, в первую очередь функциональные аналоги современных арифметических калькуляторов. Первый механический калькулятор изготовил в 1623 году немец Вильгельм Шикард (Wilhelm Schickard). Ещё больше было устройств, выполнявших специализированные вычислительные функции. Но калькуляторы или специализированные вычислители могут быть названы компьютерами лишь со множеством оговорок. Чем отличается от них тот РС, который стоит на Вашем столе? Конечно, универсальностью. Современный компьютер свободно программируется для решения чрезвычайно широкого спектра задач. Теоретически он может решить любую задачу и смоделировать любой процесс, которые в состоянии описать математика. Именно это свойство позволило компьютерам за несколько десятилетий кардинально изменить всю земную цивилизацию. На первый взгляд кажется, что к такому типу компьютеров человечество пришло постепенно и нет смысла искать "тот самый" первый универсальный свободно программируемый компьютер. Некоторые люди распространяют такое мнение на большинство изобретений и открытий. Но такое мнение ошибочно. Компьютерная революция началась в 30-х - 40-х годах XX века.

В 1939-41 годах Джон Винсент Атанасов (John Vincent Atanasoff) и Клиффорд Берри на деньги маленькой американской компании "Research Corporation" построили (но не закончили) вычислительную машину ABC (Atanasoff Berry Computer), предназначенную для решения систем алгебраических уравнений с 30 неизвестными. Устройство имело двоичную систему счисления и память из 1632 бумажных конденсаторов.

В 1944 году Говард Эйкен (Howard Hathaway Aiken - единственный американский отец-основатель компьютеров, которого не звали Джоном) и ещё 4 инженера по контракту с IBM построил машину для расчёта баллистических таблиц, известную как Mark I. Основными её элементами были зубчатые колёса (для представления чисел) и электромеханические реле (для управления процессом вычислений), весила она 5 тонн и занимала в Гарвардском университете площадь в несколько десятков м2. Машина имела 72 регистра, каждый из которых представлял собой устройство из 24 зубчатых колёс и имел механизм передачи десятков к другому регистру. 23 колеса служили для представления числа, одно - для его знака. Отдельно для констант была предусмотрена механическая память из 60 регистров. Для операций умножения и деления, а также для вычисления синуса, натурального логарифма и показателя степени, использовались отдельные вычислительные блоки. Гарвардский Mark I работал по программе, которую считывал с перфорированной ленты. Короче говоря, это был усовершенствованный арифмометр, заменявший труд примерно 20 операторов с обычными ручными арифмометрами. Некоторые исследователи считают Mark I первым реально работавшим компьютером.

Однако большинство учебников и энциклопедий в качестве первого "настоящего" компьютера называют лампово-релейный ENIAC (Electronic Numerical Integrator and Calculator), заработавший в декабре 1945 года в университете штата Пенсильвания. Конструкторы - Джон Преспер Эккерт (John Presper Eckert) и Джон Моучли (John Mauchly) - были подробно знакомы с устройством Атанасова и заимствовали некоторые его идеи. ENIAC имел также много общего с Mark I, но работал примерно на три порядка быстрее. Как выяснилось относительно недавно, в Великобритании в июне 1944 года начал работать модифицированный вариант вычислительного устройства Colossus, функционально ни в чём не уступавший ENIAC'у, ENIACно имевший гораздо более скромные размеры. Эти машины решали узкие задачи: ENIAC был предназначен (как и Mark I) для расчёта баллистических таблиц, Colossus для поиска шифров в кодированных сообщениях. Затраты на постройку и эксплуатацию обоих компьютеров были астрономическими и позволить себе их могли только военные. Тем не менее, по своей архитектуре (устройству и принципам работы) Mark I, ENIAC и Colossus имели мало общего с современными компьютерами, они были скорее гигантскими программируемыми калькуляторами. В ENIAC'е 10 вакуумных триодов соединялись в кольцо, образуя десятичный счетчик (который исполнял роль счетного колеса механической машины), 10 таких колец плюс 2 триггера для представления знака образовывали запоминающий регистр. Всего ENIAC имел 20 регистров, каждый из которых былоператоры задают последовательность операций снабжен схемой передачи десятков и мог быть использован для операций суммирования и вычитания. Другие арифметические операции выполнялись в специализированных блоках. Числа передавались из одной части машины в другую посредством 11 проводников, по одному для каждого десятичного разряда и для знака. Значение передаваемой цифры равнялось числу импульсов, прошедших по данному проводнику. Работой отдельных блоков машины управлял задающий генератор, который определял последовательность тактовых и синхронизирующих импульсов, эти импульсы "открывали" и "закрывали" соответствующие электронные блоки машины. Ввод чисел в машину производился с помощью перфокарт, а последовательность выполнения операций задавалась с помощью курбелей и коммутационных полей, как на АТС. Размеры ENIAC'а долго были притчей во языцех. Он весил 30 тонн, содержал в себе 18 тысяч вакуумных ламп, 70 тысяч резисторов, 10 тысяч конденсаторов, 7200 диодов, 1500 реле, наборное поле составляли 6000 переключателей. Он занимал площадь около 200 м2 и потреблял мощность 160 кВт.

В августе 1944 г. к группе, в условиях строжайшей секретности разрабатывавшей ENIAC, присоединился (в качестве консультанта) математик Джон фон Нойман (John von Neumann). Менее чем через год фон Нойман (которого у нас неверно называют Нейман) подготовил 100-страничный доклад о плане работы над перспективной машиной EDVAC. Документ был, разумеется, секретным и назывался "First Draft of a Report on the EDVAC". К ужасу Моучли и Эккерта некий Голдштейн, присутствовавший на докладе в качестве военного представителя, размножил копию "First Draft..." и под авторством Ноймана разослал его нескольким учёным в США и Великобритании. Доклад стал широко известен и превратился в первую классическую работу по проектированию компьютеров. Изложенные в нём идеи создателей ENIAC'а, их предшественника Джона Винсента Атанасова и даже Алана Тьюринга были приписаны фон Нойману (таких казусов история науки знает очень много). Моучли и Эккерт, как типичные американцы, подали на Ноймана в суд, но в итоге правды они не добились и им пришлось уйти из минобороны и основать собственную фирму. Проект EDVAC, как я понимаю, был реализован в 1950 г.

Таким образом, долгое время именно Джон Фон Нойман считался основоположником современной компьютерной архитектуры. Описанный в знаменитом докладе компьютер имел:

  1. Специальные органы для выполнения простейших арифметических функций (сложение, вычитание, деление и умножение).
  2. Логическое управление осуществлялось одним центральным контролирующим блоком.
  3. Компьютер имел большой объём памяти для того, чтобы выполнять длинные последовательности команд.
  4. Органы для передачи информации от внешнего носителя к центральной арифметической части, к контролирующему блоку, а также к памяти (т.е., говоря современным языком, устройство ввода).
  5. Органы для передачи информации из арифметической, контролирующей частей и памяти на внешнее записывающее устройство (т.е. устройство вывода).

В основу его работы были положены следующие принципы:

  1. принцип программного управления, согласно которому программа состоит из набора последовательно выполняемых команд;
  2. принцип однородности памяти, когда программа и данные для неё хранятся в одном запоминающем устройстве (оперативной памяти, говоря современным языком;
  3. принцип адресности, по которому (оперативная) память состоит из пронумерованных ячеек, в любой момент доступных для считывания (процессором).

Машина должна была работать только с целочисленной математикой, а ввод и вывод данных происходил бы непосредственно через арифметическое устройство, а не через шину, как у современных компьютеров. Тем не менее считается, что эти теоретические предпосылки послужили основой для дальнейшего развития вычислительной техники в США и Великобритании.

Но ещё в 1934 году находившийся по другую сторону баррикад, в III Райхе, 23 летний студент берлинского политеха Конрад Цузе (Konrad Zuse) придумал новое устройство, архитектура и принципы работы которого в общих чертах совпадали с современными цифровыми компьютерами. Его устройство имело (тогда ещё теоретически) управляющий блок, вычислитель (объединяющий арифметические и логические операции, т.е. процессор) и память. Цузе тогда полагал, что работа компьютера должна быть основана на следующих шести принципах:

Здесь мне кажется главным то, что Цузе первым понял, что основой компьютерной обработки данных должен быть бит (он назвал его "да/нет статус"). Это означает, что любые вычисления можно производить, основываясь на элементах (вроде реле), имеющих два физических состояния (замкнуто и разомкнуто). Конрад Цузе также ввёл понятие условных суждений для формул двоичной алгебры и придумал "машинное слово".

Вскоре после окончания политеха Цузе поступил в фирму Henschel, где занимался аэродинамическими расчётами. Очевидно, это обстоятельство стимулировало его работу над компьютерами. Он решил самостоятельно изготовить программируемое устройство, работающее с двоичными числами, в котором блок управления и процессор отделены от Z3 блока памяти. В 1936 году он сделал механическое запоминающее устройство, основанное на двоичных элементах (подвижных металлических планках), и получил на него патент. В том же году в небольшой комнате на квартире своих родителей Цузе начал строить свой первый компьютер, который назвал V-1 (Versuchsmodell-1, "Фау-1"). В 1938 году работа над V-1 (к тому времени переименованном в Z1) была завершена. Это был экспериментальный или демонстрационный образец, не способный решать серьёзные практические задачи из-за небольшого объёма памяти и ненадёжного механического процессора. Тем не менее Z1 позволил Конраду получить должность и поддержку в Германском авиационно-исследовательском институте. Используя ту же память, Цузе к апрелю 1939 г. построил следующую модель компьютера (Z2), имевшую процессор на электромеханических реле. После этого успеха конструктора на год забрали в армию. Отслужив, он вернулся в институт. В то время б/у реле были доступны Цузе в большом количестве и он решает собрать на них серьёзную машину, с той же архитектурой, что и Z1. Эта машина - Z3 - была официально "сдана" 5 декабря 1941 года, и автор получил на неё патент. Видимо, в качестве премиальных, Цузе опять забрали в армию и отправили на фронт.

Z3 и был первым универсальным свободно программируемым цифровым компьютером с идеологией, которая используется и по сей день. На Z3 структурной схеме Z3 можно наглядно увидеть, что этот компьютер был удивительно близок к современным. Двоичная память вмещала 64 22-битных числа с плавающей точкой (запятой) и была соединена с процессором (арифметическим устройством) шиной данных, передававшей отдельно экспоненту и мантиссу числа. Процессор, обрабатывавший двоичные числа с плавающей точкой, связывался шиной с десятичными устройствами ввода-вывода: четырёхкнопочной клавиатурой и ламповой панелью. Устройство управления содержало контур для каждой команды и синхронизировало работу всех компонентов. Тактовая частота составляла примерно 5,3 Герца. Программа набивалась на перфоленте, представлявшей собой киноплёнку, с использованием девяти 8-битных команд (ввод, вывод, чтение из памяти, запись в память, квадратный корень и четыре арифметические операции). На практике команды Z3 не позволяли реализовать условный переход и это считается сегодня главным недостатком этой машины. Тем не менее теоретически (это показано в работах современных исследователей) универсальность Z3 ограничивалась только объёмом памяти для хранения данных.

На изготовление Z3 ушло около 2600 реле, в том числе 1800 на память и 600 на процессор. Машина потребляла мощность примерно 4 кВт. По тем временам она (как и все машины Цузе) могла считаться портативной, она весила около тонны и её размеры были в десятки раз меньше английских и американских. Следует отметить, что Цузе не применял в своих машинах в качестве элементов вакуумные лампы только из-за нехватки свободного места и недостаточного финансирования.

Отозванный через несколько месяцев с фронта, Цузе решил создать более мощный и совершенный компьютер. Прекрасно понимая, что главное - это большой объём оперативной памяти, Цузе решил, что она должна иметь ёмкость хотя бы 1024 бита. Предполагалось, что новый компьютер будет оснащён 2 перфораторами и 6 считывателями перфоленты (в том числе для подпрограмм), а также автоматическим печатающим устройством. Компьютер должен был также иметь расширенный набор команд, которые позволяли бы выполнять условные переходы и перевод адреса. Z4 Z4 удалось построить и запустить к самому концу войны. К тому времени бомбёжками был разрушен Z3. Из-за сложной военной обстановки Z4 приходилось перевозить с места на место. 28 апреля в подземном сооружении в горах Гарца Цузе продемонстрировал его ведущим немецким аэродинамикам (в числе которых были Людвиг Прандтль и Альберт Бетц). В конце концов Z4 удалось спасти только благодаря сотрудникам Вернера фон Брауна, которые спрятали его в сарае в одной из альпийских деревень. Реально Z4 имел процессор из 2200 реле, механическую память из 64 32 разрядных слов (планировалась память на 500 слов), два устройства для перфорации/считывания перфоленты, десятичную клавиатуру, устройство вывода в виде электрической пишущей машинки Mercedes. Он работал на частоте 30 Герц, а весил и потреблял энергии приблизительно как Z3. В каком-то смысле это был персональный компьютер, так как его обслуживание было простым и, главное, он легко программировался одним человеком. Для программирования Z4 на решение типичной задачи требовалось время порядка трёх часов.

Чертёж узлов Z1
Сам Конрад Цузе всю жизнь отрицал, что его компьютеры использовались в гитлеровской Германии для практических расчётов. Но в это трудно поверить по двум причинам. Во-первых, единственный его уцелевший компьютер - Z4 - претерпев после войны несколько незначительных модификаций, был установлен в институте прикладной математики в Цюрихе (Eidgenoessische Technische Hochschule), где проработал почти без перерывов в течение пяти лет над вполне реальными проектами (это был один из двух работавших тогда в Европе компьютеров, вторым была МЭСМ Сергея Лебедева). Затем он был перевезён во Францию, где работал ещё примерно столько же. В настоящее время Z4 можно увидеть в Мюнхенском Deutsche Museum. Во-вторых, сразу после войны практически все сотрудничавшие с правительством Райха специалисты были превращены в интеллектуальных рабов: большую часть их разобрали страны-победители, заставив работать на свои военные ведомства, многих привлекли к суду и посадили, оставшиеся же на свободе в Германии жили в постоянном страхе. Именно к последним Цузе и принадлежал. Сразу после войны его арестовали, но Конраду, очевидно, удалось "отмазаться".

С 1942 года Цузе вынашивал идею алгоритмического языка программирования. Сегодня любой образованный человек понимает, что язык программирования так же важен, как аппаратная часть компьютера. Через несколько месяцев после окончания войны Цузе разработал алгоритмический язык для инженерных расчётов. Он назвал его Plankalkul (u с двумя точками, конечно). В Plankalkul вводилось понятие объекта, он позволял работать с подмассивами данных, подпрограммами и даже с массивами программ. Цузе придумал оператор присваивания и определил для него отдельный знак. По уровню Plankalkul соответствовал распространённому в 1960-1970-е языку ALGOL 60/68.