Top.Mail.Ru





Архитектура фон Неймана

 0,000

Computer


: Invented in 1944
: USA

Архитектура фон Неймана (модель фон Неймана, Принстонская архитектура) — широко известный принцип совместного хранения команд и данных в памяти компьютера. Вычислительные машины такого рода часто обозначают термином «машина фон Неймана», однако соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают принцип хранения данных и инструкций в одном разделе памяти. Альтернативой архитектуре фон Неймана («принстонской архитектуре») является гарвардская архитектура.

Основы учения об архитектуре вычислительных машин заложил Джон фон Нейман в 1944 году, когда подключился к созданию первого в мире лампового компьютера ЭНИАК. В процессе работы над ЭНИАКом в Институте Мура в Пенсильванском Университете во время многочисленных дискуссий фон Неймана с его коллегами Джоном Уильямом Мокли, Джоном Эккертом, Германом Голдстайном и Артуром Бёрксом возникла идея более совершенной машины под названием EDVAC. Исследовательская работа над EDVAC продолжалась параллельно с конструированием ЭНИАКа.

В марте 1945 года принципы логической архитектуры были оформлены в документе, который назывался «Первый проект отчёта о EDVAC» — отчёт для Баллистической лаборатории Армии США, на чьи деньги осуществлялась постройка ЭНИАКа и разработка EDVACа. Отчёт, поскольку он являлся всего лишь наброском, не предназначался для публикации, а только для распространения внутри группы, однако Герман Голдстайн — куратор проекта со стороны Армии США — размножил эту научную работу и разослал её широкому кругу учёных для ознакомления. Так как на первой странице документа стояло только имя фон Неймана, у читавших документ сложилось ложное впечатление, что автором всех идей, изложенных в работе, является именно он. Документ давал достаточно информации для того, чтобы читавшие его могли построить свои компьютеры, подобные EDVACу на тех же принципах и с той же архитектурой, которая в результате стала называться «архитектурой фон Неймана».

После завершения Второй мировой войны и окончания работ над ЭНИАКом в феврале 1946 года команда инженеров и учёных распалась, Джон Мокли, Джон Экерт решили обратиться в бизнес и создавать компьютеры на коммерческой основе. Фон Нейман, Голдстайн и Бёркс перешли в Институт перспективных исследований, где решили создать свой компьютер «IAS-машина», подобный EDVACу, и использовать его для научно-исследовательской работы. В июне 1946 года они изложили свои принципы построения вычислительных машин в ставшей классической статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства». С тех пор прошло более полувека, но выдвинутые в ней положения сохраняют свою актуальность и сегодня. В статье убедительно обосновывается использование двоичной системы для представления чисел, а ведь ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде. Авторы продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации — текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.

Ещё одной революционной идеей, значение которой трудно переоценить, является принцип «хранимой программы». Первоначально программа задавалась путём установки перемычек на специальной коммутационной панели. Это было весьма трудоёмким занятием: например, для изменения программы машины ЭНИАК требовалось несколько дней, в то время как собственно расчёт не мог продолжаться более нескольких минут — выходили из строя лампы, которых было огромное количество. Однако программа может также храниться в виде набора нулей и единиц, причём в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

Наличие заданного набора исполняемых команд и программ было характерной чертой первых компьютерных систем. Сегодня подобный дизайн применяют с целью упрощения конструкции вычислительного устройства. Так, настольные калькуляторы, в принципе, являются устройствами с фиксированным набором выполняемых программ. Их можно использовать для математических расчётов, но почти невозможно применить для обработки текста и компьютерных игр, для просмотра графических изображений или видео. Изменение встроенной программы для такого рода устройств требует практически полной их переделки, и в большинстве случаев невозможно. Впрочем, перепрограммирование ранних компьютерных систем всё-таки выполнялось, однако требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации и перестройки блоков и устройств и т. п.

Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование архитектур, основанных на наборах исполняемых инструкций, и представление вычислительного процесса как процесса выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки данных. Один и тот же подход к рассмотрению данных и инструкций сделал простой задачу изменения самих программ.