на обложку

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

v.0.9a

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

Компьютерная революция началась в 30-х - 40-х годах XX века.

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

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

1) программное управление; 2) двоичная система счисления; 3) арифметика с плавающей точкой; 4) полностью автоматические арифметические вычисления; 5) память большой ёмкости; 6) элементы, действующие по принципу да/нет.

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

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

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

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

на обложку