ИСТОРИЯ ВТ

Если мы охотно пользуемся выгодами,

извлекаемыми из чужих изобретений,

 то обязаны с такой же готовностью

предоставить другим пользоваться

нашим изобретением, и должны

делать это бескорыстно, по доброй воле.

    

Бенджамин Франклин

Принципиальные недостатки ENIAC (сложность программирования, "разрыв" между скоростью ввода данных и вычислений, малая емкость памяти, слишком большое количество электронных ламп) стали очевидными для создателей машины еще в процессе ее проектирования (см. PC Week/RE, N 13/ 2006 c. 44). Они еще в августе 1943 г. предложили заказчикам выделить дополнительные средства на ее переделку, но получили отказ, и работа над "ламповым монстром" продолжилась в соответствии с первоначальным замыслом. Однако авторы ENIAC не отказались от идеи разработки ЭВМ с совершенно новой архитектурой. В январе 1944 г. Эккерт направил руководству Муровской школы памятную записку "О вычислительной машине на магнитном барабане" (Disclosure of a Magnetic Drum Calculator). В ней он сообщает об автоматическом вычислителе, в котором команды и данные записываются с помощью магнитного поля на диске из специального сплава, хранятся на диске и извлекаются по мере необходимости*1. Так впервые была высказана (еще в весьма сыром виде) концепция машины с хранимой программой.

_____

*1Эккерт писал впоследствии, что идею использования в качестве ЗУ диска, покрытого тонким слоем оксида железа, он заимствовал из тезисов магистерской диссертации Пери О. Крофорда (Perry O. Crawford), защищенной в 1942 г. в Массачусетском технологическом институте. В ней было предложено цифровое устройство управления артиллерийским огнем, в котором необходимые таблицы стрельб хранились на магнитном диске

"Весь 1944 и 1945 гг., - вспоминал много лет спустя Моучли, - мы вели двойную жизнь, работая в несколько смен: с восьми часов утра до полуночи руководили монтажом и тестированием отдельных устройств ENIAC; затем, когда рабочие уходили домой и в помещении оставалось лишь несколько конструкторов, Эккерт и я обдумывали проект следующей машины. Естественно, прежде всего нами обсуждались проблемы архитектуры, или логической организации. Мы много размышляли над тем, как использовать память на линиях задержки для хранения данных и программ, - эта идея родилась через месяц или немногим более после января 1944 г."

В следующей памятной записке, датированной 30 сентября 1945 г., авторы более подробно писали о своем замысле почти двухлетней давности: "Очевидно, что в общем случае последовательное выполнение операций является предпочтительным, и во всех случаях, когда оно возможно, оборудование используется наиболее эффективно. Исходя из этого в январе 1944 г. была предложена "магнитная вычислительная машина", в которой цифры числа передавались бы во временной последовательности от магнитного запоминающего устройства (storage), или памяти (memory device), через электронные ключи в центральные электронные вычислительные схемы и аналогичным образом возвращались в магнитную память. Важная особенность этой машины состояла в том, что команды и функциональные таблицы непременно должны были храниться в той же памяти, что предназначалась и для хранения чисел... В июле 1944 г. было достигнуто соглашение (с заказчиком.- Ю. П.), что если ход работ над проектом ENIAC позволит, мы приступим к созданию новой машины". В памятной записке рассматривались различные варианты построения ЭВМ, в том числе вариант, предусматривающий использование ртутных ультразвуковых линий задержки (РУЛЗ) в качестве оперативной памяти в машине, которую авторы назвали "Электронной вычислительной машиной с переменной дискретностью" (Electronic Discrete Variable Computer, EDVAC).

Рис. 1. Ртутная ультразвуковая линия

задержки (РУЛЗ)

РУЛЗ применялись в радиолокационной технике для определения времени прохождения сигнала и были хорошо знакомы Эккерту, разработавшему одну из них при выполнении оборонного заказа в Муровской школе. Линия задержки (ЛЗ) представляла собой стеклянную (или стальную) трубку, заполненную ртутью. Внутри трубки на одном ее конце помещался передатчик (кристалл кварца), который преобразовывал электрические импульсы в ультразвуковые волны, распространявшиеся в ртути. Эти волны воспринимались приемником, расположенным на другом конце трубки, преобразовывались в электрические импульсы, усиливались и вновь возбуждали кристалл кварца. Для стабильной работы РУЛЗ необходимо было поддерживать постоянную температуру трубок со ртутью (что обеспечивало неизменное время распространения ультразвуковых волн). Таким образом, информация (скажем, содержимое машинного слова) непрерывно циркулировала по ЛЗ, а временная последовательность импульсов с детектора передавалась в другие узлы машины (обычно начиная с импульса, соответствующего младшему разряду слова). Ясно, что при этом можно было осуществить лишь поразрядную, последовательную выборку данных, поэтому и арифметические операции над числами могли выполняться поразрядно. Машины с подобной организацией вычислительного процесса в дальнейшем классифицировали как ЭВМ с "арифметическим устройством последовательного действия" или с "разрядно-последовательной арифметикой".

Неизвестно, как бы развивались дальнейшие события в ВТ, если бы августовской ночью 1944 г. к Джону фон Нейману, стоявшему на перроне Эбердинского вокзала в ожидании поезда, не подошел уже знакомый нам Герман Г. Голдстайн (см. PC Week/RE, N 13/2006 c. 44). Он изрядно волновался, здороваясь со всемирно известным ученым, с которым лишь однажды встречался в предвоенные годы на математической конференции. "К счастью для меня, - вспоминал Голдстайн, - фон Нейман был исключительно доброжелательным человеком, прилагавшим всяческие усилия, чтобы люди свободно чувствовали себя в его присутствии. Вскоре разговор коснулся моей работы. Когда он услыхал, что я связан с созданием электронной вычислительной машины, способной выполнять 333 умножения в секунду, характер нашей беседы изменился: вместо добродушного обмена шутками она стала напоминать устный экзамен соискателя докторской степени". Надо думать, что свой второй докторский "экзамен" молодой ученый сдал успешно: "Когда Джонни увидел, к чему мы пришли, он двумя ногами прыгнул в электронные вычислительные машины".

Пусть читателя не удивляет фамильярность капитана Голдстайна: "Джонни" - так обращались к его собеседнику и коллеги, и генералы, и президенты США.

Один из универсальных гениев XX века Д. фон Нейман (1903-1957) родился в Будапеште, в 1933 г. эмигрировал в США, где преподавал в Принстонском университете и там же работал в Институте перспективных исследований (Institute for Advanced Study, IAS). Это уникальное научное учреждение было основано за три года до этого одним американским филантропом, пожелавшим, чтобы крупнейшие философы, математики и физики-теоретики, освобожденные от житейских забот и каких-либо формальных обязанностей, могли в тиши небольшого городка заниматься научным творчеством. В Принстоне фон Нейман много и напряженно работал, благо устав института позволял его сотрудникам самостоятельно выбирать тему исследований. Круг его научных интересов был необычайно широк: квантовая механика, математическая логика, топология, алгебра операторов в гильбертовом пространстве, теория функций действительных переменных, статистические методы, теория удара и т. д. В военные и послевоенные годы к этому списку прибавились гидродинамика, вопросы взрыва и горения, теория игр, численные методы, исследование операций, теория автоматов... Ученый поистине обладал даром царя Мидаса: все, к чему "прикасался" его невероятный интеллект, становилось, как говорил Бэббидж, "популярной пищей для будущих поколений".

Рис. 2. Джон фон Нейман

Во время войны фон Нейман консультировал различные научно-исследовательские организации военно-промышленного комплекса США и принимал участие во многих проектах, самым известным из которых был проект "Манхэттен" - создание атомной бомбы. Он часто бывал в Лос-Аламосе, где она разрабатывалась, и делал для физиков расчеты с решением систем дифференциальных уравнений в частных производных (что можно было сделать только численными методами). Целая армия девушек-вычислителей, вооруженных арифмометрами, трудилась над вычислениями, не только трудоемкими и грешившими ошибками, но и приводившими к частым поломкам счетных машин из-за их интенсивного использования. Лишь после того как проект возглавил Дж. Роберт Оппенгеймер, в Лос-Аламосе появились счетно-перфорационные машины. Однако, по свидетельству очевидца, они не намного ускорили расчеты (разве что девушки меньше уставали, а оборудование реже ломалось). Поэтому интерес фон Неймана к рассказу Голдстайна вполне объясним. Добившись у военных властей разрешения ознакомиться с секретным проектом вычислительной машины, фон Нейман 7 сентября 1944 г. приехал в школу Мура.

Моучли (1972): "Встретившись с ним, чтобы показать ENIAC и рассказать о ней, мы также обсудили наши идеи, касающиеся новой машины: она должна была содержать только одну адресуемую память, предназначенную для хранения как данных, так и программ; в отличие от ENIAC все арифметические операции должны были выполняться в одном устройстве, а управление машиной должно быть централизовано... (курсив везде Моучли. - Ю. П.). Джонни моментально все понял (быстрота мышления вообще была его характерной чертой). Но он предпочитал называть основные устройства машины, о которых мы ему рассказали, "органами", а ламповые схемы и другие блоки, выполнявшие логические функции, "нейронами"*1. Таким образом, он видоизменил нашу терминологию, но это не повлияло на сущность того, о чем мы ему рассказали, и наша концепция EDVAC осталась неизменной".

_____

*1 Фон Нейман находился тогда под большим впечатлением от работы нейрофизиолога Уоррена Стёрджиса Мак-Каллоха (Warren Sturgis McCulloch, 1899-1969) и логика Уолтера Питтса (Walter Pitts, 1923-1969) “Логическое исчисление идей, относящихся к нервной активности”, опубликованной в 1943 г. В ней авторы, в частности, показали, что машина Тьюринга (о ней чуть позднее) может быть реализована с помощью конечной сети формальных нейронов. Отсюда - нейрофизиологическая терминология фон Неймана

Фон Нейман стал регулярным посетителем Муровской школы и активно включился в дискуссии о направлениях развития ВТ, в которых помимо Моучли и Эккерта участвовали некоторые другие члены их группы. Благодаря высокому авторитету ученого среди военных Артиллерийское управление в октябре 1944 г. выделило школе 105,6 тыс. долл. на детальную разработку новой концепции (в дополнение к ранее заключенному контракту на ENIAC).

Моучли (1972): "Джонни был очарован задачей, которая каким-то образом не попала в удивительно широкий круг его интересов (пока Голдстайн не рассказал ему о проекте Муровской школы). Подобно ребенку, радующемуся новой игрушке, он не мог отложить в сторону новый предмет для размышлений. Обязанности консультанта проекта "Манхэттен" заставили его часто вылетать в Нью-Мехико, но он не переставал обдумывать нашу с Эккертом архитектуру EDVAC. Во время пребывания в Лос-Аламосской лаборатории он потратил немало времени, чтобы обобщить и письменно изложить соображения по поводу будущей машины. Он отослал их Голдстайну, указав в сопроводительном письме, что этот документ (датированный 30 июня 1945 г. - Ю. П.) предназначается лишь для членов Муровской группы*1. Но Голдстайн размножил "Первый (или черновой. - Ю. П.) вариант отчета об EDVAC (First Draft of the Report on the EDVAC)" на мимеографе, указав на титульном листе только фамилию фон Неймана (100-страничный отчет был размножен в 24 экз. - Ю. П.); не поставив нас в известность, он разослал его многим людям (в США и Британии). Никто при этом, естественно, не мог предположить, что все основные идеи новой архитектуры исходят из школы Мура".

_____

*1 Отчет был представлен в рукописном виде и затем перепечатан машинисткой Муровской школы, допустившей при этом множество ошибок. Голдстайн же не дал себе труда сравнить рукопись фон Неймана с ее отпечатанным вариантом. “Первый вариант...” в исправленном виде был полностью опубликован лишь в 1993 г

 Историческое значение "Первого варианта..." состояло в четкой формулировке требований к универсальной ЭВМ нового типа (с хранимой в памяти программой), строгом описании ее формальной, логической структуры.

Вычислительную машину (по терминологии автора отчета - "автоматическую цифровую вычислительную систему с исключительно высоким быстродействием") фон Нейман определял как "устройство (device), которое может выполнять команды для вычислений значительной сложности". Он отмечал, что команды, управляющие выполнением вычислительных и других операций, необходимо сообщать устройству с максимально допустимой детализацией; устройство должно иметь возможность их воспринимать и все команды полностью выполнять без какого-либо вмешательства человека. Последнее требуется лишь при обнаружении и исправлении допущенных при вычислениях ошибок, неизбежных в процессе функционирования устройства (ввиду его сложности и большого числа выполняемых операций). Впрочем, такое вмешательство можно сократить до минимума, поскольку устройство может самостоятельно определять часто повторяющиеся ошибки и либо автоматически корректировать их и продолжать вычисления, либо прекращать процесс.

Рис. 3. ЭВМ EDVAC

Фон Нейман сформулировал следующие требования к структуре вычислительной машины.

- Так как машина в первую очередь является средством вычислений, она чаще всего будет выполнять элементарные арифметические операции. Следовательно, в ее составе должны быть специализированные органы (organs) для выполнения таких операций; эти органы образуют центральную арифметическую часть машины.

- Логическое управление машиной, т. е. управление последовательностью ее операций, должно осуществляться центральным управляющим органом или центральной управляющей частью.

- Машина, выполняющая длительную и сложную последовательность операций, должна обладать еще одним важным органом - внутренней памятью достаточно большой емкости, которая могла бы хранить не только исходные данные, таблицы, промежуточные результаты вычислений и т. д., но и команды, определяющие тип выполняемых операций; иначе говоря - хранить программу вычислений! Отсюда следует важнейший вывод: поскольку команды представляются числовым кодом, над ними можно производить операции, как над обычными числами. Таким образом, машина получала возможность модифицировать программу в процессе вычислений.

- Машина должна иметь органы хранения информации во внешней записывающей (запоминающей. - Ю. П.) среде, представляющей собой перфокарты, телетайпную ленту, магнитную проволоку и т. д.

- Эта информация должна передаваться в центральные арифметическую и управляющую части и в память, а также в обратном направлении с помощью отдельных органов, образующих входную и выходную части машины (предпочтительно, чтобы передача осуществлялась через внутреннюю память, а не через центральную арифметическую часть).

Говоря о принципах выполнения арифметических операций, автор писал о преимуществах двоичной системы счисления и определял размер машинного слова, удовлетворяющего требованиям точности научных вычислений. Кроме того, фон Нейман подчеркивал, что ради экономии оборудования надлежит использовать разрядно-последовательную арифметику, а обсуждая синхронный и асинхронный принципы управления последовательностью действий ЭВМ, отдавал предпочтение первому*1.

_____

*1 Обращу внимание читателей на то, что по существу такую же концепцию построения вычислительной машины предложил в 1940 г. “отец кибернетики” Норберт Винер, изложивший ее в письме Ванневару Бушу. “Но, - пишет Винер в своей книге “Кибернетика, или Управление и связь в животном и машине”, - на той стадии подготовки к войне казалось, что они [рекомендации по созданию вычислительной машины. - Прим. ред. - см. далее ] не столь важны, чтобы приступить к немедленной работе над ними. Тем не менее все эти рекомендации представляют собой идеи, положенные в основу современной сверхбыстрой вычислительной машины. Эти мысли носились тогда в воздухе, и я не хочу в данный момент заявлять какие-либо претензии на исключительный приоритет в их формулировке”

Итак, фон Нейман по существу описал структурную схему аналитической машины Бэббиджа, состоящей (в современной терминологии) из арифметического устройства (АУ), устройства управления (УУ), оперативного запоминающего устройства (ОЗУ), внешнего запоминающего устройства (ВЗУ), устройств для ввода и вывода информации (УВВ). Вполне естественными отличиями от идей английского провидца явились рекомендации фон Неймана использовать в устройстве не механическую, а электронную элементную базу и не десятичную, а двоичную систему счисления. Интересно, что если Бэббидж искал аналогии между блоками вычислительной машины и производственными структурными единицами ("мельница", "склад"), то фон Нейман находил эти аналогии в живом организме (точнее, в нейронных сетях).

Подавляющая часть "Первого варианта..." посвящена подробному описанию логической структуры EDVAC, ее основных органов и обоснованию их технических характеристик.

Фон Нейман планировал ее как синхронную ЭВМ с АУ последовательного действия, выполняющим операции над числами с фиксированной запятой. Длина адресного поля составляла 13 двоичных разрядов (8 разрядов определяли номер РУЛЗ, остальные 5 - адрес машинного слова); для данных было отведено 30 разрядов (плюс знаковый разряд), отрицательные числа представлялись в форме двоичного дополнения. Еще один разряд был отведен под признак (tag): наличие в нем нуля означало, что машинное слово представляет собой число. В качестве памяти использовались 256 РУЛЗ, работавших на тактовой частоте 1,0 МГц. Каждая из них могла хранить 32 тридцатидвухразрядных слова, таким образом емкость памяти составляла 8К слов. АУ содержало три неадресуемых регистра, организованных наподобие стека: данные всегда вводились в первый (верхний) регистр, при этом его содержимое выталкивалось во второй регистр; третий регистр был аккумулятором: он выполнял операции над операндами, находившимися в первых двух регистрах, и сохранял результат, который мог быть направлен из него в другие блоки. У команд EDVAC была сложная иерархическая структура, состоявшая из восьми базовых кодов (basic codes), десяти дополнительных кодов (sub-codes) и одного модификатора (modifier). Машина имела последовательное, или, как иногда говорят, естественное управление операциями: в начале работы в командный регистр вводился адрес первой команды, она извлекалась из памяти, декодировалась и выполнялась, после чего содержимое программного счетчика увеличивалось на единицу, из памяти извлекалась следующая команда, и машинный цикл повторялся (если в разряде признака очередного машинного слова находился нуль, оно загружалось в верхний регистр АУ). Исключение составляли команды безусловной и условной передачи управления (выполнение последней зависело от знака числа в аккумуляторе). По оценкам фон Неймана, EDVAC должна была содержать примерно 2000-3000 электронных ламп.

Рассылка "Первого варианта..." имела несколько последствий:

- во-первых, фамилия всемирно известного ученого на титульном листе привлекла к отчету повышенное внимание в различных научных организациях США и Британии и, без сомнения, способствовала развитию интереса к ВТ;

- во-вторых, родился устойчивый миф, что единственным разработчиком новой концепции ЭВМ является фон Нейман, а построенные в соответствии с ней вычислительные машины начали называть машинами "фон-неймановского типа" или машинами с "фон-неймановской архитектурой", что, конечно, в высшей степени несправедливо по отношению к другим членам Муровской группы, и прежде всего к Моучли и Эккерту (не последнюю роль в распространении этого мифа сыграли журналисты);

- в-третьих, по-видимому, именно это явилось одной из причин ухода из Муровской группы основных идеологов нового направления: фон Нейман и Голдстайн уехали в принстонский IAS, Беркс получил кафедру в Мичиганском университете, Моучли и Эккерт, как уже говорилось в одной из предыдущих статей, (см. PC Week/RE, N 13/2006 c. 44), рассорившись с руководством Пенсильванского университета, основали собственную компанию для создания и производства машин нового типа.

(Продолжение следует)

Версия для печати