Сохранение программ
С самого начала Мокли и Эккерт понимали, что существуют более легкие способы перепрограммировать ENIAC. Но они не пытались этого сделать, потому что потребовалось бы усложнить аппаратное устройство, и к тому же в этом не было необходимости, поскольку для решения первоначально поставленных задач этого не требовалось. “Не было сделано ни одной попытки обеспечить автоматический выбор настроек под определенную задачу, – написали они в своем годовом отчете за 1943 год по усовершенствованию ENIAC. – Это было сделано из-за желания упростить конструкцию и потому, что предполагалось, что ENIAC будет использоваться в основном для задач определенного типа, в которых одна настройка будет использоваться много раз, прежде чем машину заставят решать другую задачу”>37.
Но больше чем за год до окончания создания ENIAC, уже в начале 1944 года, Мокли и Эккерт поняли, что существует хороший способ сделать компьютеры легко перепрограммируемыми: хранить программы в памяти компьютера, а не загружать их каждый раз заново. Они чувствовали, что это было бы следующим большим шагом вперед в развитии компьютеров. Структура машины с “сохраняемой программой” предполагает, что постановки задач для компьютера могут быть изменены практически мгновенно, без изменения вручную конфигурации кабелей и переключателей>38.
Для сохранения программы внутри машины нужно иметь большой объем памяти. Эккерт перебрал много способов для этого. В докладной записке, составленной в январе 1944 года, он написал: “Программы можно сохранять временно, используя запись на дисках из сплавов или постоянно – на протравленных дисках”>39. Поскольку такие диски еще не были сделаны, в следующей версии ENIAC он предложил использовать вместо этого более дешевый метод хранения, названный памятью на акустической линии задержки. Она была впервые сконструирована в Bell Labs инженером Уильямом Шокли (о котором ниже будет рассказано гораздо подробнее) и усовершенствована в Массачусетском технологическом институте. Принцип работы акустической линии задержки состоял в сохранении данных в виде импульсов в длинной трубке, заполненной тяжелой, вязкой жидкостью, такой как ртуть. На одном конце трубки электрический сигнал, несущий информацию, в кварцевом преобразователе превращался в волны, какое-то время распространяющиеся в трубке вперед и назад. Поскольку импульсы затухают, их с помощью усилителей восстанавливают. Когда приходит время извлечь данные, импульсы в кварцевом преобразователе опять превращаются в электрические сигналы, и цикл повторяется. В каждой такой трубке могло храниться примерно тысяча бит данных при стоимости, равной одной сотой от стоимости схемы, собранной на электронных лампах. В докладной записке, составленной летом 1944 года Эккертом и Мокли, они предложили следующее поколение компьютеров – преемников ENIAC – снабдить стеллажами с этими линиями задержки на ртутных трубках и хранить в них как исходные данные, так и основную информацию по программам в цифровом виде.
Джон фон Нейман
В этот момент в истории компьютеров снова появляется один из самых интересных персонажей. Джон фон Нейман – математик, родившийся в Венгрии, – был руководителем Тьюринга в Принстоне и предлагал ему остаться там работать в качестве ассистента. Восторженный эрудит и изысканный интеллектуал, он внес значительный вклад и в математическую статистику, и в теорию множеств, и в геометрию, и в квантовую механику, и в конструкцию ядерной бомбы, и в динамику жидкостей, и в теорию игр, и, конечно, в компьютерную архитектуру. В конечном итоге он значительно усовершенствует архитектуру компьютера, обеспечивающую сохранение программ, которую начали разрабатывать Эккерт и Мокли и их коллеги, и она станет называться его именем, и большая часть заслуг достанется именно ему