
Полная версия
История электронных компьютеров
Установление параллели между машиной Тьюринга и архитектурой фон Неймана стало делом историков, логиков и специалистов по теоретической информатике. Хронология формирования этой дисциплины такова:
• 1936. Алан Тьюринг и Алонзо Черч независимо предложили модели вычислений – машину Тьюринга и λ-исчисление.
• 1940. Эмиль Пост и Стивен Клини развивают альтернативные формализмы вычислимых функций.
• 1945. Джон фон Нейман пишет доклад о EDVAC, не упоминая Тьюринга. Компьютеры создаются по инженерной логике.
• 1949. Первая рабочая машина с хранимой программой – EDSAC. С нее начинается практическое программирование.
Так, шаг за шагом, формируется представление о компьютере как о материальной реализации машины – якобы это был не инженерный замысел, а интеллектуальный вывод постфактум.
Со временем в образовании прочно укоренился подход «сначала теория, потом практика». И вот уже школьников просят писать программы для машин Тьюринга. В вузах начинают курсы с формальных моделей вычислений, еще до знакомства с реальными языками программирования. Однако следует иметь в виду, что машина Тьюринга – великая абстракция, следовательно она не предназначена для обучения программированию. Она предназначена для анализа пределов вычислений. Ее место – в финале, как апофеоз теоретического мышления, а не в начале, где
Что же касается, универсальности, то она оказалась побочным эффектом. Жизнь показала, что любая достаточно выразительная система становится тьюринг-полной сама собой. (Достаточно выразительная система умеет хранить данные, выполнять условия и повторять действия, благодаря чему способна вычислять любые алгоритмы, как машина Тьюринга). Это значит, что универсальность – это не достижение, а побочный эффект. Если в системе есть возможность хранения переменных, условные переходы, циклы или рекурсия, то тьюринг-полнота появляется почти автоматически. Компьютер стал универсальным не потому, что это было задумано, а потому что иначе он был бы слишком ограничен.
Глава 5. Компьютеры первого поколения
Компьютеры первого поколения производились с 1940-х до середины 1950-х годов, их объединяет общая элементная база – электронные лампы в качестве логических элементов. Машины были громоздкими, потребляли огромное количество электроэнергии, переводя ее в тепло, отличались низкой надежностью. Наработка на отказ компьютеров первого поколения составляла порядка часов и вероятность отказа была практически неизбежной, поэтому они требовали постоянного технического обслуживания.
Размеры этих машин были колоссальны – они занимали целые машинные залыи весили десятки тонн. Программирование осуществлялось только на машинном языке: программы вводились вручную при помощи переключателей или перфокарт, а результаты вычислений выводились на печать.
Оперативная память была на линиях задержки ЭЛТ очень небольшой.
Основное назначение компьютеров первого поколения заключалось в выполнении сложных научных и военных расчетов – например, баллистических, статистических и инженерных. Среди наиболее известных машин этого периода – EDVAC, UNIVAC I, EDSAC, МЭСМ и БЭСМ-1, по непонятной причине забывают об IAS – машине, в полном смысле реализованной по архитектуре фон Неймана и при его участии, хотя по ее образу и подобию было создано порядка 10 машин.
IAS
Обычно в учебниках и популярных изданиях встречается утверждение: «архитектура фон Неймана – это EDVAC». На самом деле собственно фон-неймановская изложена в другом более фундаментальном документе – «Preliminary Discussion of the Logical Design of an Electronic Computing Instrument». По нему была построена машина, названная в IAS в честь Институте перспективных исследований (IAS), расположенного в Принстоне, под непосредственным руководством самого фон Неймана, а ее главным разработчиком был Джулинан Бигелоу. Он не просто воплотил теоретические идеи фон Неймана, а фактически создал прототип того, что позже стало стандартом архитектуры всех компьютеров: с хранимой программой, общей памятью для данных и инструкций и последовательным исполнением команд.
Термин «архитектура фон Неймана» появился в конце 1950-х – начале 1960-х годов уже задним числом, как ретроним. Он использовался для того, чтобы отличать модель компьютеров с хранимой программой, реализованную в проектах EDVAC/IAS, от альтернативных архитектур, которые начали появляться в тот период.
Изначально идея машины с хранимой программой не носила имени фон Неймана – это был результат совместной работы нескольких исследователей. Но с появлением других подходов к организации компьютеров потребовалось специальное обозначение классической схемы с единым хранилищем для данных и инструкций, последовательным выполнением команд и центральным процессором. Таким образом, термин «архитектура фон Неймана» выполняет ту же функцию, что и другие ретронимы, например «черно-белое телевидение» или «акустическая гитара» – он уточняет старый объект в контексте новых разработок.
Принципиально важным шагом стало то, что IAS разрабатывалась в академическом институте и ее технический проект был опубликован полностью и без каких-либо изъятий. Не было ни патентов, ни попыток коммерческого контроля. По этим причинам архитектура, как бы сегодня сказали, оказалась в public domain, что позволило десяткам исследовательских центров в США, Европе, СССР, Израиле, Австралии и Японии легально создавать ее клоны. В отличие от EDVAC, который несколько лет оставался скорее прототипом «на бумаге», именно IAS стал образцом для повторения.
Иногда можно встретить странные утверждение, будто IAS была асинхронным или даже параллельным. Это неверно, но том уровне технологий такое было невозможно, работа машины была строго синхронизирована тактовым генератором, до параллелизма его было еще не одно десятилетие.
Основные черты IAS
• Произвольный доступ к памяти. В отличие от последовательных устройств хранения (например, ртутных линий задержки в EDVAC), IAS использовала электронно-лучевые трубки Уильямса, которые позволяли обращаться к любым ячейкам напрямую по адресу.
• Фиксированный формат команд. Каждая инструкция состояла из двух частей: код операции и адрес, что упрощало декодирование и построение управляющей логики.
• Разделение функциональных блоков. Машина имела четко выделенные компоненты: арифметико-логическое устройство (ALU), управляющий блок, память и регистры. Каждый блок имел строго определенные функции.
• Синхронная модульная организация. Все узлы работали под управлением тактового генератора, что обеспечивало надежность и воспроизводимость работы схемы.
• Ясность и простота архитектуры. Модульная структура позволяла легко масштабировать и адаптировать машину, что сделало IAS эталоном для последующих компьютеров 1950-х годов.
Эта архитектура оказалась настолько продуманной, что стала основой для целого поколения машин, включая ILLIAC, MANIAC, ORACLE, WEIZAC, БЭСМ и другие. Хотя эти компьютеры различались по реализации и масштабу, их архитектурный облик был легко узнаваем и восходил к IAS.
UNIVAC – первый коммерческий компьютер
Проект ENIAC в 1945 году застрял на несколько лет и пути его создателей разошлись, Джон Моукли и Преспер Эккерт хотели превратить компьютер в коммерческий продукт, но эта позиция противоречила мнению руководства Университета Пенсильвании: университет требовал, чтобы все разработки и патенты, связанные с ENIAC и будущими машинами, принадлежали ему.
В результате в феврале 1946 года, почти сразу после официальной презентации ENIAC в Принстоне, Моукли и Эккерт подали в отставку и через несколько месяцев зарегистрировали собственную фирму – Eckert-Mauchly Computer Corporation (EMCC). Это было первое предприятие в мире, полностью сосредоточенное на разработке и производстве электронных компьютеров.
BINAC: первая попытка создания коммерческой машины
Первой разработка EMCC стал BINAC (Binary Automatic Computer, 1949) – машина была задумана как двухпроцессорная система с резервированием: две одинаковые машины работали параллельно и сравнивали результаты, чтобы исключить ошибки. Концепция была смелой, но опередила время – подобные системы высокой надежности реально появились только через три десятилетия.
На практике BINAC часто выходил из строя. Он был собран в единственном экземпляре для Northrop Aircraft, и достоверно неизвестно, работал ли он после установки – скорее всего, нет. Убытки составили почти 200 тыс. долларов. Одной из причин неудачи было то, что создателей из соображений секретности не допустили к машине после поставки, а инженеры заказчика не смогли с ней справиться. Этот опыт стал уроком: сопровождение компьютеров должно было входить в обязательные обязанности – сначала в EMCC, а затем и во всей отрасли.
UNIVAC I
После краха BINAC команда EMCC, насчитывавшая всего 12 человек, приступила к работе над UNIVAC I. Однако и этот проект оказался под угрозой: в авиакатастрофе погиб главный инвестор, Гарри Страус, глава American Totalisator Company, инженер, создававший электромеханические системы для тотализаторов с конца 1930-х годов. Он был готов инвестировать более 1 млн долларов. После его гибели преемники отказались поддерживать проект, и 1 февраля 1950 года Моукли и Эккерт продали EMCC корпорации Remington Rand, что позволило продолжить разработку UNIVAC I.
UNIVAC I стал прямым наследником EDVAC, который все еще оставался исследовательской машиной. В EDVAC впервые реализовали идею хранимой программы, но она имела маленький объем памяти и оставалась медленной. Ввод данных происходил через перфокарты или вручную через переключатели, других устройств ввода/вывода не было – EDVAC был прототипом, проверкой возможности работы компьютера.
UNIVAC I задумывался как практическая, коммерческая машина. Он унаследовал основные черты EDVAC, включая память на ртутных трубках, но был адаптирован для реального мира:
• увеличена память;
• добавлены магнитные ленты для хранения больших объемов данных;
• появилось удобное программирование через перфоленты и ассемблер;
• расширены возможности ввода/вывода – консоль, телетайп, позже принтер.
• Технические характеристики UNIVAC I
• 5 200 электронных ламп,
• вес 13 тонн,
• потребление 125 кВт,
• частота 2,25 МГц,
• сложение – 120 мкс, умножение – 1800 мкс, деление – 3600 мкс,
• память – 1 000 слов по 72 бита на ртутных линиях задержки,
• команда – 2 слова по 36 бит,
• ввод/вывод – восемь магнитофонов, консоль, телетайп, позже – принтер.
Первоначально в UNIVAC I не было перфокарт из-за патентов IBM, но позже Remington Rand разработала 90-колоночную альтернативу. Числа кодировались в двоично-десятичной системе Excess-3, что облегчало работу с отрицательными значениями. Всего было произведено 46 машин, стоимость каждой – около 1,5 млн долларов.
UNIVAC I на выборах 1952 года
UNIVAC I прославился на президентских выборах в США 1952 года, где соперничали Дуайт Эйзенхауэр и Эдлай Стивенсон. В порядке эксперимента телевизионная компания CBS привлекла машину для поогноза результатов. Программу для обработки данных написала Грейс Хоппер, будущий контр-адмирал ВМС США и один из пионеров программирования.
Машина смогла рассчитать распределение выборщиков на основе всего лишь 1 % поступивших данных: примерно 438 за Эйзенхауэра против 93 за Стивенсона. Прогноз выглядел неожиданно – редакторы CBS сначала не решились объявить его в эфире. Итог оказался почти точным: 442 к 89 голосам выборщиков. Эта демонстрация превратила UNIVAC в символ надежности и современности, открыв путь к использованию компьютеров в бизнесе и статистике.
UNIVAC II и последующие модели
В 1958 году вышел UNIVAC II, промежуточная версия между UNIVAC I и будущими моделями. Идея оставалась прежней, но машина стала быстрее и надежнее, она сохранила совместимость с программами UNIVAC I, а архитектура во многом соответствовала IAS фон Неймана. Основные новшества: повышение производительности, надежности и улучшение устройств ввода/вывода.
UNIVAC II по-прежнему использовал ртутные линии задержки, переход на память на магнитных сердечниках произошел только с UNIVAC III, что обеспечило увеличение скорости и надежности. Было выпущено около 50–60 машин. Машины UNIVAC II конкурировали с IBM 700-й серии, которая закрепила лидерство на рынке научных и бизнес-вычислений.
Whirlwind I: первый компьютер реального времени
Особое место среди компьютеров первого поколения занимает Whirlwind I, разработанный в Лаборатории цифровых компьютеров MIT. Проект продолжал работы с тем же названием, начатые еще во время Второй мировой войны, когда возникла необходимость создать имитатор полетов, а также решать задачи стабилизации поведения самолетов и повышения точности бомбометания. Директором проекта был Джей Форрестер, его заместителем – Роберт Эверетт.
Изначально создавался аналоговый компьютер, который успешно справлялся с поставленными задачами, но он оказался крайне сложным при перепрограммировании для разных типов самолетов. В 1947 году, ознакомившись с ENIAC, Форрестер и Эверетт пришли к выводу, что решением проблемы может быть программируемый цифровой компьютер.
Работой над цифровой версией занималась команда из 175 человек. Первый экземпляр был собран в декабре 1950 года, а в апреле 1951 года машина была введена в эксплуатацию. Whirlwind создавался как лабораторный стенд и с самого начала был адаптирован для работы в реальном времени, что было уникально для начала 1950-х.
В качестве устройства ввода/вывода впервые использовался экран на электронно-лучевой трубке для визуализации процессов управления. Машина могла выполнять до 20 000 операций в секунду, что для начала 1950-х было значительным показателем.
Первоначально использовалась память на электронно-лучевых трубках Уильямса, обеспечивавшая быстрый доступ к данным с малой емкостью. В 1953 году ее заменили на магнитно-ядерную память на ферритовых сердечниках, вдвое увеличив производительность системы.
Архитектура и принципы работы
• Программа и данные находились в единой памяти;
• Инструкции выполнялись последовательно (fetch-decode-execute);
• Модульная конструкция позволяла расширять возможности машины и адаптировать ее под новые задачи.
В сочетании с памятью на сердечниках и работой в реальном времени Whirlwind стал прототипом всех управляющих компьютеров.
Влияние на последующее поколение компьютеров
Проект Whirlwind воспитал новое поколение инженеров. Среди них был великий Кен Олсен, который участвовал в разработке цифровых систем MIT и позже создал TX-0 (Transistorized Experimental Computer Zero) – первую транзисторную машину MIT, архитектурно наследующую идеи Whirlwind, но более компактную и удобную. Опыт, полученный на Whirlwind позволил Олсену в 1957 году основать Digital Equipment Corporation (DEC), корпорацию, занимавшую долгое время второе место в мире.
Все последующие модели DEC – от PDP-1 до легендарного VAX – сохраняли черты Whirlwind:
• модульность;
• реактивность;
• ориентацию на управление и взаимодействие с пользователем.
• Основные достижения и значение Whirlwind I
• Первый компьютер, работающий в реальном времени;
• Первая машина с графическим выводом на экран;
IBM: от калькулятора до империи
В 1930–1960-е годы корпорация IBM была столпом информационной инфраструктуры США. Ее технологии обеспечивали средствами обработки данных всех – от бизнеса до государственных структур. Томас Уотсон-старший, бессменный лидер компании на протяжении полувека, сформулировал кредо IBM так: «IBM – это не просто бизнес. Это глобальная институция, установленная навечно».
Уотсон был человеком эпохи электромеханических табуляторов и обладал монополией на перфокарты формата 80 колонок. Его отношение к вычислительной технике формировалось на этом опыте и не смог сразу поверить в ее потенциал. До своей частичной отставки в 1952 году Уотсон проводил независимую техническую политику, кульминацией которой стало решение 1946 года о создании Selective Sequence Electronic Calculator (SSEC). Руководил проектом Фрэнк Гамильтон, ранее совместно с Говардом Эйкеном работавший над Harvard Mark I.
SSEC – «калькулятор для витрины»
Проект SSEC находился под личным контролем Уотсона, который настойчиво называл устройство «калькулятором», привычно оставляя слово computer за «людьми-вычислителями». Машина сочетала электромеханическое наследие IBM и начальные наработки в электронике. SSEC был установлен в зале на первом этаже штаб-квартиры IBM на Мэдисон-авеню, в Нью-Йорке, три стеклянные стены машина открывали вид с улицы и SSEC мгновенно стала городской достопримечательностью. Она представляла собой стойки, расставленные буквой «П», общей длиной 55 метров, содержащие 21 400 реле и 12 500 электронных ламп. В машинном зале SSEC впервые применили фальшполы, скрывавшие кабельную разводку, а футуристический дизайн вдохновил кинематографистов.
Несмотря на визуальную эффектность, практическая отдача от машины была скромной. Главным приложением стали расчеты эфемерид Луны, которые пригодились в 1970-х в рамках программы «Аполлон». Были и внешние заказчики, но низкая надежность системы помешала широкому применению. Программист Джон Бэкус, будущий создатель Fortran, вспоминал: «Вы должны были присутствовать при выполнении вашей программы, потому что машина останавливалась каждые три минуты, и никто, кроме вас, не знал, с чего продолжить». Преспер Эккерт лаконично резюмировал: «SSEC превзошел пределы гигантизма – и не мог работать».
SSEC был установлен в январе 1948 года, а демонтирован – в июле 1952-го. На его месте IBM представила IBM 701 – первый серийный компьютер компании, выпущенный в количестве 19 экземпляров.
IBM 701 – рождение настоящего компьютера
1952 год стал поворотным для IBM. Корпорацию возглавил Томас Уотсон-младший, сумевший осознать угрозу со стороны UNIVAC и других электронных машин, способных обрабатывать данные с перфокарт значительно быстрее. IBM подошла к вопросу системно: входить в электронику, но с гарантированной выгодой. Начали с военного заказа – первым компьютером с хранимой программой стал Defense Calculator, позже переименованный в IBM 701.
Проект возглавил Натан Рочестер, ранее работавший над арифметическим устройством Whirlwind, его заместителем был Джерри Хаддад, впоследствии создавший массовую IBM 650. В роли научного консультанта выступал Джон фон Нейман, и неудивительно, что архитектура IBM 701 оказалась IAS-подобной.
В отличие от универсального UNIVAC, IBM 701 проектировалась под конкретные задачи – прежде всего решение дифференциальных уравнений в частных производных, необходимых для авиации и обороны. Для оперативной памяти использовались трубки Уильямса.
Работа над машиной началась в январе 1951 года и завершилась весной 1952-го. Презентация в стеклянном зале была столь же торжественной, как и SSEC, но теперь речь шла о машине для обработки данных (Electronic Data Processing Machines), подчеркивая ее практическую значимость. Гражданская версия под индексом IBM 702, начиная с 14-го экземпляра, оснащалась памятью на ферритовых сердечниках – революция в надежности и производительности.
Развитие серии IBM 700/7000 продолжалось более десяти лет. В этих машинах появлялись новые архитектуры, поддержка плавающей точки, переход с ламп на транзисторы, но программная несовместимость между моделями сохранялась. Только с появлением в 1964 году серии System/360 IBM создала единое совместимое семейство, объединившее промышленность, науку и бизнес под одним архитектурным стандартом.
IBM100 – SAGE
Стимулом к созданию системы управления ПВО SAGE (Semi-Automatic Ground Environment) стал испытательный взрыв первой советской атомной бомбы 29 августа 1949 года, являвшейся копией американского «Толстяка».
Появлению SAGE предшествовала созданная силами ВВС США сеть наблюдательных постов за воздушными объектами – Ground Observer Corps (GOC). В 1953 году в ее составе действовало более 8 тысяч постов, где участвовали свыше 305 тысяч добровольцев. Однако GOC не имела связи с системами раннего обнаружения самолетов противника, и ее решили заменить «Полуавтоматической наземной вычислительной средой» – SAGE.
На выбор стратегии создания SAGE повлияла система взглядов Ванневара Буша, формулировавшего правила взаимодействия государства, науки и бизнеса при решении крупных государственных задач. Буш разработал их, будучи руководителем National Defense Research Committee во время войны и в послевоенные годы. Позже он стал советником по науке президента Дуайта Эйзенхауэра.
Принципы Буша частично применялись в Манхэттенском проекте, но наиболее полно – в SAGE, а также при создании национальных лабораторий и координирующих ведомств вроде NASA и DARPA. Главная особенность гибкой научно-производственной модели Буша – ориентация на доверие к специалистам и на технологии двойного назначения, в отличие от жестко административной «оружейной» модели СССР.
Головной организацией стал MIT, а не министерство. Массачусетский технологический институт привлек частные компании в качестве субподрядчиков.
SAGE состояла из 23 центров, каждый оснащался компьютером A/N FSQ-7 (Army-Navy / Fixed Special eQuipment). Он был построен на базе незавершенного проекта Whirlwind II MIT и доработан IBM.
Компьютер A/N FSQ-7:
• вес – 250 тонн;
• потребление – 3 МВт;
• число вакуумных ламп – 60 тысяч;
• обслуживался около 100 операторами;
• к одному компьютеру подключалось до 50 мониторов, что позволяло одновременно отслеживать около 400 самолетов;
• данные поступали от сотен радаров и других источников, машина интегрировала их в единую картину воздушного пространства.
Согласно экспертным оценкам, стоимость системы SAGE составляла 8–12 млрд долларов, что сопоставимо с Манхэттенским проектом.
Субподрядчики распределились следующим образом:
• IBM – аппаратное обеспечение;
• Burroughs – коммуникационное оборудование;
• Линкольновская лаборатория MIT – системная интеграция;
• RAND Corporation – программное обеспечение.
Первый управляющий центр SAGE вступил в действие в ноябре 1956 г., последний – в 1962 г. Для системы было написано 500 тысяч строк кода. Надежность впечатляет: SAGE выключалась всего на 10 часов в год.
SAGE была первой системой с полноценным человеко-машинным интерфейсом. Каждая станция управления имела экран с электронно-лучевой трубкой, на котором отображалась текущая воздушная обстановка.
Оператор мог взаимодействовать с изображением с помощью светового пера – устройства, позволяющего указать на объект на экране и:
• запросить параметры;
• передать координаты;
• инициировать перехват.
Эта технология стала предтечей графического интерфейса пользователя (GUI): курсор, клики, визуальная обратная связь и обработка событий в реальном времени. Появление GUI задолго до Xerox PARC и Macintosh показывает, что потребность в интуитивном управлении сложными системами возникла намного раньше, чем массовая персонализация компьютеров.
SAGE стал технологическим и культурным прецедентом: впервые показано, что человек может взаимодействовать с компьютером напрямую – в диалоге, а не через бумагу или перфокарты.
SAGE стал первым технически реализованным прообразом государственной системы как информационной машины, где наблюдение, моделирование, анализ и реакция объединены в одном технологическом контуре. Он не просто анализировал данные – система принимала решения и управляла действиями (сил ПВО) в реальном времени.
SAGE доказал работоспособность кибернетической утопии управления: если государство – система, его поведение можно анализировать, прогнозировать и направлять при достаточном уровне технологий.
Британский путь в компьютинге
Великобритания начала свою компьютерную историю блестяще. Она не пошла по американскому пути массового производства машин, а выбрала иной вектор развития: умные архитектуры, оригинальные алгоритмы и смелые концептуальные решения. Английские компьютеры часто рождались не ради рынка, а ради идей. В этом кроется их особое очарование.
И хотя США быстро вышли в лидеры индустрии, британская школа сохранила самобытность. Acorn Computers с BBC Micro и предшественниками ARM, Sinclair Research с компактными ZX Spectrum, Autonomy с байесовской аналитикой данных, ARM Holdings и ее архитектуры для миллиардов чипов, а также Darktrace с алгоритмами киберзащиты – все это продолжение традиции, в которой ценность измеряется не серийностью, а интеллектом.



